0% encontró este documento útil (0 votos)
18 vistas8 páginas

Modbus M9T7

El documento describe el protocolo Modbus, un sistema de comunicación industrial que permite la transmisión de datos entre dispositivos electrónicos en una estructura maestro-esclavo. Se detallan sus características, modos de transmisión (RTU y ASCII), y su implementación sobre diferentes medios físicos como RS232 y Ethernet. Además, se menciona la estructura de los mensajes y el uso de códigos de operación para la interacción entre nodos.

Cargado por

Malignvs
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
18 vistas8 páginas

Modbus M9T7

El documento describe el protocolo Modbus, un sistema de comunicación industrial que permite la transmisión de datos entre dispositivos electrónicos en una estructura maestro-esclavo. Se detallan sus características, modos de transmisión (RTU y ASCII), y su implementación sobre diferentes medios físicos como RS232 y Ethernet. Además, se menciona la estructura de los mensajes y el uso de códigos de operación para la interacción entre nodos.

Cargado por

Malignvs
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Modbus

Comunicaciones industriales
CONTENIDO
1. Objetivos

2. Medio físico

3. Acceso al medio

4. Modos de transmisión serie

5. Protocolo

6. Modbus TCP

7. Bibliografía
Modbus | 3

Objetivos La interfaz de comunicación de Modbus se construye


alrededor de los mensajes, cuyo formato es
• Reconocer las características del medio físico del independiente del tipo de interfaz física utilizada. Esta red
protocolo Modbus. de comunicación industrial usa los protocolos RS232/
RS485/RS422. Su simplicidad y la fácil incorporación
• Describir cómo se implementa el acceso al medio
de los fabricantes en sus productos sin cargo alguno, lo
del protocolo Modbus.
han convertido en el método más popular de conexión
• Identificar los modos de transmisión serie protocolo de dispositivos electrónicos industriales [1].
Modbus.
• Comprender en qué consiste el protocolo Modbus. En consecuencia, le da a la definición de la interfaz una
vida más larga. Por lo que, se puede utilizar el mismo
• Analizar las características de Modbus TCP.
protocolo independientemente del tipo de conexión.
Debido a esto, se da la posibilidad de actualizar fácilmente
Medio físico la estructura del hardware de una red industrial, sin
necesidad de grandes cambios en el software.
Modbus es un protocolo de comunicación abierto
utilizado para transmitir información a través de redes Un dispositivo puede comunicarse con varios nodos
en serie entre dispositivos electrónicos. Es un protocolo Modbus a la vez, incluso si están conectados con
de solicitud-respuesta que se implementa utilizando diferentes tipos de interfaz, sin necesidad de utilizar un
una relación maestro-esclavo. En una relación maestro- protocolo diferente para cada conexión.
esclavo, como se observa en la figura 1, un dispositivo
debe iniciar una solicitud y luego esperar una respuesta.
El dispositivo de inicio (el maestro) es responsable de Acceso al medio
iniciar cada interacción. Por lo general, el maestro es una
interfaz humano-máquina (HMI) o sistema supervisory El protocolo de la capa de enlace de datos (capa 2)
control and data acquisition (SCADA) y el esclavo es se basa en el protocolo multipunto de la norma ISO/
un sensor, controlador lógico programable (PLC) o IEC 3309:1991 high-level data link control (HDLC). Este
controlador de automatización programable (PAC). utiliza un mecanismo para el control de acceso con
El contenido de estas solicitudes y respuestas, y las paso controlado por señales, transmitiendo los datos
capas de la red a través de las cuales se envían estos de forma sincronizada, a diferencia de la transmisión
mensajes, son definidas por las diferentes capas del asíncrona de Modbus Serial [1]. Esto da como resultado la
protocolo [1,2]. transmisión de datos a 1 Mbps.

La estructura lógica es del tipo maestro-esclavo. El


