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

modbus地址  功能码  寄存器地址高  寄存器地址低

00                    01                   61                        3A

寄存器数量高  寄存器数量低  CRC校验码低位  CRC校验码高位

解释:

主机读取modbus地址为03的从机输入寄存器,从0x0561(十进制为1377)地址开始读取一个寄存器。

---

主机读取从机保持寄存器数据格式:

数据实例:03 03 15 1a 00 01 A0 23

分解:

03                   03        15                     1A

modbus地址  功能码 寄存器地址高   寄存器地址低

00                    01                   A0        23

寄存器数量高  寄存器数量低  CRC低 CRC高

解释:

  主机读取modbus地址为03的从机保持寄存器,从0x151a(十进制为5402)地址开始读取一个寄存器。

---

主机写入单个保持寄存器数据格式:

数据实例:03 06 15 1a 00 32 2C 36

分解:

03                    06        15                     1A

modbus地址  功能码 寄存器地址高   寄存器地址低

00           32         2C        36

数据高    数据低  CRC低 CRC高

解释:

  主机写入modbus地址为03从机一个保持寄存器数据,从0x151a(十进制为5402)地址开始写入一个寄存器,写入数据为0x0032。

---

主机写入多个保持寄存器数据格式:

数据实例:03 10 14 56 00 02 04 00 00 00 50 82 3D

分解:

03                    10       14                     56

modbus地址  功能码 寄存器地址高   寄存器地址低

00                    02                     04          00  00 00 50

寄存器数量高   寄存器数量低   字节数   数据 (从高到低依次)

82         3D

CRC低  CRC高

解释:

  主机写入modbus地址为03从机两个保持寄存器数据,从0x1456(十进制为5206)地址开始写入两个寄存器,写入数据为0x0000、0x0050。

上一篇:UIColor-Hex-Swift


下一篇:C语言break语句