Glosario de Automatización • Tipos de registro de Modbus (coils, entradas discretas, registros de entrada y de retencion)

Tipos de registro de Modbus: coils, entradas discretas, registros de entrada y de retencion

Ingeniería Merobix • • 8 min de lectura

Modbus organiza todo lo que un dispositivo expone en apenas cuatro tablas, y saber en cual tabla vive un valor es el primer paso para leerlo correctamente. Dos de las tablas guardan bits individuales, dos guardan palabras de dieciseis bits, y cada una tiene su propia regla sobre si un maestro solo puede leerla o tambien escribirla. Esta guia recorre los cuatro tipos de registro de Modbus, que pertenece a cada uno, y como un integrador mapea los estados, niveles y consignas de una RTU de pozo a la tabla correcta para que un sondeo de SCADA en la nube tome los valores adecuados.

Volver al glosario

Tipos de registro de Modbus (coils, entradas discretas, registros de entrada y de retencion) en una línea: Modbus define cuatro tablas de datos: coils (bits individuales de lectura y escritura, con frecuencia salidas digitales), entradas discretas (bits individuales de solo lectura, con frecuencia entradas digitales), registros de entrada (palabras de dieciseis bits de solo lectura, con frecuencia mediciones) y registros de retencion (palabras de dieciseis bits de lectura y escritura, con frecuencia consignas y valores de proposito general). Los coils y las entradas discretas llevan estados de encendido/apagado, mientras que los registros de entrada y de retencion llevan numeros. Las dos tablas de solo lectura reflejan condiciones de campo que el maestro no debe cambiar, y las dos tablas de lectura y escritura permiten al maestro comandar salidas y ajustar configuraciones.

Las cuatro tablas y que pertenece a cada una

Las cuatro tablas se dividen a lo largo de dos ejes: bit frente a palabra, y solo lectura frente a lectura y escritura. Los coils son bits individuales que un maestro puede leer y escribir, historicamente representando salidas fisicas de relevador, asi que un coil es donde mapearia un comando como arrancar una bomba o abrir una valvula. Las entradas discretas son bits individuales que un maestro solo puede leer, historicamente representando entradas digitales fisicas, asi que guardan estados de campo como un contacto de bomba en marcha, un flotador de nivel alto o un sensor de puerta abierta - condiciones que el maestro observa pero no debe sobrescribir.

Las dos tablas del tamano de una palabra llevan numeros en lugar de estados de encendido/apagado. Los registros de entrada son valores de dieciseis bits que un maestro solo puede leer, bien adaptados a las mediciones que vienen del campo: un nivel de tanque, un caudal, una presion, una temperatura. Los registros de retencion son valores de dieciseis bits que un maestro puede leer y escribir, lo que los vuelve el hogar de consignas, valores de configuracion y cualquier numero que el maestro pueda necesitar cambiar, como un nivel objetivo o un factor de escala. Un registro de retencion tambien puede leerse de regreso, por lo que muchos dispositivos exponen mediciones ahi aunque un registro de entrada seria la opcion mas estricta.

Los nombres historicos importan porque explican las reglas de lectura y escritura que aun aplican. Los coils y las entradas discretas tomaron sus nombres de las bobinas de relevador y las entradas discretas de campo; los registros de entrada eran entradas medidas de solo lectura; los registros de retencion eran memoria de lectura y escritura que el controlador retenia. Los dispositivos modernos ya no mapean uno a uno sobre relevadores y flotadores, pero la distincion de solo lectura frente a lectura y escritura sobrevive: las entradas discretas y los registros de entrada son de solo lectura por protocolo, los coils y los registros de retencion son de lectura y escritura, y un maestro que intenta escribir en una tabla de solo lectura recibe un error en lugar de un cambio.

Solo lectura frente a lectura y escritura y los rangos de direccion

La division entre solo lectura y lectura y escritura no es una sugerencia: la imponen los codigos de funcion que el protocolo permite contra cada tabla. Hay funciones de lectura para las cuatro tablas, pero funciones de escritura solo para los coils y los registros de retencion. Por eso vale la pena acertar en la distincion al momento de mapear: una medicion de campo colocada en un registro de entrada queda protegida de escrituras accidentales porque ninguna funcion de escritura puede alcanzarla, mientras que una consigna que el maestro debe ajustar tiene que vivir en un coil o un registro de retencion o el maestro no tendra forma legal de cambiarla.

Cada tabla tambien tiene su propio espacio de direcciones, y la numeracion clasica de referencia de Modbus lo refleja: los coils son el rango 0x, las entradas discretas el rango 1x, los registros de entrada el rango 3x y los registros de retencion el rango 4x. Estos digitos iniciales son una convencion humana para nombrar a que tabla pertenece una direccion, no parte de la direccion enviada por el cable, y confundir el numero de referencia con la direccion del cable es una fuente comun de errores de desplazamiento por uno. Lo que importa para el mapeo es que el mismo desplazamiento numerico en dos tablas distintas se refiere a dos piezas de datos completamente diferentes: el coil 5 y el registro de retencion 5 no tienen nada que ver entre si.

