Subido por Raúl Vargas Cornejo

▷ ¿Qué es MODBUS ◁ 【Modbus TCP, RTU, RS485】【2019】

Anuncio
13/9/2019
▷ ¿Qué es MODBUS? ◁ 【Modbus TCP, RTU, RS485】【2019】
¿Qué es MODBUS? ¿Cómo funciona?
Mar 7, 2019
10 minutos de lectura
« CD4511 decodificador para display 7
segmentos
Protocolo Modbus: Fundamentos y
aplicaciones
El protocolo Modbus es un protocolo abierto, es una estructura de mensajes desarrollada por Modicon en la decada
de los 70, utilizada para comunicaciones entre dispositivos maestro-esclavo/cliente-servidor. Modicon fue
posteriormente adquirida por Schneider y los derechos sobre el protocolo fueron liberados por la Organización
Modbus. Muchos equipamientos industriales utilizan Modbus como protocolo de comunicación, y gracias a sus
características:
Protocolo abierto
Simplicidad.
Facilidad.
Es el protocolo más utilizado en la automatización industrial.
Indice de contenido
¿Qué es el protocolo Modbus?
¿Cómo funciona MODBUS?
Capa física
Modbus RS232
Modbus RS485
Modbus TCP
Direccionamiento
Modelo de datos
Código de las funciones
Modos de transmisión
MODBUS ASCII
MODBUS RTU (Remote Terminal Unit)
https://blog.ars-electronica.com.ar/que-es-modbus-funcionamiento
1/6
13/9/2019
▷ ¿Qué es MODBUS? ◁ 【Modbus TCP, RTU, RS485】【2019】
MODBUS TCP
¿Qué es el protocolo Modbus?
Modbus es un protocolo de comunicación situado en los niveles 1, 2 y 7 del Modelo OSI, basado en la arquitectura
maestro/esclavo(o cliente/servidor si hablamos de su versión Ethernet) es uno de los protocolos mas utilizados en
automatización industrial, gracias a que es un protocolo abierto, a su simplicidad y facilidad de implementación.
¿Cómo funciona MODBUS?
En la figura de abajo vemos un ejemplo de red con el protocolo Modbus, con una gateway haciendo la conexión entre
los dos tipos de Modbus, el serial sobre RS-485 y el TCP/IP en ethernet. En el mercado existe la opción de gateway
Modbus Wireless. El maestro de la red, que en este caso es un PLC enviá y recibe datos de los esclavos, que son un
inversor de frecuencia, una HMI, un controlador de temperatura y una interfaces de I/O remota Modbus.
La estación maestro inicia la comunicación solicitando que los esclavos envíen sus datos. Los esclavos, por su parte,
reciben el pedido del maestro y devuelven los datos solicitados. Los datos transmitidos pueden ser discretos o
números, es decir, es posible enviar un bit para encender o apagar un motor o enviar valores numéricos como
temperatura y presión.
Capa física
Es importante no confundir protocolo de comunicación con estándares físicos. Algunos protocolos posen un estándar
físico definido como el caso de la red ASI y de la red CAN, siendo que en esos casos el estándar fisico esta definido
junto al protocolo y no es posible alterarlo.
MODBUS no especifica cuál es la capa física, pudiendo ser utilizado en diversos estándares de capa física como:
RS-232
RS-485
Ethernet TCP/IP (MODBUS TCP)
https://blog.ars-electronica.com.ar/que-es-modbus-funcionamiento
2/6
13/9/2019
▷ ¿Qué es MODBUS? ◁ 【Modbus TCP, RTU, RS485】【2019】
La velocidad de comunicación varia en cada uno de estos estándares, así como la longitud máxima de la red y el
numero de dispositivos máximos conectados.
RS-232
El estándar RS-232 (Recommendad Standart-232) o EIA-232(Electronic Industries Alliance-232) es utilizado
solamente en comunicaciones del tipo punto a punto, es decir, solo admite dos dispositivos en la red, que en el caso
del protocolo Modbus representan un maestro y un esclavo. La velocidad máxima de este estándar esta en torno a los
115Kbps, pero en algunos casos pueden ser encontradas tasas un poco mayores, la distancia máxima entre los
dispositivos de la red es de unos 30m.
RS-485
El estándar RS-485(Recommendad Standart-485) o EIA-485(Electronic Industries Alliance-485) es muy utilizado en
la industria y sin dudas es uno de los estándares mas utilizados por el protocolo Modbus. La gran diferencia con RS232, es que permite mas de dos dispositivos por lo que se pueden tener varios esclavos en la red. Ademas, este
estándar permite trabajar con tasas de comunicación que pueden llegar hasta 12Mbps y en algunos casos hasta
50Mbps, vale la pena recordar que cuando mayor es la longitud de la red menor sera la velocidad de comunicación, la
distancia máxima de la red es de 1200m, y el numero máximo de dispositivos en la red es de 32.
Ethernet
El estándar Ethernet en el protocolo Modbus posee algunas variaciones, pudiendo llegar a 100Mbps y hasta 10Gbps.
La distancia máxima puede varias de 100m hasta los 200m dependiendo del tipo de cable utilizado y de las
condiciones de instalación del mismo. En algunos casos es posible utilizar redes de fibra óptica, lo que permite
alcanzar mayores distancias y mejores tasas de comunicación, así como utilizar comunicación wireless.
Al utilizar el medio físico Ethernet el protocolo MODBUS opera con el mecanismo de control de acceso CSMA-CD,
que es propio de la red Ethernet, con mensajes en el modelo cliente-servidor.
Direccionamiento
El protocolo Modbus tiene 256 direcciones donde:
0(cero) es la dirección de Broadcast, cuando el maestro enviá un mensaje a la dirección 0, todos los esclavos
reciben el mensaje.
1 a 247 son direcciones de dispositivos para los esclavos.
248 hasta 255 son direcciones reservadas.
El maestro no posee dirección, solamente los esclavos deben poseer una dirección definida.
Modelo de datos
En el modelo de datos Modbus se distinguen 4 tipos de objetos diferentes los cuales tienen un tamaño diferente. En la
siguiente table se observan cuáles son estos tipos de objetos y sus tamaños respectivos.
Tipo de objeto
Acceso
Tamaño Direcciones
Coil
Leer/Escribir 1 bit(Bool) 00001 - 09999
Discrete input
Solo leer
1 bit(Bool) 10001 - 19999
Input register
Solo leer
16 bits(Int) 40001 - 49999
Holding register Leer/escribir 16 bits(Int) 40001 - 49999
No hay definido tipos de objetos para datos flotantes o dobles enteros, debido a la época en la que fue desarrollado el
protocolo los PLC no contaban con estos tipos de datos. Pero podemos usar el ingenio para lograrlo, por ejemplo
https://blog.ars-electronica.com.ar/que-es-modbus-funcionamiento
3/6
13/9/2019
▷ ¿Qué es MODBUS? ◁ 【Modbus TCP, RTU, RS485】【2019】
usando dos registros, ya que para un flotante o doble entero necesitamos 32 bits. De la tabla podes ver que tenemos
disponibles hasta 9999 variables por tipo de dato.
Código de las funciones
El código de la función es con lo que el maestro especifica el tipo de servicio o función solicitada al esclavo(lectura,
escritura, etc). En el protocolo Modbus, cada función es utilizada para acceder a un tipo especifico de dato.
Código de función
Descripción
1
Lectura en bloque de bits del tipo bobina(salida discreta)
2
Lectura de bloque de bits del tipo entradas discretas
3
Lectura de bloque de registros del tipo holding
4
Lectura de bloque del tipo input
5
Escritura de un único bit del tipo bobina
6
Escritura en un único registro del tipo holding
7
Leer el contenido de 8 estados de excepción
8
Proveer una serie de test para verificación de la comunicación y errores internos
11
Obtener el contador de eventos
12
Obtener un informe de eventos
15
Escritura en bloque de bits del tipo bobina
16
Escritura en bloque de registros del tipo holding
17
Leer algunas informaciones del dispositivo
20
Leer informaciones de un archivo
21
Escribir información en un archivo
22
Modificar el contenido de registros de espera a través de operaciones lógicas
23
Combina leer y escribir en registros en una única transacción
24
Leer el contenido de la fila FIFO de registros.
43
Identificación del modelo de dispositivo
Modos de transmisión
En las especificaciones del protocolo están definidos dos modos de transmisión:
ASCII
RTU
Sin embargo existen numerosas variantes del protocolo MODBUS, qué vamos a nombrar las más utilizadas:
MODBUS ASCII
MOBBUS RTU
MODBUS TCP/IP
Los modos definen la forma en como son transmitidos los bytes del mensaje, y como la información del mensaje sera
empaquetada en el mensaje y desempaquetada. No es posible utilizar los dos modos de transmisión en la misma red.
El modo de transmisión puede ser seleccionado junto con otros parámetros del puerto de comunicación serial,
aunque existen equipamientos que no permiten esa selección, pues poseen modo de transmisión fijo, como por
ejemplo algunos PLC e inversores de frecuencia que utilizan el modo RTU por defecto.
MODBUS ASCII
Cuando los equipos son configurados para que se comuniquen en una red Modbus usando ASCII, cada byte en un
mensaje es enviado como dos caracteres ASCII. A pesar generar mensajes legibles por la tabla ASCII este modo
consume mas recursos de la red. La principal ventaja de esta modalidad es que permite intervalos de tiempo cercanos
a un segundo entre dos caracteres sin causar error.
https://blog.ars-electronica.com.ar/que-es-modbus-funcionamiento
4/6
13/9/2019
▷ ¿Qué es MODBUS? ◁ 【Modbus TCP, RTU, RS485】【2019】
Los dispositivos monitorean constantemente la rede para determinar el inicio de un mensaje. El inicio de un mensaje
es reconocido por el carácter ‘:’(dos puntos), mientras que los del final de la trama son el “retorno de carro”(CR) y el
“salto de línea” (LF).
El formato de la trama es el siguiente:
Nombre Longitud (Bytes)
Función
Inicio
1
Comienza con el carácter ‘:’
Dirección
2
Dirección del esclavo
Función
2
indica el código de la función
Datos
nx2
Datos + La longitud se rellena dependiendo del tipo de mensaje
LRC
2
Verificación de redundancia longitudinal (LCR)
Fin
2
Retorno de Carro + Avance de linea(CR y LF)
Intervalos de hasta un segundo son permitidos entre caracteres de un mensaje, se ocurre un intervalo mayor, el
dispositivo receptor asume que ocurrió un error.
MODBUS RTU
En el modo RTU(Remote Terminal Unit), cada mensaje de 8 bits contiene dos caracteres hexadecimales de 4 bits. La
principal ventaja de este modo es que su mayor densidad de caracteres permite un mejor procesamiento de datos que
el modo ASCII para un mismo baudrate, ya que usa menos bits por cada dato a enviar. Cada mensaje debe ser
transmitido en un flujo continuo de caracteres.
En el modo RTU no existe un carácter especifico que indique el inicio o fin de la trama. La indicación de cuando un
nuevo mensaje comienza o cuando termina es por la ausencia de transmisión de datos en la red, por un tiempo
mínimo de 3,5 veces el tiempo de transmisión de un byte de datos. Siendo asi, si un telegrama se inició después de
que se produjo ese tiempo mínimo, los elementos de la red asumen que el primer caracter recibido representa el inicio
de un nuevo telegrama. Y de la misma forma, los elementos de la red asumen que finalizado la entrega del telegrama,
cuando este tiempo se cumple.
Si durante la transmisión de un mensaje el tiempo entre los bytes es mayor que este tiempo mínimo, el mensaje se
considerará inválido, el controlador descartará los bytes recibidos y montará un nuevo mensaje con los bytes que se
están transmitiendo.
https://blog.ars-electronica.com.ar/que-es-modbus-funcionamiento
5/6
13/9/2019
▷ ¿Qué es MODBUS? ◁ 【Modbus TCP, RTU, RS485】【2019】
La trama tiene el siguiente formato:
Nombre Longitud (bytes)
Función
Dirección
2
Dirección del esclavo
Función
2
indica el código de la función
Datos
n
Datos dependiendo del tipo de mensaje
CRC
2
Verificación de redundancia cíclica (CRC)
MODBUS TCP/IP con MBAP
MDBUS TCP es una implementación del protocolo Modbus basado en TCP/IP, Utiliza la pila TCP/IP para la
comunicación y adiciona un encabezado especifico llamado MBAP(MODBUS Application Protocol). El modelo de
mensaje de MODBUS TCP/IP tiene la siguiente forma:
El encabezado MBAP tiene un tamaño de 7 bytes, y esta compuesto por los siguientes campos
Nombre
Longitud (bytes)
Función
Transaction identifier
2
Sincronización de mensajes entre cliente y servidor
Protocol
2
El valor 0(cero) indica Modbus/TCP
Lenght
2
Cantidad de bytes en la trama
Unit Identifier
1
Utilizado para identificar al esclavo remoto en una red Modbus RTU
Para completar la trama:
Nombre Longitud (bytes)
Función
Función
2
indica el código de la función
Datos
n
Datos dependiendo del tipo de mensaje
Notar que la trama completa es similar a la del MODBUS RTU, pero se reemplaza Dirección y CRC por el MBAP. La
gestión de errores recae sobre el protocolo Ethernet.
El identificador de unidad(Unit Identifier) se utiliza con dispositivos que están detrás de una pasarela Modbus/TCP a
Modbus RTU.
Al principio cuando a uno le hablan de Modbus, y piensa en industrias, PLC, automatismo, piensa en que puede ser
algo complejo y difícil de implementar. Pero es como pudimos ver es un protocolo sencillo, liviano y simple. Con la
particularidad y gran ventaja de que es abierto. Es por todo esto que también existen librerías para poder
implementar Modbus en Arduino y en casi cualquier placa electrónica actual.
https://blog.ars-electronica.com.ar/que-es-modbus-funcionamiento
6/6
Descargar