número máximo de estaciones previsto es de 63
esclavos más una estación maestra. Cuando se utilizan
sistemas de red versátiles como TCP/IP por Ethernet,
los mensajes se incorporan en paquetes con el formato
necesario para la interfaz física. En el caso de Modbus y
otros tipos de conexiones, pueden coexistir en la misma
interfaz física al mismo tiempo [2].
Figura 1. Relación maestro-esclavo en Modbus.
Aunque la estructura principal de los mensajes es de
par a par, en Modbus el intercambio de mensajes puede
Con este protocolo, un dispositivo esclavo no puede ser de dos tipos [1]:
ofrecer información, sino que debe esperar a que le sea
solicitada. El maestro escribirá y leerá los datos en los • Intercambios punto a punto: que comportan
registros de un dispositivo esclavo. En una red Modbus siempre dos mensajes: una demanda del maestro
estándar, hay un maestro y hasta 247 esclavos, cada uno y una respuesta del esclavo.
con una dirección de esclavo única de 1 a 247. • Mensajes difundidos: estos consisten en una
comunicación unidireccional del maestro a todos
El medio físico de conexión puede ser un bus semidúplex
los esclavos. Este tipo de mensajes no tiene
(half duplex) o dúplex (full duplex) (RS-232, RS-422,
respuesta por parte de los esclavos y se suelen
RS-485, BC 0-20 mA o fibra óptica).
emplear para mandar datos comunes de
La comunicación es asíncrona y las velocidades de configuración, reset, etc.
transmisión previstas van desde los 75 baudios a
Cada mensaje presenta la misma estructura de cuatro
19 200 baudios. La máxima distancia entre estaciones
elementos básicos. Del mismo modo, la secuencia de
depende del nivel físico, pudiendo alcanzar hasta 1200 m
estos elementos es la misma para todos los mensajes
sin repetidores.
para facilitar el análisis del contenido del mensaje.
Modbus | 4

Una conversación siempre es iniciada por un maestro • A nivel físico posibilita la transmisión sobre diversos
y mientras este envía un mensaje y, dependiendo del estándares.
contenido del mensaje, un esclavo actúa y le responde. • Los dispositivos Modbus serie debe admitir al
Además, puede haber más maestros en una red menos las tasas de transmisión de 9,6 y 19,2 kbps,
de este protocolo de comunicación. Finalmente, el aunque se pueden implementar otras velocidades
direccionamiento en el encabezamiento del mensaje se soportadas por el estándar de comunicaciones
utiliza para definir qué dispositivo debe responder a un serie empleado.
mensaje. En el caso de que el campo de dirección no
• La distancia máxima también vendrá fijada por
coincida con su propia dirección, todos los nodos de la
dicho estándar.
red Modbus ignoran el mensaje.
El protocolo maestro/esclavo se basa en un nodo
En Modbus, las comunicaciones de datos son
maestro que envía comandos dirigidos a los nodos
tradicionalmente sin estado, lo que las hace muy
esclavos y procesa respuestas procedentes de estos.
resistentes a las interferencias del ruido. Sin embargo,
Los nodos esclavos no se comunican entre ellos y no
requieren que se mantenga una mínima información de
transmiten datos, salvo que estos hayan sido solicitados
recuperación en ambos sentidos [1].
por el maestro. El máster solo inicia una transacción
Por otra parte, las operaciones de programación una vez que la transacción anterior ha finalizado.
requieren un sistema orientado a la conexión. Esto se Solo se permite la existencia de un único máster
logra en las variantes más simples mediante un token simultáneamente en la red [4].
de ‘conexión’ exclusivo, y en la variante Modbus Plus
Existen dos tipos de transacciones posibles:
mediante capacidades explícitas de ‘’ruta de programa’’
que mantienen una conexión dúplex hasta que se 1. Unicast: consta de una petición originada por el
desglosa automáticamente. nodo maestro dirigida a un único esclavo y una
respuesta originada por dicho esclavo destinado al
Modos de transmisión serie máster.
2. Broadcast: consta de un único mensaje originado
El protocolo Modbus Serial Line Protocol es una por el nodo maestro dirigido a todos los esclavos
implementación del protocolo de aplicación Modbus (dirección destino 0). El mensaje consiste en un
sobre un enlace serie. El Modbus serial con RS232 comando de escritura que todos los esclavos
o RS485 como capas físicas facilita la conexión de deben aceptar la función de difusión para la
dispositivos Modbus al controlador (como un PLC) en escritura.
una estructura de bus [2].
La función de cliente del nivel de aplicación Modbus es
Una comunicación Modbus es siempre iniciada por proporcionada por el nodo maestro, mientras que los
el maestro. Los nodos esclavos nunca transmitirán esclavos actúan como servidores.
datos sin recibir una petición del nodo maestro. Los
nodos esclavos nunca se comunicarán entre sí. El nodo La subcapa de modo de transmisión define la manera
maestro solo inicia una transacción Modbus al mismo en la que la información se empaqueta en los campos
tiempo. Esto permite la comunicación entre un maestro del mensaje y cómo los bits transmitidos se interpretan.
y varios esclavos, hasta 247, con una velocidad de Todos los dispositivos conectados al mismo bus serie
transmisión de datos de 19,2 kbits/s [1]. Además, es Modbus deben emplear el mismo modo de transmisión
importante resaltar lo siguiente: [1, 4]. Se distinguen los modos RTU y ASCII (figura 2).

