RS485 y Modbus RTU: Pilares de la Comunicación Industrial

La comunicación industrial moderna se sustenta en protocolos robustos y eficientes que permiten la interconexión y el control de una vasta red de dispositivos. Entre estos, el protocolo Modbus, en su variante RTU, y la interfaz física RS485 se erigen como pilares fundamentales, especialmente en sistemas de gestión de edificios (BMS) y sistemas de automatización industrial (IAS). A pesar de la proliferación de protocolos más modernos, la combinación de RS485 y Modbus RTU sigue siendo una opción dominante debido a su simplicidad, fiabilidad y bajo requerimiento de recursos.

Introducción al Protocolo Modbus

El protocolo Modbus, desarrollado inicialmente por Modicon en 1979, ha evolucionado para convertirse en un estándar de facto en la comunicación industrial. Su diseño se basa en una arquitectura maestro-esclavo, donde el dispositivo maestro inicia y controla las comunicaciones, mientras que los dispositivos esclavos responden a sus solicitudes. Modbus opera a través de diversas interfaces físicas, incluyendo RS232, RS485 y TCP/IP, siendo RS485 la más utilizada en aplicaciones industriales.

Modbus es considerado un protocolo de mensajería de capa de aplicación, que proporciona comunicación maestro/esclavo entre dispositivos conectados entre sí a través de buses o redes. En el modelo OSI, Modbus se ubica en el nivel 7. Está concebido como un protocolo de solicitud/respuesta y brinda servicios especificados por códigos de función. Estos códigos son elementos de las PDU (Unidad de Datos de Protocolo) de solicitud/respuesta de Modbus. El campo de código de función se codifica en un byte, siendo los códigos válidos del 1 al 255, con los rangos de 128 a 255 reservados para respuestas de excepción. Cuando el maestro envía un mensaje al esclavo, es el campo de código de función el que informa al servidor sobre qué tipo de acción realizar. Para definir múltiples acciones, algunas funciones pueden incluir códigos de subfunción.

Diagrama de arquitectura maestro-esclavo Modbus

El Bus RS-485: Robustez y Escalabilidad

La interfaz RS485 es un estándar de comunicación serial ampliamente utilizado en entornos industriales. Ofrece una mayor resistencia al ruido y capacidades de comunicación a larga distancia, lo que la hace ideal para entornos propensos a interferencias. Sus características clave incluyen:

  • Topología de bus multipunto: Permite conectar múltiples dispositivos en un mismo bus, hasta un límite de 32 dispositivos por bus según la carga eléctrica en los transceptores, aunque algunos controladores permiten ampliar esta cantidad.
  • Transmisión diferencial: Utiliza dos cables (A+ y B-) para enviar señales, lo que hace que las señales sean menos susceptibles al ruido y a las interferencias electromagnéticas. Esto permite la comunicación en modo half-duplex (bidireccional pero no simultánea).
  • Velocidad de transmisión y distancia: La velocidad de transmisión puede variar desde unos pocos kilobits por segundo hasta varios megabits por segundo. A mayor velocidad, menor distancia máxima de transmisión; por ejemplo, hasta 10 Mbps en distancias cortas (alrededor de 10 metros) y hasta 100 kbps para distancias máximas (hasta 1200 metros).
  • Niveles de tensión diferenciales: La norma establece umbrales diferenciales mínimos de tensión para la lógica 1 y 0, lo que implica que la inmunidad al ruido puede variar según el transceptor RS485 utilizado.
  • Cable utilizado: Comúnmente se emplean dos conductores de par trenzado con una impedancia característica de 120 ohmios para evitar reflexiones de señal.

Cableado de bus RS485 con múltiples dispositivos

Modbus RTU: Simplicidad y Eficiencia

Modbus RTU es una implementación del protocolo Modbus que se ejecuta sobre interfaces de comunicación serie como RS-232 o RS-485. Su diseño se caracteriza por la simplicidad de sus mensajes, lo que garantiza su fiabilidad.

Estructura de los Mensajes Modbus RTU

Los mensajes Modbus RTU son un simple CRC de 16 bits (suma de comprobación redundante cíclica) para garantizar la integridad de los datos. Debido a esta simplicidad, la estructura básica del registro Modbus RTU de 16 bits se puede utilizar para empaquetar datos en coma flotante, tablas, texto ASCII, colas y otros tipos de datos no relacionados.

