码上通QT实战37--项目总结

1、前言

2024年9月,我在西安四腾环境科技公司任项目技术总监,负责【忻州中恒药业有限责任公司】客户的智慧建筑系统中一部分开发工作,该项目以信息设施系统、信息化应用系统、建筑设备管理系统、公共安全系统等相结合的建筑为基础,将结构系统,服务管理和优化结合在一起,可保证大楼内适宜的空气温度、相对湿度和空气洁净度等环境参数指标,随时保障水电冷热等能源供应,使大楼使用者及时了解大楼内部信息,也为大楼管理者提供先进的物业管理手段,延长设备使用寿命,节省能源,节省人员,提高设备利用率。为用户提供安全高效,节能舒适的建筑环境。

实际项目中需要采用C++和QT软件开发技术实现设备通信与数据采集,自动采集水、电、气、热数据,生成日报 / 月报,实时监控,实时显示设备健康状态,行业适配性要求极高,面向工业场景,融合工业业务逻辑、数据采集 / 分析、人工智能算法的应用,这是智能化工业软件的核心,工业项目的典型开发流程是:

  • 需求调研与业务建模

    • 对接工厂运维人员,明确需求:如 "采集空压机的压力 / 温度数据,预测故障并预警";
    • 梳理业务逻辑:确定采集频率(1 秒 / 次)、故障判定阈值、预警推送规则(短信 / 软件弹窗)。
  • 设备对接与数据采集

    • 确定设备通信协议(如空压机带 Modbus RTU),开发采集模块(C++/Qt);
    • 实现数据清洗:过滤异常值(如传感器断连的无效值)、补全缺失数据。
  • 智能算法开发与集成

    • 基于历史故障数据,训练 LSTM 预测模型(Python);
    • 将模型导出为 ONNX 格式,通过 C++ 嵌入 Qt 主程序,实现实时预测。
  • 界面开发与功能集成

    • 用 Qt Creator 开发界面:实时数据面板、趋势图、故障预警弹窗、设备台账管理;
    • 集成报警模块:触发阈值后推送短信 / 邮件。
  • 测试与部署

    • 工业现场测试:在工厂工控机上部署,验证实时性、稳定性;
    • 迭代优化:根据现场反馈调整算法阈值、界面交互。
  • 运维与升级

    • 远程监控软件运行状态,支持在线升级;
    • 持续优化算法(如补充新故障数据重新训练模型)。

本案例是实际项目中的一个缩影,一个典型应用,虽然无法将整个项目的全部应用搬到平台上,但是它真实地反映了项目中的各种技能细节,涉及市场采购,设备选型,参数调整,通信调试,网络协议,软件设计,模块开发,程序编码,代码调试等众多细节,就只是没有涉及需求调研,项目实施,人员沟通,商务合同这些方面了,相比普通民用软件,智能化工业软件的开发有显著的行业特性。而Qt 在设备 HMI、数据监控大屏、SCADA 系统这些场景中拥有绝对的统治力,对智能化工业软件方向而言,Qt 是核心技能 ------ 能覆盖工业界面开发、数据可视化、嵌入式终端开发等核心场景,是进入工业软件领域的 "敲门砖",学习 Qt 能夯实 C++ 工程化能力,培养跨平台开发思维,拓展从桌面到嵌入式的开发边界,Qt 的核心价值集中在工业、嵌入式、专业桌面软件领域,结合工业通信 / AI 算法后,能成为稀缺的智能化工业软件开发者,为了让你更直观地理解,我将这些场景按照业务功能应用领域进行了简化,并结合具体的技术实现进行介绍,希望给设备工程师,系统集成人员,电气工程师,软件工程师等带来福利。

2、技能罗列

1)QT核心模块

  • QT6.9.3(C++17)
  • QT Creator 18.0(官方 IDE,工业开发首选,集成调试 / UI 设计 / 跨平台编译))
  • Sqlite3(对接数据库,存储设备原始数据)
  • Qt Core(基础知识结构、多线程、信号与槽)
  • Qt Network(工业通信Modbus/TCP 开发))
  • Qt SerialPort(串口通信对接 PLC / 传感器 / 智能仪表)
  • Qt Widgets(按钮、表格、仪表盘、自定义控件)
  • Qt Charts(实时趋势图、柱状图、饼图)

