ORTEA SpA
10 PROTOCOLO DE COMUNICACIÓN MODBUS® TCP/IP
ATENCIÓN E
L PROTOCOLO DE COMUNICACIÓN
DE COMUNICACIÓN REMOTA NO ANTERIOR A LA VERSIÓN
N
O SE SUMINISTRA NINGUNA INTERFAZ PARA LA GESTIÓN DE LA COMUNICACIÓN DE LOS DATOS
Las funciones principales de un servidor MODBUS® son:
Espera de una respuestas MODBUS® en el puerto TCP 502;
Gestión de dicha solicitud;
Suministro de una respuesta MODBUS® en base al contest del dispositivo.
Los tipos de datos del Modbus son:
Input register (informaciones sólo lectura): word 16 bit
-
Holding register (informaciones lectura):
-
La comunicación está basada en un pequeño paquete de datos, llamado Protocol Data Unit (PDU). Hay tres tipos de PDU:
Request PDU, caracterizado por un código que especifica la función (Function Code, 1 byte) y un campo de datos de
-
número variable
Response PDU, caracterizado por un código que especifica la función (Function Code, 1 byte) y un campo de datos de
-
número variable
Exception Response PDU (respuesta en caso de error), caracterizado por código de función correspondiente a la
-
solicitud + 0x80 (128) y por el código que define el error. (Exception Code, 1 byte)
Este paquete está dentro de un mensaje denominado Application Data Unit (ADU):
El mensaje MODBUS®TCP/IP ADU es simplemente un paquete PDU con un título llamado MODBUS Application Protocol
header (MBAP).
10.1 P
MODBUS®
ROTOCOLO
La estructura del mensaje es la siguiente:
Transaction ID
Protocol ID
(16 bit)
1.
Transaction ID es un identificador del mensaje que replica el servidor; se usa para trazar las respuestas del servidor
(puede ser un valor random o progresivo basado en un valor de 16 bits)
2.
Protocol ID
fijo en 0
3.
Length
número de bytes que siguen
4.
Address
dirección de la tarjeta de 1 a 254 (no se usa)
5.
Function field
código de la función que debe realizar el servidor.
6.
Data field
datos enviados al servidor o datos contenidos en la respuesta del servidor a una solicitud.
10.2 F
MODBUS®
UNCIONES
Las funciones disponibles son:
03h = lectura informaciones
retentivas
04h = lectura informaciones volátiles
Por ejemplo, para leer el valor de la tensión de Target, que responde a la dirección 24 (18 hex) de la tarjeta, el mensaje será
de este tipo:
00h
00h
00h
En donde:
00 00 = Transaction ID
00 00 = Protocol ID
00 06 = Length
01 = server address (unused)
04 = function MODBUS®® 'Read input register'
00 18 = Dirección del registro solicitado (Target voltage)
00 01 = Número de registros a leer en secuencia a partir del solicitado
La respuesta de la tarjeta será de este tipo:
00h
00h
00h
En donde:
00 00 = Transaction ID (idéntico al Transaction ID de la solicitud)
00 00 = Protocol ID
00 05 = Length
01 = dirección tarjeta (eco del valor recibido en la solicitud)
04 = función solicitada por el client
02 = Número de bytes en el mensaje de respuesta
00 C8 = valor Hex de la tensión Target (200V)
MODBUS®
01.05.00
word 16 bit
®
TCP
Length
(16 bit)
(16 bit)
Permite la lectura de las informaciones de setup de la tarjeta (véase tabla siguiente)
Permite la lectura de las variables de la tarjeta y de los instrumentos de medida (más de una por
vez en secuencia)
00h
00h
06h
00h
00h
ESTÁ DISPONIBLE SÓLO SI LA UNIDAD LLEVA EL SOFTWARE DE LA TARJETA
CPU
Y SOFTWARE DEL
DE CONTROL NO ANTERIOR A LA VERSIÓN
.
Address
(8 bit)
01h
04h
05h
01h
04h
26 / 36
MAT 127T aug21
Function
Data
(8 bit)
(N x 8 bit)
00h
18h
00h
02h
00h
04.00.
01h
C8h