• Soporta redes de hasta 248 nodos, en topología de


bus con derivaciones.

Modo RTU Modo ASCII


• Cada byte de 8 bits de un mensaje contiene dos caracteres • Cada byte de 8 bits de un mensaje se envía como dos
hexadecimales de 4 bits. caracteres ASCII.
• Su mayor densidad de caracteres permite un mejor • Cada carácter hexadecimal se codifica en ASCII antes de
rendimiento de datos que el modo ASCII para la misma ser transmitido.
velocidad de transmisión. • Este modo se utiliza cuando el enlace físico de comunicación
• Cada mensaje debe transmitirse en un flujo continuo de o las capacidades del dispositivo no permiten cumplir con
caracteres. los requisitos del modo RTU en lo que respecta a la gestión
• Lo implementan todos los dispositivos Modbus del de los temporizadores.
mercado. • El modo ASCII es opcional, aunque necesario para ciertas
aplicaciones específicas.
• Es menos eficiente que RTU ya que cada byte necesita
dos caracteres.

Figura 2. Modos de transmisión Modbus


Modbus | 5

El modo RTU incluye un campo de comprobación de En la implementación inicial, Modbus era un solo
errores que se basa en un método de comprobación de protocolo construido en base a serial, por lo que no
redundancia cíclica (CRC) realizado sobre el contenido podía ser dividido en múltiples capas. Con el tiempo,
del mensaje. El campo CRC comprueba el contenido diferentes unidades de datos de aplicación fueron
de todo el mensaje. Se aplica independientemente introducidas, ya sea para cambiar el formato del paquete
de cualquier método de comprobación de paridad utilizado a través de serial o para permitir el uso de redes
utilizado para los caracteres individuales del mensaje. TCP/IP y user datagram protocol (UDP). Esto llevó a una
separación del protocolo principal, el cual define la
El campo CRC contiene un valor de 16 bits, implementado unidad de datos de protocolo (PDU) y la capa de red, que
como dos bytes de 8 bits. El campo CRC se añade al define la unidad de datos de aplicación (ADU) [1].
mensaje como último campo del mismo. El byte de
orden alto del CRC es el último byte que se envía en el Existen varios tipos de versiones en el protocolo Modbus
mensaje. para el puerto serie y Ethernet. Estas se utilizan para
atender las necesidades específicas de los sistemas de
El valor CRC es calculado por el dispositivo emisor, automatización industrial en las empresas. Por ejemplo:
que añade el CRC al mensaje. El dispositivo receptor Modbus TCP se utiliza para Ethernet, y Modbus RTU y
vuelve a calcular un CRC durante la recepción del Modbus ASCII para los puertos serie.
mensaje, y compara el valor calculado con el valor real
que recibió en el campo CRC. Si los dos valores no son No obstante, las más comunes son las siguientes:
iguales, se produce un error. El cálculo del CRC se inicia
precargando primero un registro de 16 bits a todos • Modbus RTU
los 1's. Luego comienza un proceso de aplicación de • Modbus TCP
sucesivos bytes de 8 bits del mensaje al contenido • Modbus ASCII
actual del registro. Solo los ocho bits de datos de • Modbus Plus
cada carácter se utilizan para generar el CRC. Los bits
de inicio y parada y el bit de paridad no se aplican al La trama es una estructura definida en el protocolo
CRC [2]. en donde los equipos intercambian información
cumpliendo este formato. En la trama se definen
En el modo ASCII, los mensajes incluyen un campo de los campos y el tamaño asignado para cada uno,
comprobación de errores que se basa en un cálculo de respondiendo a la siguiente estructura:
comprobación de redundancia longitudinal (LRC) que
se realiza sobre el contenido del mensaje, excluyendo
los dos puntos iniciales y el par de caracteres de [ID][FUNCIÓN][DATO][CRC]
terminación CRLF. Se aplica independientemente de
cualquier método de comprobación de paridad utilizado • ID: dirección del esclavo, número enteros
para los caracteres individuales del mensaje. normalmente desde 1 hasta 255.
El campo LRC es un byte que contiene un valor binario • Función: tipo de solicitud que se le realiza
de 8 bits. El valor LRC es calculado por el dispositivo al esclavo, codificada de manera numérica,
que emite y añade el LRC al mensaje. El dispositivo que normalmente números que inician en 1, 2, 3, 4, etc.
recibe calcula un LRC durante la recepción del mensaje • Dato: este campo se emplea para enviar información
y compara el valor calculado con el valor real que ha complementaria a la solicitud realizada al esclavo,
recibido en el campo LRC. Si los dos valores no son o se emplea para responder a la solicitud, por
iguales, se produce un error. la tanto, el campo de dato tiene una estructura
diferente cuando el mensaje lo envía el maestro o
El LRC se calcula sumando los sucesivos bytes de cuando es la respuesta de un esclavo.
8 bits del mensaje, descartando cualquier carga, y
complementando el resultado a la inversa. El LRC La codificación de datos dentro de la trama puede
resultante se codifica en ASCII en dos bytes y se coloca hacerse en modo ASCII o puramente binario, según el
al final de la trama en modo ASCII antes del CRLF [2]. estándar remote transmission unit (RTU). En cualquiera
de los dos casos, cada mensaje obedece a una trama
que contiene cuatro campos principales de acuerdo
Protocolo con la figura 3. La trama ASCII incluye un carácter de
encabezamiento («:»=3AH) y los caracteres CR y LF al
Modbus es un protocolo de sistema abierto que, final del mensaje.
al funcionar en una variedad de capas físicas, se
convierte en el más utilizado en aplicaciones de control
industrial. Es una técnica de comunicación en serie que
proporciona una relación maestro-esclavo para la
comunicación entre dispositivos conectados en red.
Modbus | 6

