You are on page 1of 11

1

Modbus

Introduccin
LAS COMUNICACIONES NECESITAN EL APOYO DE UN LENGUAJE COMN, QUE ES
EL PROTOCOLO DE COMUNICACIONES. EL SIGUIENTE CUADRO MUESTRA LOS
PROTOCOLOS MS COMNMENTE UTILIZADOS EN LOS DIFERENTES NIVELES DE
LAS REDES DE COMUNICACIONES INDUSTRIALES. POR EL MOMENTO, LOS
PROTOCOLOS DE BUS DE DISPOSITIVO MS POPULARES SON ETHERNET TCP /
IP, MODBUS-RTU, PROFIBUS-DP Y DEVICENET.
2

Modbus es una estructura de mensajera, un protocolo de comunicacin en


serie desarrollado por una empresa norteamericana Modicon (actualmente
Schneider Electric) publicado por Modicon en 1979 para su uso con sus
controladores lgicos programables (PLC). Situado en el nivel 7 del Modelo
OSI. Originalmente implementado como un protocolo al nivel de la
aplicacin con la finalidad de transferir datos por una capa serial, Modbus
se ha expandido para incluir implementaciones a travs de protocolo serial,
TCP/IP y el User Datagram Protocol (UDP).

Basado en la arquitectura maestro/esclavo (cliente/servidor), para la


comunicacin entre dispositivos inteligentes (de automatizacin y control).
Siendo el maestro (cliente) quien controla en todo momento las
comunicaciones con los esclavos que pueden ser hasta 247 (@1d a @247d).
Los esclavos (servidores) se limitan a retornar los datos solicitados o a ejecutar
la accin indicada por el maestro.
Convertido en un protocolo de comunicaciones estndar de facto en la
industria, es el que goza de mayor disponibilidad para la conexin de
dispositivos electrnicos industriales. Las razones por las cuales el uso de
Modbus es superior a otros protocolos de comunicaciones son:
Es pblico
Su implementacin es fcil y requiere poco desarrollo
Maneja bloques de datos sin suponer restricciones

1
Ambar Lorenzo, Luis Caicedo

Modbus permite el control de una red de dispositivos, por ejemplo un sistema


de medida de temperatura y humedad, y comunicar los resultados a un
ordenador. Modbus es usado generalmente para comunicacin en red tipo
SCADA entre dispositivos. Por ejemplo, un servidor grande puede ser usado
para manejar un controlador lgico programable (PLC) o un controlador de
automatizacin programable (PAC), y el PLC o PAC puede a su vez manejar un
sensor, vlvula, motor o cualquier otro dispositivo embebido. Tambin se usa
para la conexin de un ordenador de supervisin con una unidad remota (RTU)
en sistemas de supervisin adquisicin de datos (SCADA). Existen versiones del
protocolo Modbus para puerto serie y Ethernet (Modbus/TCP). A parte de que
muchos fabricantes utilizan este protocolo en sus dispositivos, existen tambin
versiones con pequeas modificaciones o adaptadas para otros entornos (como
p.ej JBUS o MODBUS II )
3

Descripcin

Cada dispositivo de la red Modbus posee una direccin nica. Cualquier


dispositivo puede enviar rdenes Modbus, aunque lo habitual es permitirlo slo
a un dispositivo maestro. Cada comando Modbus contiene la direccin del
dispositivo destinatario de la orden. Todos los dispositivos reciben la trama pero
slo el destinatario la ejecuta (salvo un modo especial denominado
"Broadcast"). Cada uno de los mensajes incluye informacin redundante que
asegura su integridad en la recepcin. Los comandos bsicos Modbus permiten
controlar un dispositivo RTU para modificar el valor de alguno de sus registros o
bien solicitar el contenido de dichos registros.
La transferencia de datos se organiz en trminos de registros de 16 bits
(formato entero) o como informacin de estado en trminos de bytes de datos.
Con los aos el protocolo ha sido extendido y ha sido adoptado por otros
fabricantes. Se han aadido nuevos tipos de datos, en especial para lograr una
resolucin ms alta para los valores que se transmiten. Se aprob el protocolo
para transferencia de los nuevos medios, dialectos como Modbus Plus o
Modbus/TCP aprarecieron.
Para cumplir estas necesidades, Modbus fue diseado como un protocolo de
solicitud y respuesta con un modelo flexible de datos y funciones;
caractersticas que son parte de la razn por la que hoy en da an sigue en
uso.
4