关键知识点

  • 自定义控件:工业软件常需定制仪表盘、指示灯、工控按钮,需掌握QPainter绘图、控件重写;
  • 多线程:工业数据采集 / 通信必须放到子线程,避免阻塞界面(核心是QThread/Qt Concurrent);
  • 布局管理:工业界面需适配不同分辨率工控屏,掌握QGridLayout/QVBoxLayout和自适应布局。

2)辅助通信

  • Modbus Slave
  • ComMonitor.exe
  • Configure Virtual Serial Port Driver
  • Navicat Premium 15

3)精品硬件

  • RS232串口卡
  • 串口转485转换器
  • USB转485转换器
  • 稳压电源适配器
  • 温度传感器
  • 湿度传感器
  • 光照传感器
  • LED数码管
  • 工程网线

4)通信协议

这是 Qt 开发工业软件的 "核心竞争力",需掌握工业领域专属的通信、协议、适配能力。

串口协议 :Modbus RTU(对接串口型 PLC / 传感器),基于Qt SerialPort开发

Qt 核心模块(Core/Widgets/Network/SerialPort/Charts)+ 工业通信协议(Modbus/OPC UA),这是入门和落地项目的基础;

3、功能实现

忻。州中恒药业有限责任公司西安四腾环境科技有限公司

4、优质文章

码上通QT实战01--创建项目

码上通QT实战02--登录设计

码上通QT实战03--登录逻辑

码上通QT实战04--主窗体布局

码上通QT实战05--绘制导航按钮

码上通QT实战06--导航按钮事件

码上通QT实战07--主窗体消息栏设计

码上通QT实战08--导航按钮切换界面

码上通QT实战09--监控页面01-区域划分

码上通QT实战10--监控页面02-绘制温度盘

码上通QT实战11--监控页面03-绘制湿度盘和亮度盘

码上通QT实战12--监控页面04-绘制6个灯珠及开关

码上通QT实战13--监控页面05-串口设备连接准备

码上通QT实战14--监控页面06-串口设备数据初始化

码上通QT实战15--监控页面07-打开串口连接

码上通QT实战16--监控页面08-连接后状态处理

码上通QT实战17--监控页面09-通信过程对接

码上通QT实战18--监控页面10-获取设备数据

码上通QT实战19--监控页面11-界面显示数据

码上通QT实战20--监控页面12-获取灯珠状态

码上通QT实战22--趋势页面01-准备图表对象

码上通QT实战23--趋势页面02-图表模拟数据

码上通QT实战24--趋势页面03-展示设备数据

码上通QT实战25--报警页面01-报警布局设计

码上通QT实战26--系统设置01-系统设置布局

码上通QT实战27--系统设置02-加载用户列表

码上通QT实战28--系统设置03-用户管理布局

码上通QT实战29--系统设置04-用户操作管理

码上通QT实战30--系统设置05-加载报警信息

码上通QT实战31--系统设置06-保存报警信息

码上通QT实战32--报警页面02-触发报警条件

码上通QT实战33--监控页面14-刻度盘旋转

码上通QT实战34--监控页面15-调试仪表盘硬件

码上通QT实战35--监控页面16-对接仪表盘硬件

码上通QT实战36--监控页面17-对接显示屏硬件

码上通QT实战37--项目总结

5、学习目标

用 Qt 开发工业软件,本质是通过 Qt 的技术特性,满足工业领域对软件 "稳定、适配、高效、易用" 的核心需求,最终落地业务价值。本项目虽小,但五脏俱全,涉及市场采购,设备选型,硬件参数,网络接线,工具调试,通信协议,软件设计,模块开发,程序编码,代码调试等众多细节,是从1到100的冲刺项目,是实现弯道超车的加速器,通过学习本项目,远景可以达到以下目标:

