1
Tarea #5 Modbus
Andrés Fabián Cabrera Carpio, [email protected]
Universidad Politécnica Salesiana
Comunicaciones industriales
Abstract—En este documento se encuentra información acerca • Era un código totalmente abierto.
del protocolo industrial Modbus, utilizado para establecer co- • Fácil y rápido de implementar.
municaciones entre dispositivos de automatización. Existen tres • Intercambio sencillo de información entre equipos. [1]
versiones, de las cuales aquí se indicarán dos, Modbus ASCII y
Modbus TCP/IP. Los puntos que se abordarán serán, su origen,
su método de trama de datos, las funciones que soportan, las
normas que la rigen, los medios físicos de transmisión, y por
II. M ODBUS ASCII
último se indicará un ejemplo de un equipo comercial con esta Proviene de las siglas de inglés American Satandard Code
comunicación.
for Information Interchange.
Index Terms—Modbus, ASCII, TCP/IP, origen, trama, datos,
normas.
A. Trama de datos
I. O RÍGENES Modbus ASCII utiliza el conjunto de caracteres ASCII para
Hasta los años 60, la automatización se llevaba a cabo me- representar caracteres hexadecimales que contienen cada uno
diante lógica cableada a base de relés mecánicos. Gracias a la 4 bits de datos. Hay 10 bits en cada byte en modo Modbus
electrónica se hizo posible la implantación de los dispositivos ASCII. Los cuales constan de:
con microprocesador, también llamados PLCs • 1 bit de inicio.
La historia del protocolo Modbus va de la mano con la • 7 bits de datos con el bit menos significativo enviado
historia de los PLCs. Un PLC lograba eliminar costos de primero.
mantenimiento de un sistema electromecánico a finales de los • 1 bit para completar la paridad.
años 60. [1] • 1 bit de parada. [3]
El formato de los mensajes ASCII de Modbus consiste en
un carácter de inicio que tiene dos puntos ":" y el final del
mensaje se define mediante un retorno de carro y un salto de
línea. [3]
Cada “byte de dato” es dividido en dos bytes, representando
los dos caracteres ASCII en el valor hexadecimal. [4]
Figure 1. Modicon 084. [2]
Figure 2. Ejemplo de “Split data bytes” [4].
La empresa Bedford Associates (Bedford, MA) propuso
a General Motors un sistema que permitía realizar cambios El rango de bytes de datos en Modbus ASCII representa
en las maniobras de un equipo de control sin necesidad de solo los 16 caracteres hexadecimales. Por lo tanto, cada byte
modificar el cableado. A este sistema le dió el nombre de: de datos en Modbus ASCII debe ser uno de estos:
Modular Digital Controller, o MODICON. El MODICON 084
fue el primer PLC producido comercialmente.
La posibilidad de comunicar equipos apareció por el año
1973. El primer sistema que lo hizo servir fué Modbus
de Modicon. Permitía establecer comunicaciones Maestro-
Esclavo y Cliente-Servidor entre dispositivos inteligentes y con
dispositivos de campo (Transmitir señales digitales, analógi-
cas, registros e información de estado entre ellos).
Debido a las dificultades que siempre dan los sistemas con
un propietario fijo, en 1979, Modicon publicó de forma abierta
y estandarizó su protocolo. El código se hizo famoso gracias
a que: Figure 3. Rango de datos en Modbus ASCII. [4]
2
B. Funciones soportadas
Las funciones básicas disponibles en el protocolo Modbus
con sus correspondientes códigos de operación son las sigu-
ientes:
Table I
F UNCIONES BÁSICAS Y CÓDIGOS DE OPERACIÓN MODBUS. [5]
Figure 5. Medio de comunicación RS-485. [6]
E. Equipo comercial
Modbus HD67075-A1
Modbus RTU / Modbus ASCII - Converter [7]
C. Norma
En modo ASCII los mensajes comienzan con el caracter Figure 6. HD67075-A1 [7]
dos puntos ( : , ASCII 3A hex. ), y terminan con de CR/LF
(retorno de carro/ avance de línea), (ASCII 0D y 0A hex. re- Table II
spectivamente) que delimitan en inicio y el final de cada trama. E SPECIFICACIONES
Todos los dispositivos en red monitorizan el bus continuamente
para detectar caracteres ASCII válidos, y una vez detectado
el caracter dos puntos sabrán que alguno de los dispositivos
ha empezado la transmisión de un mensaje y deberán estar
presto para analizar el siguiente campo que corresponde a
la dirección para determinar el destino del mensaje. Si esta
dirección corresponde con la de algún esclavo, éste deberá
iniciar la captura de la trama y posteriormente ejecutar la
acción solicitada. [5]
F. Ejemplo de transmisión
Teniendo presente la descripción de cada uno de los campos
que debe contener una trama Modbus, en la figura 7 se muestra
la trama correspondiente a un mensaje utilizando el modo de
transmisión ASCII:
Figure 4. Orden de bits modo de transmisión ASCII. [5]
Figure 7. Trama en el modo de transmisión ASCII. [5]
D. Medios físicos de transmisión 1) Leer estados de bobinas (01H): Esta función permite al
maestro indagar por el estado de las salidas discretas de un
El medio físico de conexión puede ser un bus semidúplex dispositivo remoto. En la figura 8 se muestra un mensaje donde
(half duplex) (RS-485 o fibra óptica) o dúplex (full duplex) se le pide al esclavo 17 que envíe el estado de las bobinas de
(RS-422, BC 0-20mA o fibra óptica). la 20 a la 56.
3
4) Unit Identifier: Identificación del esclavo (En caso de
pasar a redes Modbus RTU).
Entonces la configuración inicial básica que debe realizar
un usuario cuando usa Modbus TCP es asignar la dirección
IP del equipo y adicional la dirección del esclavo con el que
se va a a comunicar.
Figure 8. Read Coil Status. [5] Es habitual que en la configuración de Modbus TCP se siga
asignando el ID del esclavo (número entero normalmente entre
1 y 255).
III. M ODBUS TCP/IP
El Modbus TCP/IP es simplemente el protocolo RTU con B. Funciones soportadas
una interfaz TCP, la cual trabaja en Ethernet.
Los registros Modbus de un dispositivo están organizados en
torno a los cuatro tipos de referencia de datos básicos (entradas
discretas, salidas discretas, datos de entrada, datos de salida) y
A. Trama de datos
este tipo de datos se identifica aún más por el número principal
Es similar a los anteriores protocolos, pero ahora el maestro de la dirección de referencia de la siguiente manera: [9]
se cambia de nombre por clientes y los esclavos por servidores.
[8] Table IV
Se ha definido una estructura genérica para la trama del F UNCIONES M ODBUS . [9]
protocolo conocida como PDU (Simple Protocolo Data Unit)
que permite independizar todo de las capas inferiores.
Figure 9. Estructura general de la trama de MODBUS. [8]
En el caso de MODBUS sobre TCP/IP se encapsula la PDU
en una red TCP/IP como lo muestra el siguiente esquema de
la trama.
La "x" que sigue al carácter principal representa una ubi-
cación de dirección de cuatro dígitos en la memoria de datos
del usuario.
El carácter inicial generalmente está implícito en el código
de función y se omite en el especificador de dirección para una
función determinada. El carácter inicial también identifica el
tipo de datos de E / S. [9]
Figure 10. PDU sobre TCP/IP. [8]
Table V
F UNCIONES Y REFERENCIAS M ODBUS TCP/IP. [9]
Al encapsularse sobre TCP/IP aparece en la trama un
campo nuevo MBAP Header (MODBUS Aplication Protocolo
header). El header tiene un tamaño de 7 bytes con el siguiente
contenido:
Table III
C ONTENIDO DE MBAP H EADER
1) Transaction Identifier: Identificación de una petición o C. Norma
respuesta de Modbus. Las ADUs de TCP consisten en el Encabezado de Protocolo
2) Protocolo Indentifier: Es igual a 0 (cero) para el proto- de Aplicación Modbus (MBAP) combinado con la PDU de
colo Modbus. Modbus. El MBAP es un encabezado de uso general que
3) Length: Número de Bytes. depende de una capa de red confiable. El formato de esta
4
ADU, incluyendo el encabezado, se muestra en la Figura 11. Los controladores básicos SIMATIC S7-1200 son la opción
[10] ideal cuando se trata de realizar tareas de automatización de
manera flexible y eficiente en el rango de rendimiento inferior
a medio. Cuentan con una amplia gama de funciones tec-
nológicas e IO integradas, así como un diseño especialmente
compacto y que ahorra espacio. [12]
Figure 11. La ADU de TCP/IP. [10]
El SIMATIC S7-1200 está equipado con diferents mecan-
Los campos de datos del encabezado indican su uso. ismos de comunicación:
Primero, incluye un identificador de transacción. Esto es • Interfaz integral PROFINET.
valioso en una red en la que se pueden soportar múltiples • Conexión punto a punto mediante modulos de comuni-
solicitudes simultáneamente. Es decir, un maestro puede enviar cación.
solicitudes 1, 2, y 3. En algún punto, un esclavo puede
responder en el orden 2, 1, 3, y el maestro puede igualar La interfaz integral PROFINET permite comunicación con:
las solicitudes con las respuestas y analizar los datos con
• Dispositivos de programación.
precisión. Esto es útil para redes Ethernet. [10]
• Dispositivos HMI.
El identificador de protocolo es normalmente cero. El campo
de longitud es usado por el protocolo para delinear la longitud Soporta los siguientes protocolos:
del resto del paquete. La ubicación de este elemento también
indica la dependencia de este formato encabezado en una capa • TCP/IP.
de red confiable. Debido a que los paquetes TCP tienen veri- • ISO-on-TCP.
ficación de errores integrada y garantizan la coherencia de los • S7 communication
datos y la entrega, la longitud del paquete puede ser ubicado Los módulos de comunicación permiten la comunicación a
en cualquier parte del encabezado. En una red inherentemente través de conexiones punto a punto. Se utilizan los medios
menos confiable como una red serial, un paquete podría de transmisión físicos RS232 y RS485. La transmisión de
perderse, teniendo el efecto de que incluso si la escritura datos se realiza en el modo "Freeport" de la CPU. Se utiliza
de datos leída por la aplicación incluía información válida un protocolo de comunicación orientado a bits específico del
de transacción y del protocolo, la información de longitud usuario (por ejemplo, protocolo ASCII, USS o MODBUS).
alterada volvería inválido al encabezado. TCP proporciona una
cantidad razonable de protección contra esta situación. [10]
D. Medios físicos de transmisión
En Modbus TCP en la capa física se estandariza con la
norma EIA/TIA 568, que define entre otros aspectos el código
de colores del cable, se emplea un conector RJ45 que inter-
conecta 8 señales, en donde 4 son dedicadas exclusivamente
a la transmisión y recepción de datos (TX+, TX-, RX+, RX-).
Es posible conectar un PLC que soporta Modbus RTU
en el hardware y conexiones de computadores tradicionales,
pero sólo podrán intercambiar información bajo el protocolo
aquellos equipos que tengan implementado Modbus TCP, es
decir, un cliente y un servidor. [8]
E. Equipo comercial
PLC S7 1200
Figure 12. Siemens S7 1200. [11] Figure 13. Especificaciones técnicas S7 1200. [13]
5
IV. B IBLIOGRAFÍA
[1]https://aquiro.weebly.com/modbus.html
[2]https://blog.se.com/br/ecostruxure/2018/11/30/modicon-
50-anos-de-pioneirismo-e-inovacoes/
[3]https://www.eltima.com/es/article/advanced-modbus-
ascii-guide/#data
[4http://www.simplymodbus.ca/ASCII.htm
[5]https://www.academia.edu/25543724/DIRRECCIONAMIENTO_DE_
[6]https://www.logicbus.com.mx/Modbus.php
[7]https://www.adfweb.com/Home/products/details.asp?tid=HD67075-
A1
[8]https://www.eeymuc.co/31-protocolo-
modbus/#t%C3%ADtulo7
[9]https://www.prosoft-technology.com/kb/assets/intro_modbustcp.pdf
[10]https://www.ni.com/es-cr/innovations/white-
papers/14/the-modbus-protocol-in-depth.html
Figure 14. Especificaciones técnicas generales. [13] [11]https://masvoltaje.com/simatic-s7-1200/1202-
simatic-s7-1200-cpu-1215c-cpu-compacta-ac-dc-rele-
6940408101289.html?content_only=1
[12]https://new.siemens.com/global/en/products/automation/systems/indu
1200.html
[13]https://www.paratrasnet.ro/pdf/automatizari-
industriale/S7-1200.pdf
[14]
Figure 15. Esécificaciones técnicas. [13]
F. Ejemplo de transmisión
Este ejemplo lee el estado del canal de salida de las bobinas
0-3.
Table VI
E JEMPLO DE M ODBUS R EQUEST ADU. [14]