Qué es Modbus: funcionamiento, tipos, tramas y usos

  • Modbus es un protocolo abierto maestro–esclavo/cliente–servidor con modelo de datos uniforme.
  • RTU, ASCII y TCP comparten funciones; varía la encapsulación y el control de errores.
  • Ventajas: simplicidad, interoperabilidad y bajo coste; limitaciones: seguridad y reporting.

Protocolo Modbus en automatización industrial

La comunicación máquina a máquina se ha convertido en la columna vertebral de la automatización moderna, desde sensores diminutos hasta controladores y sistemas SCADA que supervisan plantas enteras. En ese ecosistema, Modbus actúa como el idioma común que permite que equipos muy distintos se entiendan sin complicaciones y a bajo coste.

Nacido en 1979 para los PLC de Modicon, Modbus sigue plenamente vigente en fábricas, redes eléctricas, edificios inteligentes y aplicaciones IoT industriales. Su éxito se apoya en su sencillez, apertura y amplia compatibilidad, cualidades que facilitan su integración y mantenimiento incluso en entornos exigentes.

Qué es Modbus y cómo funciona

Modbus es un protocolo de comunicación abierto diseñado para transportar datos entre dispositivos electrónicos a través de enlaces serie o redes IP. Su filosofía es simple: un dispositivo central (maestro o cliente) hace peticiones, y los dispositivos de campo (esclavos o servidores) responden con datos o confirmaciones.

La arquitectura clásica es maestro–esclavo en entornos serie y cliente–servidor en TCP/IP. En una red Modbus serie tradicional puede existir un maestro y hasta 247 esclavos, cada uno con su dirección. El maestro interroga de forma ordenada; los esclavos contestan únicamente cuando los aluden por su dirección.

Todos los mensajes Modbus comparten una estructura lógica: incorporan un código de función que determina la operación (p. ej., leer entradas discretas, leer/escribir registros) y un bloque de datos asociado. Este planteamiento uniforme simplifica el análisis y el diagnóstico entre fabricantes distintos.

Una ventaja clave es que el formato del mensaje no depende de la interfaz física. Puedes migrar de RS-485 a Ethernet sin reescribir la lógica del protocolo: cambia la encapsulación, no la semántica. Ese desacoplamiento reduce costes cuando se actualiza el hardware.

Tipos de Modbus y tramas de comunicación

Modelo de datos Modbus: tipos de objetos y acceso

Modbus organiza la información en cuatro clases de objetos, con tamaños y permisos bien definidos. Este patrón es idéntico entre variantes como RTU, ASCII, TCP y RTU sobre TCP; lo que cambia es la envoltura de transporte, no el modelo de datos.

Objeto Acceso Tamaño
Discrete input (entrada digital) Solo lectura 1 bit
Coil (salida digital) Lectura/escritura 1 bit
Input register (registro de entrada) Solo lectura 16 bits
Holding register (registro de retención) Lectura/escritura 16 bits

El orden de bytes para valores multibyte en los datos Modbus es big-endian, es decir, se transmite primero el byte más significativo (MSB). Este detalle es vital al mapear tipos compuestos como enteros de 32 bits o flotantes IEEE.

ADU y PDU: cómo se encapsulan los mensajes

Una trama Modbus se compone de una ADU (Application Data Unit) que envuelve una PDU (Protocol Data Unit). La PDU es común a todas las variantes y contiene el código de función y los datos; la ADU añade dirección y control de errores según el medio.

  • ADU: Dirección/encabezado + PDU + verificación de error
  • PDU: Código de función + Datos

Según la variante (RTU, ASCII o TCP) cambia la forma de la ADU, incluyendo mecanismos de delimitación, chequeo de errores y campos de cabecera específicos del transporte.

Formatos de trama por variante

Todas las implementaciones Modbus usan alguno de estos formatos de trama, adaptados al medio físico o a la red IP sobre la que viajan.

Trama Modbus RTU (serie, típicamente RS-485)

RTU usa codificación binaria compacta y CRC para control de errores. Las tramas deben emitirse de manera continua, sin huecos entre caracteres, y se separan mediante intervalos de silencio (≈ 3,5 tiempos de carácter).

