
QModMaster一款免费的ModBus调试工具从连线到抓帧一次讲清【免费下载链接】qModbusMasterFork of QModMaster (https://sourceforge.net/p/qmodmaster/code/ci/default/tree/)项目地址: https://gitcode.com/gh_mirrors/qm/qModbusMasterQModMaster 是一款免费开源的 ModBus 调试工具基于 Qt 开发支持 ModBus RTU串口和 ModBus TCP网络两种通信方式提供寄存器读写、周期性采集和总线监控三个核心功能。下文按装好 → 连上 → 读写 → 抓帧 → 排查问题的顺序讲照着做即可。一、安装Windows 解压就能跑Linux 需要编译QModMaster 采用 GPL v3 协议开源。Windows预编译版本解压即可运行不需要安装也不依赖 Qt 环境。Linux需要安装 Qt 5 开发环境含 QtSerialPort 模块串口功能依赖它再用 qmake 打开项目文件qModMaster.pro编译。源码获取git clone https://gitcode.com/gh_mirrors/qm/qModbusMaster二、连接设备RTU 和 TCP 两套参数这样填主窗口顶部有通信方式切换RTU 和 TCP 的参数分别在各自的设置对话框里配置。**RTU串口**需要填串口设备、波特率、数据位、停止位、校验位。现场设备最常见的组合是 9600、8 数据位、1 停止位、无校验拿不准时先按这个试。**TCP网络**只需两项从站 IP 地址和端口ModBus TCP 默认端口是 502。两种方式都要填从站地址1~247它对应设备的 ModBus 站号不是 IP 也不是串口名。参数填好后点击连接状态栏会给出连接结果。三、读写寄存器主界面六个关键选项主界面的寄存器表格是核心操作区上方一排选项决定读什么、写什么功能码决定操作类型。读保持寄存器03、读输入寄存器04用于采集数据写单个寄存器06、写多个寄存器16用于下发参数。从站地址与连接设置里的站号一致。起始地址第一个寄存器的地址界面可切换十六进制/十进制不同厂家文档的编号习惯不一样读不到数时先检查这里。寄存器数量一次读写的个数。扫描周期设为非零后进入轮询模式按周期自动重复读写适合观察变化的数据。显示格式十六进制/十进制、16 位有符号/无符号等。标准功能码速查功能码名称典型用途01读线圈读开关量输出状态02读离散输入读开关量输入03读保持寄存器最常用的数据读取04读输入寄存器读只读测量值05写单个线圈控制单个开关06写单个寄存器修改一个参数15写多个线圈批量控制开关16写多个寄存器批量下发参数读模式下表格只刷新显示写模式下可以直接在单元格里修改数值并写回。常用的地址和功能码组合可以保存为会话文件下次直接载入不用重新填。四、总线监控看每一帧到底发了什么遇到参数明明填对了却不通时靠猜没用直接看报文。打开总线监控窗口后总线上的请求帧和应答帧会按时间顺序列出支持十六进制查看还可切换是否显示帧头。主窗口状态栏同时统计数据包数和错误数通信是否持续、错误是否增长一眼就能看出。抓到一个失败帧后对照协议文档看异常码就能区分是设备回复非法功能功能码选错、非法数据地址地址越界还是压根没有应答物理层或连接问题。五、连不上、读不到数按这个顺序排查网络不通TCP先用内置工具窗口做两步检查——ping 从站 IP 确认网络可达再检测 502 端口是否开放。都不通就先解决网络或防火墙不用碰 ModBus 参数。串口不通RTU按顺序检查串口设备名是否选对Windows 看设备管理器Linux 一般是/dev/ttyUSB0或/dev/ttyS0没有读权限就把用户加入 dialout 组波特率、校验位与设备设置是否一致从站地址与设备实际站号是否一致超时时间太短也会误报失败可在设置里适当调大。日志辅助日志级别在QModMaster.ini的LoggingLevel项调整。深度排查时调到 Trace0平时用默认的 Warn3即可。级别值含义Trace0最详细深度排查Debug1开发调试Info2常规信息Warn3默认只显示警告Error4只记错误Fatal5只记严重错误Off6关闭日志工具窗口里还有一项 ModBus 诊断diagnostics可让从站自检并返回状态怀疑设备本身状态异常时用它。六、想改代码或深挖协议从这两个文件入手src/modbusadapter.cpp通信核心收发逻辑都在这里要支持自定义功能码就从它改起Docs/Modbus_Application_Protocol_V1_1b3.pdfModBus 协议官方文档报文格式和异常码的出处。程序自带用户手册ManModbus/目录和各功能码说明页面中文界面可在语言选项里切换翻译文件在translations/下。第一次用的话建议从03 功能码 读 10 个寄存器开始选通、读到数确认链路没问题后再加扫描周期和总线监控把每一步都验证清楚。【免费下载链接】qModbusMasterFork of QModMaster (https://sourceforge.net/p/qmodmaster/code/ci/default/tree/)项目地址: https://gitcode.com/gh_mirrors/qm/qModbusMaster创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考