Como las tablas son independientes, un dispositivo puede poblarlas de la forma que su disenador eligio, y no hay garantia de que un valor viva donde la intuicion sugiere. Un fabricante podria exponer el estado de marcha de una bomba como una entrada discreta en un producto y como un bit empacado en un registro de retencion en otro. Por eso un integrador siempre trabaja desde el mapa de registros del dispositivo en lugar de suposiciones: el mapa indica, para cada valor, en cual tabla esta, en que desplazamiento, y si es de solo lectura o de lectura y escritura, y esa es la fuente autoritativa para construir un sondeo correcto.

Mapear una RTU de pozo a un sondeo de SCADA en la nube

Cuando un SCADA en la nube sondea una RTU de pozo, esta leyendo tablas especificas en desplazamientos especificos, asi que el trabajo del integrador es alinear cada senal de campo con la tabla correcta. El estado de marcha de una bomba es un solo estado de encendido/apagado que el SCADA solo necesita observar, asi que mapea con naturalidad a una entrada discreta. Un nivel de tanque es un numero medido que el SCADA lee pero no debe cambiar, asi que pertenece a un registro de entrada, o a un registro de retencion si el dispositivo expone mediciones ahi. Una consigna de control que el SCADA necesita enviar a la RTU - un nivel objetivo o un valor de temporizador - tiene que ser un registro de retencion, porque solo los registros de retencion aceptan una escritura del maestro.

Acertar en la tabla es lo que hace que el sondeo devuelva valores correctos y que las escrituras surtan efecto. Si un nivel se mapea como un coil, el sondeo leera un solo bit en lugar de un numero completo de dieciseis bits y la lectura no tendra sentido. Si una consigna se mapea por error como un registro de entrada, el SCADA podra leerla pero cada intento de cambiarla fallara porque la tabla es de solo lectura. Una plataforma como Merobix lee estas tablas por Modbus y convierte cada una en un tag vivo - un indicador de marcha, una tendencia de nivel, una consigna escribible - y el tag solo se comporta bien cuando apunta a la tabla correcta.

El flujo de trabajo practico es tomar el mapa de registros de la RTU, agrupar sus senales por tipo - estados digitales, comandos digitales, mediciones analogicas, configuraciones ajustables - y asignar cada grupo a la tabla correspondiente antes de construir el sondeo. Los estados digitales de campo van a entradas discretas, los comandos digitales a coils, las mediciones a registros de entrada y las configuraciones a registros de retencion. Hacer esto de forma deliberada, en lugar de vaciar todo en registros de retencion porque son de lectura y escritura e indulgentes, mantiene el mapa autodocumentado y previene la clase de errores en que un SCADA puede tecnicamente leer un valor pero el valor que lee tiene la forma equivocada o esta en el lugar equivocado.

Preguntas frecuentes

Cual es la diferencia entre un coil y una entrada discreta en Modbus?

Ambos son valores de un solo bit, pero un coil es de lectura y escritura y una entrada discreta es de solo lectura. Los coils representaban historicamente salidas de relevador, asi que ahi es donde un maestro escribe comandos como arrancar una bomba o abrir una valvula. Las entradas discretas representaban historicamente entradas digitales de campo, asi que guardan estados observados como un contacto de marcha o un interruptor de nivel que el maestro lee pero no puede cambiar.

Una medicion debe ir en un registro de entrada o en uno de retencion?

En sentido estricto, una medicion que el maestro solo lee pertenece a un registro de entrada, porque los registros de entrada son de solo lectura y no pueden sobrescribirse por accidente. En la practica muchos dispositivos colocan mediciones tambien en registros de retencion, ya que estos tambien pueden leerse, pero el mapeo mas limpio pone las mediciones de solo lectura en registros de entrada y reserva los de retencion para valores que el maestro necesita escribir, como consignas.

Por que la misma direccion significa cosas distintas en tablas de Modbus diferentes?

Las cuatro tablas de Modbus son espacios de direccion independientes, asi que el desplazamiento 5 en la tabla de coils y el desplazamiento 5 en la tabla de registros de retencion se refieren a piezas de datos completamente distintas. El digito inicial en la numeracion clasica de referencia - 0x, 1x, 3x, 4x - identifica a que tabla pertenece una direccion, pero ese digito no se envia por el cable. Por eso un integrador siempre debe conocer tanto la tabla como el desplazamiento de cada valor, tomados del mapa de registros del dispositivo.

Más en PLC, RTU, HMI y DCS
Tipos de datos de registros Modbus  •  Orden de bytes (endianness) en Modbus  •  Límite de 125 registros  •  Flotante de 32 bits en dos registros Modbus  •  Mapa de registros Modbus  •  Todo en PLC, RTU, HMI y DCS →
Capacitación SCADA gratuita para operadores
Merobix University - 70 lecciones en video y 261 preguntas de examen, del primer inicio de sesión a los reportes de cumplimiento (contenido en inglés). Sin llamada de ventas.
Comenzar gratis →