Campo Longitud Descripción
Inicio Tiempo de silencio Inactividad mínima (~3,5 caracteres) para delimitar
Dirección 8 bits Identificador del esclavo
Función 8 bits Operación solicitada (p. ej., leer coils o holding registers)
Datos n × 8 bits Parámetros y/o payload
CRC 16 bits Verificación de redundancia cíclica
Fin Tiempo de silencio Inactividad mínima (~3,5 caracteres) entre tramas

CRC-16 (ANSI/IBM) en Modbus RTU: polinomio x^16 + x^15 + x^2 + 1 (0x8005, inverso 0xA001) con valor inicial 0xFFFF. Ejemplo de respuesta en hexadecimal: 01 04 02 FF FF B8 80; el cálculo del CRC sobre 01…FF produce 0x80B8, que se transmite en orden little-endian (byte bajo primero: B8 80).

Trama Modbus ASCII (serie con caracteres imprimibles)

ASCII representa cada byte como dos caracteres hexadecimales legibles, delimita con dos puntos al inicio y CR/LF al final, y emplea LRC como checksum.

LRC2 bytes ASCIIChecksum longitudinal (complemento a dos de la suma 8 bit)

Campo Longitud Descripción
Inicio 1 byte Carácter ‘:’ (0x3A)
Dirección 2 bytes ASCII Valor de 8 bits expresado como dos hex
Función 2 bytes ASCII Código de función
Datos n × 2 bytes ASCII Contenido en pares hex
Fin 2 bytes CR (0x0D) + LF (0x0A)

Ejemplo de LRC: con bytes 247, 3, 19, 137, 0 y 10 la suma es 416; su complemento a dos truncado a 8 bits es 96 (0x60). La trama sería: :F7031389000A60<CR><LF>.

Trama Modbus TCP (Ethernet)

En TCP/IP, Modbus viaja con un encabezado MBAP que facilita la multiplexación de transacciones y la pasarela hacia redes serie. No se añade checksum propio, ya que TCP/IP ya incorpora control de integridad.

Campo (MBAP + PDU) Longitud Descripción
Transaction ID 2 bytes Correlación petición–respuesta
Protocol ID 2 bytes Siempre 0 para Modbus/TCP
Length 2 bytes Tamaño restante (Unit ID + PDU)
Unit ID 1 byte Dirección del dispositivo tras una pasarela (o 255 si no aplica)
Código de función 1 byte Operación solicitada
Datos n bytes Parámetros y payload

El Unit ID permite direccionar equipos RTU detrás de una pasarela Modbus TCP–RTU. En dispositivos puramente TCP, a menudo se ignora. El servicio utiliza el puerto 502 y está normalizado (IEC 61158, citado en IEC 61784-2 como CPF 15/1).

Variantes de Modbus: panorama completo

Existen múltiples sabores de Modbus para distintos medios y requisitos. Comparten modelo de datos y funciones básicas; difieren en cómo encapsulan y transportan la PDU.

  • Modbus RTU: la implementación binaria más común sobre enlaces serie como RS-485. Usa CRC-16 y requiere transmisiones contiguas sin pausas.
  • Modbus ASCII: variante serie con caracteres imprimibles y LRC. Menos usada hoy, pero útil donde se prioriza legibilidad y depuración manual.
  • Modbus TCP/IP (Modbus TCP): funciona sobre redes IP, puerto 502. Cliente–servidor, sin checksum adicional a nivel de aplicación.
  • Modbus sobre TCP/RTU-IP: encapsula RTU sobre TCP incluyendo el CRC en la carga útil, útil para transportar tramas RTU tal cual.
  • Modbus sobre UDP: hay implementaciones experimentales para reducir la sobrecarga de TCP, sacrificando características de conexión.
  • Modbus Plus (MB+, propietario): red de alta velocidad de Schneider Electric, con comunicaciones peer-to-peer entre múltiples maestros, HDLC y 1 Mbit/s sobre par trenzado; requiere hardware específico (tarjetas ISA/PCI/PCMCIA).
  • Pemex Modbus: extensión con soporte para históricos y medidas de flujo, concebida para PEMEX; no tuvo adopción masiva.
  • Enron Modbus: extensión que añade enteros de 32 bits, flotantes y datos históricos/flujo, mapeados a direcciones estándar con alineación de tipos según prácticas API.

