1.什么是modbus协议?
MODBUS 是串行通讯应用层的请求/应答协议,广泛应用于各种网络体系,比如TCP/IP,485,232等。
2.modbus协议可以做什么?
用于数据传输。读取数据,发送数据。Modbus协议可以分成Modbus RTU 和Modbus ASCII。下文讨论的是Modbus RTU。
3.modbus协议的规则
8种功能码
0x01: 读线圈寄存器 (读取继电器输出,数字量输出的状态)
0x02: 读离散输入寄存器 (读取数字量输入的数据)
0x03: 读保持寄存器 (读取模拟量输出,数字量累积的数据)
0x04: 读输入寄存器 (读取模拟量输入的数据)
0x05: 写单个线圈寄存器(单个继电器输出,数字量输出的控制)
0x06: 写单个保持寄存器 (单个模拟量输出的数据)
0x0f: 写多个线圈寄存器(多个继电器输出,数字量输出的控制)
0x10: 写多个保持寄存器(多个模拟量输出的数据)
线圈寄存器:8位
离散输入寄存器:8位
保持寄存器:16位
输入寄存器:16位
读DO: 01 01 0064 0010 3819
01:设备地址
01:功能码
0064:起始寄存器地址(对应的寄存器十进制地址10100)
0010 16个寄存器
3819:CRC效验
CRC效验
CRC全称是[循环冗余校验码],用于检查数据传递过程有无丢失和改变。