基于 Qt 6 开发的 Modbus RTU 上位机,支持串口连接配置、保持寄存器与线圈的读写操作、通信日志、串口热插拔检测及中英文界面切换。
⭐ 欢迎提出 Issues 和 PR,如果这个项目对你有帮助,请给个 Star!
这是一个基于 Qt 6 / C++ 开发的 Modbus RTU 上位机(Master) 工具,通过 RS-485 / USB 转串口适配器与 Modbus 从站设备通信,适用于工业控制、传感器调试等场景。
主要功能:
-
串口设置
- ✅ 自动枚举并刷新可用串口(1 秒定时扫描)
- ✅ 支持波特率 / 数据位 / 校验位 / 停止位 / 从站地址配置
- ✅ 串口热插拔检测:设备移除后自动断开连接
-
保持寄存器(Holding Register)
- ✅ FC03 批量读取,支持自定义起始地址和数量
- ✅ FC06 / FC16 写入,支持单值、逗号分隔多值、0x 十六进制格式
- ✅ 结果实时显示在表格中(地址 / 十进制 / 十六进制)
-
线圈 / 离散输入(Coil)
- ✅ FC01 批量读取线圈状态
- ✅ FC05 写入单线圈(0 / 1)
- ✅ 结果实时显示在表格中
-
通信日志
- ✅ 带时间戳的操作记录(成功 / 失败 / 断开均有提示)
- ✅ 一键清空日志
-
界面
- ✅ 中文 / 英文界面一键切换
- ✅ 状态指示灯(绿色已连接 / 红色未连接 / 橙色连接中)
- ✅ 自定义应用图标
modbus-rtu-master/
├── icons/
│ ├── app.svg # 应用图标源文件(SVG)
│ └── app.ico # 应用图标(ICO,嵌入 exe)
├── main.cpp # 程序入口,设置应用图标
├── widget.h # 主窗口头文件
├── widget.cpp # 主窗口逻辑实现
├── widget.ui # Qt Designer UI 布局文件
├── modbus-rtu-master.pro # qmake 项目配置文件
├── resources.qrc # Qt 资源文件(图标)
├── README.md
└── .gitignore
| 组件 | 版本 |
|---|---|
| Qt | 6.11.0 |
| 编译器 | MinGW 13.1.0 64-bit |
| 构建工具 | qmake + mingw32-make |
| IDE | Qt Creator |
| 操作系统 | Windows 10 / 11 |
Qt 模块依赖:
QT += widgets serialbus serialport
需要在 Qt 维护工具(Qt Maintenance Tool)中安装 Qt Serial Bus 组件。
- 前往 Releases 页面
- 下载最新版本的
modbus-rtu-master.zip - 解压到任意目录
- 双击运行
modbus-rtu-master.exe
-
克隆仓库:
git clone https://github.com/Lee-Stone/modbus-rtu-master.git
-
用 Qt Creator 打开
modbus-rtu-master.pro -
选择套件 Desktop Qt 6.x.x MinGW 64-bit
-
点击 Build → Build Project 或按
Ctrl+B -
运行:
Ctrl+R
需要将 Qt 的
bin目录(如C:\Qt\6.x.x\mingw_64\bin)和 MinGW 的bin目录加入PATH,或使用 Qt Creator 自带的 Developer Command Prompt。
git clone https://github.com/Lee-Stone/modbus-rtu-master.git
cd modbus-rtu-master
mkdir build
cd build
qmake ..\modbus-rtu-master.pro -spec win32-g++ "CONFIG+=release"
mingw32-make -j4编译完成后 exe 位于 build\release\modbus-rtu-master.exe。若需连同 Qt 运行时一起打包分发,在 Qt 命令行中执行:
mkdir deploy
copy build\release\modbus-rtu-master.exe deploy\
windeployqt --release --no-translations deploy\modbus-rtu-master.exe- 将 USB 转 RS-485(或 RS-232)适配器插入 PC
- 在 端口 下拉框中选择对应 COM 口(如 COM3)
- 根据从站配置设置波特率、数据位、校验位、停止位和从站地址
- 点击 连接,状态指示灯变绿表示成功
- 填写 起始地址 和 数量
- 点击 读取,结果显示在下方表格
-
填写起始地址
-
在 写入值 框中输入值(支持以下格式):
格式 示例 十进制单值 100十六进制单值 0x0064逗号分隔多值 10,20,30 -
点击 写入
- 读取线圈:填写起始地址和数量,点击 读取线圈
- 写入线圈:填写地址,设置写入值(0 或 1),点击 写入线圈
点击界面右上角的 EN / 中 按钮切换界面语言。
- 🐧:2103539430
- 🛰:Ubuntu_Noble