Las cuatro primeras variantes (RTU, ASCII, TCP y RTU sobre TCP) comparten llamadas y modelo de datos, pero no son interoperables entre sí a nivel de trama: cambia la encapsulación y, por tanto, el cableado/capa física o red.

Ventajas prácticas de Modbus en la industria

La popularidad de Modbus no es casual: es abierto, gratuito, sencillo de implementar y muy interoperable, lo que reduce barreras entre fabricantes y abarata la integración.

  • Facilidad de implantación: pocos requisitos (un puerto serie o Ethernet) y un stack simple.
  • Compatibilidad alta: equipos heterogéneos conviven sin depender de un proveedor único.
  • Fiabilidad: RTU incorpora CRC de serie; en TCP se apoya en la pila IP.
  • Flexibilidad: soporta RS-232, RS-485 y Ethernet; topologías variadas.
  • Coste contenido: no hay licencias y el desarrollo es liviano.

En su modalidad TCP/IP, además, se aprovechan infraestructuras LAN existentes con velocidades típicas de 10 a 100 Mbit/s, facilitando la escalabilidad y la gestión centralizada.

Limitaciones y variaciones habituales

No todo son ventajas; también existen restricciones derivadas de su diseño original para PLC de finales de los 70.

  • Diagnóstico acotado y reporting: el esquema maestro–esclavo exige sondear periódicamente; no hay “report by exception” estándar en serie (sí existen implementaciones sobre Ethernet con notificaciones específicas).
  • Direccionamiento limitado en bus serie: hasta 254 dispositivos por enlace datos en RTU/ASCII.
  • Transmisión contigua: las tramas no admiten huecos; no todos los medios remotos lo toleran sin buffering.
  • Seguridad nativa inexistente: no incorpora autenticación ni cifrado; hay que reforzarlo con VPN, firewalls, ACL, etc.
  • Tipos de datos históricos: el estándar base se centra en 1 bit y 16 bits; objetos binarios grandes no están contemplados.
  • Metadatos de variables: no hay forma estándar de anunciar el significado/escala de un registro (p. ej., “temperatura de 30 a 175 °C”).

Variaciones de implementación frecuentes incluyen flotantes IEEE 754, enteros de 32 bits, datos de 8 bits empaquetados, campos de bits dentro de enteros, multiplicadores (10, 100, 1000, 256) para escalar magnitudes, direcciones de esclavo extendidas a 16 bits o respuestas de 32 bits por dirección en algunos dispositivos.

Capas físicas y RS-485: notas de campo

  • Largas distancias: hasta ~1200 m con velocidades ajustables según el tramo.
  • Multipunto: decenas de nodos comparten el mismo bus con direccionamiento lógico.
  • Buenas prácticas: terminaciones, polarización y topologías en bus (evitar “estrellas”).

Frente a RS-232, RS-485 es preferible para tiradas largas y redes con múltiples equipos, manteniendo costes bajos y un cableado simple.

Casos prácticos reales

Migración de planta: de RTU a TCP con pasarela

Un fabricante de componentes de automoción necesitaba ampliar su producción y pasó de una red Modbus RTU pura a un entorno mixto con Modbus TCP/IP sobre Ethernet CAT6. La RS-485 original se conservó para equipos heredados y se añadió una pasarela Modbus TCP–RTU para enrutar datos entre ambos mundos, logrando escalar sin parar la planta.

Utility eléctrica: SCADA sobre Modbus TCP con refuerzo de ciberseguridad

Una eléctrica modernizó su SCADA migrando desde RTU tradicional a Modbus TCP/IP sobre una red Ethernet privada. Dado el requisito de seguridad, desplegó VPN entre subestaciones, switches gestionados, firewalls y control de acceso por roles. Resultado: supervisión y control de alta disponibilidad, con exposición reducida frente a intrusiones remotas.

API Modbus de bajo nivel en LabVIEW: control y redundancia

Cuando se necesita ajustar finamente secuencias y temporización, la API de bajo nivel de LabVIEW para Modbus es la vía. Ofrece flexibilidad, pero exige mayor responsabilidad en la gestión de estados y errores.