Ciclo Solicitud Respuesta:

2
Ambar Lorenzo, Luis Caicedo

El protocolo Modbus sigue una arquitectura de maestro y esclavo, en la que un


maestro (un solo dispositivo) puede iniciar una transaccin (transmite una
solicitud llamadas, consultas) a un esclavo (cualquier dispositivo perifrico:
Transductor I/O, vlvulas, unidad de red, u otro dispositivo de medicin) y
espera la respuesta. El maestro tambin puede pedir al esclavo que realice
alguna accin. Esta arquitectura brinda al maestro control completo sobre el
flujo de informacin, lo cual tiene beneficios en redes seriales multipunto ms
viejas. An en redes TCP/IP modernas, le da al maestro un alto grado de control
en el comportamiento del esclavo, lo cual es til en algunos diseos.
La comunicacin del maestro hacia los esclavos puede ser de dos tipos:
1.
peer to peer: en que se establece comunicacin maestro - esclavo ,
el maestro solicita informacin y el esclavo responde ( se enva el comando a
un dispositivo comprendido entre las direcciones 1d i 247d ).
2.
-broadcast: en que se establece comunicacin maestro - todos los
esclavos, el maestro enva un comando a todos los esclavos de la red sin
esperar respuesta ( se enva a la direccin @0d ).
El maestro inicia un proceso mediante l envi de un cdigo de funcin que
representa el tipo de transaccin a realizar. La operacin realizada por el
protocolo Modbus define el proceso que un controlador utiliza para solicitar el
acceso a otros dispositivo, como responder a las peticiones de otros
dispositivos, y como sern detectadas y reportados los errores. El protocolo
Modbus establece un modelo comn para la disposicin y contenido de los
campos del mensaje.
Los maestros pueden dirigirse a esclavos individualmente o pueden iniciar un
mensaje de difusin a todos los esclavos. Los esclavos devuelven una
respuesta a todas las consultas que se les haga de forma individual, pero no
responden a pedidos de difusin.
Los dispositivos maestros tpicos incluyen procesadores de Host y paneles de
programacin. Los esclavos tpicos incluyen controladores programables.
Como se puede ver, la secuencia bsica en las comunicaciones MODBUS
consiste siempre en una trama de pregunta, seguida de su correspondiente
trama de respuesta:
- Pregunta: con el cdigo de funcin que indica al esclavo que operacin ha de
realizar, y los bytes necesarios (datos, comprobacin) para su ejecucin.
- Respuesta: con la confirmacin o datos resultantes de la ejecucin de la
funcin.

3
Ambar Lorenzo, Luis Caicedo

Existe algn caso concreto, en que hay ms de una trama de respuesta para
una trama de pregunta, como p.ej. cuando el maestro enva una operacin
cuya respuesta puede llevar al esclavo un tiempo elaborar. En estas
situaciones el esclavo enva una primera respuesta indicando que an no tiene
los datos y tardar un tiempo en disponer de ellos, y otra segunda con los
datos o confirmacin de la operacin.
Adems las comunicaciones MODBUS se pueden realizar en modo ASCII o en
modo RTU. En modo ASCII los bytes se envan codificados en ASCII, es decir,
que por cada byte a transmitir se envian dos caracteres ASCII ( 2 bytes ) con su
representacin hexadecimal ( esto permite leer las tramas con un simple editor
de texto ). En modo RTU se envan en binario, tal cual. En el modo ASCII las
tramas comienzan por 3AH (carcter ':'), y terminan en 0DH-0AH (CR LF Carrier
Return Line Feed) y cada byte se enva como dos caracteres ASCII. En modo
RTU no se utiliza indicador de inicio y final de trama.
5

El Modelo de Datos de Modbus

Modbus administra el acceso de los datos de manera simple y flexible.


