Você está na página 1de 54

MODBUS

Protocolo de comunicaciones
situado en el nivel 7 del Modelo
OSI, basado en la Arquitectura
maestro/esclavo o cliente/servidor

Este protocolo debe determinar


el enlace de comunicacin entre
un solo dispositivo maestro y
varios equipos esclavo,
identificar el remitente y el
receptor, intercambiar mensajes
de manera ordenada y detectar
errores

CAPA FISICA (CAPA 1)


CONEXIONES FISICAS DE LOS DISPOSITIVOS HACIA LA RED:
CABLE, FIBRA, ETC
CARACTERISTICAS DEL MEDIO (TIPO Y CALIDAD DEL CABLE, ETC)
FORMA EN LA QUE SE TRANSMITE LA INFORMACION
(CODIFICACION DE SEAL, NIVELES DE TENSION/INTENSIDAD, ETC
OBJETIVO: CENTRADO A LA TRANSMISION DE LOS
BITS DE INFORMACION A TRAVES DEL MEDIO
UTILIZADO PARA LA INTERCONEXION.
PROPIEDADES FISICAS
CARACTERISTICAS ELECTRICAS
VELOCIDAD DE TRANSMISION
(BIDIRECCIONAL)
ASPECTOS MECANICOS DE LAS
CONEXIONES

CAPA DE ENLACE DE DATOS (CAPA 2)


DIRECCIONAMIENTO FISICO: TOPOLOGIA Y LOGICA DE RED (BUS, ESTREYA O
ANILLO)
ACCESO A LA RED: NOTIFICACION DE ERRORES
DISTRIBUCION DE TRAMAS
CONTROL DEL FLUJO.

OBJETIVO: PROPORCIONA UNA TRANSMISION SIN


ERRORES, ES DECIR, UN TRANSITO DE DATOS FIABLE A
TRAVES DE UN ENLACE FISICO

CAPA DE APLICACIN (CAPA 7)


ESTABLECE LA PLATAFORMA COMUN MEDIANTE EL CUAL LOS PROGRAMAS SE
COMUNICAN CON OTROS A TRAVES DE LA RED.

EL USUARIO NO TIENE CONTACTO DIRECTO CON LA CAPA


DE APLICACIN, PERO PUEDE INTERACTUAR A SU VEZ
CON PROGRAMAS QUE INTERACTUAN CON LA CAPA
OBJETIVO: APLICACIONES ESPECIFICA CAPACES DE
PROVEER INFORMACION UTIL PARA LOS
PROGRAMAS DESARROLLADOS A NIVEL DE
USUARIO.

ESTE MODELO ES BASADO EN 4 TIPOS DE MENSAJE NOMBRADOS:


MODBUS REQUEST: EL MENSAJE ES ENVIADO EN LA RED POR EL CLIENTE
PARA
INICIAR LA
TRANSICION DE INFORMACION
MODBUS CONFIRMATION: EL MENSAJE ES RECIBIDO POR EL SERVIDOR
MODBUS INDICATIONS: LA SOLICITUD HA SIDO RECIBIDO POR EL
SERVIDOR
MODBUS RESPONSE: RESPUESTA AL MENSAJE POR EL SERVDOR

EL INTERCAMBIO DE INFORMACION ENTRE CLIENTE Y


SERVIDOR
EL CLIENTE (MAESTRO) INICIA LA SOLICITUD
EL PROTOCOLO MODBUS (LAYER 7) GENERA PROTOCOL DATA UNIT
(PDU), QUE CONSISTE EN UN CODIGO DE FUNCION Y UNA SOLICITUD DE
DATO.
EN EL LAYER 2, EL PDU ES CONVERTIDO EN APPLICATION DATA UNIT
(ADU), POR LA ADICION DE BUSES O REDES, DIRECCION Y PUNTO SUMA
PARA LA DETECCION DE ERRORES

EL SERVIDOR (EN EL DISPOSITIVO ESCLAVO)


ENTONCES EJECUTA LA ACCION REQUERIA PARA
INICIALIZAR UNA RESPUESTA. LA INTERACCION ENTRE
CLIENTE Y ESCLAVO

Qu es la comunicacin serial?
La comunicacin serial consiste en el envi secuencial de un bit a la vez de
informacin entre dos o ms dispositivos, por eso se le llama serial, porque cada bit
va uno seguido de otro o dicho.

La transmisin de
datos es necesario
un solo cable entre
los dispositivos y
una referencia o
tierra

Como se observa, la seal es por un solo cable, lo que implica que solo halla
dos valores, denotados en electrnica digital por un 1 o un 0, esto es si llega
voltaje al cable (1) o si no le llega (0).

En la figura anterior el dispositivo 1 transmite la informacin y el dispositivo 2


la recibe, as no se utiliza mucho, pues no hay forma que el dispositivo 2
regrese informacin al dispositivo 1, obviamente es mejor la transmisin con
dos cables como la mostrada en la figura siguiente:

Es posible transmitir de forma serial los datos del dispositivo


1 al dispositivo 2 y viceversa.

Cada dispositivo tiene dos cables, uno es el transmisor que es


el cable que enva los datos a otro dispositivo, generalmente se
le representa como Tx, y el otro cable es el receptor que se le
representa con Rx, y es el encargado de recibir la informacin

Observe como el transmisor (Tx) de un dispositivo se conecta


al receptor (Rx) del otro, los datos se envan de un dispositivo
a otro

Como se enva la informacin de forma


serial
Pensemos que yo deseo enviar la letra A de un dispositivo a otro,
mediante el cdigo ASCII que le corresponde el cdigo ASCII 65, que
convertido a cdigo binario nos da como resultado el 10000010, entonces
para enviar la letra A simplemente se enva una trama de bits como se
muestra.

Se enva siempre, del bit menos significativo al bit ms significativo


Generalmente se enva los datos de forma serial en bloques de 8 bits
El envi de datos es a una velocidad previamente establecida por los
dispositivos, por eso es posible saber cundo es 0 y cuando es 1.

Bit de Start y bit de Stop


De la trama anterior que enva la letra A, siempre se le agregan dos bits mas, uno al inicio
y otro al final, esto con la finalidad de indicarle al receptor cuando inicia el dato (bit de
start) y cuando termina (bit de stop), es de suponer que ambos bits van al inicio y al final
de la trama de bits, esto se puede ver en la figura siguiente.

El bit de inicio es un 0 y el bit de paro es un 1, siempre


que se enven datos seriales generalmente llevan este

Bit de paridad
Existe otro bit que se agrega a la trama, es el llamado bit de
paridad, que sirve para detectar errores en las tramas
enviadas.

Paridad par: Conteo de unos. Si el total


es impar, el bit de paridad se establece
en uno y por tanto la suma del total
anterior con este bit de paridad, dara par.
Paridad par: Inversa a la paridad par
Si un nmero impar de bits se transmite incorrectamente, el
bit de paridad ser incorrecta

Velocidad de transmisin
La velocidad de transferencia de informacin indica el
nmero de bits que se transmiten en un segundo, se mide en
bauds (baudios) algunas velocidades de transmisin que son
muy usadas son las siguientes: 1200, 2400, 4800, 9600,
19200.

Importancia: La transmisin serial no


sera correcta si ambos dispositivos no
estan a la misma velocidad para transmitir
y recibir bits

Unicast
Unicast: Comunicacin entre el maestro y un solo
esclavo, de este modo la transaccin Modbus
consistira en dos mensajes: el maestro inicia la
transmisin con una peticin, seguida por la
respuesta del esclavo. Cada nodo esclavo debe
tener una nica direccin (de 1 a 247) dentro de la
red con el fin de puedan ser llamados
individualmente por el dispositivo maestro.

Broadcast
En modo broadcast el maestro hace un llamado a todos los
esclavos del bus de campo.
En este caso la transaccin Modbus est compuesta
exclusivamente por la peticin del maestro, quien utiliza la
direccin 0 que est reservada para intercambios de este
tipo; implcitamente involucra la ejecucin de una accin por
parte de todos los esclavos y por esta razn el modo
broadcast est disponible nicamente en las operaciones de
escritura de variables de tipo binario o registros.
Para este modo, todos los esclavos tienen que aceptar la
funcin de escritura porel dispositivo remoto. Vase la Figura
1.4

CONEXION A 2 Y 4 HILOS
Usando 4 cables, llamada en ingles full-duplex.
Usando 2 cables, llamada half-duplex.

Comunicacin a: 4 hilos, el transmisor y receptor son totalmente


independientes, en un instante ambos pueden estar transmitiendo y recibiendo
informacin, por eso es llamado full-duplex

Comunicacin a: 2 hilos, la diferencia, es que a dos hilos, el transmisor y el


receptor nunca estn funcionando en el mismo instante, o el dispositivo
transmite informacin o la recibe, pero nunca al mismo tiempo.

Modos de Transmisin del MODBUS


Los modos de transmisin definen como se envan los paquetes de datos entre
maestros y esclavos, el protocolo MODBUS define dos principales modos de
transmisin:
MODBUS RTU(Remote Terminl Unit). La comunicacin entre dispositivos se
realiza por medio de datos binarios. Esta es la opcin ms usada del protocolo y
es la que se implemento en nuestras tarjetas.
MODBUS ASCII(American Standard Code for Information Interchange). La
comunicacin entre dispositivos se hace por medio de caracteres ASCII.

Comunicacin Maestro-Esclavo en MODBUS


El MODBUS siempre funciona con un maestro y uno o ms esclavos, siendo el maestro
quin controla en todo momento el inicio de la comunicacin con los esclavos, que
segn la especificacin pueden ser hasta 247 en una misma red. El esclavo por otro
lado se limita a retornar los datos solicitados por el maestro, as de simple es la
comunicacin usando el MODBUS, el maestro enva los mensajes y el respectivo
esclavo los responde.

Modos de transmisin serial


Dado que estamos hablando de un protocolo de comunicacin serial se
debe definir el contenido de las tramas que sern transmitidos a travs
del par(es) de conductores, esto lo determina el modo de transmisin
utilizado, para Modbus puede ser RTU o ASCII.

Modo RTU
En modo RTU cada byte del mensaje contiene dos caracteres hexadecimales de 4
bits, su mayor ventaja estriba en tener una mayor densidad de caracteres lo que
permite un mayor rendimiento que el modo ASCII utilizando la misma tasa de
transmisin; la comprensin de esta caracterstica ser evidente cuando se traten
los detalles del modo ASCII en el siguiente aparte.

El formato de 11 bits para cada carcter transmitido consiste en


1 bit de inicio, 8
bits de datos (el bit menos significativo se enva primero), 1 bit
de paridad y 1 bit
de parada; cada uno de los byte de datos se codifica en bits
binarios. Existen tres
opciones para el bit de paridad: impar, par o ninguna

En RTU la trama est definida por la direccin de esclavo (1 byte), el


cdigo de
funcin (1 byte), los datos (0-252 bytes) y el chequeo de redundancia
cclica CRC
(2 bytes), tal como lo muestra la figura.
En RTU la trama est definida por la direccin de esclavo (1 byte),
el cdigo de
funcin (1 byte), los datos (0-252 bytes) y el chequeo de
redundancia cclica CRC
(2 bytes), tal como lo muestra la figura.

Se observa que existen indicadores de inicio y final conocidos que en este caso
son intervalos de silencio (no transmisin) de al menos una longitud equivalente a
3.5 caracteres que permiten a todos los dispositivos reconocer cuando se ha
iniciado una transmisin y cuando se puede dar por terminada la misma.

Cada mensaje dentro del protocolo se debe enviar como una cadena
ininterrumpida de caracteres separados a lo sumo por un tiempo
equivalente al
empleado en la transmisin de 1.5 caracteres, cuando se supera este
lmite el
mensaje es declarado incompleto y tiene que ser descartado por el
receptor.

Con respecto al chequeo de errores de trama,


como se dijo anteriormente, en
modo RTU se ejecuta un algoritmo CRC que genera
un campo de 2 bytes
agregado al final de la trama. El valor del CRC se
basa en los bytes que
componen los datos sin importar el tipo de paridad
que se este utilizando -no se
tienen en cuenta los dems campos de caracteres
(direccin, funcin).

Una vez calculado por el dispositivo que realiza la


transmisin el byte menos
significativo del CRC se enva primero seguido del
ms significativo, completando
el mensaje; una vez lo recibe otro dispositivo, se
recalcula el CRC en el destino y
se compara con el valor que viene adherido en la
trama. Si los valores no
concuerdan se descarta la trama y se enva un
mensaje de error.

Modo ASCII
En el modo ASCII cada byte del mensaje es
transmitido como dos caracteres
ASCII, su principal ventaja estriba en que permite
que existen grandes intervalos
de tiempo entre caracteres (hasta un segundo) sin
que por esto hayan errores de
transmisin. Este modo se utiliza cuando el enlace
fsico de comunicacin o las
caractersticas tcnicas de los equipos no son
aptas para las altas exigencias que
el manejo de temporizadores e interrupciones que
el modo RTU requiere.

El formato de 10 bits para cada carcter


transmitido consiste en 1 bit de inicio, 7
bits de datos (el bit menos significativo se enva
primero), 1 bit de paridad y 1 bit
de parada; cada uno de los byte de datos se
codifica hexadecimalmente para
luego ser convertido a ASCII. Tambin existen tres
opciones para el bit de paridad:
impar, par o ninguna

se
podra decir que el modo ASCII es
aproximadamente la mitad de eficiente en
comparacin con el RTU para tasas de transmisin
iguales.
A fin de explicar la mayor efectividad del modo
RTU se debe aclarar que debido al
sistema de codificacin (hexadecimal-ASCII), cada
byte de datos necesita de 2
caracteres para ser transmitido (14 bits, ms los
de inicio, paridad y parada).

En este caso la trama est compuesta por un


campo de inicio (1 carcter), la
direccin de esclavo (2 caracteres), el cdigo de
funcin (2 caracteres), los datos
(2x252=504 caracteres), el chequeo de
redundancia longitudinal (2 caracteres) y
un campo de finalizacin (2 caracteres). En este
caso se cuentan con indicadores
de inicio y final de la trama que son bastantes
explcitos y facilitan las tareas de
procesamiento de la CPU.

El chequeo de errores en la trama en este caso se


ejecuta por medio de un
algoritmo de redundancia longitudinal, en donde
se tienen en cuenta el contenido
del mensaje excluyendo los indicadores de inicio y
final, sin importar el tipo de
paridad determinado. En este modo si se incluyen
los campos de direccin y
funcin en el chequeo de trama, a diferencia del
caso RTU.

En modo ASCII, los tiempos de proceso no son de


relevancia y solo se debe
cuidar que no transcurra ms de un segundo entre
la transmisin de dos
caracteres consecutivos; si se tienen en cuenta
que las ms bajas tasas de
transmisin seriales usadas en Modbus oscilan por
el orden de los cientos de
baudios se observa que puede transcurrir un
tiempo equivalente al necesario para
transmitir hasta 10 caracteres sin que se reporte
un error en la conexin, sta es la
mayor fortaleza de este modo.

Chequeo de errores
La seguridad de los datos que se transportan bajo el
protocolo Modbus se basa en
dos tipos de chequeo: paridad (par o impar) que debe ser
aplicada a cada
carcter, y chequeo de trama (LCR o CRC) que es
aplicada al mensaje completo.
Ambos chequeos son ejecutados por el dispositivo que
emite los datos mientras el
que responde verifica. En el caso de LCR y CRC, ya se
explico el principio de
funcionamiento y el presente aparte no har mencin de
los mismos.

Luego, si un esclavo detecta un error en la


transmisin, el mensaje es descartado y el esclavo no
realiza accin alguna (no
genera una respuesta al maestro); por ende, una vez
expira el tiempo fuera el
maestro entiende que existi un error y toma las medidas
necesarias para
solucionarlo, de este modo se garantiza que un llamado a
una direccin de
esclavo no existente puede ser detectada.

TRASMISION NO BALANCEADA (SINGLE ENDED, RS232) VS.


TRASMISION BALANCEADA (DIFERENCIAL, RS422/485)

Cuando se trasmite informacin digital en forma serial a


travs de cable, en modo punto a punto o multipunto, en
donde existe una computadora central conectada con varias
Unidades Terminales Remotas (UTR), es posible usar dos
modos de trasmisin: la trasmisin no balanceada o "single
ended" y la trasmisin balanceada o diferencial.
Ambos modos de operacin han sido estandarizados por la
Electronics Industry Association (EIA) en las normas EIARS232, EIA-RS422 y EIA-RS485.

RS232, TRASMISION BALANCEADA, SINGLE ENDED


Esta norma fue diseada para comunicacin punto a punto, en
donde se tiene una computadora (en la norma RS232 se le
denomina DTE, Data Terminal Equipment) que se encuentra
trasmitiendo hacia un equipo esclavo (en la norma conocido
como DCE, Data Communications Equipment) ubicado a
distancias no mayores a 15 metros (aunque en la prctica
alcanza distancias de hasta 50 metros) y a una velocidad
mxima de 19,200 bps. Este tipo de trasmisin se le conoce
como "single ended" porque usa en el cable un solo retorno
(GND). Es un modo de trasmisin muy simple, pero tambin
vulnerable al ruido aditivo en la lnea y por esa razn es
empleada para comunicacin a distancias cortas

El formato de trasmisin de datos en las seales TX y RX del


estndar RS232, se muestra en la figura de abajo. Se trata de
una seal serial bipolar, normalmente entre +10 y -10 volts, con
formato asncrono. En el ejemplo se trasmite el cdigo ASCII
de la "A" (01000001). Observe que sigue una lgica negativa,
con un nivel alto para el valor 0 lgico y un nivel bajo para el 1.
El circuito integrado estndar para generar esta seal es el
MAX232N.
En la lnea de tiempo, que va de izquierda a derecha, el bit
menos significativo LSB se trasmite primero y el bit ms
significativo MSB, al ltimo.

Para la conexin se utiliza un cable con conectores DB9, con


nueve seales, como el mostrado en las figuras. Adicionalmente
a la seales de datos trasmitidos y recibidos TX, RX, la norma
original RS232 incluye definiciones para seales de control (en
ingls "handshake signals") que se usan para varias funciones
auxiliares en el protocolo de envo y recepcin de datos, as
como para el dignstico de fallas.
Actualmente, el estndar se ha simplificado a las seales de
trasmisin TX, recepcin RX y tierra GND, dejando sin
utilizarse el resto de las seales. La aplicacin ms comn es la
comunicacin entre una computadora y una terminal remota.

CARACTERSTICAS
25 pines de seal.
Conector de DTE debe ser macho y el conector de
DCE hembra.
Los voltajes para un nivel lgico alto estn entre -3V y
-15V, y un nivel bajo +3V y +15V.
Los voltajes ms usados son +12V/-12V, +9V/9V
Dependiendo de la velocidad de transmisin
empleada, es posible tener cables de hasta 15
metros.
Velocidad: 300, 600, 1200, 2400, 4800 y 9600 bps

RS422/485, TRASMISION BALANCEADA, DIFERENCIAL.


Cuando se requieren mayores distancias y velocidades de
trasmisin, entonces deben de emplearse las normas RS422 y
RS485. Adems, estas normas permiten tambin la trasmisin
multipunto, es decir una computadora central conectada con
varias UTR. Dado que la computadora central tpicamente tiene
como salida la interfaz RS232, se hace necesaria la conexin de
un mdulo convertidor RS232 a RS422/485, para implementar
una red.

La trasmisin diferencial permite velocidades de hasta 10 Mbps,


sobre distancias de hasta 1.3 kms. Se usan dos seales para
trasmitir y dos para recibir, adems de la tierra, la cual es
normalmente conectada al blindaje del cable. En cada par,
viajan la seal de trasmisin y su complemento. En el receptor,
la seal original se obtiene restando una de la otra. Esta tcnica
reduce grandemente el ruido generado en la lnea, ya que ste se
induce por igual en ambas lneas del par y es al final cancelado.
Este tipo de trasmisin debe de hacerse siempre sobre cable del
tipo "par trensado" (twisted pairs).

RS422
RS422 usa 4 seales y puede emplearse para comunicacin
punto a punto o multipunto. En su aplicacin ms simple, una
computadora central se comunica con una UTR empleando un
protocolo master-slave, full dplex. La electrnica del
convertidor RS232-RS422 es muy simple porque solo se
emplean buffers trasmisores receptores del tipo 75176. Una
conexin tpica se muestra abajo. La computadora central se
comunica con un convertidor (K422) usando 5 de las seales de
la norma RS232. El convertidor se conecta al dispositivo
remoto 422 usando 4 seales y la tierra.

En algunas aplicaciones, la norma RS422 puede emplearse en


redes "mulipunto", es decir, una computadora central
comunicndose con varias UTR.

RS485
La diferencia principal entre RS422 y RS485 es el nmero de
seales usadas en el cable de trasmisin. RS422 usa 4 seales y
su tierra, RS485 usa solo 2 seales y su tierra. RS485 requiere
de un protocolo "half dplex" para operar, dado que las mismas
lneas son usadas tanto para trasmisin como recepcin.

Todos los dipositivos RS485 poseen drivers "tristate" que


permiten a las UTR desconectarse de la lnea una vez que
trasmitieron su informacin. Normalmente, para este fin se usa
un circuito temporizador automtico habilitado por el flanco
ascendente de la seal de trasmisin. El temporizador habilita el
circuito trasmisor durante el tiempo que dura el mensaje y lo
deshabilita al terminar ste.
Entre las aplicaciones tpicas de la norma RS485, se encuentran
los sistemas de control de acceso, los sistemas distribudos de
control industrial y los sistemas de seguridad casera. En todos
estos casos, varias UTR reportan su informacin hacia una
computadora central o bien reciben comandos de la misma.

CARACTERISTICAS
Velocidad mxima de 100Kbps hasta 1200m y de 10Mbps hasta
12m.
Seales de cmo mximo 6V y de cmo mnimo 200mV.
Amplificadores de triple estado, permiten interconectar hasta 64
dispositivos.
COMPARACIN
El uso de tensiones elevados de hasta 15V en RS-232 y de circuitos
no balanceados hace que sea ms susceptible al ruido.
En cambio en RS-485 se utilizan voltages de cmo mximo 6V y
circuitos balanceados por lo que se reduce el factor de ruido.
Con RS-485 se permiten conectar hasta 64 dispositivos.

HART
HART (TRANSDUCTOR REMOTO
DIRECCIONABLE DE ALTA VELOCIDAD)
ES UN PROTOCOLO DE COMUNICACIN
DISEADO PARA APLICACIONES DE
MEDICION Y CONTROL DE PROCESOS
INDUSTRIALES

PROTOCOLO HIBRIDO PORQUE COMBINA COMUNICACIN


ANALOGICA Y DIGITAL. PUEDE COMUNICAR UNA SOLA
VARIABLE USANDO UNA SEAL ANALOGICA DE 4-20 mA,
MIENTRAS COMUNICA INFORMACION AGREGADA SOBRE UNA
SEAL DIGITAL.

Você também pode gostar