ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

QModMaster:免费Modbus调试工具教程

QModMaster:免费Modbus调试工具教程 QModMaster免费Modbus调试工具教程【免费下载链接】qModbusMasterFork of QModMaster (https://sourceforge.net/p/qmodmaster/code/ci/default/tree/)项目地址: https://gitcode.com/gh_mirrors/qm/qModbusMasterQModMaster 是一款免费开源的 Modbus 主站调试工具基于 Qt 与 libmodbus 开发用图形界面连接 RTU 串口或 TCP 网络的从站设备读写线圈和寄存器并逐帧查看总线流量GPL v3 协议发布不收任何费用。QModMaster 能做什么、不能做什么它把 Modbus 主站要做的事收在同一个窗口里顶部选通信模式和从站地址中间填功能码、起始地址和数量点 Connect 就发起通信读到的值直接显示在下方表格里。通信由 libmodbus 3.1.0 完成日志交给 QsLogWindows 和 Linux 都能运行。能力项实际情况对你意味着什么通信协议RTU 串口、TCP 两种串口接 PLC 选 RTU走网口的设备选 TCP功能码0x01~0x04 读0x05/0x06/0x0F/0x10 写标准读写全覆盖诊断码等非标功能没有从站数量一次一个从站地址多台设备要轮流切换 Slave Addr数据视图寄存器表格加原始帧数值直接可读出错时还能看原始报文定时轮询Scan Rate 周期自动发请求盯着变化量不用手动点扫描你因此能得到一份明确的能力边界标准 RTU/TCP 调试场景够用多主站并发、私有协议不在范围内。安装并首次启动 QModMaster先按你的系统选一条路。Windows推荐先走这条下载预编译压缩包解压后直接运行 qModMaster.exe不需要装 Qt。主窗口弹出、状态栏显示未连接即安装成功。源码编译Linux或想改代码git clone https://gitcode.com/gh_mirrors/qm/qModbusMaster装好 Qt 5 后用 Qt Creator 打开qModMaster.pro点构建产物为可执行程序运行即进入主窗口。 3.首次启动窗口顶部依次是 Modbus Mode默认 RTU、Slave Addr、Start Address、No of Regs下方是寄存器表格和状态栏状态栏显示未连接、包数为 0。 4.最小可用配置保持 RTU 模式 → 打开 RTU 设置对话框填串口号、波特率常见 9600、数据位和校验位 → Slave Addr 填 1Start Address 填 0No of Regs 填 8 → 点 Connect。状态栏包数开始增长、表格里刷出数值说明通了。你因此得到一个随时可收发的连接后面所有功能都建立在它上面。演示三个最常用的调试功能选功能码、定地址读写寄存器解决什么问题设备接上了要确认某个地址里的值或者往里写个参数。怎么操作功能码下拉框选 Read Holding Registers (0x03)Start Address 填 0No of Regs 填 16点 Connect 发起请求。写参数时改选 Write Single Register (0x06)把目标格子改成新值发出去。用完后得到什么表格实时刷新寄存器值勾选定时扫描后数值按 Scan Rate 周期自动更新人可以走开。打开总线监控抓每一帧数据解决什么问题设备回了异常响应光看表格不知道错在哪。怎么操作从菜单打开 Bus Monitor保持连接所有请求和响应帧按时间顺序以原始数据列出。用完后得到什么完整的帧头、功能码、异常码都摆在眼前先分清是物理层还是协议层的问题。保存当前会话下次一键恢复解决什么问题重启电脑后地址和参数又要重填一遍。怎么操作配置好后点 Save Session下次启动 Load Session 恢复。用完后得到什么常用的从站地址映射不用重新输入。你因此能覆盖读数—抓包—存档的日常调试闭环。常用参数速查参数默认值建议值什么时候改Modbus ModeRTU按设备接口选 RTU 或 TCP设备从串口换到网口Slave Addr1与设备一致1~247换从站设备时Baud按设备设定9600 常见以手册为准出现乱码或持续超时时校验/数据位/停止位按设备设定常见 8 数据位无校验同上超时1 秒2~3 秒设备响应慢、现场干扰大Scan Rate手动发请求500~1000ms需要持续监控变化量起始地址进制可选 0 基/1 基与设备手册一致读出的值整体偏移一位LoggingLevelQModMaster.ini3Warn排障时改 0~1需要翻日志找细节你因此能在一分钟内判断参数该不该动而不是把整表重配一遍。踩坑与排错 配置对了是基本功错一步就是半天。以下四条覆盖了高频现场问题。1. TCP 连接超时现象点 Connect 后状态栏长时间不变可能原因IP 或端口填错、防火墙拦了 502、设备没通电解决先用 ping 确认网络通放行 502 端口对照设备手册核对 IP2. RTU 连上但读出的值是 0 或乱码现象连接成功表格里没有合理数值可能原因波特率/校验位与设备不一致0 基/1 基地址选反解决逐项核对串口参数切换起始地址进制再读一次3. Linux 打不开串口现象提示权限不足或打开失败可能原因当前用户不在 dialout 组解决执行sudo usermod -a -G dialout $USER重新登录后再试4. 设备回了异常码现象总线监控里出现功能码最高位为 1 的响应帧可能原因功能码不被支持、地址越界解决看异常码字节01 是非法功能、02 是非法地址、03 是非法值按码改参数你因此能避开大部分现场问题剩下的也能靠原始帧定位。深入源码值得看的两个文件qModbusMaster/ ├── 3rdparty/ # libmodbus 3.1.0 QsLog ├── forms/ # 各对话框与界面文件 ├── src/ # 核心逻辑 ├── translations/ # 简体/繁体翻译 └── qModMaster.pro先读两个文件src/modbusadapter.cpp集中了连接、读写和轮询定时器的全部实现想加功能码就从这里的读写分支入手forms/busmonitor.cpp是帧捕获的入口想扩展监控视图看它。二次开发路径很短在 adapter 里加处理逻辑再到界面文件加按钮重新编译即可。你因此能判断改一处够不够不必通读全部代码。QModMaster 把 Modbus 主站调试压缩进了一个窗口配好连接、选对功能码、盯住寄存器表格剩下的交给总线监控。它不追求大而全但 RTU/TCP 日常调试该做的都做了源码完全开放。下一步建议找一台手边的 RTU 设备或任意 Modbus 模拟程序按本文的最小可用配置走一遍第一次就把 0x03 读通。【免费下载链接】qModbusMasterFork of QModMaster (https://sourceforge.net/p/qmodmaster/code/ci/default/tree/)项目地址: https://gitcode.com/gh_mirrors/qm/qModbusMaster创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表