Ingeniería Modbus

Cómo leer cualquier mapa de registros Modbus

Cada dispositivo Modbus llega con su propio mapa de registros, y cada mapa tiene sus trampas. Aprende los cuatro tipos de datos, los códigos función de lectura/escritura y los dos errores en los que caen hasta los integradores más experimentados.

Evaluación técnica independienteMontaje de cuadros según IEC 61439Soporte de proyectos en toda la UE
A / B
120Ω
Holding vs Input
Leer un mapa de registros en cuatro pasos

Leer un mapa de registros en cuatro pasos

01

Identifica el tipo de dato

Comprueba si el valor está en una coil, una entrada discreta, un registro input o holding — de eso dependen el código función y los derechos de acceso.

02

Elige el código función correcto

FC03/FC04 leen registros holding e input, FC06/FC16 escriben uno o varios registros. Un código equivocado devuelve una excepción, no datos.

03

Resuelve el desfase de direccionamiento

Averigua si la documentación usa la numeración Modicon (p. ej. 40001) o la dirección de protocolo realmente transmitida, basada en 0 — confundir ambas es el error de integración más habitual.

04

Verifica el orden de bytes y palabras

Para cualquier valor de 32 bits repartido en dos registros, confirma el orden de palabras del fabricante con un valor de prueba conocido antes de confiar en el resultado escalado.

Con qué tropiezan realmente los ingenieros

Con qué tropiezan realmente los ingenieros

40001 vs 0

La trampa del desfase de direccionamiento

La numeración Modicon empieza los registros en 40001, pero la dirección realmente transmitida en el bus se cuenta desde 0 — el registro 40001 es la dirección de protocolo 0. Un error aquí desplaza cada lectura en uno.

Cuatro tipos de datos, dos niveles de acceso

Las coils y entradas discretas son valores de 1 bit; los registros input y holding son palabras de 16 bits. Solo las coils y los registros holding se pueden escribir — los datos input y las entradas discretas son de solo lectura por diseño.

El código función decide qué puedes hacer

FC01/02 leen coils y entradas discretas, FC03/04 leen registros holding e input, FC05/06 escriben una sola coil o registro, FC15/16 escriben varios. El dispositivo rechaza cualquier código no admitido para ese tipo de dato.

La trampa 40001/30001

La numeración histórica Modicon (40001, 30001…) no coincide con la dirección basada en 0 que se transmite en el bus. Comprueba siempre qué convención usa cada hoja de datos antes de configurar un sondeo.

El orden de palabras no está estandarizado

Cuando dos registros de 16 bits forman un valor de 32 bits, los fabricantes difieren en cuál registro contiene la palabra alta. Una suposición incorrecta produce cifras verosímiles pero equivocadas.

Sin autenticación integrada

Ni Modbus RTU ni el Modbus TCP clásico se diseñaron pensando en la seguridad — cualquier dispositivo del bus o de la red puede enviar un comando válido. La segmentación de red y una pasarela que entienda el protocolo cubren lo que el propio protocolo no hace.

Opciones

Soporte de ingeniería para integraciones Modbus

Cuando un mapa de registros no se comporta como indica la documentación, nuestros ingenieros lo verifican antes de la puesta en marcha, no durante un retraso en obra.

  • Revisión del mapa de registros frente a la documentación del fabricante
  • Verificación de códigos función y convención de direccionamiento antes de la puesta en marcha
  • Revisión de la topología de red RS-485 y la terminación
  • Comprobación del orden de palabras/bytes para valores multirregistro
  • Montaje de cuadros y soporte de integración según IEC 61439
FAQ

Preguntas frecuentes

¿Cuál es la diferencia entre un registro holding y uno input?

Ambos son palabras de 16 bits, pero el registro holding admite lectura y escritura (código función 03 para leer, 06/16 para escribir), mientras que el registro input es solo de lectura (código función 04). Esto lo define el firmware del dispositivo — comprueba en la hoja de datos cuál contiene el valor que necesitas.

¿Por qué mi lectura Modbus es exactamente el doble, la mitad o completamente incorrecta?

Casi siempre es un problema de orden de palabras (endianness) cuando un valor de 32 bits se reparte en dos registros de 16 bits. Los fabricantes no coinciden en si la palabra alta o la baja va primero — invierte el orden de los registros y compáralo con un valor de referencia conocido.

¿Por qué el registro 40001 de la hoja de datos corresponde a la dirección 0 en el bus?

Viene de la historia de Modbus: la numeración histórica Modicon empieza los registros holding en 40001, pero la dirección de protocolo realmente transmitida se cuenta desde 0. Registro 40001 = dirección de protocolo 0, registro 40002 = dirección 1, y así sucesivamente.

¿Qué código función uso para escribir un valor en un dispositivo Modbus?

FC06 escribe un único registro holding, FC05 una única coil. FC16 escribe varios registros holding en una sola transacción, FC15 varias coils. Nunca se puede escribir en un registro input ni en una entrada discreta — son de solo lectura por diseño.

¿Tiene Modbus alguna seguridad integrada?

No. Ni Modbus RTU ni el Modbus TCP clásico incluyen autenticación o cifrado en su especificación — cualquier nodo del bus o de la red puede enviar un comando válido. La seguridad debe venir de fuera del protocolo: segmentación de red, una pasarela consciente del protocolo y restringir quién puede acceder a la red de automatización.

¿Necesitas una segunda opinión sobre tu integración Modbus?

Nuestros ingenieros revisan mapas de registros, cableado y planes de puesta en marcha antes de que se conviertan en un retraso en obra. Contacta con nosotros.

Contactar con ingenieros
Páginas relacionadas

Páginas relacionadas

Cargando...
Volver arriba