Originalmente, Modbus soporta dos tipos de datos: un valor Booleano y un
entero sin signo de 16 bits.
En los sistemas SCADA, es comn para los dispositivos embebidos tener ciertos
valores definidos como entradas, como ganancias o parmetros PID, mientras
que otros valores son salidas, como la temperatura actual o posicin de la
vlvula. Para cumplir con esta necesidad, los valores de los datos Modbus son
divididos en cuatro rangos (ver la Tabla 1). Un esclavo puede definirse como
65,536 elementos en cada rango.
Bloque de Memoria

Tipo de Datos

Acceso de Maestro

Acceso
Esclavo

de

Bobinas

Booleano

Lectura/Escritura

Lectura/Escritura

Entradas Discretas

Booleano

Solo Lectura

Lectura/Escritura

Registros
Retencin

de Palabra Sin Signo

Lectura/Escritura

Lectura/Escritura

Registros
Entrada

de Palabra Sin Signo

Solo Lectura

Lectura/Escritura

4
Ambar Lorenzo, Luis Caicedo

En muchos casos, los sensores y otros dispositivos generan datos en tipos


diferentes a Booleanos simples y enteros sin signo. Es comn para los
dispositivos esclavos convertir estos tipos de datos ms grandes a registros.
Por ejemplo, un sensor de presin puede dividir un valor de punto flotante de
32 bits entre dos registros de 16 bits.
6

VELOCIDAD DE TRANSMISIN

Finalmente debemos tener en cuenta la velocidad a la que se envan lo bits


serialmente, es de suma importancia, ambos dispositivos deben estar a la
misma velocidad para transmitir y recibir bits, si no lo estn, simplemente la
transmisin serial no sera correcta.
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. Por ejemplo la tarjeta de relevadores usa una velocidad de 9600 bauds
para enviar la informacin.
7

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.
8

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.

5
Ambar Lorenzo, Luis Caicedo

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).
9

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.
10 Modo de transmisin
10.1 Modo ASCII (American Standard Code for Information Interchange)
Descripcin:
La carta de Cdigo ASCII 1968 de los
EE.UU. fue estructurada con dos columnas
de caracteres de control, una columna con
caracteres especiales, una columna con
nmeros, y cuatro columnas de letras.
Ilustracin 1

Ilustracin 1

6
Ambar Lorenzo, Luis Caicedo

Modbus ASCII es una representacin legible del


protocolo pero menos eficiente. El formato ASCII
utiliza una suma de control de redundancia
longitudinal (LRC) para el sistema de deteccin
de errores. Ilustracin 2

Ilustracin 2

Transmisin de la letra A

Ilustracin 3

10.1.1

Verificacin de error

Utiliza el mtodo de control de redundancia


longitudinal (LRC): La verificacin de la
redundancia
longitudinal
(LRC,
tambin
denominada
verificacin
de
redundancia
horizontal) no consiste en verificar la integridad
de los datos mediante la representacin de un
carcter individual, sino en verificar la integridad
del bit de paridad de un grupo de caracteres.

Ilustracin 4

En la verificacin de (LRC), los bloques de bits se organizan en forma de tabla


(filas y columnas). Por ejemplo, en lugar de enviar un bloque de bits, se
organizan en una tabla de cuatro filas y ocho columnas, como se muestra en la
Ilustracin 4.

Cuando el receptor comprueba el LRC, algunos de los bits no siguen la regla de


paridad par y se descarta todo el bloque.

7
Ambar Lorenzo, Luis Caicedo

10.2 Modo RTU (Remote Terminal Unit)


Modbus RTU es una representacin binaria
compacta de los datos. El formato RTU finaliza la
trama con una suma de control de redundancia
cclica (CRC). Ilustracin 5

10.2.1

Ilustracin 5

Verificacin de error

Utiliza el mtodo de redundancia


