1.请求生成
收到需求后,客户端(client或master)生成MODBUS请求,并发到TCP管理。
MODBUS请求ADU编码,包括MBAP报文头和MODBUS请求。
MBAP报文头包括事务元标识符(在应用中会由00 00逐渐递增,计数)、协议标识符(00 00)、长度(2字节)、单元标识符(1字节,设备编号/Server_ID)。
MODBUS请求包括功能码(1字节)、起始地址(2字节)、寄存器数量(2字节)。
2.响应生成
肯定的MODBUS响应:响应功能码=请求功能码。
其他的事务元标识符、协议标识符、单元标识符同样采取复制的形式进行响应。
例如:
客户端发出:00 00 00 00 00 06 01 03 00 20 00 08
服务器回应:00 00 00 00 00 13 01 03 10 FC 18 FC 18 FC 18 FC 18 FC 18 FC 18 FC 18 FC 18
此处是对设备01进行读保持寄存器数值的请求(功能码03),从寄存器32(00 20)开始读取连续的8(00 08)个寄存器存储的数值。
响应中的10是指字节数,此处数据共计16字节。