Comunicaciones industriales
Mapa MODBUS industrial: registros, ejemplo y errores
Una dirección no basta. Para intercambiar datos de forma fiable hay que acordar perspectiva, área, offset, tipo, orden de palabras, escala, calidad y propietario de cada variable.
La idea clave
Un mapa MODBUS es el documento que define qué datos intercambian los equipos y cómo interpretarlos. Debe indicar área, dirección u offset, tipo, longitud, escala y permisos. Para valores de varias palabras, también debe acordar su orden y comprobarlo con el manual del dispositivo.
Contenido
MODBUS es sencillo en apariencia, pero muchos problemas de puesta en marcha nacen de interpretaciones distintas. Un documento indica el registro 40001, otro utiliza offset 0 y el programa espera la dirección 1. El dato ocupa dos palabras, pero cada equipo las ordena de forma diferente. La variable existe, aunque nadie ha acordado quién la escribe.
El mapa de comunicaciones debe eliminar estas ambigüedades antes de programar.
1. Decisiones previas
Antes de crear filas, documenta la arquitectura:
- Protocolo y variante: MODBUS TCP o RTU.
- Rol de cada equipo: cliente/servidor o maestro/esclavo según la terminología utilizada.
- Direcciones IP o parámetros serie.
- Identificador de unidad cuando proceda.
- Frecuencia de consulta y tiempos de espera.
- Comportamiento ante pérdida de comunicación.
- Propietario de los valores: qué sistema tiene autoridad para escribir.
- Convención de direcciones que utilizará el documento.
Un mapa correcto comienza con una convención explícita; no con la primera dirección disponible.
2. Columnas recomendadas
| Campo | Finalidad | Ejemplo |
|---|---|---|
| Equipo origen/destino | Identifica los extremos del intercambio | PLC-01 ↔ VFD-101 |
| Variable | Nombre estable en PLC/HMI | VFD101_SpeedFeedback |
| Descripción | Explica la función | Velocidad real del variador |
| Dirección y offset | Evita confundir notaciones | Registro 40001 / offset 0 |
| Área/función | Distingue coils, inputs y registers | Holding register |
| Lectura/escritura | Define permisos y propietario | Lectura desde PLC |
| Tipo | Determina número de palabras e interpretación | UINT16 con escala, o Float32 si el fabricante lo define |
| Orden | Define bytes y palabras | High word first |
| Escala/unidad | Convierte dato bruto a ingeniería | 0,1 rpm |
| Rango | Ayuda a validar y alarmar | 0–1500 rpm |
| Calidad/fallo | Define uso ante dato inválido | Marcar dato no válido y ejecutar la acción definida por análisis funcional |
| Revisión | Controla la versión acordada | Rev. 03 |
3. Dirección absoluta, referencia y offset
Algunos documentos utilizan referencias como 40001; otros muestran el offset base cero; las librerías de PLC pueden pedir uno u otro. Es imprescindible escribir la convención al inicio y, si intervienen varias herramientas, mostrar ambas representaciones.
No asumir que «40001» se introduce literalmente en el bloque de comunicación. La interpretación depende del equipo, manual y librería. Validar con una variable conocida antes de desplegar el mapa completo.
También debe definirse si los rangos de lectura se agrupan. Leer bloques contiguos suele ser más eficiente que lanzar una petición por variable, pero no debe incluir zonas no soportadas ni exceder los límites del dispositivo.
4. Tipos de dato, palabras y escala
BOOL y bits
Una señal booleana puede ocupar un coil, un discrete input o un bit dentro de una palabra. Si se empaqueta, documentar palabra, bit y sentido lógico. Indicar si «1» significa activo, fallo o disponible.
Enteros
Distinguir con signo y sin signo. Un mismo patrón de 16 bits puede interpretarse de forma muy distinta. Añadir rango esperado permite detectar errores temprano.
Valores de 32 bits
Los valores de 32 bits representados en registros de 16 bits ocupan dos registros. El protocolo define la transmisión del byte más significativo primero dentro de cada registro; el orden entre registros y cualquier conversión del driver deben contrastarse con el fabricante. No basta con decir «float».
Escalado
Cuando el valor bruto necesita un factor, registrar fórmula, unidad y límites. El PLC y la HMI deben utilizar el mismo criterio para evitar mostrar y controlar magnitudes distintas.
Texto y arrays
Las cadenas requieren definir longitud, codificación, terminación y orden. Los arrays necesitan dimensiones y continuidad de registros.
5. Revisión antes de implementar
- Acordar roles y propietario de escritura.
- Comparar cada dirección con el manual vigente del equipo.
- Verificar solapes y huecos.
- Calcular el número de palabras por variable.
- Confirmar orden de bytes y palabras con una prueba.
- Definir escalas y unidades.
- Definir calidad, timeout y valor seguro ante fallo.
- Congelar una revisión firmada o aprobada por ambas partes.
- Probar lecturas y escrituras autorizadas en FAT, con condiciones seguras y antes de la puesta en marcha.
6. Errores frecuentes
- Mezclar referencia 40001 con offset 1 o 0 sin indicarlo.
- Asignar dos variables a registros que se solapan.
- Tratar un REAL de dos palabras como un entero de una palabra.
- Olvidar el orden de palabras.
- No indicar qué sistema puede escribir.
- Usar escalas distintas en PLC y HMI.
- Actualizar demasiado rápido y saturar un dispositivo.
- No definir qué ocurre al perder comunicación.
- Cambiar el mapa sin incrementar la revisión.
7. Conectar el mapa con señales y PLC
El mapa no debería ser una tabla ajena al resto de la automatización. Cada variable comunicada debe relacionarse con el equipo, el listado de señales y el nombre utilizado en PLC/HMI.
Cuando el origen es un instrumento multivariable, conserva su identificador en el índice de instrumentos y relaciona con él las variables del mapa. Varios registros o valores comunicados no significan varios instrumentos físicos ni el mismo número de canales cableados.
INELVIA incorpora el mapa MODBUS dentro del flujo de automatización y PLC. Esto permite distinguir señales físicas y comunicadas, mantener nombres coherentes y llevar la información hacia la base de programación.
Ejemplo de mapa MODBUS con offset base cero
Ejemplo ficticio para un servidor; no corresponde al mapa de ningún fabricante. En la convención tradicional de este ejemplo, la referencia 40001 identifica el primer holding register y su offset en el protocolo es 0. El cliente lee los valores definidos como holding registers mediante la función 03. No traslades estas direcciones a un equipo real sin revisar su documentación.
| Dato | Referencia documental | Offset / registros | Interpretación | Acceso acordado |
|---|---|---|---|---|
| Estado | 40001 | 0 / 1 registro | UINT16; significado de bits documentado aparte | Lectura desde PLC |
| Velocidad | 40002 | 1 / 1 registro | UINT16; valor bruto × 0,1 rpm | Lectura desde PLC |
| Valor de proceso | 40003–40004 | 2 / 2 registros | Float32; high word primero en este ejemplo | Lectura desde PLC |
Si el registro de velocidad devuelve 1234, la escala de este ejemplo produce 123,4 rpm. El valor de proceso ocupa los offsets 2 y 3: la siguiente variable no puede empezar en 3. Un registro contiene 16 bits; la interpretación Float32 y el orden entre sus dos palabras requieren un acuerdo con el dispositivo. Prueba primero una lectura conocida y después un bloque; ensaya escrituras únicamente en un entorno autorizado y seguro, nunca sobre órdenes de una máquina en servicio.
Incorpora las verificaciones de comunicación al plan FAT del cuadro y PLC: dato conocido, escala, calidad y comportamiento ante pérdida de comunicación. Define el resultado esperado y conserva el registro de prueba; una tabla de registros por sí sola no acredita que la integración esté verificada.
Preguntas frecuentes
¿40001 significa que debo configurar la dirección 40001?
No necesariamente. Puede ser una referencia documental del área holding registers. Según el controlador o la librería, el campo de configuración espera un offset base cero o una numeración base uno. Documenta ambas representaciones y prueba un dato conocido.
¿Un REAL siempre ocupa dos registros?
Un valor de 32 bits necesita dos registros de 16 bits en esa representación. Debes confirmar que el fabricante utiliza Float32, su orden de palabras y cualquier adaptación del driver; no basta con etiquetar la variable como analógica.
¿El mapa define qué ocurre cuando se pierde la comunicación?
Debe documentarlo o referenciar la filosofía correspondiente. Identifica dato obsoleto, timeout, alarma y acción prevista. El último valor recibido no se debe presentar como un dato actualizado ni utilizarse sin evaluar las consecuencias.
Referencias y alcance
Consulta la documentación oficial y el manual de la versión instalada. Los ejemplos de esta guía son didácticos y no sustituyen la validación del proyecto.
Mapa dentro del proyecto
Conecta MODBUS con equipos, señales y variables PLC
Conoce INELVIA Lite, gratuito y con funciones limitadas. INELVIA Profesional reúne todas las funciones. Consulta el alcance de cada plan antes de elegir.