modbus通讯主要是主机和从站之间的通讯
一、从站地址
Modbus RTU设备都有一个Address
0:表示广播地址,所有接收到的设备都会回复指令
1-247:表示从机地址
248-255:保留地址
二、功能码
“03”:读多路寄存器
主站发送格式:从站地址(1个字节)+ 功能码(1个字节)+ 寄存器地址(2个字节)+ 寄存器数量(2个字节)+ CRC校验码(2个字节)
例如:主机发送:01 03 00 01 00 02 XX XX
主机读取从机01,从00 01寄存器开始,2个寄存器的内容,XX XX为CRC校验码
从机返回格式: 从站地址(1个字节) +功能码(1个字节)+字节计数(1个字节)+ 第一路寄存器地址(2个字节)+ 第二路寄存器地址(2个字节) +(...N路寄存器地址)+ CRC校验码(2个字节)
从站返回:01 03 04 01 02 03 04 XX XX
从机返回00 01和00 02寄存器的内容,01 02 03 04
“06”:写单个寄存器
主站发送格式:从站地址(1个字节)+ 功能码(1个字节)+ 寄存器地址(2个字节)+ 寄存器数据(2个字节)+ CRC校验码(2个字节)
例如:主机发送:01 03 00 01 00 02 XX XX
主机发送:01 06 00 01 12 34 XX XX
从站返回格式与主机格式一致
从机回复:01 06 00 01 12 34 XX XX
写入从机,寄存器00 01,内容为1234
主机回复同样的内容表示写入成功
“16”:连续写多个寄存器
主站发送格式:从站地址(1个字节)+ 功能码(1个字节)+ 寄存器地址(2个字节)+ 寄存器数量(2个字节)+ 字节计数(1个字节)+ 第1路寄存器数据(2个字节)+ ...第N路寄存器数据(2个字节)+ CRC校验码(2个字节)
从站回复格式:从站地址(1个字节)+ 功能码(1个字节)+ 寄存器地址(2个字节)+ 寄存器数量(2个字节)+ CRC校验码(2个字节)
以上为正常返回,从站可能还有异常回复,待完善后另行存档。