modbus 协议说明及常用格式
——————————————————————————————————————————————————–
说明:
modbus协议一般适用于一个主设备访问多个从设备的硬件开发环境,类似于zigbee网络中的一个路由器多个协调器的一对多模型。
modbus常用的寄存器类型为 3X 保持寄存器和 4X 输入寄存器
从机3X 保持寄存器对主机来说是可读不可写状态,从机4X 输入寄存器对主机来说是可读可写状态
———————————————————————————————————————————————————
功能码含义
04:读取输入寄存器(3x)
03:读取保持寄存器(4x)
06:写入单个保持寄存器(4x)
16:写入多个保持寄存器(4x)
常用的数据格式:
主机读取从机输入寄存器数据格式:
数据实例:03 04 05 61 00 01 61 3A
分解:
03 04 05 61 00 01 61 3A
从机modbus地址 功能码-04 从机寄存器地址高 从机寄存器地址低 寄存器数量高 寄存器数量低 CRC校验码低位 CRC校验码高位
解释:
主机读取modbus地址为03的从机输入寄存器,从0x0561(十进制为1377)地址开始读取一个寄存器。
主机读取从机保持寄存器数据格式:
数据实例:03 03 15 1a 00 01 A0 23
分解:
03 03 15 1A 00 01 A0 23
从机modbus地址 功能码-03 从机寄存器地址高 从机寄存器地址低 寄存器数量高 寄存器数量低 CRC校验码低位 CRC校验码高位
解释:
主机读取modbus地址为03的从机保持寄存器,从0x151a(十进制为5402)地址开始读取一个寄存器。
主机写入单个保持寄存器数据格式:
数据实例:03 06 15 1a 00 32 2C 36
分解:
03 06 15 1A 00 32 2C 36
从机modbus地址 功能码-06 从机寄存器地址高 从机寄存器地址低 写入数据高位 写入数据低位 CRC校验码低位 CRC校验码高位
解释:
主机写入modbus地址为03从机一个保持寄存器数据,从0x151a(十进制为5402)地址开始写入一个寄存器,写入数据为0x0032。
主机写入多个保持寄存器数据格式:
数据实例:03 10 14 56 00 02 04 00 00 00 50 82 3D
分解:
03 10 14 56 00 02 04 00 00 00 50 82 3D
从机modbus地址 功能码-10 从机寄存器地址高 从机寄存器地址低 寄存器数量高位 寄存器数量低位 字节数 写入数据 (从高到低依次) CRC校验码低位 CRC校验码高位
解释:
主机写入modbus地址为03从机两个保持寄存器数据,从0x1456(十进制为5206)地址开始写入两个寄存器,写入数据为0x0000、0x0050。