QModMaster:免费完整的Modbus调试工具,新手5分钟连上第一台设备
QModMaster:免费完整的Modbus调试工具,新手5分钟连上第一台设备
【免费下载链接】qModbusMasterFork of QModMaster (https://sourceforge.net/p/qmodmaster/code/ci/default/tree/)项目地址: https://gitcode.com/gh_mirrors/qm/qModbusMaster
QModMaster 是一款免费开源的 Modbus 调试工具,基于 Qt 开发,支持 Modbus RTU(串口通信)和 Modbus TCP(网络通信)两种模式,带图形界面和总线监控。它帮你完成寄存器读写、数据轮询和通信排错,适合自动化工程师、嵌入式开发者和学生调试 PLC、仪表、变频器等从站设备。
为什么选QModMaster
市面上的 Modbus 调试工具不少要收费,功能还常按模块拆分收费。QModMaster 采用 GPL v3 开源协议,功能完整且全平台可用:
| 特性 | 具体表现 | 对你的好处 |
|---|---|---|
| 免费开源 | GPL v3 协议,源码可查可改 | 不花授权费,遇到奇怪问题能翻源码 |
| 双协议支持 | 一个程序同时支持 RTU 串口和 TCP 网络 | 换接口不用换软件 |
| 带总线监控 | 实时显示每帧原始报文 | 协议层问题一眼看穿 |
| 双系统运行 | 提供 Windows 预编译版,Linux 可编译 | 办公室和工控机都能用 |
3步完成首次Modbus连接
1. 获取程序
- Windows:直接下载预编译包,解压即运行,无需安装。
- 需要自己编译或改代码时,拉取源码:
git clone https://gitcode.com/gh_mirrors/qm/qModbusMaster2. 准备环境
- Windows 用户什么都不用装。
- Linux 编译需要 Qt 5 环境:
sudo apt-get install qt5-default libqt5serialport5-dev3. 配置并连接
- 顶部 Modbus Mode 选 RTU 或 TCP。
- 菜单 Options 里打开对应设置窗口:RTU 填串口、波特率(默认 9600)、数据位/停止位/校验;TCP 填设备 IP 和端口(默认 502)。
- 填好从站地址(Slave Addr,1~255),点 Commands 里的 Connect 即可。
最常见的4件事,怎么做
读寄存器数据
帮你把从站数据拉到界面表格里查看。
- 选功能码:读线圈(01)、读离散输入(02)、读保持寄存器(03)、读输入寄存器(04)。
- 填 Start Address(支持十/十六进制)和寄存器数量。
- 点 Read / Write 触发一次读取,或勾选 Scan 按扫描周期(默认 1000ms)自动轮询。
- 切换 Data Format(二进制/十/十六进制)和 Signed,按你的数据格式看数。
写寄存器数据
帮你向设备下发控制值。
- 功能码选 05/06(写单线圈/单寄存器)或 0F/10(写多个)。
- 在表格对应行填入要写的值,点 Read / Write 执行。
- 写前先用读操作确认地址范围,避免误写设备。
监控总线通信
帮你看到每次通信的真实报文。
- 菜单 View → Bus Monitor 打开监控窗口,查看请求和应答的原始帧。
- 状态栏显示累计包数与错误数,用 Reset Counters 清零后做性能观察。
- 配合 Log File 菜单保存日志,事后可复查。
排查通信故障
帮你定位"为什么连不上、数据不对"。
- 先在总线监控里确认请求是否发出、从站是否应答。
- 没有应答 → 查串口参数或 IP/端口;有应答但报错 → 对照 Docs/ 下协议手册里的异常码。
- 用 Help → Modbus Manual 查各功能码和异常码的官方说明(项目在 ManModbus/ 下也带了网页版手册)。
调一调,效率更高
| 参数 | 默认值 | 建议值 | 适用环境 |
|---|---|---|---|
| 扫描周期 | 1000ms | 1000~3000ms | 从站响应慢或总线干扰大 |
| 超时 | 0(按库默认) | 2000~3000ms | 远距离、高延迟链路 |
| 寄存器数量 | 按需 | 按功能码上限分批 | 一次读太多容易超限报错 |
日志级别:修改 QModMaster.ini 里的LoggingLevel(0~6),3(Warn)为默认;排查问题临时调到 1(Debug),排完改回,避免日志文件过大。
会话保存:菜单 File → Save Session 可把当前协议、串口/IP、地址等配置存成文件,下次 Load Session 一键恢复,省去重复填参数。
遇到问题,先查这里
- 症状:连接失败,状态栏报错→ 解决办法:1)确认从站地址和功能码设备支持;2)RTU 核对波特率、校验位与设备手册一致;3)TCP 确认 IP 可达、502 端口未被防火墙拦。
- 症状:Linux 打不开串口→ 解决办法:1)
ls /dev/ttyUSB*确认设备节点;2)把用户加入 dialout 组:sudo usermod -a -G dialout $USER,重新登录后生效。 - 症状:读到的数值和手册对不上→ 解决办法:1)确认地址偏移(Modbus 地址常从 1 计);2)切换 Data Format 的进制和 Signed 选项;3)检查多寄存器数据的字节序(大端/小端)。
- 症状:轮询时偶发超时→ 解决办法:1)把扫描周期调大到 2000ms 以上;2)减少单次读取的寄存器数量;3)在总线监控里看是请求丢失还是应答超时。
- 症状:不确定异常码含义→ 解决办法:打开 Docs/Modbus_Application_Protocol_V1_1b3.pdf 查协议定义,或 Help → Modbus Manual 查异常码表。
给开发者的话
| 文件 | 作用 |
|---|---|
| src/modbusadapter.cpp | 通信核心:连接、读写、轮询 |
| src/mainwindow.cpp | 主界面逻辑与菜单 |
| src/modbuscommsettings.cpp | 参数与配置的读写 |
| qModMaster.pro | Qt 项目构建文件 |
二次开发从 modbusadapter.cpp 入手:新增功能码只需扩展功能码判断与读写分支,再在 forms/mainwindow.ui 里加对应入口,重新编译即可。多语言在 translations/ 下的 .ts 文件里用 Qt Linguist 编辑。
下一步
- 跑通一次 Read,确认能看到从站数据。
- 打开 Bus Monitor,观察一帧完整请求/应答。
- 用 Save Session 存一份你的设备配置。
- 把扫描周期和超时按上表调一轮,记录错误数变化。
- 翻一遍 Docs/ 协议手册里的异常码章节。
📌 建议定期查看项目的更新记录,新版本在功能码支持和稳定性上会持续改进。
【免费下载链接】qModbusMasterFork of QModMaster (https://sourceforge.net/p/qmodmaster/code/ci/default/tree/)项目地址: https://gitcode.com/gh_mirrors/qm/qModbusMaster
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
