Ir al contenido

Fundamentos de Modbus: tipos de datos, códigos de función, RTU y TCP

Fundamentos de Modbus

Modbus es un protocolo de comunicación ampliamente utilizado con PLCs (Controladores Lógicos Programables). Este protocolo utiliza líneas de comunicación serial o Ethernet como capa de transporte y permite la comunicación hacia y desde múltiples dispositivos conectados al mismo cable o red Ethernet. Los PLCs de Industrial Shields son compatibles con Modbus RTU a través de RS-232 o RS-485, así como con Modbus TCP a través de Ethernet.

Características clave

  • Arquitectura maestro-esclavo/cliente-servidor: Modbus utiliza una arquitectura maestro- esclavo (o cliente-servidor). En este sistema, un dispositivo actúa como maestro, iniciando la comunicación al enviar solicitudes, mientras que los dispositivos esclavos responden a estas.
  • Sencillo y confiable: Es conocido por su simplicidad y fiabilidad, lo que lo convierte en una opción adecuada para aplicaciones de control en tiempo real.
  • Funciones estándar: Modbus define un conjunto de funciones para leer y escribir datos, entre ellas:
    • Lectura y escritura de salidas discretas (bobinas) y lectura de entradas discretas.
    • Lectura y escritura de múltiples registros.

Tipos de datos

En Modbus, los tipos de datos se pueden dividir principalmente en dos categorías: bobinas (coils)y registros (registers). Las bobinas (coils) se pueden entender como digitales, ya que solo pueden estar en estados ON (1) o OFF (0). Los "coils" pueden representar entradas, que monitorean el estado de interruptores o sensores, o salidas, que controlan dispositivos como motores o luces.

Los registros (registers), por otro lado, son de 16 bits (2 bytes) sin signo, lo que les permite contener valores que van de 0 a 65535 (0 a FFFF). Sin embargo, tienen limitaciones, como no poder representar números negativos, números de punto flotante o valores superiores a 65535, sin un tratamiento adicional o combinando varios registros.

La siguiente tabla resume los tipos de objetos en Modbus:

Tipos de objetos

Acceso

Longitud

Rol

Entrada discreta

Solo lectura

1 bit

Entrada digital

Bobinas (Coils)

Lectura/escritura

1 bit

Salida digital

Registros de entrada

Solo lectura

16 bits

Entrada analógica

Registros de retención

Lectura/escritura

16 bits

Salida analógica

Nuestros PLCs permiten un control y monitoreo precisos al referenciar bobinas (coils) y registros (registers), tanto entradas como salidas, según roles específicos.

Códigos de función

Modbus funciona como un protocolo de solicitud y respuesta, utilizando códigos de función, para especificar los servicios que ofrece. Estos códigos son elementos clave de la Unidad de Datos del Protocolo Modbus (PDU), que definen las tareas que los dispositivos servidor (esclavo) deben realizar al recibir una solicitud del cliente (maestro).

El campo del código de función en un mensaje Modbus es un byte único, con valores válidos que van del 1 al 255. Los códigos del 128 al 255 están reservados para respuestas de excepciones. Y el código '0' no se utiliza. Cuando un cliente envía una solicitud a un servidor, el código de función indica el tipo de operación a ejecutar. Como la lectura o escritura de bobinas, entradas discretas, registros de mantenimiento o registros de entrada.

Códigos de función comunes

Código de función (FC) Acción Nombre de la función
01 Lectura Lectura de bobinas (coils)
02 Lectura de entradas discretas
03 Lectura de registros de retención
04 Lectura de registros de entrada
05 Escritura Bobina única
06 Registro de retención único
15 Múltiples bobinas
16 Varios registros de retención

Versiones de Modbus

Modbus RTU

Modbus RTU es una implementación de Modbus que utiliza representación binaria y transmisión asíncrona. Generalmente, se usa sobre interfaces seriales RS-232 o RS-485.

En Modbus RTU, los datos se transmiten en un formato binario compacto, lo que lo hace eficiente para la comunicación a través de líneas seriales.

Formato del marco

Un marco de Modbus RTU consta de los siguientes campos:

  • Address Field: Identifica al dispositivo esclavo.
  • Function Code: Indica el tipo de acción a realizar.
  • Data Field: Contiene los datos de la solicitud o respuesta.
  • CRC (Cyclic Redundancy Check): Asegura la integridad del mensaje.

Dependiendo del código de función utilizado, los datos en el marco cambian:

  • Para los "Read function codes", que comprenden desde FC=01 hasta FC=04, en el marco se debe especificar la Dirección (Address) de la primera bobina (coil)/registro (dependiendo del código de función utilizado) y el Número (Num) de bobinas (coils)/registros (registers) a leer.

  • Para los "Write Single Coil/Register function codes", que son FC=05 y FC=06, en el marco se debe especificar la Dirección (Address) de la bobina (coil)/registro (register) a escribir (dependiendo del código de función utilizado) y el Valor (Value) de las bobinas (coils)/registros (registers) a escribir.

  • Para los Write Multiple Coils/Registers function codes, que son FC=15 y FC=16, en el marco se debe especificar la Dirección (Address) de la primera bobina (coil)/registro (register) a escribir (dependiendo del código de función utilizado), el Número (Num) de bobinas (coils) / registros (registers) a escribir, el número de bytes de datos en la solicitud (BC) y los valores de las bobinas (coils) /registros (registers) a establecer en valores (values).


Modbus TCP

Modbus TCP es una implementación del protocolo Modbus que utiliza Ethernet como su capa de transporte.

Modbus TCP ofrece ventajas como tasas de transmisión de datos más rápidas, mayor cobertura de distancia y una integración más fácil con otros sistemas basados en Ethernet.

Formato del marco

Un marco de Modbus TCP consta de varios campos:

  • Cabecera MBAP (Modbus Application Protocol):
    • Transaction Identifier: Empareja las solicitudes con las respuestas.
    • Protocol Identifier: Siempre cero para Modbus.
    • Length: Indica el número de bytes restantes del mensaje.
    • Unit Identifier: Identifica el dispositivo servidor remoto.
  • Function Code: Indica el tipo de acción a realizar.
  • Data: Contiene los datos de la solicitud o respuesta.

El campo de Datos (Data) del marco actúa de la misma manera que con Modbus RTU, dependiendo del código de función utilizado.

Calificación
0 0

No hay comentarios por ahora.

para ser el primero en comentar.