
Protocolo de Aplicación Modbus Especificación V1.1b3: Desglose Paso a Paso
Vamos a explorar el protocolo de aplicación Modbus, guiándote a través de los conceptos clave y la estructura del mensaje. Este protocolo es ampliamente utilizado en la automatización industrial.
Comencemos con una visión general. Modbus es un protocolo de comunicación que permite la comunicación entre dispositivos, a menudo un dispositivo maestro (como una computadora) y uno o más dispositivos esclavos (como sensores o actuadores).
Paso 1: La Unidad de Datos del Protocolo de Aplicación (ADU) Modbus
Must Read
La ADU Modbus es la unidad completa de datos enviada a través de la red. Contiene la Unidad de Datos del Protocolo (PDU) y posiblemente un campo de dirección para identificar el dispositivo esclavo.
Piensa en ello como un sobre. El sobre contiene la dirección (para quién es) y el contenido (la PDU).
Ejemplo: Si usamos Modbus RTU, la ADU incluirá una dirección de esclavo, la PDU y una verificación de redundancia cíclica (CRC).
Paso 2: La Unidad de Datos del Protocolo (PDU) Modbus
La PDU es el núcleo del mensaje Modbus. Contiene el código de función y los datos.

Imagina la PDU como la carta dentro del sobre. Tiene el mensaje real que quieres enviar.
La PDU tiene un límite de 253 bytes. Esto es importante al diseñar mensajes.
Paso 3: El Código de Función Modbus
El código de función especifica la acción que el maestro quiere que el esclavo realice. Es un byte (8 bits) que indica el tipo de solicitud.
El código de función es como el tipo de carta que estás enviando (por ejemplo, una solicitud de lectura o una solicitud de escritura).

Ejemplos comunes:
- 0x01: Leer bobinas (Read Coils)
- 0x03: Leer registros de retención (Read Holding Registers)
- 0x05: Escribir una sola bobina (Write Single Coil)
- 0x06: Escribir un solo registro (Write Single Register)
Paso 4: Datos Modbus
Los datos siguen al código de función y proporcionan información adicional. Esto podría ser la dirección del registro que se va a leer o el valor que se va a escribir.
Los datos son como los detalles dentro de la carta. Si estás solicitando la lectura de un registro, los datos especificarán qué registro.
Ejemplo: Para leer dos registros de retención a partir de la dirección 40001 (que en Modbus se representa internamente como 0x0000), los datos serían la dirección de inicio (0x0000) y el número de registros a leer (0x0002).

Paso 5: Formato de Mensaje Modbus RTU (Ejemplo)
En Modbus RTU, el mensaje tiene la siguiente estructura básica:
Dirección del esclavo (1 byte) + Código de función (1 byte) + Datos (n bytes) + CRC (2 bytes)
Ejemplo: Supongamos que el maestro quiere leer dos registros de retención a partir de la dirección 40001 del esclavo con dirección 17 (0x11). El mensaje Modbus RTU podría ser algo como esto: 0x11 0x03 0x00 0x00 0x00 0x02 CRC_Lo CRC_Hi
Donde 0x11 es la dirección del esclavo, 0x03 es el código de función (leer registros de retención), 0x00 0x00 es la dirección inicial, 0x00 0x02 es el número de registros a leer, y CRC_Lo CRC_Hi son los bytes de cálculo de redundancia cíclica.

Paso 6: Procesamiento de la Respuesta Modbus
El dispositivo esclavo responderá al maestro con un mensaje. La estructura del mensaje de respuesta es similar a la solicitud, pero el contenido de los datos variará.
Si la solicitud fue exitosa, los datos en la respuesta contendrán los valores solicitados.
Si hubo un error, el código de función en la respuesta se modificará (se le sumará 0x80) y los datos contendrán un código de excepción.
Comprender estos pasos es crucial para implementar y depurar sistemas Modbus. Recuerda, la práctica hace al maestro.