Professional Documents
Culture Documents
!
*++
,$-'.&$-%$/.&$-%)01
%2.&3$4.(,"%4)4%5"$"&$-%$
%(20$6: En este caso el emisor y el receptor están perfectamente definidos y la
comunicación es unidireccional. Este tipo de comunicaciones se emplean, usualmente, en
redes de radiodifusión, donde los receptores no necesitan enviar ningún tipo de dato al
transmisor.
,20$67 8)093,20$6 . &$(%:3,20$6: En este caso ambos extremos del sistema de
comunicación cumplen funciones de transmisor y receptor y los datos se desplazan en
ambos sentidos pero no de manera simultánea. Este tipo de comunicación se utiliza
habitualmente en la interacción entre terminales y una computadora central.
,00,20$6: El sistema es similar al duplex, pero los datos se desplazan en ambos sentidos
simultáneamente. Para que sea posible ambos emisores poseen diferentes frecuencias de
transmisión o dos caminos de comunicación separados, mientras que la comunicación semi-
duplex necesita normalmente uno solo. Para el intercambio de datos entre computadores
este tipo de comunicaciones son más eficientes que las transmisiones semi-dúplex.
.(,"%4)4%."$&&$-%$)&;"4-.")&
Primero se envía un bit de start, a continuación los bits de datos (primero el bit de mayor
peso) y finalmente los bits de STOP.
El número de bits de datos y de bits de Stop es uno de los parámetros configurables, así
como el criterio de paridad par o impar para la detección de errores. Normalmente, las
comunicaciones serie tienen los siguientes parámetros: 1 bit de Start, 8 bits de Datos, 1 bit
de Stop y sin paridad.
En esta figura se puede ver un ejemplo de la transmisión del dato binario 10011010. La
línea en reposo está a nivel alto:
.-()
*<*
Mediante los puertos de E/S se pueden intercambiar datos, mientras que las IRQ producen
una interrupción para indicar a la CPU que ha ocurrido un evento (por ejemplo, que ha
llegado un dato, o que ha cambiado el estado de algunas señales de entrada). La CPU debe
responder a estas interrupciones lo más rápido posible, para que dé tiempo a recoger el dato
antes de que el siguiente lo sobrescriba. Sin embargo, las UART 16550A incluyen unos
buffers de tipo FIFO, dos de 16 bytes (para recepción y transmisión), donde se pueden
guardar varios datos antes de que la CPU los recoja. Esto también disminuye el número de
interrupciones por segundo generadas por el puerto serie.
Una vez que ha comenzado la transmisión de un dato, los bits tienen que llegar uno detrás
de otro a una velocidad constante y en determinados instantes de tiempo. Por eso se dice
que el RS-232 es asíncrono por caracter y síncrono por bit. Los pines que portan los datos
son RXD y TXD. Las demás se encargan de otros trabajos: DTR indica que el ordenador
esta encendido, DSR que el aparato conectado a dicho puerto esta encendido, RTS que el
ordenador puede recibir datos (porque no está ocupado), CTS que el aparato conectado
puede recibir datos, y DCD detecta que existe una comunicación, presencia de datos.
Uno de estos circuitos, que se utiliza mucho, es el MAX232.
04."$4'.-3$0
En los PCs hay conectores DB9 macho, de 9 pines, por el que se conectan los dispositivos
al puerto serie. Se utiliza principalmente para conexiones en serie, ya que permite una
transmisión asíncrona de datos según lo establecido en la norma RS-232 (RS-232C). Los
conectores hembra que se enchufan tienen una colocación de pines diferente, de manera
que se conectan el pin 1 del macho con el pin 1 del hembra, el pin2 con el 2, etc...
)?0$3$4."$6%5"/1
También se puede fabricar un cable serie utilizando cable plano de bus, conectando un
conector DB9 hembra para bus:
Para controlar el puerto serieprimero hay que agregar en el formulario en objeto
CommControl, se agrega a la barra de herramientas y se lo coloca en cualquier lado del
formulario, este no es visible, así que no importa donde quede.
Para hacerlo funcionar se tiene que tocar algunas propiedades, primero es la propiedad
.((.-', por defecto está en el Comm1, ahí, si es otro número se lo cambia, luego se
selecciona la velocidad de conexión en la propiedad $''%"#, por defecto está a 9600
baudio, ahí también se tiene que colocar el valor correspondiente a la velocidad de trabajo
de ese PLC.
Luego para entablar una comunicación sólo es necesario poner
.((+.-'2$"@ -,$; esto abre el puerto de comunicación, si te da algún error es
porque el puerto que se seleccionó no lo puede utilizar, ya sea porque lo está utilizando otro
programa o no existe.
De esa manera queda el control del puerto, éste queda escuchando todo lo que entra,
cuando ingresa algún caracter por el puerto, se dispara el evento ".(( del objeto
Comm control, ahíse tiene que leer lo que ha ingresado, se hace de la siguiente manera
-%A)'$,?.((+B".((/1
9.((A$"'@* 8$"
)'.@.((+"2,'
"39
"3,?
Así lo que entra se guarda en la variable "Dato", el CommEvent 2 verifica que éste sea
disparado por un ingreso de datos.
Existen algunos parámetros también importantes, que por lo general funciona bien con los
valores por defecto.