(1)跨平台适配:一次开发,多终端部署

这是 Qt 最核心的优势,也是工业软件的首要目标:

  • 工业现场的终端环境极其多样:Windows 工控机、Linux 嵌入式工控板(ARM/x86)、国产系统(麒麟 / 统信)、设备自带的 HMI 屏(如数控机床的嵌入式屏);

  • Qt 能让一套代码无需大幅修改,适配所有终端,避免为不同系统重复开发(比如 Windows 版做一套、嵌入式 Linux 版再做一套),大幅降低开发和维护成本;

  • 对智能化工业软件而言:跨平台意味着算法模型(如故障预测)的界面层可无缝部署到车间工控屏、中控室大屏、远程运维终端,数据展示无差异。

(2)保障高可靠性与实时性

工业软件的 "生命线" 是稳定性,这是 Qt 开发需重点达成的目标:

  • 7×24 小时不间断运行:通过 Qt 的多线程(QThread)、内存管理(智能指针)、故障容错(断线重连、异常捕获)设计,确保软件在工业现场长期运行不崩溃;

  • 实时性满足工业要求:Qt 的底层基于 C++,通信模块(Qt Network/SerialPort)延迟低,能满足毫秒级的数据采集(如 PLC 通信)、微秒级的界面响应,适配设备控制的实时性需求;

  • 符合工业安全标准:通过 Qt 开发的软件可适配 IEC 61508(功能安全)、ISO 26262(汽车工业)等标准,避免因软件故障导致生产事故。

(3)高效实现工业级人机交互

工业软件的使用者是车间操作工、运维工程师,界面需 "实用、易懂、适配工业场景":

  • 快速开发工业专属 UI:基于 Qt Widgets/Qt Quick,可定制工控常用控件(仪表盘、指示灯、趋势图、组态元件),无需从零开发;

  • 适配工业硬件:支持工控屏的触摸操作、快捷键、多屏显示,适配车间复杂的操作环境(如强光下的屏幕显示、防水键盘的交互);

  • 数据可视化清晰:通过 Qt Charts/QCustomPlot 实现实时趋势图、报警弹窗、设备状态看板,让工程师快速掌握设备 / 产线状态。

(4)无缝集成工业通信与智能化能力

Qt 不是孤立的界面框架,开发目标是成为工业软件的 "统一载体":

  • 对接工业协议:通过 Qt 的通信模块,快速集成 Modbus/OPC UA/MQTT 等工业协议,实现与 PLC、传感器、机器人的互联互通;

  • 融合 AI / 算法能力:Qt 可与 OpenCV(视觉质检)、ONNX Runtime(AI 模型部署)、Python(算法建模)无缝集成,让 "界面 + 数据 + 算法" 形成闭环,落地智能化工业软件的核心能力(如故障预测、视觉质检)。

最终目标是通过 Qt 开发的软件,将 "智能化" 落地到工业现场,实现业务价值。

最终目标是通过 Qt 开发的软件,将 "智能化" 落地到工业现场,实现业务价值。

6、超大礼包

复制代码
原创不易,打字不易,截图不易,撸码不易,整理不易,走过路过,不要错过,欢迎点赞,收藏,转载,复制,抄袭,留言,灌水,请动动你的金手指,祝您早日实现财务自由。
相关推荐
用户805533698032 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
xcyxiner2 天前
DicomViewer (vcpkg Windows和ubuntu编译)7
qt
Quz7 天前
QML Hello World 入门示例
qt
xcyxiner10 天前
DicomViewer (dcmtk读取dcm文件)5
qt
xcyxiner11 天前
DicomViewer (后台线程处理文件)4
qt
xcyxiner11 天前
DicomViewer (添加模型类)3
qt
xcyxiner12 天前
DicomViewer (目录调整) 2
qt
xcyxiner12 天前
dcmtk vtk vtk-dicom(gdcm) 编译(debug) v2
qt
LDR00614 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术14 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript