OpenModScan:免费 Modbus 主站调试工具,3 分钟跑通 📅 发布时间:2026/8/22 12:33:17 👁 浏览次数: OpenModScan免费 Modbus 主站调试工具3 分钟跑通【免费下载链接】OpenModScanOpen ModScan is a Free Modbus Master (Client) Utility项目地址: https://gitcode.com/gh_mirrors/op/OpenModScanOpenModScan 是一款免费开源的 Modbus 主站客户端调试工具同时支持 Modbus-TCP 与 Modbus-RTU 两种协议。它把设备发现、寄存器读写、报文解析、通讯日志四件事放进同一个桌面窗口MIT 许可证发布商用和修改都没有限制。先搞清楚它是什么、给谁用OpenModScan 定位很明确把 Modbus 主站一侧的通讯过程全部可视化——谁在线、发了什么、回了什么、数值是多少不再靠肉眼盯十六进制。核心能力清单覆盖标准功能码0x01、0x02、0x03、0x04、0x05、0x06、0x0F、0x10含0x16Mask Write Register内置设备扫描器支持 Modbus RTU、TCP、RTU over TCP端口可并行探测批量地址扫描按地址区间读整段寄存器并可导出结果报文解析器手工粘贴 RTU/TCP 帧逐字段拆解全量通讯日志每帧带时间戳与解析结果数据按十六进制/数值同屏展示可切换 int32、单/双精度浮点与字节序适用人群现场调试工程师、设备集成商、学习 Modbus 的学生。运行平台覆盖 Windows 7 及以上以及 Debian 11、Ubuntu 22.04、Fedora 41、Rocky 9.7、OpenSUSE 15.6 等主流 Linux 发行版许可证为 MIT。从零到第一次成功安装并读出第一组寄存器按平台选安装包即可当前发布版本为 1.16.0Windows 提供 Qt5/Qt6 两个构建你的环境包格式 / 最短安装命令Windows 7 及以上安装程序qt5-omodscan_1.16.0_x86.exe或qt6-omodscan_1.16.0_x64.exeDebian / Ubuntu / Mintsudo apt install ./qt6-omodscan_1.16.0-1_amd64.debRedHat / Fedora / Rockysudo dnf install ./qt6-omodscan_1.16.0-1.x86_64.rpmOpenSUSE先sudo rpm --import qt6-omodscan.rpm.pubkey再sudo zypper install ./qt6-omodscan_1.16.0-1.x86_64.rpm不想装系统包flatpak install --user io.github.sanny32.omodscan.flatpak建立第一条连接并读寄存器按这五步走打开软件从菜单进入连接配置选择传输方式串口Modbus RTU或远程服务器Modbus TCP/IP。TCP 场景填入设备 IP 与502端口串口场景核对波特率、数据位、校验位、停止位必须与设备端完全一致。点击连接状态栏出现Device CONNECTED即成功。在主界面参数区把类型选为03: HOLDING REGISTER起始地址填1长度填100。启动轮询主界面开始连续请求并按地址逐行展示结果。跑通的标准很直观上方状态栏的轮询次数与有效的从站响应同步增长示例中 34 次轮询对应 34 次有效响应一个包都没丢。到这里日常调试中最常用的连上设备、读出数据两步已经完成。功能详解四个模块拼出一条完整调试链路 设备扫描器不知道 IP 也能找到设备解决的问题设备清单上只有网段找不到具体哪台设备在线。操作四步协议选 Modbus TCP/IPRTU 场景选对应串口参数。填写起始 IP、结束 IP 与子网掩码如10.165.1.1到10.165.1.254。设置端口范围默认502与最大并行连接数默认 10可再指定设备 ID 范围。点击开始右侧按端口 设备地址列出扫描结果。一个 254 台主机的网段通常半分钟内扫完设备占哪个 ID 一目了然。它替你省掉了自己写脚本批量 Ping、逐个猜端口的时间。 批量地址扫描一次读上千个寄存器解决的问题验收时要核对整段数据区逐地址手点不可行。操作要点设定起始地址与总长度。设定每次查询的寄存器数量功能码选03: READ HOLDING REGS。启动后结果按地址区间分组展示右侧可一键导出。实测读 999 个保持寄存器约 7 秒跑完数据映射核对这类体力活交给工具导出表直接交接给现场同事。 报文解析器帧对不对一眼看清解决的问题抓包给的是原始字节帧结构得自己拆。操作要点把 RTU 或 TCP 原始报文粘贴进输入框。选择报文类型点击 Parse。功能码、设备 ID、起始地址、长度、数据区逐字段拆开呈现。它替你省掉了按 Modbus 帧结构手算字节偏移的体力活帧里哪个字段不对几秒钟就能定位。 全量通讯日志偶发故障有据可查解决的问题一百次请求偶尔丢一两次响应抓包抓不到关键帧。日志窗口把每一次请求/响应按行归档时间戳、事务 ID、协议 ID、设备 ID、功能码、原始十六进制数据与解析结果全在一行里状态栏同步给出收发统计。两百多条事务里筛出超时的那几帧比对时间间隔故障定位从猜测变成查证。四个模块的顺序刚好是一条完整工作流扫描器找到设备 → 轮询/地址扫描读数据 → 解析器与日志排查异常。实战一个读不到数的问题是怎么定位的现象一台声称支持标准 Modbus RTU 的温控器上电后串口助手发出01 03 00 00 00 64 C5 CD设备毫无反应换地址、调校验位都没用。排查动作先别怀疑线缆。用扫描器在同一网段扫一遍确认 502 端口有设备应答且 ID 为 1——设备在线问题在报文侧。工具介入把之前手工构造的报文粘进 OpenModScan 的报文解析器逐字段核对发现起始地址用的是 0-based 偏移而设备固件按 1-based 解析整体偏移一位导致请求越界被丢弃。在主界面把地址基Address Base切回 1-based 重新轮询响应立刻恢复。结论根因是地址基约定不一致不是硬件故障。之后用日志窗口持续观察了 140 次轮询140 次有效响应无丢包联调收尾。整个过程的关键一步是把猜换成了逐字段对照。和传统做法差在哪调试维度串口助手 抓包工具OpenModScan协议覆盖手工拼报文错一个字节难发现内置全部常用功能码请求/响应成对校验数据可读性满屏十六进制靠脑内翻译数值/十六进制/字节序同屏可切 int32、浮点显示设备发现自己写脚本扫网段内置扫描器IP/端口/设备 ID 并行探测偶发故障排障抓包后手工拆帧关键帧经常抓不到全量日志逐帧归档异常帧可回溯配置复用每次连接手工重填一次配置可保存下次直接复用避坑 FAQQ1RTU 串口为什么总是连不上先查串口权限Linux 下把用户加入dialout组。再核对波特率、校验位、停止位与设备端逐项一致。最后看 DTR/RTS 流控有些设备需要特定握手信号才应答。Q2TCP 能 Ping 通502 端口却没反应先查防火墙Windows 放行 502 入站Linux 看 iptables/firewalld。另外不少设备默认端口不是 502 而是 503、504扫描时把端口范围放宽一点再试。Q3轮询间隔设多短合适别一味求快低端设备对请求频率敏感太快会触发看门狗或总线冲突。稳妥做法是先按 1 秒间隔跑通再逐步收紧数据量大时优先用批量读取减少单帧次数。Q440001到底对应什么地址这是 Modbus 经典地址映射4 开头是保持寄存器1 开头是线圈3 开头是输入寄存器。工具里地址基支持 1-based 与 0-based 切换地址对不上时先查这个设置别急着怀疑硬件。Q5标准功能码覆盖不了的需求怎么办用内置的自定义消息功能直接构造报文发送。0x16Mask Write Register 和诊断类功能码也有独立入口测边界条件、构造异常包都很方便。开源与二次开发MIT 许可证意味着商用、分发、改造都没有门槛社区已维护俄语、简体中文、繁体中文等多语言界面Qt5/Qt6 双版本构建兼顾新旧环境。仓库结构规整适合按图索骥协议核心src/modbusclient.cpp、src/modbustcpclient.cpp、src/modbusrtuclient.cpp、src/modbusrtutcpclient.cpp传输层与协议层分离每个功能码在src/modbusmessages/下是独立的请求/响应类统一继承ModbusMessage基类扩展新功能码从这里入手扫描算法在src/modbusscanner.cpp可复用 UI 组件集中在src/controls/对话框逻辑在src/dialogs/。编译走 CMake要求 Qt 5.15 及以上git clone https://gitcode.com/gh_mirrors/op/OpenModScan cd OpenModScan ./build.sh -qt6给二次集成者两个可行方向把扫描逻辑抽出来做成网段巡检工具把日志模块接进自己的自动化测试框架。写在最后OpenModScan 的价值在于把设备发现、数据验证、协议排障这条完整链路做进了一个免费桌面应用里而且每个环节都有据可查。它不替代你对协议的理解但能替你省掉最耗时间的重复劳动拼帧、拆帧、数包。下一步很简单按你的平台下载一个版本接上模拟设备或手头的真实设备三分钟把第一条数据读出来。【免费下载链接】OpenModScanOpen ModScan is a Free Modbus Master (Client) Utility项目地址: https://gitcode.com/gh_mirrors/op/OpenModScan创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考