基于 QWidget 实现自动化设备上位机软件
项目描述:该项目是入职深圳艾而特参与研发的产品,属于自动化设备上位机整体软件,包括界面
操作、曲线展示、下位机通讯、数据存储、日志打印和工厂主机 MES 通信等的客户端程序;
1 界面操作:基于 QWidget 搭建上位机界面,实现工艺参数的控制与存储、用户管理、界面控件权限
管理、数据收集与展示、日志管理、报警交互和机器整体流程的运行等功能;
2 曲线展示:基于 QChart 类实现数据曲线的展示,QLineSeries 序列中添加数据,序列添加在 QChart
对象即可在 QChartView 里显示,加载相应的 QMouseEvent 事件去分析区域内的数据
3 下位机通讯:基于 RS232/485 或 Modbus tcp 实现与设备连通,通过多线程去实现数据的采集与下
发,使用定时器的方式防止出现黏包和粘包问题,实现重发机制减少数据的丢失情况,通过严格的
数据帧结构去保证数据传输
4 数据存储:(1)基于 QSqlite 数据库、CSV 表格在多线程的加载下存储数据,使用 SQL 语句搭配
互斥锁 QMutex 将数据加入数据库,通过 model、view 将数据映射在界面,使用连表查询和模糊匹配
的方式去搜索数据。
(2)通过调用 QTextStream 或者 QDataStream 将完成数据写入到 csv 表中
5 工厂主机 MES 通信:基于通过 Http/Webservice 协议,实现设备参数与报警上报、菜单切换与核验
和远程控制,达到产品数据能实现校验与过站的功能
6 多语言切换:基于 Qt Lingust 实现多种语言的切换,在配置文件里添加翻译文件(.ts),更新翻译
后在 Lingust 实现具体化的翻译生成目标文件(.qm)通过 QTranslator 加载并写好注册表即可
7 界面管理:基于 Qt 信号与槽机制、QStackWidget 控件去管理控制 UI,用户界面、参数界面、数据
界面、运行界面等
(1)用户界面:运行 MD5 加密的方法去管控密码
(2)参数界面:使用 QLabel、QLineEdit、QSpinBox、QComboBox、QPushButton 等控件组成
(3)数据界面:通过 Model、View、Delegate 完成显示、编辑等功能
(4)运行界面:使用 QGraphicsView 类将 View、Sceen、Item 交互以便显示图形的变化
8 整体框架设计: 整体基于 MVC 架构,实现 UI、业务逻辑和数据模型的分离;不同模块的组合采用
桥接的方式,单个模块采用组合的方式将数据和控制分开便于复用
9 核心技术点:RS232/485 或 Modbus tcp 通信、Http/Webservice 协议、QMutex 互斥锁、多线程、
数据库、信号与槽、Model、View、Delegate 等