QModMaster 下载与使用:免费开源的 Modbus 主站调试工具(已停更)
免费开源、解压即用的 Modbus 主站调试工具,功能覆盖日常读写与报文监视;代价是停更四年、且始终停留在 beta。
- 授权
- LGPL-3.0 开源 源码托管在 SourceForge 项目页,不在 GitHub;本体基于 libmodbus 库。
- 平台
- Windows / Linux
- 协议
- Modbus RTU、Modbus TCP
- 官网
- https://sourceforge.net/projects/qmodmaster/
- · 临时验证一台 Modbus 从站设备的寄存器读写是否正常
- · 不想为一次性调试去买商业软件授权的场合
- · 需要长期维护、有厂商支持承诺的生产环境
- · 需要脚本化批量测试或自动生成测试报告的场合
- 文件名
- qModMaster-Win64-exe-0.5.3-beta.zip
- 版本
- 0.5.3-beta
- 大小
- 24.4 MB
- SHA256
- 待补(尚未实际核对,不填占位值)
- 核对于
- 2026-09-02
本站不托管安装包,上方为官方渠道直链。下载后请自行核对 SHA256,与上表不一致说明文件被改动过。
QModMaster 是一个用 Qt 写的 Modbus 主站(Master)调试工具,官方描述是 "a free Qt-based implementation of a ModBus master application",同时支持 Modbus RTU 和 Modbus TCP,底层用的是 libmodbus 库。
它的定位很清楚:你有一台 Modbus 从站设备(传感器、变频器、电表、PLC),想确认某个寄存器地址读出来是什么值、写进去有没有生效,用它连上去点几下就能验证。
先说停更这件事
这是选它之前必须知道的:最后一个版本 0.5.3-beta 发布于 2022 年 8 月 15 日,到现在约四年没有新版本。而且从版本号能看出来,这个项目从头到尾没有发布过正式版,一直带着 beta 标记。
停更对一个调试工具意味着什么,要分两面看。
影响不大的一面:Modbus 是一个 1979 年就定型、协议本身几乎不再变化的老协议。RTU 的帧结构、功能码、CRC 校验方式这些年没有变过。一个四年前写好的 Modbus 主站,今天连一台新出厂的从站设备,协议层面不会有兼容问题。
要留心的一面:操作系统在变。Windows 的串口驱动模型、高 DPI 缩放、安全策略这些会随系统更新调整,停更的软件不会跟进。实际会遇到的问题通常是界面在高分屏下显示异常、或者在较新的 Windows 上需要以兼容模式运行——不是功能坏了,是体验打折。
所以结论是:临时验证、一次性调试,它够用;要放进长期维护的生产流程,就别选它。 这一条也写进了本页顶部的"不适合"里。
下载与安装
官方渠道是 SourceForge 的项目页。Windows 版提供的是一个 zip 压缩包(qModMaster-Win64-exe-0.5.3-beta.zip,约 24.4 MB),解压即可运行,不需要安装。Linux 用户可以从源码构建,项目本身也标注支持 BSD。
需要提醒的是:SourceForge 的下载页在国内访问速度不稳定,且页面上会有若干体积更大、样式更醒目的第三方推广按钮。认准文件名里带 qModMaster 的那个,不要点页面上其他的绿色大按钮。
它的许可证是 LGPL-3.0,源码托管在 SourceForge 的项目仓库里,不在 GitHub——如果你搜 GitHub 找不到官方仓库,不是你搜错了。
用它跑通第一次读写
以最常见的 Modbus RTU 读保持寄存器为例,需要填对的其实只有几项:
串口参数:串口号、波特率、数据位、停止位、校验位。这几项必须和从站设备的设置完全一致,错一项就是完全读不到,不会有"部分正确"的中间状态。设备手册上通常写作 9600-8-N-1 这种形式。
从站地址:Modbus RTU 里每台从站有一个 1–247 的地址。地址填错的表现是超时无响应,和线没接好看起来一模一样。
功能码与寄存器地址:读保持寄存器是功能码 03。这里有一个经典的坑——设备手册上写的寄存器编号,和协议报文里的地址,可能差 1。有的厂商按 40001 起编(4x 保持寄存器的传统写法),实际报文里要填 0。读出来的值明显不对、或者整体偏移一格时,先怀疑这个。
数据类型与字序:读回来的是 16 位寄存器。如果设备把一个 32 位浮点数拆成两个寄存器存,还要考虑高低字的顺序(ABCD / CDAB / BADC / DCBA 四种排列都有厂商在用)。数值看起来是乱码但每次都一样,通常就是字序问题而不是通信问题。
QModMaster 带有报文监视功能,能看到实际发出去和收回来的原始字节。调不通的时候直接看报文,比在界面上反复改参数快得多。
看报文时先分清两种情况,它们的排查方向是相反的:
从站完全没回复(监视窗口只有发出去的那一帧)。说明请求根本没到从站,或者从站认为这帧不是发给自己的。要查的是物理层和寻址:接线、串口参数、从站地址、RS-485 的 A/B 是否接反、总线上是不是有两台设备撞了同一个地址。
从站回了一个异常响应(功能码最高位被置起,后面跟一个异常码)。这反而是好消息——通信链路是通的,从站听懂了你的话,只是拒绝执行。这时问题在应用层:异常码 02 通常指地址非法(寄存器不存在,多半是那个差 1 的偏移),异常码 03 指数据值非法(比如读的数量超出了设备允许的范围)。具体含义以设备手册为准,不同厂商对个别异常码的用法有出入。
把"没回复"和"回了异常码"当成同一个问题去查,是新手最容易走的弯路。
校验值和替代方案
如果你需要手工验算 Modbus RTU 的 CRC,站内有CRC / Modbus 校验计算器可以直接用,把报文粘进去就能算。
同类工具里还有商业软件(如 Modbus Poll,单用户永久授权 $129)和一批国产免费工具。它们的差别主要在维护状态、脚本化能力和报告导出上,而不在能不能读写寄存器——基础功能大家都有。本站的 Modbus 工具页会陆续补齐,可以从软件与工具库进去看。
本文为公开资料整理,非亲测。关键参数与代码请结合实物与下列官方来源验证。
- QModMaster SourceForge 官方项目页(Windows 免安装包、源码与版本发布记录都在这里) ↗
sourceforge.net/projects/qmodmaster/
延伸阅读
调 Modbus 十次里有八次最后落到物理层和帧结构上。报文对不对得上, 用CRC / Modbus 校验计算器把字节粘进去直接算; 帧是怎么在两根线上跑的,见UART 串口原理, 多机总线的收发方向控制与终端电阻见RS-485 差分总线。 串口参数换算用进制与波特率换算工具。 其余嵌入式与工业通信工具见软件与工具库。