Protocolo Modbus
11.2 Driver Modbus/TCP
11.2.1 Protocolo Modbus
Página 146
Un marco Modbus/TCP típico consta de los siguientes campos:
Cabecera MBAP
La cabecera MBAP (Cabecera de protocolo de aplicación Modbus) consta de 7 bytes de
información:
Identificador de
2 bytes
transacción
Identificador de
2 bytes
protocolo
Longitud
2 bytes
Identificador de
1 byte
unidad
El campo Código de función de un mensaje contiene 8 bits. Los códigos de funciones
válidas son entre 1 - 255 decimal. El código de función instruye al esclavo sobre el tipo
de acción que debe tomar. La función Modbus/TCP sólo acepta Códigos de función: FC3
(Read Multiple Registers) y FC6 (Preset Single Register). La limitación de 125 registros
es establecida por el estándar Modbus/TCP para mantener una consistencia con el
estándar del protocolo Modbus original, aunque un paquete TCP/IP pueda aceptar más
datos.
Cuando un esclavo responde al maestro, utiliza el campo de códigos de función para
indicar una respuesta normal o la aparición de algún tipo de error. Para una respuesta
normal, el esclavo copia el codigo de función original. En una condición de error, el
esclavo copia el código de función original con su MSB ajustado a lógico 1.
El campo de Datos se crea utilizando juegos de dos dígitos hexadecimales del orden de
00 a FF. Según el modo de transmisión serie de la red, estos dígitos pueden estar
formados por un par de caracteres ASCII o un carácter RTU. El campo de datos contiene
también información adicional utilizada por el esclavo para ejecutar la acción definida por
el código de función. Esto puede incluir direcciones internas, cantidad de elementos a
manejar, etc.
El campo de datos de una respuestas desde un esclavo a un maestro contiene los datos
solicitados si no se produce ningún error. Si se produce un error, el campo incluye un
código de excepción utilizado por el maestro para determinar la siguiente acción a
realizar. El campo de datos puede no existir en determinados tipos de mensajes.
Función
Se utiliza para el emparejamiento de transacciones, es decir, la
identificación de transacciones de petición-respuesta. El
servidor Modbus/TCP copia el identificador de la transacción de
la petición en la respuesta.
Se utiliza para multiplexado entre sistemas. El protocolo
Modbus/TCP se identifica por el valor 0.
El campo de longitud es un cómputo de bytes de los siguientes
campos, incluyendo el Identificador de unidad.
Este campo se utiliza para fines de enrutado entre sistemas.
Generalmente se utiliza para comunicar con un esclavo
MODBUS o una línea serie MODBUS+ a través de una gateway
entre una red Ethernet TCP/IP y una línea serie MODBUS. Este
campo es ajustado por el MODBUS Cliente en la petición y
debe ser devuelto por el servidor con el mismo valor en la
respuesta.
Datos