Funciones MODBUS:
Función 0x03: lectura de registros de retención
Se utiliza para leer uno o más parámetros (el tamaño de cada parámetro es de 16 bits)
El bastidor tiene la siguiente estructura:
dev. Addr.
func
03
HH
dev. Addr – Dirección del dispositivo en la red RS485 (1-250)
Func – Código de función = 3
start addr H - MSByte de la dirección del parámetro:
start addr L - LSByte de la dirección del parámetro
N.regs H - MSByte del número de registros a leer (siempre 0)
N.regs L - LSByte del número de registros a leer
CRC16H - MSByte de CRC16
CRC16L - LSByte de CRC16
Si durante una solicitud de lectura múltiple se especifica una cantidad de registros no permitida, el dispositivo responderá con un código de excepción
0x02 (ILLEGAL DATA ADDRESS).
Función 0x06 - Escritura de registro único
Se utiliza para escribir un solo parámetro (16 bits)
El bastidor tiene la siguiente estructura:
desarrollador Dirección - Dirección del dispositivo en la red RS485 (1-250)
dev. Addr.
func
06
HH
Func - Código de función = 6
Reg. addr H - MSByte de la dirección del parámetro
Reg addr L - LSByte de la dirección del parámetro
Reg. valor. H - MSByte del valor del parámetro
Valor reg. L - LSByte del valor del parámetro
CRC16H - MSByte de CRC16
CRC16L - LSByte de CRC16
El valor especificado no se acepta (excepto el código 2) si no es consistente con el rango de parámetros o si no es consistente con el estado actual
del dispositivo (por ejemplo, día = 31 rechazado si mes = 4, mes = 4 rechazado si día = 31).
start addr H
start addr L
N.regs H
HH
HH
Reg. addr H
Reg. addr L
Reg. val. H
HH
HH
N.regs L
CRC16H
00
HH
HH
Reg. val. L
CRC16H
HH
HH
HH
10
CRC16L
HH
CRC16L
HH