Ejemplo introductorio (Modbus Library.lvproj): en una implementación típica, se crea una instancia de maestro (TCP o serie), se emiten funciones como Read Input Registers y se cierra la sesión liberando la conexión TCP o el recurso NI-VISA. El patrón es el clásico abrir–leer/escribir–cerrar, con diferencias entre maestro (solicita por red) y esclavo (opera sobre su almacenamiento local).

Ejemplo avanzado con maestros redundantes: una arquitectura con dos maestros activos consulta a un mismo esclavo; si uno pierde la conexión con el esclavo o la HMI, el otro asume la operación sin interrupción. Es un enfoque útil cuando el objetivo es tolerancia a fallos frente a gateways o sensores críticos.

Modbus TCP en la práctica

Modbus TCP establece un esquema cliente–servidor que funciona de maravilla en redes locales; mantener los nodos en la misma subred simplifica el descubrimiento y la administración. Todas las solicitudes se cursan por el puerto 502/TCP, habitualmente en half-duplex por conexión: no aporta ventaja apilar peticiones sin esperar respuesta.

La dirección del dispositivo puede usarse para llegar a nodos RTU tras pasarela referenciando la IP de la gateway y el Unit ID del equipo remoto. Desde 2007, Modbus/TCP está estandarizado (IEC 61158 e IEC 61784-2).

RTU vs. TCP vs. ASCII: cuándo usar cada uno

Modbus RTU brilla en buses serie robustos y económicos; Modbus TCP es idóneo cuando se quiere escalar, integrar con LAN/IT y conectar muchos dispositivos; Modbus ASCII tiene hoy un uso residual, útil en entornos donde leer las tramas “a ojo” sigue siendo valioso.

  • RTU: binario compacto, CRC, ideal para distancias cortas/medias con RS-485.
  • TCP: Ethernet/IP, mayor velocidad y alcance, direcciones IP ilimitadas.
  • ASCII: legible, con LRC, útil para depuración y compatibilidad histórica.

Software compatible: SCADA y HMI

Modbus es omnipresente en plataformas SCADA/HMI. Entre las soluciones que suelen dar soporte nativo se encuentran Citect, ICONICS, iFIX, InduSoft, InTouch/Wonderware, Trace Mode, Wizcon, Entivity (Studio/Live/VLC), entre otras.

Aplicaciones: energía, BMS y movilidad eléctrica

Integrado con SCADA, Modbus facilita una visión centralizada del estado y operación de activos energéticos (subestaciones, centros de transformación, automatización de distribución), posibilitando mantenimiento predictivo y mejora de la disponibilidad.

En sistemas de gestión de edificios (BMS), Modbus ayuda a orquestar climatización, iluminación, grupos electrógenos o almacenamiento, con impacto directo en eficiencia y costes energéticos.

En carga de vehículo eléctrico, Modbus aporta interoperabilidad con inversores y contadores inteligentes. Por ejemplo, el punto de recarga Trydan emplea Modbus RTU para operar de forma remota y leer medidores, integrándose con sistemas fotovoltaicos; los cargadores Pole Pro pueden conectarse mediante Modbus TCP para un control fino de la carga.

Empresas especializadas como Cuerva ponen los datos en el centro para detectar ineficiencias, optimizar instalaciones y desplegar planes de mantenimiento predictivo, preventivo y correctivo que eleven la fiabilidad de los equipos.

Cómo conectar una red Modbus: claves y parámetros

Antes de cablear, obtén la documentación del fabricante para entender el mapeo de registros y los parámetros de comunicación. Es el GPS del proyecto.

  • Físico: RTU sobre RS-485/RS-232; TCP sobre Ethernet (conectores RJ45/IP65 en entornos industriales).
  • Parámetros: velocidad en baudios, bits de datos/paridad/stop (en serie), IP/puertos (en TCP), dirección del esclavo/Unit ID.
  • Registros: conocer las direcciones de coils/inputs/holding/input registers y las escalas (multiplicadores, offsets).

En TCP, cada dispositivo usa una dirección IP y la comunicación se encapsula en paquetes TCP/IP. En bus serie, cuida terminaciones, longitudes y derivaciones para que la señal llegue limpia.

neuron iot box
Artículo relacionado:
Neuron IoT Box: Tecnología para un futuro conectado

Comienza la conversación

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.