1 MODBUS RTU
序号 意义
读寄存器请求
读寄存器回应
所占字节 字节存放格式
1个字节 0x00 − 0xf f
1个字节 0x03
1 从设备地址
2 功能码
3 起始寄存器基地址 两个字节 高字节在前
4 寄存器个数
两个字节 高字节在前
5 CRC 校验码
两个字节 低字节在前
序号 意义
所占字节
1 从设备地址 1个字节
1个字节
2 功能码
3 数据长度
1个字节
寄存器个数×2个字节 每个寄存器高字节在前
4 数据
5 CRC 校验码 两个字节
字节存放格式
0x00 − 0xf f
0x03
寄存器个数×2
低字节在前
写单个寄存器请求
写单个寄存器回应
序号 意义
所占字节
1个字节
1 从设备地址
1个字节
2 功能码
3 起始寄存器地址 两个字节
4 寄存器值
两个字节 高字节在前
5 CRC 校验码 两个字节 低字节在前
字节存放格式
0x00 − 0xf f
0x06
高字节在前
序号 意义
所占字节
1个字节
1 从设备地址
2 功能码
1个字节
3 起始寄存器地址 两个字节
4 寄存器值
两个字节 高字节在前
5 CRC 校验码 两个字节 低字节在前
字节存放格式
0x00 − 0xf f
0x10
高字节在前
1
写多个寄存器请求
序号 意义
所占字节
1个字节
1 从设备地址
2 功能码
1个字节
3 起始寄存器地址 两个字节
4 寄存器个数
5 数据长度
6 数据
7 CRC 校验码 两个字节
两个字节
1个字节
寄存器个数×2个字节 每个寄存器高字节在前
高字节在前
寄存器个数×2
低字节在前
字节存放格式
0x00 − 0xf f
0x10
高字节在前
写多个寄存器回应
序号 意义
错误返回
序号 意义
所占字节
1个字节
1 从设备地址
2 功能码
1个字节
3 起始寄存器地址 两个字节
4 寄存器个数
两个字节 高字节在前
5 CRC 校验码 两个字节 低字节在前
字节存放格式
0x00 − 0xf f
0x10
高字节在前
1 从设备地址
2 功能码
3 错误码
4 CRC 校验码 两个字节 低字节在前
字节存放格式
所占字节
0x00 − 0xf f
1个字节
请求功能码+0x80
1个字节
1个字节 其代号见下面表格
错误代号
错误代号 意义
0x01 不支持该功能码
0x02 越界
0x03 寄存器数量超出范围
0x04 读写错误
2
2 MODBUS TCP
序号 意义
所占字节 字节存放格式
读寄存器请求
两个字节 高字节在前
两个字节 高字节在前
1 事务处理标识
2 协议标识
3 长度
4 单元标识
6 功能码
7 起始寄存器基地址 两个字节 高字节在前
8 寄存器个数
两个字节 高字节在前
两个字节 高字节在前
1个字节 0x00 − 0xf f
1个字节 0x03
• 事务处理标识,该标识在主机和从机都是一样的,亦即是说从机收到
MODBUS 协议包时,该标识原封不动地回传给主机。
• 协议标识,0 表示 MODBUS 协议。
• 长度,该长度是指紧跟其后的数据长度。
• 单元标识,和 RTU 的地址是一样的。
字节存放格式
高字节在前
高字节在前
序号 意义
所占字节
1 事务处理标识 两个字节
2 协议标识
两个字节
3 长度
4 单元标识
5 功能码
6 数据长度
7 数据
两个字节
1个字节
1个字节
1个字节
寄存器个数×2个字节 每个寄存器高字节在前
高字节在前
0x00 − 0xf f
0x03
寄存器个数×2
读寄存器回应
写单个寄存器请求
序号 意义
所占字节
1 事务处理标识 两个字节
2 协议标识
两个字节
3 长度
4 单元标识
5 功能码
6 寄存器地址
7 寄存器值
两个字节
1个字节
1个字节
两个字节
字节存放格式
高字节在前
高字节在前
高字节在前
0x00 − 0xf f
0x10
高字节在前
两个字节 高字节在前
3
写单个寄存器回应
写多个寄存器请求
写多个寄存器回应
序号 意义
所占字节
1 事务处理标识 两个字节
2 协议标识
两个字节
3 长度
4 单元标识
5 功能码
6 寄存器地址
7 寄存器值
两个字节
1个字节
1个字节
两个字节
字节存放格式
高字节在前
高字节在前
高字节在前
0x00 − 0xf f
0x10
高字节在前
两个字节 高字节在前
序号 意义
所占字节
字节存放格式
两个字节
两个字节
1 事务处理标识
2 协议标识
3 长度
两个字节
1个字节
4 单元标识
5 功能码
1个字节
6 起始寄存器地址 两个字节
7 寄存器个数
8 数据长度
9 数据
高字节在前
高字节在前
高字节在前
0x00 − 0xf f
0x10
高字节在前
两个字节
1个字节
寄存器个数×2个字节 每个寄存器高字节在前
高字节在前
寄存器个数×2
序号 意义
所占字节
字节存放格式
两个字节
两个字节
1 事务处理标识
2 协议标识
3 长度
两个字节
4 单元标识
1个字节
5 功能码
1个字节
6 起始寄存器地址 两个字节
7 寄存器个数
高字节在前
高字节在前
高字节在前
0x00 − 0xf f
0x10
高字节在前
两个字节 高字节在前
4
错误返回
序号 意义
所占字节 字节存放格式
1 事务处理标识 两个字节 高字节在前
2 协议标识
两个字节 高字节在前
3 长度
4 单元标识
5 功能码
6 错误码
两个字节 高字节在前
0x00 − 0xf f
1个字节
1个字节
请求功能码+0x80
1个字节 其代号见上面表格
5