Modbus 主从调试
QDebugTool 内置 Modbus RTU / ASCII / TCP 主站与从站双栈——调主站程序不用另开 Modbus Slave,调从站程序不用另开 Modbus Poll,一个工具两头都占。
协议参数
| 参数 | 说明 |
|---|---|
| 角色 | 主站 / 从站 |
| 帧格式 | 串口:RTU(默认)/ ASCII;网口:自动 / RTU 裸帧 / TCP MBAP |
| 字节序 | ABCD / BADC / CDAB / DCBA(32 位数据字序) |
| 轮询周期 | 主站参数;0 = 连续轮询 |
| 响应延时 | 从站参数 |
| 地址合并间隔 | 相邻地址合并为一次读请求的最大间隔(减少报文数) |
| 站号 | 从站地址 |
| 超时 / 重试 | 请求超时与重试次数 |
| 快速轮询周期 | 波形 / HMI 高速行的独立轮询周期(双速轮询) |
| 写寄存器 | 单寄存器使用 06H,多寄存器使用 10H |
串口 ASCII 帧使用 : + 大写 HEX + LRC + CRLF。接收兼容小写 HEX;半包、粘包、错误 LRC 和非 HEX 字符会在协议层处理,不需要在参数表中额外配置。
主站能力
- 四区全覆盖:0x 线圈 / 1x 离散输入 / 3x 输入寄存器 / 4x 保持寄存器
- 0x16 掩码写:位域行写入自动读-改-写,不动其它位
- 0x17 读写组合:需要时一条报文完成读+写
- 双速轮询:参数表慢速巡检、波形/HMI 绑定的行走快速轮询周期,互不拖累
- 坏区自愈:个别地址读失败时自动隔离坏区,其余地址轮询不受影响,坏区恢复后自动回归
- 地址合并:相邻地址自动合并成一次读请求,减少报文数
- 四种字节序:32 位数据字序 ABCD/BADC/CDAB/DCBA 任意切换
从站仿真
角色选「从站」即可模拟一台 Modbus 设备:设置站号与响应延时,配合主站连接(或第三方主站软件)自测。参数表写入的值即是从站寄存器的值。
典型配置
Modbus RTU 串口主站(温湿度变送器)
text
连接方式:串口 COM3 9600 8N1 无校验
通讯协议:Modbus 主站 帧格式 RTU 站号 1 轮询周期 500ms 字节序 ABCD
参数行: 温度 4x 地址 0 int16 系数 0.1 单位 ℃
湿度 4x 地址 1 uint16 系数 0.1 单位 %Modbus TCP 客户端(PLC)
text
连接方式:网口 / TCP 主机 192.168.1.10 端口 502 客户端
通讯协议:Modbus 主站 帧格式 Modbus TCP 轮询周期 200ms主从互测(无硬件自测)
打开示例工程 examples/modbus主从互测.proj:内置主从两个连接(虚拟串口对互联),含参数表、组态画面与曲线,附带 modbus参数表.csv/.xlsx 供导入练习。
读数异常排查
读数明显错误(数值错乱、偏差 65536 倍等)时按此排查:
- 字节序与设备不匹配 → 调整连接的字节序重试
- 地址偏移差 1(协议地址 vs 面板地址习惯)→ 地址 ±1 试读
- 系数填错 → 对照「原始值」列核对
- 打开收发区对照原始报文,逐字节核对