Un mensaje Modbus RTU típicamente consta de los siguientes campos:

  • Dirección del esclavo (Address Field): Identifica al dispositivo esclavo o servidor destinatario. Las direcciones de nodo estándar de Modbus RTU son de 1 a 254, con la dirección 0 reservada para mensajes de difusión y escritura solamente, aunque rara vez se usa debido a la falta de confirmación.
  • Código de función (Function Code): Indica la acción que se desea realizar (leer, escribir, diagnosticar, etc.). El campo del código de función se codifica en un byte, con códigos del 1 al 255 considerados válidos, y 128-255 reservados para respuestas de excepción.
  • Datos (Data Field): Contiene el mensaje en sí, que puede ser para escribir en un registro del esclavo o para leer datos (como el valor de una señal analógica). El tamaño en bytes depende del código de función y de la operación.
  • CRC (Cyclic Redundancy Check): Un campo de 2 bytes para la detección de errores y la garantía de la integridad de los datos transmitidos. Modbus RTU utiliza el formato "little-endian" para el envío del CRC, lo que significa que el orden de los bytes debe ser invertido al añadirlo a la trama para evitar errores.

Cómo Funciona la Comunicación Modbus RTU sobre RS485

En la arquitectura maestro-esclavo, el maestro inicia la comunicación. La trama de datos sigue la estructura mencionada. El maestro envía una consulta, y el esclavo responde.

Un aspecto crucial en las comunicaciones Modbus RTU sobre RS485 es el tiempo de espera entre tramas (inter-frame delay). Este parámetro asegura que el protocolo funcione correctamente sin interferencias, permitiendo a los dispositivos procesar mensajes y sincronizar la transmisión/recepción. Según el estándar Modbus, el tiempo mínimo de silencio entre tramas debe ser equivalente a 3.5 veces el tiempo de transmisión de un carácter (3.5 character times). Este silencio garantiza que los dispositivos reconozcan el final de una trama y el inicio de otra, y depende directamente de la velocidad de transmisión (baud rate).

Comunicación RS485 | Par Diferencial y Diagrama de Ojo con Osciloscopio | Sponsor ALLPCB

Mapas de Memoria Modbus RTU

El protocolo Modbus RTU organiza los datos en cuatro tipos principales de objetos de datos, cada uno con un mapa de memoria específico:

  • Bobinas (Coils): Bits binarios, valores booleanos (ON/OFF, banderas). Se accede a ellas mediante las funciones 01 (Leer Bobinas) y 05 (Escribir Bobina Única) o 15 (Escribir Múltiples Bobinas). La dirección de inicio común es 00001.
  • Entradas Digitales (Discrete Inputs): Entradas binarias de solo lectura. Se accede a ellas mediante la función 02 (Leer Entradas Digitales). La dirección de inicio común es 10001.
  • Registros de Holding (Holding Registers): Registros de 16 bits que pueden ser leídos y escritos. Se utilizan para almacenar valores analógicos, variables, configuraciones, etc. Se accede a ellos mediante las funciones 03 (Leer Registros de Holding) y 06 (Escribir Registro de Holding Único) o 16 (Escribir Múltiples Registros de Holding). La dirección de inicio común es 40001.
  • Entradas Analógicas (Input Registers): Registros de 16 bits de solo lectura, típicamente utilizados para leer valores de sensores analógicos. Se accede a ellas mediante la función 04 (Leer Entradas Analógicas). La dirección de inicio común es 30001.

Es importante destacar que los paquetes Modbus RTU solo están destinados a enviar datos. No tienen la capacidad de enviar parámetros como el nombre del punto, la resolución, las unidades, etc. Si se requiere esta capacidad, se deben investigar protocolos más modernos como BACnet o EtherNet/IP.

Modbus RTU vs. Modbus ASCII

Existen dos modos de transmisión básicos en las conexiones serie Modbus: ASCII y RTU. Estos modos determinan cómo se codifican los mensajes.

  • Modbus ASCII: Los mensajes son legibles por humanos, pero ocupan más espacio. Cada byte de información se representa con dos bytes de comunicación hexadecimales (caracteres ASCII de 0-9 y A-F). Esto resulta en mensajes de mayor tamaño, permitiendo un menor intercambio de datos en el mismo intervalo de tiempo. En modo ASCII, los mensajes se inician con dos puntos (:) y terminan con una combinación CR/LF. Permite pausas de hasta 1 segundo entre bytes de un mensaje.
  • Modbus RTU: Los mensajes están en codificación binaria y no son directamente legibles mientras se monitorean. La ventaja es que los mensajes son de menor tamaño, lo que permite un mayor intercambio de datos. El encuadre en RTU se construye midiendo huecos de silencio en la línea de comunicación (un mínimo de 3.5 caracteres de silencio antes de cada mensaje). Los mensajes deben enviarse en flujos continuos.

