Saltar al contenido principal

Modbus TCP

El protocolo Modbus TCP en InDataX permite la comunicación con una amplia variedad de dispositivos industriales sobre redes Ethernet. Este driver es versátil y permite tanto conexiones estándar TCP/IP como conexiones TCP sobre RTU (encapsulado).

Parámetros de Conexión

Para configurar el canal de comunicación Modbus TCP, define los siguientes campos:

  • Nombre: Identificador único del protocolo.
  • Tipo de conexión: Selecciona entre TCP/IP (estándar) o TCP sobre RTU (si el dispositivo Modbus RTU está tras una pasarela/gateway).
  • Dirección IP: La dirección IP del dispositivo esclavo o pasarela.
  • Puerto: El puerto de escucha (habitualmente el 502).
  • ID de esclavo Modbus: Identificador del dispositivo (Unit ID), habitualmente 1.

Configuración de Variables

El acceso a los datos en Modbus se realiza mediante registros. InDataX permite mapear estos registros de forma sencilla:

  • Nombre: Nombre de la variable en InDataX.
  • Tipo: Tipo de dato para la conversión (Real, Entero, Booleano, etc.).
  • Registrar valor: Inclusión en los históricos de la Thing.
  • Dirección Modbus: Dirección numérica del registro inicial.
  • Longitud: Número de registros que componen la variable (p.ej. 2 registros para un valor de 32 bits).
  • Tipo de registro:
    • Bobina (Coil): Bits de salida que permiten lectura y escritura (p.ej. activar un relé).
    • Entrada discreta (Discrete Input): Bits de entrada de solo lectura (p.ej. estado de un sensor digital).
    • Registro de retención (Holding Register): Registros de 16 bits que permiten lectura y escritura. Es el tipo más común para setpoints y configuraciones.
    • Registro de entrada (Input Register): Registros de 16 bits de solo lectura para datos de proceso (p.ej. valores de sensores analógicos).
  • Con signo: Indica si el valor debe ser interpretado como un número con signo (positivo/negativo).
Registro vs Dirección

Asegúrate de verificar si el manual de tu dispositivo utiliza direcciones basadas en 0 o en 1, ya que esto suele ser la causa más común de errores de lectura.

Ejemplo de Configuración

A continuación se muestran ejemplos comunes de cómo mapear datos industriales mediante Modbus TCP:

VariableTipoDirecciónLongitudTipo RegistroNotas
temperatura_hornoReal1002Registro de retenciónUn valor de 32 bits ocupa 2 registros de 16 bits.
estado_motorBooleano101BobinaLectura/Escritura de un bit individual de salida.
caudal_m3hEntero2001Registro de entradaValor de 16 bits de solo lectura desde un sensor.
entrada_digitalBooleano51Entrada discretaEstado de un contacto físico de solo lectura.
Orden de Bytes (Endianness)

En Modbus TCP, si lees valores de 32 bits (como Reales), el orden de los registros o bytes puede variar según el fabricante (Little-Endian vs Big-Endian). Si obtienes valores incoherentes, es posible que debas ajustar el orden de lectura en la lógica del sistema.