: N° esclavo Código de LCR(16) CR LF


Subfunciones, datos
(3AH) (00-3FH) operación H L (0DH) (0AH)

Codificación ASCII

N° esclavo Código de CRC(P16)


Subfunciones, datos
(00-3FH) operación H L

Codificación RTU
Figura 3. Trama genérica del mensaje según el código empleado. Tomado de: Información detallada sobre el protocolo Modbus – NI, 2022,
[Link]

Pueden existir diferencias en la forma de calcular el - Funciones 1 (read coils) y 2 (read discrete
CRC, puesto que el formato RTU emplea una fórmula inputs): lectura de bits del autómata. La forma de
polinómica en vez de la simple suma en módulo 16. direccionamiento de los bits es a base de dar la
dirección de la palabra que los contiene y luego
• Formato de trama [2]: la posición del bit. La respuesta es dada siempre
- Número de esclavo (1 byte): permite direccionar en octetos completos.
un máximo de 63 esclavos con direcciones que - Funciones 3 (read holding registers) y 4 (read
van del 01H hasta 3FH. El número 00 input registers): lectura de palabras del autómata.
- Código de operación o función (1 byte): cada La petición indica el número de palabras a leer,
función permite transmitir datos u órdenes al mientras que en la respuesta se indica el número
esclavo. Existen dos tipos básicos de órdenes: de octetos leídos.
» Ordenes de lectura/escritura de datos en los - Función 5 (write single coil): escritura de un bit.
registros o en la memoria del esclavo El direccionamiento del bit se efectúa tal como
» Ordenes de control del esclavo y el propio se ha indicado para las funciones 1 y 2.
sistema de comunicaciones (RUN/STOP, carga - Función 6 (write single register): escritura de una
y descarga de programas, verificación de palabra.
contadores de intercambio, etc.) - Función 7 (read exception status [serial line
- Campo de subfunciones/datos (n bytes): este only]): petición de lectura rápida de un octeto. La
campo suele contener los parámetros necesarios petición no tiene campo de dirección, esto es
para ejecutar la función indicada por el byte debido a que el octeto legible por esta función
anterior. Estos parámetros podrán ser códigos de es fijo en cada esclavo y viene fijado en su
subfunciones en el caso de órdenes de control configuración.
(función 00H) o direcciones del primer bit o byte, - Función 8 (diagnostics [serial line only]): petición
número de bits o palabras a leer o escribir, valor del contenido y control de los 8 primeros
del bit o palabra en caso de escritura, etc. contadores de diagnóstico de un esclavo. El
- Palabra de control de errores (2 bytes): en código código de función 08 de Modbus proporciona
ASCII, esta palabra es simplemente la suma una serie de pruebas para comprobar el
de comprobación (‘checksum’) del mensaje sistema de comunicación entre un dispositivo
en módulo 16 expresado en ASCII. En el caso cliente (maestro) y un servidor (esclavo) o
de codificación RTU el CRC se calcula con una para comprobar diversas condiciones de error
fórmula polinómica. interno dentro de un servidor. La función utiliza
• Descripción de las funciones del protocolo [2] un código de subfunción de dos bytes código
de subfunción de dos bytes en la consulta para
La forma de hacer solicitudes al esclavo es por
definir el tipo de prueba a realizar. El servidor
medio de la función, la cual tiene asignado un byte,
se hace eco del código de la función y del
realmente las funciones del protocolo Modbus van
código de subfunción en una respuesta normal.
desde el #1 hasta el #127 y se clasifican en tres
Algunos de los diagnósticos hacen que datos del
grupos: funciones públicas, funciones definidas
dispositivo remoto en el campo de datos den una
por el usuario y funciones reservadas.
respuesta normal.
- Función 0: permite ejecutar órdenes de control, - Función 11: la petición del contenido del contador
tales como marcha, paro, carga y lectura de de diagnóstico número 9, no se realiza por la
programas de usuario del autómata. Para función 8, sino por la función 11.
codificar cada una de las citadas órdenes se - Función 15: escritura de bits del autómata.
emplean los cuatro primeros bytes del campo de La forma de direccionamiento es análoga a la
datos (función ilegal). indicada para las funciones 1 y 2.
- Función 16: escritura de palabras del autómata
Modbus | 7