Todos los nodos dentro de una red Modbus deben estar en el mismo modo de transmisión; Modbus ASCII no puede comunicarse con Modbus RTU y viceversa.

CaracterísticaMODBUS / ASCIIMODBUS / RTU
CodificaciónCaracteres ASCII (Hex)Binario
Comprobación de errorControl de redundancia longitudinal (LRC)Verificación de redundancia cíclica (CRC)
Inicio del cuadroCarácter ':'Silencio de 3.5 caracteres
Extremo del marcoCaracteres CR / LFSilencio de 3.5 caracteres
Lagunas en el mensaje1 segundo1.5 veces la longitud de char
Bits de inicio11
Bits de datos78
ParidadPar/Impar/NingunaPar/Impar/Ninguna
Bits de parada1 o 21 o 2

Comparación visual de tramas Modbus ASCII y RTU

Modbus RTU vs. Modbus TCP

La diferencia más básica entre Modbus RTU y Modbus TCP (también conocido como Modbus IP, Modbus EtherNet y Modbus TCP/IP) radica en la capa física sobre la que operan.

  • Modbus RTU: Se ejecuta sobre interfaces de comunicación serie como RS-232 o RS-485.
  • Modbus TCP: Se ejecuta sobre una capa física de Ethernet. Utiliza un encabezado de 6 bytes para permitir el enrutamiento a través de redes IP.

Los mensajes Modbus RTU se envían directamente sobre el medio físico de forma secuencial. En Modbus TCP/IP, los mismos mensajes Modbus se encapsulan dentro de paquetes TCP, que luego se transmiten por la red Ethernet.

Ventajas y Desafíos de Modbus RTU

A pesar de sus limitaciones, Modbus RTU sigue siendo un competidor formidable en el mercado de la automatización industrial por varias razones:

  • Facilidad de implementación: Es significativamente más fácil de implementar que protocolos más nuevos.
  • Bajo requerimiento de memoria: Requiere considerablemente menos memoria. Para implementar Modbus RTU, puede ser suficiente con 2 KB en una pequeña CPU de 8 bits o un procesador PIC, mientras que protocolos como BACnet y EtherNet/IP pueden requerir 30-100 KB de memoria.
  • Fiabilidad: La simplicidad de su estructura de mensajes y el uso de CRC garantizan una comunicación fiable.
  • Amplia aceptación y dominio del mercado: Es una fuerza dominante en muchos sectores industriales.

Sin embargo, Modbus RTU presenta ciertas limitaciones, como la incapacidad de enviar metadatos (nombre del punto, unidades, etc.) junto con los datos. Para aplicaciones que requieren estas capacidades, se deben considerar protocolos más avanzados.

Herramientas de Prueba Modbus

Para asegurar una comunicación confiable y precisa entre dispositivos, es fundamental contar con herramientas de prueba adecuadas. Herramientas como Modbus Poll (simula un maestro) y Modbus Slave (simula un esclavo) permiten simular interacciones maestro-esclavo, diagnosticar problemas y validar configuraciones en sistemas Modbus RS485. Estas herramientas son esenciales para probar la comunicación Modbus RTU y Modbus TCP, garantizando la robustez y la ausencia de errores en los sistemas industriales.

Conclusión Parcial

La combinación de RS485 y Modbus RTU ofrece una solución de comunicación industrial robusta, económica y fácil de implementar. Su arquitectura maestro-esclavo, la simplicidad de sus mensajes y la fiabilidad inherente de la transmisión serie sobre RS485 lo convierten en una opción preferida para una amplia gama de aplicaciones de automatización. Si bien existen protocolos más modernos con funcionalidades extendidas, la simplicidad y la eficiencia de Modbus RTU aseguran su relevancia continua en el panorama de la comunicación industrial.

tags: #rs485 #comunicacion #modbus #rtu