cclica (CRC): La verificacin de
redundancia cclica (abreviado, CRC) es
un mtodo de control de integridad de
datos de fcil implementacin. Es el
principal mtodo de deteccin de
errores
utilizado
en
las
telecomunicaciones.
El CRC es la tcnica de verificacin ms
potente. Se basa en la divisin binaria.
Ilustracin 6
Con la CRC, se aaden una secuencia de bits redundantes, denominados CRC o
residuo CRC, al final de la unidad de datos de forma que los datos resultantes
sean divisibles exactamente por un nmero binario predeterminado. Como se
muestra en la Ilustracin 6.
En el destino, la unidad de datos que se recibe es dividida por este mismo
nmero. Si en este paso no hay residuo, se asume que la unidad de datos es
intacta y se acepta. La existencia de un residuo indica que la unidad de datos
ha sufrido daos durante el trnsito y que debe ser rechazada.

11Formato general de las tramas:

Ilustracin 7
Ilustracin 8

8
Ambar Lorenzo, Luis Caicedo

Para sincronizar la trama, los dispositivos receptores monitorizan el intervalo


de tiempo transcurrido entre caracteres recibidos. Si se detecta un intervalo
mayor que tres veces y medio el tiempo necesario para transmitir un carcter,
el dispositivo receptor ignora la trama y asume que el siguiente carcter que
recibir ser una direccin.
Explicacin partes de la trama en Modbus:

Ilustracin 9

11.1 Direccin
El campo direccin es el primero de la trama despus del tiempo de
sincronizacin. Indica el dispositivo al que va dirigido el mensaje. Cada
dispositivo de la red debe tener asignada una direccin nica, diferente de
cero.

11.2 Funcin
El campo funcin indica al dispositivo direccionado qu tipo de funcin ha de
Realizar.

11.2.1

Leer N bits

Esta funcin permite al usuario obtener los valores lgicos (ON/OFF) de los bits
del dispositivo direccionado. Los datos de respuesta van empaquetados en
bytes de manera que el primer bit solicitado ocupa el bit de menos peso del
primer byte de datos. Los siguientes van a continuacin de manera que si no
son un nmero mltiplo de 8, el ltimo byte se completa con ceros.

Ilustracin 10

11.2.2

Leer N Registros

Esta funcin permite al usuario obtener los valores de los registros del
dispositivo direccionado. Estos registros almacenan los valores numricos de
los parmetros y variables del controlador. El rango de los datos vara de 0 a
65536. Los datos correspondientes a direcciones de registros que pasan de la
ltima direccin vlida de parmetros se asignan a cero (00 00).

9
Ambar Lorenzo, Luis Caicedo

Ilustracin 11

11.2.3

Funcin para escribir 1 bit

Esta funcin permite al usuario escribir los valores lgicos (ON/OFF) de los bits
del dispositivo direccionado. Para desactivar el bit se debe enviar 00h, y para
activarlo se debe enviar 01h o FFh. ste valor se debe escribir en el byte ms
significativo.

Ilustracin 12

11.2.4

Funcin para escribir un registro

Esta funcin permite al usuario modificar el contenido de los parmetros del


dispositivo direccionado. Los valores se envan escalados segn el factor de
escala correspondiente a cada parmetro, en un rango entre 0000h y FFFFh.

Ilustracin 13

11.3 Datos
El campo datos contiene la informacin necesaria para que los dispositivos
puedan ejecutar las funciones solicitadas, o la informacin enviada por los
dispositivos al master como respuesta a una funcin.

Ilustracin 14

10
Ambar Lorenzo, Luis Caicedo

11.4 Cdigo de error (Control de errores)


Comnmente, los errores que aparecen durante las operaciones de acceso y
programacin de dispositivos tienen relacin con datos no vlidos en la trama.
El campo de control de errores es el ltimo de la trama y permite al master y a
los dispositivos detectar errores de transmisin. Ocasionalmente, debido a
ruido elctrico o a interferencias de otra naturaleza, se puede producir alguna
modificacin en el mensaje mientras se est transmitiendo. El control de
errores asegura que los dispositivos receptores o el master no efectuarn
acciones incorrectas debido a una modificacin accidental del mensaje. El
formato RTU utiliza el control de redundancia cclica (CRC), mientras que el
ASCII utiliza el control de redundancia longitudinal (CRL) para finalizar la trama
de comunicacin.

Ilustracin 15

11
Ambar Lorenzo, Luis Caicedo

You might also like