Modbus TCP Modbus/TCP se introdujo con el objetivo de aprovechar


las infraestructuras LAN actuales y aumentar el número
Modbus® TCP/IP es una variante o extensión del de unidades que podían conectarse a la misma red.
protocolo Modbus que permite utilizarlo sobre la capa
Este sistema engloba los bloques de datos de solicitud y
de transporte TCP/IP. De este modo, Modbus-TCP se
respuesta del Modbus RTU en un bloque TCP transmitido
puede utilizar en Internet, de hecho, este fue uno de los
a través de redes estándar de Ethernet.
objetivos que motivó su desarrollo.
De acuerdo a la aplicación, varía el número de unidades
Una nueva versión de Modbus TCP/IP utiliza Ethernet
y su interpretación. La dirección de la unidad o del
como la capa física que facilita el intercambio de datos
esclavo no es el medio principal de direccionamiento en
entre los PLC en diferentes redes. Con independencia
el TCP, pues lo más importante es la dirección IP.
del tipo de red física facilita un método de acceso y
control de un dispositivo por otro [2]. Aunque el puerto estándar para Modbus TCP es el 502,
este puede reasignarse si se desea.
Modbus TCP/IP implementa el protocolo Modbus
sobre la pila de protocolos estándar TCP/IP. Está La Ethernet permite la comunicación entre pares,
estandarizado como perfil RTE bajo la norma IEC 61784- haciendo menos obvia la definición de maestro y
2 (CP 15/1). Además, es compatible con los diversos esclavo. En este contexto, el esclavo se convierte en el
estándares Ethernet del IEEE 802.3, por lo que soporta servidor y el maestro en el cliente, lo cual posibilita que
la interconexión de un número virtualmente ilimitado pueda existir más de un cliente que obtenga datos de
de dispositivos. un servidor. En términos de Modbus, esto significa que
puede haber múltiples maestros, así como múltiples
Otras de sus características [2] son las siguientes:
esclavos [2, 5].
• Múltiples esquemas de velocidades de transmisión:
En lugar de definir maestro y esclavo en un dispositivo
100 Mbps, 1 Gbps
físico por dispositivo, en esta ocasión es responsabilidad
• Medios físicos: cobre, fibra, inalámbrico del diseñador del sistema crear asociaciones lógicas
• Topologías: lineal, estrella, árbol, anillo entre la funcionalidad de maestro y esclavo.
• A nivel de red: emplea el protocolo IP.
El Modbus/TCP se utiliza frecuentemente en los
• A nivel de transporte: emplea el protocolo TCP, siguientes ámbitos:
manteniendo siempre escucha sobre el puerto
502. Además, emplea el protocolo seguro TLS • PLC (controladores industriales)
para cifrar las comunicaciones utilizando el puerto • Sistemas SCADA (visualizaciones y control básico
TCP 802. de procesos industriales)
Modbus TCP permite la coexistencia de múltiples clientes • Sensores y actuadores
en la misma red. Las conexiones TCP se establecen
Las ventajas [2] para los instaladores o empresas de
entre cada cliente y cada uno de los servidores con
automatización son innumerables, entre ellas es posible
los que se deba mantener transacciones. Esto ocurre
destacar las siguientes:
generalmente a razón de una conexión por cada
servicio en cada par cliente-servidor. Las conexiones • Realizar reparaciones o mantenimiento remoto
TCP se mantienen abiertas durante el tiempo requerido desde la oficina utilizando un PC, reduciendo así los
para que se produzca un número indeterminado de costes y mejorando el servicio al cliente.
transacciones. No obstante, pueden ser cerradas en • El ingeniero de mantenimiento puede entrar al
cualquier momento por el cliente. sistema de control de la planta desde su casa,
El comportamiento de Modbus/TCP no es determinista, evitando desplazamientos.
pues emplea TCP/IP y niveles inferiores sin modificar. • Permite realizar la gestión de sistemas distribuidos
Tras las esperas aleatorias de tiempo implementados geográficamente mediante el empleo de las
en CSMA/CD, es necesario evitar los intentos de tecnologías de Internet/Intranet actualmente
retransmisión. Por ello, se recurre a la conexión física disponibles.
de únicamente un dispositivo por cada puerto de
un switch. Garantizando que el switch sea el único
conectado directamente a cada dispositivo, al coincidir
transmisiones simultáneas destinadas a un mismo
dispositivo, solo se transmite una de ellas y se almacena
el resto para luego continuar enviando [2].
Modbus | 8

Bibliografía [3] «Información detallada sobre el protocolo Modbus


- NI». [En línea]. Disponible en: [Link]
[1] Modbus-IDA, «MODBUS over serial line specification es-es/innovations/white-papers/14/the-modbus-
and implementation guide V1.02 [Link] [Link]. [Accedido: 02-mar-2022].
MODBUS over Serial Line Specification and [4] J. Antonio y D. Puente, «Tecnología de sistemas de
Implementation Guide», pp. 1-44, 2006. tiempo real», 2008.
[2] F. J. Mosqueira Sáez, «Tecnologías de comunicación [5] A. Rosado Muñoz, «Tema 2 Redes de comunicación:
en tiempo real en entornos de automatización Topología y enlaces.», 2007.
industrial. Análisis de la problemática y alternativas»,
p. 90, 2020.

También podría gustarte