Protocolo Modbus Explicado a Fondo: Antecedentes, Evolución, Principios y Configuración Práctica
Actualizado: 12 oct

Introducción: ¿Por qué se sigue utilizando Modbus?
Modbus se utiliza en las comunicaciones industriales desde que Modicon lo presentó en 1979. Su modelo de solicitud/respuesta sigue siendo útil para leer mediciones, estados de dispositivos y registros de control en los sectores de energía, agua, procesos industriales y manufactura. Su uso continuado se explica mejor por los equipos instalados, las especificaciones accesibles y una implementación sencilla que por estimaciones sin respaldo sobre cuota de mercado o cantidad de dispositivos.
Modbus se centra en intercambiar un conjunto reducido de datos de dispositivos mediante códigos de función definidos. Esa sencillez puede reducir el trabajo de implementación e integración, siempre que el ingeniero también verifique la interfaz física, el mapa de registros del dispositivo y los requisitos de la aplicación. Entre sus ventajas prácticas se incluyen:
Modelo de comunicación sencillo: un cliente serie programa solicitudes y un servidor responde; TCP utiliza el mismo modelo de aplicación sobre una conexión de red.
Especificaciones públicas: los implementadores pueden obtener los documentos del protocolo de Modbus Organization. Una especificación abierta no equivale a la licencia de una pila de software o un producto particular.
Amplia variedad de implementaciones: controladores, instrumentos y pasarelas de distintos fabricantes pueden intercambiar datos cuando coinciden las funciones admitidas y los mapas específicos del dispositivo.
Requisitos de implementación modestos: los dispositivos embebidos pequeños pueden implementar las funciones que necesitan; la memoria, la alimentación y el costo de los componentes reales dependen del diseño.
Cableado práctico de bus RS-485: varios dispositivos direccionados pueden compartir un bus diseñado correctamente. Modbus serie dispone de las direcciones 1–247, pero la carga eléctrica, la topología y la temporización determinan cuántos dispositivos admite un segmento.
Base instalada consolidada: sustituir dispositivos de campo que funcionan puede requerir un trabajo de integración considerable. Las pasarelas pueden poner los datos Modbus existentes a disposición de sistemas de supervisión más recientes.
Una pasarela que admita explícitamente la conversión de protocolos o la recopilación de datos puede leer dispositivos Modbus y publicar valores seleccionados mediante MQTT, HTTP u OPC UA. Deben configurarse el mapeo de registros, las unidades, el intervalo de actualización y las funciones admitidas por la pasarela; una conexión IP común no los proporciona automáticamente. Esta guía recorre Modbus desde sus antecedentes y su modelo de datos hasta los formatos de trama, el despliegue y la configuración, para que el lector pueda consultarla junto con los manuales exactos de cada dispositivo.
Modbus es un protocolo de comunicación cliente/servidor para leer y escribir bobinas y registros. RTU y ASCII utilizan tramas serie; Modbus TCP utiliza TCP/IP. Antes de configurar la conexión, compruebe el mapa de registros del dispositivo y la convención de direcciones del cliente.
En una modernización, un controlador puede ofrecer Modbus RTU por una línea serie mientras el sistema de supervisión espera Modbus TCP. Que ambos extremos indiquen «Modbus» no garantiza que una pasarela convierta las tramas ni aclara qué dirección corresponde a una referencia de registro.
Esta guía separa el modelo de datos, el transporte y el formato de los mensajes. Compara RTU, ASCII y TCP, y explica por qué una referencia como 40001 no siempre es la dirección que debe introducirse en el cliente. La lista de puesta en marcha ayuda a preparar un pequeño mapa antes de configurar la conexión.
Antecedentes históricos y evolución de Modbus
Antecedentes
A medida que los controladores programables se extendieron por la automatización industrial, los controladores y los instrumentos de campo necesitaron una forma práctica de intercambiar mediciones y comandos. Las interfaces específicas de cada fabricante dificultaban la integración. Modbus surgió de Modicon en ese contexto como un protocolo de solicitud/respuesta para equipos industriales; el protocolo no hace intercambiables todos los mapas de dispositivos ni todas las interfaces eléctricas.
Modicon presentó Modbus en 1979. Un cliente envía un código de función y los datos de la solicitud; el servidor direccionado devuelve los datos solicitados o una respuesta de excepción si no puede atender una solicitud bien formada. En un bus serie, el cliente controla el intercambio. Este modelo reutilizable permite que controladores e instrumentos intercambien operaciones definidas, mientras el fabricante determina el mapa real de datos del dispositivo.
Línea de tiempo de desarrollo
El principal avance consiste en reutilizar un protocolo de aplicación común en comunicaciones serie y TCP/IP. Los hitos siguientes distinguen el origen del protocolo, las ediciones documentadas de sus especificaciones y las prácticas de integración actuales:
Periodo / fecha del documento | Hito | Importancia para ingeniería |
|---|---|---|
1979 | Modicon presenta Modbus | Protocolo de solicitud/respuesta para controladores y dispositivos industriales. |
Implementaciones serie | Formatos de trama RTU y ASCII | Un modelo de aplicación común puede utilizar tramas RTU binarias compactas o tramas serie codificadas en ASCII. |
Integración Ethernet | Modbus TCP/IP | La PDU de aplicación se transporta mediante una conexión TCP con cabecera MBAP; no es una trama RTU enviada sin cambios. |
24 de octubre de 2006 | TCP/IP Implementation Guide V1.0b | Documenta la comunicación cliente/servidor y la integración en TCP/IP y sistemas de pasarela. |
20 de diciembre de 2006 | Serial Line Guide V1.02 | Documenta el direccionamiento serie, las tramas, la temporización y los requisitos de implementación. |
26 de abril de 2012 | Application Protocol Specification V1.1b3 | Define el modelo de datos, el direccionamiento, los códigos de función y el comportamiento de excepción que se usan en esta guía. |
Práctica de integración actual | Sondeo y pasarelas de protocolos | Los valores seleccionados de dispositivos pueden mapearse a MQTT u OPC UA cuando la pasarela y la aplicación admiten expresamente esas funciones. |
Estos avances permiten que los dispositivos de campo existentes participen en sistemas más recientes sin cambiar el significado de las solicitudes de aplicación. El transporte, el comportamiento de la pasarela y la interpretación de los registros deben verificarse por separado.
¿Por qué Modbus no ha sido obsoleto?
Modbus sigue siendo útil cuando los dispositivos ya ofrecen un mapa de registros conocido y la aplicación necesita una adquisición o un control sencillos. Reemplazar esos dispositivos puede requerir cambios de cableado, validación e integración de software. El uso de recursos y el costo de migración dependen de la implementación real; no conviene basar la selección en afirmaciones fijas sobre el tamaño del código, la proporción de equipos heredados o una relación de costos.
Modbus puede complementar MQTT u OPC UA en una arquitectura IIoT. Una pasarela puede consultar un medidor mediante Modbus, interpretar sus registros y exponer las mediciones resultantes a una aplicación de supervisión o en la nube. Estos protocolos tienen modelos de comunicación e información distintos; ese mapeo es una función de la aplicación, no una capa que Modbus proporcione automáticamente.
Arquitectura del protocolo Modbus
Modbus es un protocolo de aplicación cliente/servidor basado en solicitudes y respuestas. En una línea serie, el cliente (tradicionalmente llamado maestro) inicia las transacciones, mientras responde el servidor (esclavo) direccionado. En un bus serie compartido suele haber un solo cliente. Modbus TCP puede admitir varias conexiones de cliente dentro de los límites del servidor. Ninguna de las dos formas garantiza un tiempo de respuesta fijo: influyen el tiempo de sondeo, la velocidad del enlace, el procesamiento, los tiempos de espera y la carga de red.
Arquitectura básica
Client (PLC / gateway / HMI) -- request --> Server (instrument / controller)
Client <-- response -- Server
Serial bus: one client schedules transactions.
TCP: client connections depend on the server implementation.Cliente: inicia solicitudes y programa el sondeo y los reintentos. Varios clientes serie independientes no deben transmitir en el mismo bus sin un sistema de coordinación diseñado expresamente.
Servidor serie: utiliza una dirección individual de 1 a 247. La dirección 0 se reserva para escrituras de difusión (broadcast) admitidas; los servidores no responden a esas solicitudes.
Ruta de comunicación: encapsulado RTU o ASCII en una interfaz serie compatible, o la PDU de aplicación Modbus sobre TCP/IP.
Modelo de datos
Modbus abstrae los dispositivos como un "mapa de registros":
Grupos de bits: las coils (bobinas) son valores de un bit que pueden leerse y escribirse; el cliente puede leer las entradas discretas, también de un bit.
Grupos de registros: los registros de retención (holding registers) son palabras de 16 bits que pueden leerse y escribirse; el cliente puede leer los registros de entrada, también palabras de 16 bits. El dispositivo puede limitar las operaciones y el acceso admitidos.
Separe el mensaje de aplicación de su encapsulado y del enlace físico:
Aplicación: la unidad de datos de protocolo (PDU) contiene un código de función y sus datos.
Trama serie: la dirección y el campo de comprobación de errores rodean la PDU; RTU y ASCII codifican y delimitan las tramas de forma distinta.
Encapsulado TCP/IP: la cabecera MBAP precede a la PDU en un flujo de bytes TCP. Ethernet es un enlace de red subyacente habitual; RS-485 es una interfaz eléctrica serie común.
La PDU de aplicación está limitada a 253 bytes. Una ADU RTU puede tener hasta 256 bytes y una ADU TCP hasta 260 bytes, incluidos sus respectivos campos de encapsulado. La longitud real de las solicitudes y respuestas depende de la función y de la cantidad de datos. Estos límites de tamaño no garantizan una tasa de entrega ni un porcentaje de fiabilidad determinados.
Modbus define peticiones y respuestas entre un cliente y un servidor. El protocolo de aplicación organiza los datos en cuatro grupos:
Grupo de datos | Unidad | Acceso habitual |
|---|---|---|
Coils (bobinas) | Bits individuales | Lectura y escritura |
Discrete Inputs (entradas discretas) | Bits individuales | Lectura |
Input Registers (registros de entrada) | Palabras de 16 bits | Lectura |
Holding Registers (registros de retención) | Palabras de 16 bits | Lectura y escritura |
Los códigos de función especifican operaciones como leer bobinas o registros y escribir valores. Un dispositivo puede implementar solo una parte de esas funciones. Su manual proporciona el mapa particular: funciones admitidas, significado de cada dirección, permiso de escritura y codificación de los valores.
Un registro de 16 bits no define por sí mismo el significado de una magnitud.
Un número mayor puede ocupar varios registros. El signo, el orden de bytes y palabras, la escala y la unidad deben obtenerse del manual y anotarse junto a la referencia del registro.
La especificación del protocolo de aplicación Modbus define el modelo de datos y los códigos de función, pero no el mapa de registros de un producto concreto.
Separar los códigos de lectura y escritura
La especificación de aplicación Modbus asigna 0x01 y 0x02 a la lectura de bobinas y entradas discretas, y 0x03 y 0x04 a la lectura de registros de retención y de entrada. La escritura usa otras funciones: entre ellas 0x05 para una bobina, 0x06 para un registro, 0x0F para varias bobinas y 0x10 para varios registros. Un equipo puede admitir solo parte de ellas. Seleccione la función indicada en su manual y confirme que el punto puede escribirse antes de permitir al cliente una operación de escritura.
Una respuesta correcta confirma que se procesó una petición, pero no garantiza que el valor de ingeniería mostrado sea correcto. Los cuatro grupos de datos definen el direccionamiento; signo, escala, unidades y orden de palabras de un valor distribuido en varios registros dependen del equipo. Empiece con un valor conocido de solo lectura. Ante una excepción Modbus, examine función y dirección antes de cambiar el cableado o las rutas IP.
Las tres versiones principales: RTU / ASCII / TCP
RTU, ASCII y TCP comparten el modelo de datos de aplicación de Modbus, pero usan formatos de trama y comportamientos de enlace distintos. Elija la variante que admitan los dispositivos y la ruta de integración reales, sin suponer una cuota de mercado determinada ni compatibilidad universal de los productos.
Modbus RTU (El más clásico y común)
Entorno operativo: un enlace serie compatible con el dispositivo. La guía de línea serie describe interfaces RS-485; algunos equipos también ofrecen RS-232 u otras interfaces serie documentadas expresamente. La operación diferencial semidúplex es típica del RS-485 de dos hilos, pero no es una propiedad de todas las interfaces serie.
Transmisión binaria: la dirección, la función y los datos son bytes binarios. Las tramas RTU se separan al menos por 3.5 tiempos de carácter; por encima de 19,200 bit/s, la guía serie recomienda valores fijos de temporizador.
Detección de errores: la trama RTU termina con un CRC de 16 bits. Detecta errores de transmisión; no autentica al emisor ni garantiza una entrega sin errores.
Configuración serie: utilice la velocidad en baudios, la paridad y los bits de parada admitidos que indiquen los manuales. Todos los dispositivos que se comunican deben coincidir; no suponga un valor predeterminado universal.
Distancia y carga: el tipo de cable, la velocidad en baudios, los transceptores, las cargas unitarias, la terminación y la topología determinan el segmento permitido. Las 247 direcciones serie no garantizan la capacidad eléctrica de un segmento.
Ventajas: tramas compactas e integración sencilla en bus de campo cuando los dispositivos ya admiten la misma interfaz serie.
Limitaciones: el sondeo en bus compartido y la temporización serie limitan el rendimiento; para el diagnóstico pueden ser necesarias capturas de trama y herramientas serie adecuadas.
Topología típica:
RS-485 trunk (termination at the two physical ends, as specified):
[Client] =======+==========+==========+======= [end]
| | |
[Server 1] [Server 2] [Server 3]
Keep device drops short and follow the equipment wiring guide.
Match documented signal polarity; A/B labels vary between vendors.Aplicación: Sistemas heredados, monitoreo en campo abierto.
Modbus ASCII (Versión temprana)
Entorno operativo: un enlace serie compatible. Cada byte binario de la dirección, la función y los datos se representa mediante dos caracteres ASCII hexadecimales (0–9 y A–F).
Detección de errores: ASCII utiliza una comprobación de redundancia longitudinal (LRC), en lugar del CRC de RTU.
Delimitadores de trama: los dos puntos inician la trama y CR/LF la termina.
Sobrecarga de codificación: se usan dos caracteres para representar cada byte codificado, por lo que ASCII transmite más caracteres que RTU para la misma carga útil de aplicación.
Inspección: el flujo de caracteres hexadecimales puede examinarse en una captura serie, pero sigue siendo necesario un mapa de registros del dispositivo para interpretar los datos.
Compatibilidad: elija ASCII solo cuando ambos extremos lo admitan y estén configurados expresamente para ello.
Uso adecuado: mantener o integrar dispositivos que requieren Modbus ASCII. También puede emplearse en una configuración didáctica o de pruebas, pero la compatibilidad debe verificarse y no inferirse solo porque se indique Modbus.
Modbus TCP (Versión Ethernet)
Entorno operativo: una red TCP/IP orientada a la conexión. Modbus TCP suele usar el puerto de servidor 502; confirme el puerto configurado y los roles de cliente/servidor admitidos.
Cabecera MBAP: siete bytes que contienen el identificador de transacción, el identificador de protocolo, la longitud y el identificador de unidad.
Encapsulado: la ADU Modbus TCP no añade el CRC serie de RTU. Las comprobaciones y retransmisiones del transporte TCP son independientes de la validación de aplicación Modbus.
Diseño de red: la velocidad y el alcance del enlace dependen de Ethernet u otros medios de red y de toda la ruta enrutada; no son garantías de rendimiento ni latencia de Modbus.
Concurrencia: los dispositivos pueden admitir varios clientes TCP, pero los límites de conexión, la programación de solicitudes y la gestión de transacciones dependen de cada implementación. Una variante basada en UDP no es el transporte TCP descrito aquí.
Ventajas: se integra con redes IP existentes y puede conectar clientes de supervisión con pasarelas o servidores TCP nativos.
Seguridad: Modbus TCP básico no proporciona autenticación de usuario ni cifrado. Use una ruta de red protegida y una política de acceso adecuadas; no se puede activar TLS en un extremo que no lo implemente.
Una pasarela de protocolos puede traducir transacciones RTU y TCP compatibles. Verifique su modo operativo, el direccionamiento aguas abajo y sus limitaciones; un puerto Ethernet por sí solo no demuestra que admita la conversión.
RTU y ASCII son formatos de mensajes serie. Modbus TCP transporta la petición de aplicación por TCP/IP y añade una cabecera distinta. RS-485 es una capa física frecuente para Modbus serie; no es, por sí sola, un formato de mensaje Modbus.
Modbus RTU: Trama serie binaria con dirección de dispositivo, código de función, datos y CRC; Interfaz serie, dirección del dispositivo, velocidad, paridad, bits de parada y tiempos requeridos
Modbus ASCII: Trama serie con datos hexadecimales codificados como caracteres ASCII, carácter inicial, LRC y terminación de línea; Si el dispositivo admite ASCII y qué parámetros serie necesita
Modbus TCP: Petición de aplicación en un mensaje TCP con cabecera MBAP; IP del servidor, puerto TCP, roles cliente/servidor y posible uso del Unit Identifier para seleccionar un dispositivo aguas abajo
La guía de Modbus sobre línea serie describe las tramas RTU y ASCII. La guía de Modbus TCP/IP explica la cabecera MBAP. El puerto TCP 502 es habitual, pero debe confirmarse el puerto configurado en el equipo.
Los códigos de función y el modelo de datos pueden ser familiares en las distintas variantes; las tramas no son intercambiables. Un cliente serie no puede enviar directamente una trama RTU a un servidor TCP y esperar una conversión automática. Se necesita una pasarela o un modo de dispositivo diseñado para ello.
Examinar la trama antes de investigar los datos
Una trama serie RTU lleva dirección de dispositivo, función y datos seguidos de un CRC. El formato serie ASCII representa datos hexadecimales como caracteres, empieza con un marcador y emplea LRC y terminación de línea. Modbus TCP sitúa la petición de aplicación tras una cabecera MBAP con identificador de transacción, identificador de protocolo, longitud y Unit Identifier, entre otros campos. La trama TCP no reutiliza el CRC de RTU. La diferencia importa al elegir una captura o un modo de gateway.
En un enlace serie, confirme puerto, cableado y ajustes de ambos extremos: dirección, velocidad, paridad, bits de parada y tiempos exigidos por el equipo. Una red RS-485 también requiere topología y terminación adecuadas a su hardware. En TCP, compruebe dirección y puerto del servidor, servicio activo, ruta y firewall. El puerto 502 es habitual, pero un socket TCP que responde no demuestra que exista el punto Modbus esperado.
Estructura de la trama y códigos de función explicados
El "corazón" de Modbus es su trama (Frame), la estandarización garantiza la interoperabilidad. Todas las versiones comparten la PDU (datos de aplicación), con diferente encapsulación.
Estructura de la trama Modbus RTU
Una ADU RTU contiene un byte de dirección, la PDU de aplicación y dos bytes CRC, con un máximo de 256 bytes. La longitud de los datos varía según la función. Las tramas deben separarse al menos por 3.5 tiempos de carácter. Por encima de 19,200 bit/s, la guía de línea serie recomienda un intervalo fijo entre tramas de 1.750 ms; ese valor no debe presentarse como el cálculo de tiempos de carácter a 9,600 bit/s.
Campo | Bytes | Significado | Solicitud ilustrativa 0x03 |
|---|---|---|---|
Dirección del servidor | 1 | Destino serie 1–247; 0 es difusión (broadcast) para las escrituras admitidas | 01 |
Código de función | 1 | Operación de aplicación; 0x03 lee registros de retención | 03 |
Datos | Depende de la función; máximo 252 | Esta solicitud usa dos bytes de dirección inicial y dos bytes de cantidad | 00 0A 00 01 |
CRC | 2 | Campo RTU de comprobación de errores, primero el byte bajo y luego el alto | <byte bajo del CRC> <byte alto del CRC> |
Solicitud ilustrativa: servidor 1, función 0x03, dirección inicial de base cero 10, cantidad 1: 01 03 00 0A 00 01 <byte bajo del CRC> <byte alto del CRC>. Una respuesta normal ilustrativa con el valor sin signo 100 es 01 03 02 00 64 <byte bajo del CRC> <byte alto del CRC>. Los campos CRC son marcadores de posición deliberados; por tanto, estas cadenas no son tramas completas listas para transmitir en una prueba.
Una respuesta de excepción establece el bit alto del código de función solicitado; por ejemplo, 0x03 pasa a 0x83 e incluye un código de excepción. Algunos ejemplos comunes son 0x01 (función ilegal), 0x02 (dirección de datos ilegal) y 0x03 (valor de datos ilegal). Es posible que una trama serie rechazada por un error de transmisión no reciba ninguna respuesta.
Estructura de la trama Modbus TCP
Modbus TCP antepone la cabecera MBAP de siete bytes a la PDU de aplicación. La longitud total depende de la función y de la respuesta; una solicitud 0x03 normal para un registro tiene 12 bytes, mientras que su respuesta normal tiene 11 bytes. No use 12 bytes como mínimo universal.
Campo | Bytes | Significado |
|---|---|---|
Identificador de transacción | 2 | Asocia una respuesta con una solicitud en la conexión |
Identificador de protocolo | 2 | 0x0000 identifica el protocolo Modbus |
Longitud | 2 | Cantidad de bytes posteriores: Unit Identifier más PDU |
Unit Identifier | 1 | Puede seleccionar un dispositivo serie aguas abajo a través de una pasarela; siga el manual del dispositivo de destino |
PDU | Hasta 253 | Código de función más datos específicos de la solicitud, respuesta normal o excepción |
Para una misma solicitud de aplicación, TCP transporta el código de función y los datos después de MBAP, en lugar de usar el encapsulado RTU con dirección/CRC. Como TCP es un flujo de bytes, no se garantiza que un paquete de red equivalga a una ADU Modbus; el receptor recupera los límites del mensaje mediante la longitud MBAP.
Códigos de función comunes (Conocimiento más importante)
Los códigos de función identifican operaciones. La especificación distingue áreas de códigos de función públicas, definidas por el usuario y reservadas. El bit alto se usa en las respuestas de excepción; los códigos 128–255 no constituyen un rango genérico de funciones privadas. En la tabla, las longitudes cuentan solo los datos específicos de la función posteriores al byte del código de función y excluyen el encapsulado RTU o la cabecera MBAP. N es la cantidad solicitada de bits o registros; ceil(N/8) representa los bytes necesarios para almacenar N bits.
Decimal | Hexadecimal | Función | Datos / operación | Bytes de datos de solicitud | Bytes de datos de respuesta normal | Ejemplo de uso |
|---|---|---|---|---|---|---|
1 | 0x01 | Read Coils | Leer valores de bits | 4 | 1 + ceil(N/8) | Leer estados de coils documentados |
2 | 0x02 | Read Discrete Inputs | Leer valores de bits de entrada | 4 | 1 + ceil(N/8) | Leer estados de entrada documentados |
3 | 0x03 | Read Holding Registers | Leer palabras de registros de 16 bits | 4 | 1 + 2N | Leer una medición documentada |
4 | 0x04 | Read Input Registers | Leer palabras de registros de entrada | 4 | 1 + 2N | Leer un valor de entrada documentado |
5 | 0x05 | Write Single Coil | 0xFF00 = activada; 0x0000 = desactivada | 4 | 4 (eco) | Escribir un punto de control aprobado |
6 | 0x06 | Write Single Register | Un valor de 16 bits | 4 | 4 (eco) | Escribir un valor de consigna aprobado |
15 | 0x0F | Write Multiple Coils | Valores de bits empaquetados | 5 + ceil(N/8) | 4 | Escribir un rango de coils aprobado |
16 | 0x10 | Write Multiple Registers | Varias palabras de 16 bits | 5 + 2N | 4 | Escribir un rango de registros aprobado |
17 | 0x11 | Report Server ID | Tipo de servidor, indicador de funcionamiento y datos específicos del dispositivo (serie) | 0 | Variable | Leer el tipo de servidor y su estado de funcionamiento |
43 / 14 | 0x2B / 0x0E | Read Device Identification | Tipo MEI, código de lectura e identificador de objeto | 3 | Variable | Leer objetos de identificación admitidos |
Los límites dependen de la función: 0x01/0x02 pueden leer hasta 2,000 bits; 0x03/0x04, hasta 125 registros; 0x0F puede escribir hasta 1,968 coils; y 0x10, hasta 123 registros. Los dispositivos pueden imponer límites menores. El rango solicitado debe existir y la operación debe estar admitida; consulte las secciones de la función correspondiente y las respuestas de excepción de la especificación de aplicación.
Tabla de definición de direcciones de registro (Importante)
Referencias como 00001, 10001, 30001 y 40001 son etiquetas convencionales para grupos de datos distintos. El prefijo del grupo no se transmite como parte de la PDU. Una solicitud contiene una dirección de 16 bits de base cero dentro del grupo seleccionado, pero una herramienta cliente puede pedir al usuario una etiqueta, un número de base uno o un desplazamiento. Confirme la convención del manual y del cliente antes de introducir una dirección.
Etiqueta convencional | Grupo de datos | Función de lectura | Acceso habitual | Primer punto en notación convencional | Dirección transmitida |
|---|---|---|---|---|---|
0xxxx | Coils | 0x01 | Bit de lectura/escritura, si está admitido | 00001 | 0x0000 |
1xxxx | Entradas discretas | 0x02 | Bit de solo lectura | 10001 | 0x0000 |
3xxxx | Registros de entrada | 0x04 | Palabra de 16 bits de solo lectura | 30001 | 0x0000 |
4xxxx | Registros de retención | 0x03 | Palabra de 16 bits de lectura/escritura, si está admitida | 40001 | 0x0000 |
Los ejemplos del primer punto presuponen las etiquetas convencionales de base uno que se muestran en la tabla; no son asignaciones universales del dispositivo. La temperatura puede estar en cualquier punto documentado. Un valor FLOAT de 32 bits suele ocupar dos registros de 16 bits, pero el cliente debe decodificar su representación IEEE 754 según el orden de bytes y palabras documentado por el dispositivo. Modbus transmite primero el byte alto de un registro de 16 bits; el significado y el orden de los valores de varios registros dependen del dispositivo.
Los manuales y programas de ingeniería suelen mostrar referencias como 00001, 10001, 30001 y 40001. Estos rótulos normalmente indican un grupo de datos y un número de registro legible para las personas. La petición Modbus incluye un campo de dirección numérica; el rótulo mostrado no tiene por qué ser el número que espera el cliente.
Por ejemplo, 40001 suele identificar el primer holding register, mientras que la dirección de petición correspondiente suele ser cero. Es una convención extendida, no una regla segura para todos los manuales, controladores y pasarelas. Algunas herramientas piden la referencia completa; otras, un desplazamiento basado en cero o una dirección basada en uno.
Antes de configurar una lectura, registre:
El grupo de datos: coil, discrete input, input register o holding register.
El código de función que requiere el dispositivo.
La referencia exacta indicada en el manual.
La dirección o el desplazamiento que espera el software cliente.
El tipo de valor, signo, orden de bytes y palabras, escala y unidad.
No reste uno a todas las direcciones por costumbre. Compare el ejemplo del manual con la convención del cliente o la pasarela y verifique después un valor conocido de solo lectura. El campo de dirección y los códigos de función se definen en la especificación Modbus.
Recorrer un ejemplo de registro
Suponga que un manual llama a una temperatura «registro de retención 40001» y define una escala de 0,1 unidad por cuenta. Muchos clientes solicitarían función 0x03 con dirección cero para ese primer registro; otros piden la referencia mostrada. Registre el nombre del manual y la dirección realmente enviada. Un valor bruto 253 solo equivale a 25,3 unidades si el manual confirma esa escala y el tipo numérico supuesto. Es un ejemplo, no un mapa universal.
Para un valor de 32 bits repartido entre dos registros de 16 bits, la documentación debe fijar también el orden de bytes y palabras. Un número plausible pero incorrecto suele indicar un problema de interpretación, no de red. Valide convención de dirección y codificación con un punto de solo lectura que pueda comprobarse de forma independiente antes de interpretar una lista mayor.
Compruebe a la vez la referencia del manual, el código de función y la dirección realmente transmitida; 40001 no es un valor de entrada universal para todos los clientes.
Diferencias técnicas entre Modbus RTU y TCP
Elija RTU o TCP según las interfaces instaladas, el cableado, la carga de sondeo, el diseño de red y los requisitos de protección. La comparación siguiente describe consideraciones de ingeniería, no un benchmark medido de 2025 ni límites de rendimiento garantizados:
Aspecto | Modbus RTU | Modbus TCP | Selección / validación |
|---|---|---|---|
Enlace subyacente | Interfaz serie compatible, habitualmente RS-485 | TCP/IP, habitualmente sobre Ethernet | Compruebe la interfaz del dispositivo y el modo de la pasarela. |
Alcance | Depende del cable, la velocidad en baudios, los transceptores y la topología | Depende de los medios de red y de la ruta enrutada | Use las especificaciones del equipo; no hay una distancia universal de extremo a extremo. |
Rendimiento | Velocidad serie más separación de tramas y sobrecarga de sondeo | Procesamiento de red y servidor más programación de solicitudes | Mida el ciclo de sondeo completo con la carga prevista. |
Ruido / aislamiento | Importan el cableado, la puesta a tierra, el aislamiento y la terminación | Importan los medios, el aislamiento, el apantallamiento y la instalación | Ninguna modalidad de trama garantiza inmunidad. |
Cantidad de dispositivos | Direcciones 1–247; la capacidad eléctrica del segmento puede ser menor | Limitada por las conexiones, los recursos del servidor y el diseño de red | Valide la carga física y los límites de la aplicación. |
Configuración | Parámetros serie, cableado, dirección y mapa de registros | IP, puerto, roles, Unit Identifier y mapa de registros | Un ping correcto o un puerto abierto no son una prueba de aplicación. |
Alimentación / costo | Dependen de la implementación y el hardware | Dependen de la implementación y el hardware | Compare las especificaciones reales de los dispositivos y los costos del proyecto. |
Seguridad | RTU básico no incluye autenticación de usuario ni cifrado | TCP básico no incluye autenticación de usuario ni cifrado | Use una arquitectura protegida; verifique cualquier implementación de seguridad añadida. |
Tiempo de respuesta | Depende del procesamiento del dispositivo, la velocidad serie, el sondeo y los reintentos | Depende del procesamiento del dispositivo, la carga, la latencia de red y la concurrencia | Ninguna opción garantiza tiempo real estricto. |
Escenarios de aplicación industrial reales
Modbus se utiliza para adquisición y control supervisado en muchos entornos industriales. Los ejemplos siguientes describen posibles patrones de aplicación, no implementaciones verificadas de clientes ni mapas universales de registros de fabricantes. Cada dirección, escala y escritura permitida debe basarse en el manual del dispositivo exacto.
Industria Eléctrica
Medidores y cuadros eléctricos: lea puntos documentados de tensión, corriente, energía o estado mediante las funciones de lectura admitidas.
Equipos de protección y control: recopile datos de diagnóstico admitidos; para un reinicio u otra escritura se requiere la operación documentada y la aprobación del responsable del proceso.
Supervisión ambiental: lea las mediciones documentadas del dispositivo sobre gases o condiciones del gabinete, así como el estado de las alarmas. La etiqueta de un grupo de datos no define por sí sola una medición.
Agua y Saneamiento Ambiental
Bombas e instrumentos de nivel: recopile el nivel y el estado de operación; las escrituras de velocidad o control dependen del mapa de escritura documentado del equipo.
Transmisores de presión y caudal: confirme el modelo exacto, la dirección de registro, el tipo de datos, la escala y la unidad. No existe una asignación genérica de presión a 40001 válida para todos los transmisores.
Una instalación posible utiliza un segmento RS-485 diseñado y una pasarela de protocolos para dar servicio a un cliente SCADA. La capacidad del segmento y la compatibilidad con la conversión deben validarse para esa instalación.
Petróleo y Petroquímica
Instrumentos de proceso: lea mediciones de varios registros admitidas utilizando la interpretación FLOAT o entera y el orden de palabras documentados.
Integración de supervisión: un servidor Modbus TCP o una pasarela RTU/TCP puede exponer puntos seleccionados a un DCS o cliente de supervisión cuando se hayan verificado sus funciones y rendimiento.
Parámetros de control: las escrituras múltiples como 0x10 deben usar un rango documentado y aprobado y tener un efecto previsto, con un procedimiento acordado para verificar el resultado del proceso.
Fabricación Industrial
Adquisición de equipos: recopile contadores, estados y mediciones documentados de controladores compatibles con Modbus o de una pasarela de interfaz verificada.
La integración con otra red industrial requiere una aplicación o pasarela que implemente ambos protocolos y un mapeo configurado. No debe inferirse de un router común ni de un ejemplo de fábrica sin verificar.
Energía Nueva (Fotovoltaica)
Inversores y cajas combinadoras: recopile mediciones de operación y alarmas documentadas mediante el mapa Modbus admitido por el modelo exacto.
Instrumentos ambientales: mapee puntos de irradiancia, meteorología o alarmas con el manual del sensor, no con una asignación universal de registros.
Una arquitectura posible para una instalación solar combina la recopilación serie local con una pasarela conectada por IP y una plataforma de supervisión. Los presupuestos de enlace, los intervalos de actualización y la publicación en la nube admitida requieren validación específica del proyecto.
Implementación típica en puertas de enlace/routers industriales
Una pasarela industrial compatible con Modbus puede conectar dispositivos de campo serie con un sistema IP de supervisión o recopilar registros seleccionados para otra aplicación. Su valor depende de las funciones que implemente el modelo y el firmware exactos. La conversión RTU/TCP, el transporte serie transparente, el enrutamiento IP y la publicación MQTT son funciones distintas, con requisitos independientes de configuración y validación.
Arquitectura típica
[Serial field devices] -- RTU / RS-485 -- [RTU/TCP protocol gateway] -- Modbus TCP -- [Client]
Optional, only if supported and configured:
[Polling / data application] -- mapped MQTT data --> [Broker / cloud]
[Polling / data application] -- mapped OPC UA data --> [Supervisory system]Conversión de protocolos: una pasarela RTU/TCP mapea transacciones TCP e identificadores de unidad al bus serie. El transporte serie transparente sobre IP es un modo distinto.
Enrutamiento IP: transporta tráfico IP entre redes; por sí solo no analiza registros ni convierte RTU a TCP. Verifique cualquier función de filtrado Modbus o VPN en la documentación del producto exacto.
Recopilación de datos y lógica de borde: una aplicación compatible puede consultar registros, interpretar unidades y publicar datos o evaluar una regla de alerta. Los lenguajes de scripts, las cargas MQTT y las operaciones admitidas dependen del producto.
Un router IP reenvía tráfico entre interfaces de red. Eso no significa que lea registros Modbus ni convierta una trama serie RTU en una petición Modbus TCP. La conversión ocurre en la capa de aplicación y requiere una pasarela o un modo de funcionamiento preparado para ella. La RFC 1812 describe las funciones de reenvío de un router IPv4.
La distinción importa cuando un PLC está conectado por serie, pero el cliente de supervisión reside en una red IP. Un servidor serie puede transportar bytes serie por una conexión IP sin modificar el protocolo serie. Una pasarela de protocolo, en cambio, puede terminar una variante Modbus y generar peticiones en otra.
Confirme qué modo se utiliza, dónde se realiza la consulta y cómo se asignan los identificadores de dispositivo y los registros. Las expresiones «router industrial» y «compatible con Modbus» no bastan para afirmar que exista una interfaz serie o una función de conversión. Consulte el manual del modelo y firmware concretos.
Definir el papel del gateway entre serie e IP
Un servidor serie puede transportar bytes seriales por IP sin convertir peticiones RTU en Modbus TCP. Un gateway de protocolo termina un lado y genera mensajes para el otro, por lo que debe asociar roles cliente/servidor, identificadores de dispositivos descendentes, tiempos de espera y convenciones de dirección. El Unit Identifier de Modbus TCP puede seleccionar un equipo serie detrás del gateway; su significado en un servidor TCP directo depende del equipo. Revise el modo exacto en el manual.
Si el cliente de sondeo está en una red central, siga cliente, ruta IP y firewall, servicio del gateway, bus serie, dispositivo objetivo y respuesta. Anote dónde ocurre el sondeo y qué equipo gestiona reintentos y tiempos de espera. El enlace puede estar activo mientras el gateway apunta a una dirección serie errónea o usa un desplazamiento de registro incompatible. Ni un puerto Ethernet ni la etiqueta «compatible con Modbus» demuestran conversión de protocolo.
El enrutamiento IP, el transporte serie transparente y la conversión RTU/TCP son funciones distintas. Verifique el modo exacto de la pasarela.
Resumen de pasos de implementación
Seleccione el hardware según las interfaces serie reales, las necesidades Ethernet, el entorno, el montaje y los requisitos de alimentación; la cantidad de puertos serie y el grado de protección del gabinete dependen del modelo.
Elija el modo operativo correcto y documente los roles de cliente/servidor, las direcciones serie, los identificadores de unidad TCP, los mapas de registros, los tiempos de espera y los intervalos de actualización.
Proporcione una ruta de red protegida y una política de acceso adecuadas. Modbus básico no es una extensión de seguridad AES; use funciones de seguridad solo si todos los extremos necesarios las implementan y configuran correctamente.
Active los logs y la supervisión de diagnóstico admitidos y, a continuación, verifique una transacción documentada de solo lectura antes de ampliar la lista de sondeo.
En una instalación de campo remota, registre qué dispositivo consulta los instrumentos serie, qué sistema recibe los valores y cómo se protege la ruta de retorno. Solo se debe afirmar un resultado de despliegue o un ahorro de mantenimiento cuando lo respalden las mediciones de ese proyecto; esta arquitectura ilustrativa no afirma ninguno.
Antes de configurar, documente en una página los dispositivos y puntos necesarios:
Elemento | Qué registrar |
|---|---|
Extremo | Modelo, firmware y función de cliente o servidor |
Variante | RTU, ASCII o TCP |
Enlace | Parámetros serie y dirección de dispositivo, o dirección IP y puerto TCP configurado |
Punto de datos | Grupo, código de función, referencia del manual y dirección/desplazamiento del cliente |
Interpretación | Tipo de dato, signo, orden de bytes/palabras, escala y unidad |
Acceso | Solo lectura o escritura permitida según el manual |
Proceso de configuración de Modbus (muy detallado)
La configuración empieza por los manuales del dispositivo y del cliente. Antes de probar, registre la variante admitida, la interfaz eléctrica, los parámetros serie o IP, la convención de direcciones de solicitud y la interpretación de datos. Un simulador puede ayudar a validar la configuración del cliente, pero una simulación correcta no demuestra que un dispositivo real tenga el mismo mapa o comportamiento.
Configurar Modbus RTU (RS485)
Paso 1: Determinar parámetros de comunicación
Registre los siguientes parámetros del manual y de la configuración del servidor exactos. Los valores siguientes son ejemplos, no valores predeterminados universales:
Parámetro | Configuración ilustrativa | Qué verificar |
|---|---|---|
Velocidad en baudios | 9,600 bit/s | Que la velocidad sea compatible y coincida en todos los dispositivos que se comunican. |
Bits de datos | 8 para RTU | RTU utiliza ocho bits de datos por carácter. |
Paridad | Par | El valor predeterminado de la guía serie es par; los extremos pueden admitir otros modos configurados. |
Bits de parada | 1 con paridad par/impar; 2 sin paridad | El modo sin paridad de la guía serie añade un bit de parada. Si el dispositivo documenta 8N1, siga su implementación compatible y configure ambos extremos de forma coherente. |
Dirección del servidor | 1–247; ejemplo 1 | Use la dirección única configurada, no un valor de fábrica supuesto. |
Use una captura serie o la interfaz de diagnóstico del dispositivo para verificar el formato de trama y las respuestas reales. Una utilidad de terminal genérica solo resulta útil si puede enviar y mostrar el formato de bytes serie y la temporización requeridos.
Paso 2: Cableado y hardware
Haga coincidir la polaridad de la señal y el conductor de referencia según los manuales de ambos equipos. La denominación A/B no es uniforme entre fabricantes; no trate A+ y B− como etiquetas universales.
Use una topología de bus/troncal con derivaciones cortas y terminación en sus dos extremos físicos, según lo requieran el cable y los equipos. Aplique polarización, apantallamiento y puesta a tierra de acuerdo con el diseño de la instalación.
Compruebe primero la continuidad, los cortocircuitos, la alimentación y el aislamiento documentado. Evalúe la calidad de la señal con instrumentos apropiados; un único umbral de tensión en reposo no valida toda una instalación RS-485.
Paso 3: Tabla de registros de entrada
Elabore un mapa del proyecto a partir de la documentación del fabricante. Los puntos inventados siguientes ilustran los campos que conviene registrar; no constituyen un mapa utilizable de ningún producto nombrado:
Punto | Referencia del manual | Dirección de solicitud / función | Tipo / palabras | Escala | Unidad |
|---|---|---|---|---|---|
Temperatura | 40001 | 0 / 0x03, si el cliente usa desplazamientos de base cero | UINT16 / 1 | valor sin procesar ÷ 10 | °C |
Humedad | 40002 | 1 / 0x03, con la misma convención | UINT16 / 1 | valor sin procesar ÷ 10 | % RH |
Estado | 00001 | 0 / 0x01, con la misma convención | Coil / 1 bit | Significado documentado del bit | — |
Paso 4: Configurar sondeo en el Maestro
Elija un cliente PLC o de pasarela que admita la variante Modbus requerida y consulte la documentación exacta del bloque de función o de la aplicación.
Solo para el mapa ilustrativo: servidor serie 1, función 0x03, dirección inicial de base cero 0 y cantidad 2. Elija un intervalo inicial, por ejemplo 1 s, solo si lo permiten el tiempo de procesamiento del dispositivo y la carga del bus.
La solicitud genérica siguiente muestra los conceptos requeridos; es pseudocódigo, no una llamada a un bloque de función Siemens ni una API validada de una biblioteca de software.
request = {
variant: "RTU",
server_address: 1,
function_code: 0x03,
start_address: 0, // only for the illustrative map
quantity: 2
}
response = modbus_client.read(request)
verify_normal_response(response, expected_registers=2)Paso 5: Analizar tipos de datos
Ejemplo de escala: el entero sin procesar 256 equivale a 25.6 °C solo si la escala documentada es valor sin procesar ÷ 10.
Valores de varios registros: reconstruya la secuencia de bytes documentada y decodifique el tipo declarado. Un desplazamiento de bits y una operación OR crean un patrón de bits entero; por sí solos no convierten el valor a FLOAT.
El pseudocódigo de solo lectura siguiente evita suponer una versión concreta de biblioteca. El código de producción debe gestionar fallas de conexión, excepciones, longitud de respuesta y liberación de recursos.
Pseudocódigo ilustrativo:
response = serial_client.read_holding_registers(
server_address=1, start_address=0, quantity=1
)
if response.is_normal and len(response.registers) == 1:
temperature_c = response.registers[0] / 10.0 # illustrative scale
else:
record_error(response)Configurar Modbus TCP
Una conexión TCP correcta al puerto 502 no demuestra que la transacción Modbus sea válida ni que la medición sea correcta.
Paso 1: Confirmar IP del esclavo
Confirme la dirección IP y la subred configuradas en el servidor, por ejemplo 192.168.1.10/24. Se necesita una puerta de enlace predeterminada para el tráfico fuera de la subred y debe coincidir con el diseño real de la red.
Confirme el servicio de escucha Modbus TCP configurado y permita en el firewall solo la ruta de cliente prevista; el puerto 502 es habitual.
Una prueba de ping o de conexión TCP comprueba solo una parte de la ruta. Complete una solicitud Modbus documentada de solo lectura para verificar la aplicación.
Paso 2: Establecer parámetros de conexión
Configure los tiempos de espera, los reintentos, los intervalos de sondeo y la cantidad de conexiones permitidas dentro de los límites del cliente y el servidor; después, valídelos con la carga prevista.
TCP keep-alive puede ayudar a detectar una conexión fallida, pero no proporciona autenticación de aplicación. Modbus TCP básico no obtiene TLS al establecer una opción genérica del cliente; use un extremo seguro compatible o una ruta de red protegida.
Paso 3: Configurar lectura de registros
Use la misma función documentada y la misma interpretación de registros que correspondan al servidor, y configure el extremo TCP y el Unit Identifier que requieran el dispositivo de destino o la pasarela. Este es pseudocódigo conceptual, no una API de Python asociada a una versión concreta:
Pseudocódigo ilustrativo:
client = tcp_modbus_client(host="192.168.1.10", port=502)
response = client.read_holding_registers(
unit_identifier=1, start_address=0, quantity=1
)
verify_normal_response(response, expected_registers=1)
client.close()
# Address 0 and Unit Identifier 1 are illustrative, not universal settings.Ejemplo: Caso de configuración Modbus RTU/TCP en planta industrial
Escenario ilustrativo: una instalación de tratamiento de agua recopila lecturas de temperatura y pH de un dispositivo serie y luego pone las mediciones mapeadas a disposición de una aplicación MQTT autorizada. Una ruta Modbus TCP opcional sirve a un cliente de supervisión. El objetivo es validar toda la cadena de adquisición e interpretación; no es un caso de cliente con resultados medidos.
Dispositivos:
Dispositivo de campo: un medidor con documentación que confirme los puntos Modbus RTU requeridos; dirección ilustrativa 5, 9,600 bit/s, 8E1. Confirme su interfaz y configuración reales.
Pasarela o controlador de borde: admite explícitamente sondeo RTU, la interpretación de datos requerida y publicación MQTT; la conversión RTU/TCP o un servidor TCP opcionales deben verificarse por separado.
Extremo de aplicación: un broker y suscriptor MQTT autorizados, con acceso de red y protección del transporte adecuados para la implementación.
Flujo detallado:
Conecte el dispositivo de campo a los terminales serie documentados de la pasarela y conecte su interfaz Ethernet a la red prevista. Siga los requisitos de polaridad, terminación, referencia y aislamiento.
Configure el puerto serie de forma coherente con el dispositivo; use los valores ilustrativos 9,600 bit/s, 8E1 y dirección de servidor 5 solo si el manual los permite.
Cree una tarea de sondeo de solo lectura para el mapa de registros documentado. Para un mapa ilustrativo de base cero, la función 0x03, la dirección inicial 0 y la cantidad 2 leen las palabras de temperatura y pH. Confirme el mapa real y el intervalo admitido antes de usar un ciclo de 5 s.
Decodifique los valores UINT16 ilustrativos con la escala documentada: temperatura = primera palabra ÷ 10 y pH = segunda palabra ÷ 100. Compruebe por separado un valor físico conocido.
Configure el broker, las credenciales, el transporte y el tópico autorizados en la aplicación que realmente admita MQTT. Mapee mediciones identificadas y, si está disponible, una marca de tiempo válida de adquisición en la carga; no suponga que toda pasarela RTU/TCP publica MQTT.
Si se requiere y está admitida, configure por separado la exposición Modbus TCP con el Unit Identifier y el mapeo de registros documentados. Restrinja el acceso y valide el comportamiento de solo lectura antes de cualquier escritura aprobada.
Pruebe las respuestas serie, los valores mapeados, la entrega MQTT y el resultado interpretado por el suscriptor. Compare los tiempos de espera y errores de transmisión observados con los criterios de aceptación del proyecto, no con un objetivo universal de tasa de error inventado.
Ejemplo de salida (mensaje MQTT):
Carga útil JSON ilustrativa:
{
"device": "PH001",
"temperature_c": 23.6,
"ph": 7.12,
"status": "OK"
}Fallos comunes y métodos de resolución de problemas
Diagnostique a partir del resultado observado en vez de suponer probabilidades de falla. La tabla separa fallas de ruta, errores de transmisión, excepciones de aplicación e interpretación de valores. Registre la solicitud exacta, la respuesta y la configuración del dispositivo cuando el equipo lo permita:
Síntoma | Causas posibles | Comprobaciones / acción | Evidencia útil |
|---|---|---|---|
Sin respuesta / tiempo de espera agotado | Extremo o dirección serie incorrectos; cableado, parámetros serie, servicio de escucha, ruta o firewall | Compruebe la ruta pertinente y los parámetros documentados. En RS-485, verifique la polaridad en los manuales antes de cambiar el cableado. | Diagnóstico del dispositivo, captura de solicitud, traza de red/serie |
Errores CRC / LRC | Enlace serie dañado o ruidoso, incompatibilidad en el formato de trama, terminación o polarización | Revise velocidad en baudios, paridad, bits de parada, cableado, topología y aislamiento. Aplique el diseño de terminación y puesta a tierra del equipo. | Captura serie, osciloscopio cuando corresponda |
Excepción Modbus | Función no admitida, rango de direcciones inexistente o valor de solicitud inválido | Interprete la excepción y verifique la función, el rango y los derechos de acceso en el manual antes de cambiar la red. | Código de excepción, PDU solicitada, mapa de registros del dispositivo |
Valor incorrecto o desplazado | Convención de dirección, signo, escala, unidades u orden de varios registros | Lea un punto conocido; compare la dirección transmitida y decodifique la representación documentada. | Palabras sin procesar, manual, medición conocida de forma independiente |
Valor intermitente u obsoleto | Carga, comportamiento de sondeo/reintento, alimentación, caché de aplicación o inestabilidad del enlace físico | Relacione marcas de tiempo y errores, verifique los intervalos de actualización y la carga y, después, aísle la etapa que falla. | Logs de pasarela, carga del servidor, marcas de tiempo de adquisición |
Sin respuesta a difusión (broadcast) | Se esperaba incorrectamente una respuesta para la dirección serie 0 | Las escrituras serie de difusión (broadcast) admitidas no reciben respuesta; no haga lecturas de difusión ni use escrituras de difusión para las pruebas iniciales. | Especificación serie y documentación de compatibilidad del dispositivo |
Capture localmente las solicitudes y respuestas sin procesar si el equipo lo admite. Mantenga juntos la función, la dirección serie o el Unit Identifier, la dirección solicitada, los datos devueltos y la temporización pertinente. Use herramientas de diagnóstico confiables y las definiciones oficiales de trama; que un valor mostrado parezca plausible no valida por sí solo la transacción.
Empiece por un punto documentado de solo lectura. Compruebe la respuesta y el valor interpretado antes de añadir más puntos o permitir escrituras. Si llega una respuesta pero el valor mostrado es incorrecto, revise primero el mapa y la representación del dato antes de cambiar la ruta de red.
Si un valor del PLC, variador o SCADA no llega o queda desactualizado, siga la guía de diagnóstico PLC/Modbus.
Diagnosticar según el resultado observado
Si no hay respuesta, revise destino, servicio, ruta y firewall en TCP, o cableado, ajustes serie y dirección de dispositivo en RTU. Una excepción significa que respondió un extremo Modbus: revise función, rango y permiso. Un valor erróneo apunta a convención de dirección, signo, escala u orden de bytes y palabras. Un valor obsoleto puede deberse al intervalo de sondeo, caché de aplicación o a una variable que no cambia. Mantenga separados estos casos.
Para la puesta en marcha, empiece con un punto documentado de solo lectura y conserve petición y respuesta si el equipo permite capturarlas. Añada puntos en grupos pequeños, guardando mapa, unidades y ajustes del cliente probados. Permita escrituras solo tras aprobación del responsable del proceso, con objetivo conocido y retorno seguro. Si el acceso remoto cruza una red no confiable, protección del transporte, firewall y autorización de usuarios son requisitos separados; Modbus básico no los aporta.
Empiece por un punto documentado de solo lectura. Verifique su respuesta y su interpretación antes de ampliar la lista de sondeo o permitir una escritura aprobada.
Resumen
Modbus ha seguido siendo útil desde su origen en 1979 porque ofrece un modelo sencillo de datos de solicitud/respuesta y cuenta con el respaldo de equipos industriales establecidos. Su fortaleza práctica no es un porcentaje universal de fiabilidad: consiste en intercambiar puntos documentados cuando se conocen y validan el mapa del dispositivo, la interfaz y el comportamiento del cliente.
Las pasarelas pueden ampliar una instalación Modbus existente a una aplicación IP, de supervisión o en la nube cuando admiten las funciones de conversión y datos requeridas. Una red más rápida o una conexión 5G no proporcionan a Modbus un tiempo de sondeo garantizado, marcas de tiempo sincronizadas ni comportamiento TSN. Evalúe toda la ruta de adquisición, la interpretación y los requisitos de protección de la aplicación.
Use esta guía junto con las especificaciones de aplicación, línea serie y TCP/IP de Modbus Organization y los manuales exactos de los dispositivos. Empiece por un punto de solo lectura documentado, verifique la respuesta real y el valor de ingeniería, y después amplíe la configuración. Un mapa de registros claro y parámetros probados son más útiles que una receta universal supuesta.
Preguntas frecuentes
¿Son Modbus RTU y Modbus TCP el mismo protocolo?
Comparten el modelo de datos de aplicación y códigos de función relacionados, pero difieren en el formato de trama y el transporte. RTU usa una trama serie; Modbus TCP añade una cabecera MBAP y circula por TCP/IP.
¿El registro 40001 corresponde siempre a la dirección cero?
No. 40001 suele designar el primer holding register, representado con frecuencia por la dirección cero en una petición. Los manuales, controladores y pasarelas pueden mostrar o aceptar direcciones de otra manera. Compruebe las convenciones del dispositivo y del cliente.
¿Puede un router industrial corriente convertir Modbus RTU a Modbus TCP?
No de forma automática. El enrutamiento IP y la conversión Modbus son funciones distintas. El equipo concreto debe disponer de un modo de pasarela o conversión, y su manual debe explicar cómo asocia el dispositivo serie y las peticiones de registros.
¿Qué datos hacen falta para investigar un problema de conexión Modbus?
Facilite el dispositivo y firmware, la variante RTU/ASCII/TCP, los roles cliente/servidor, los ajustes serie o IP, el identificador del dispositivo, el mapa de registros, el código de función solicitado, la convención de direcciones y la codificación del valor. Incluya una captura breve de petición y respuesta si el equipo lo permite.
¿Una conexión al puerto TCP 502 demuestra que Modbus está listo?
No. Solo indica que respondieron un camino TCP y un servicio. Envíe una petición Modbus documentada de solo lectura y verifique función, Unit Identifier si aplica, dirección y valor interpretado.
¿Qué significa una excepción Modbus?
La trama llegó a un extremo Modbus. Examine la excepción, función solicitada y rango de direcciones antes de cambiar rutas. El manual determina qué operaciones y puntos implementa el dispositivo.
¿Puedo probar una escritura durante la puesta en marcha?
Use primero un punto documentado de solo lectura. Una escritura puede cambiar un proceso activo y solo procede con aprobación del responsable, objetivo conocido, comprobación del resultado y una forma segura de volver atrás.
Referencias
MODBUS Application Protocol Specification V1.1b3 — Modelo de datos, direccionamiento, formatos de códigos de función, límites de cantidad y respuestas de excepción.
MODBUS over Serial Line Specification and Implementation Guide V1.02 — Direccionamiento serie, tramas RTU/ASCII, temporización, paridad, bits de parada e implementación física.
MODBUS Messaging on TCP/IP Implementation Guide V1.0b — Cabecera MBAP, intercambios cliente/servidor TCP e integración con pasarelas.



