Modbus RTU 工具
生成 RTU 报文、解析消息、校验 CRC 和转换寄存器数据。连接串口设备需使用支持 Web Serial 的桌面浏览器。
选择当前任务
报文工具用于生成、解析及 CRC 校验;串口调试工具用于设备通信;数据转换器用于数值和字节序转换。
工具能力
在浏览器中处理报文
常用 Modbus 读写功能
整数与浮点数值
报文字段与校验结果
兼容桌面浏览器的串口访问
多种界面语言
复制生成的报文和数值
浏览器内计算
常见任务
检查设备通信
比较 PLC、驱动器、仪表或传感器的请求与响应。
示例
- 验证读取请求
- 核对寄存器数值
- 分析异常响应
设备接入开发
按设备规范核对示例报文与数据格式。
示例
- 检查报文字段
- 确认字节序
- 比较已知数值
排查故障
在已授权的设备测试中捕获并比较收发报文。
示例
- 检查收到的报文
- 观察数值变化
- 导出采集结果
RTU 与寄存器基础
什么是 Modbus RTU?
Modbus RTU 是串行链路上的二进制报文格式,用于传输 Modbus 请求和响应,常见于 RS485 或 RS232。
要点
- 二进制报文字节
- CRC-16/MODBUS 差错校验
- 串行链路上的设备地址
- 需匹配通信时序和串口参数
RTU 报文结构
报文由设备地址、功能码、数据和 CRC 构成。
[设备地址][功能码][数据][CRC]- 设备地址:1 字节
- 功能码:1 字节
- 数据:字段由功能码决定
- CRC:2 字节,低字节先发送
常用功能码
读取功能
- 01:读取线圈
- 02:读取离散输入
- 03:读取保持寄存器
- 04:读取输入寄存器
写入功能(十进制)
- 05:写单个线圈
- 06:写单个寄存器
- 15(0x0F):写多个线圈
- 16(0x10):写多个寄存器
CRC-16/MODBUS
CRC 校验设备地址、功能码和数据字节,可检测多种传输错误,但不能认证发送者或证明操作安全。
参数
- 16 位差错校验
- 反向多项式:0xA001
- 初始值:0xFFFF
- CRC 低字节先发送
数据类型与字节序
一个寄存器保存 16 位,如何将一个或多个寄存器解释为数值,由设备寄存器表规定。
- 有符号整数使用补码:FFFF 按 INT16 为 -1,按 UINT16 为 65535。转换器对短 HEX 左侧补零,因此 FF 按 INT16 为 255。
- IEEE 754 FLOAT32 为 32 位,FLOAT64 为 64 位。FLOAT32 在 ABCD 顺序下的 3F 80 00 00 表示 1。
- 对于 A B C D 四字节:ABCD 保持顺序,DCBA 全部反转,BADC 在每个 16 位字内交换字节,CDAB 交换两个字。
- 16、32、64 位数值分别占 1、2、4 个寄存器,字节和寄存器顺序以设备规范为准。
- 转换器可精确处理所选范围内的 64 位整数,UINT64 范围为 0 至 18446744073709551615。
- HEX 输入支持十六进制字符、可选的 0x 前缀及字节间空白。非法字符会报错,不会被静默删除。
- 整数必须使用整数字符输入;FLOAT32、FLOAT64 还支持小数和科学计数法。
- 用已知数值确认类型及字节序,结果看起来合理并不足以证明设置正确。
用于设备前,请按设备手册核对生成的报文和解析值。