基于QT 的PXI 仪器测试软件开发
林鸿
贵州航天风华精密设备有限公司 贵州贵阳 550025
Electrical control units are core components of mechatronic systems. To address the challenges of testing these units using PXI instruments, we developed a dedicated test software based on the Qt framework. The software features a layered architecture and modular design, comprising a user interaction layer, a business logic layer, and a hardware driver layer. It utilizes the signal-slot mechanism to query, control, and display analog/ digital quantities and communication data, with QCharts enabling dynamic curve rendering. Practical application confirms that the software offers a user-friendly interface and comprehensive testing capabilities, significantly improving the efficiency and reliability of electrical control unit testing.
0 引言
电气控制装置在机电一体化设备中发挥着重要的作用,其通信、控制技术在保障一体化设备的安全稳定运行中发挥核心作用。但由于其复杂的功能设计,也为其测试带来了难题,市面上有很多种串口调试工具、PXI 调试工具,但都不能很好地适配公司产品测试,关键就在于通信调试助手无法控制模拟量输出及采集,而 PXI 调试助手不自带串口通信功能,因此,开发一款适用于我司电气控制装置测试的软件是迫在眉睫的。
Qt 作为跨平台开发框架,其源代码级特性与强大的 GUI 设计能力(通过Qt Designer 实现)显著提升了开发效率。该框架特有的信号槽机制为事件处理与业务逻辑连接提供了高效解决方案,特别适用于测试软件开发。目前基于 Qt 开发的测试软件已成功应用于新产品验证,实际测试验证了其界面友好性、操作便捷性和测试高效性,完全满足设计要求。
1 测试软件总体设计
通过分析我司电气控制产品的功能需求,结合对设计人员的需求调研,本文对测试软件需要实现的功能进行了深入分析,并设计了软件整体框架。
1.1 测试软件需求分析
调研分析表明,该测试软件需实现以下核心功能:
1. 串口参数配置及稳定周期通
2. 多串口并行通信支持
3.PXI 设备模拟量采集 /
4. 通信数据实时可视化
5. 自动化测试及数据存储功能
1.2 测试软件整体设计
该测试软件基于 Qt 5.14 平台开发,采用模块化三层架构设计。用户界面通过 Qt Designer 工具构建,底层功能实现主要依托 Qt 框架的核心类库:使用 QSerialPort 类实现串口通信功能,通过 QCharts 类完成数据可视化呈现。
系统架构分为:
1. 用户交互层:负责GUI 显示与人机交互
2. 业务逻辑层:处理多线程通信、自动化测试及数据存储等核心业务
3. 硬件驱动层:封装串口通信、PXI 设备 I/O 控制等底层硬件操作
各层级模块通过Qt 信号槽机制实现高效通信。
2 测试软件具体实现
测试软件采用 QT designer 设计用户界面。使用 stackedWidget 容器划分4 个测试子页面,通过按钮切换不同页面。
在串口参数设置功能实现中,系统采用 QComboBox 下拉选择控件提供串口参数配置界面,通过 QPushButton 按钮控件实现串口的开启与关闭操作,同时利用 QTextEdit 文本编辑组件实时显示串口通信过程中的收发数据,这一设计既满足了基本通信需求,也为软件自检功能提供了可视化支持。
主控操作流程通过按钮事件驱动实现不同测试流程的切换,在界面中央区域设置多个文本框实时更新通信数据,后台数据处理线程会对接收数据进行自动解析和校验,当检测到异常数据时,系统会触发文字闪烁特效进行告警提示,有效提升了操作人员的异常识别效率。
辅助功能模块主要处理软件基础配置,包括字体大小调节、文件存储路径设置等个性化选项,这些功能通过 Qt 标准对话框组件实现,为用户提供了灵活的参数调整空间。
数据可视化部分基于 QChart 图表框架开发,首先完成折线图的坐标轴、图例等基础样式配置,然后创建 QLineSeries 数据序列对象,系统会持续读取通信数据并动态追加到数据序列中,通过定时刷新机制实现折线图的平滑更新,这种设计既保证了数据显示的实时性,又维持了良好的视觉呈现效果。整个软件采用模块化设计思想,各功能组件通过信号槽机制实现高效协同。其具体实现可参考以下代码:
Series = new QSplineSeries();
m_chart->setTitle(QStringLiteral(“字节变化折线图”));
m_chart->legend()->hide();
setRenderHint(QPainter::Antialiasing);
m_chart->setTheme(QChart::ChartTheme::ChartThemeDark);
axisX = new QValueAxis();
axisX->setRange(0,1000);
m_chart->addAxis(axisX,Qt::AlignBottom);
axisY = new QValueAxis();
axisY->setRange(0,255);
m_chart->addAxis(axisY,Qt::AlignLeft);
data = new serial;
connect(data,SIGNAL(SendData(const QByteArray &data)),this,SLOT(Receive(QByteArray)));
……
Unsigned char value;
value = (unsigned char)msg.at(n);
series->append(x,value)
m_chart->addSeries(series);
series->attachAxis(axisX);
series->attachAxis(axisY);
3 测试验证
该测试软件已成功部署于 PXI 测试平台并投入实际应用。通过集成化的测试环境,软件完整实现了串口参数配置、多线程并行通信、硬件驱动控制等核心功能模块,同时具备自动化测试流程执行、实时数据智能分析、动态可视化展示等高级特性。测试结果表明,该软件在电气控制装置的完整测试周期中表现稳定可靠,各项功能指标均达到设计要求,能够有效满足研发测试的工程应用需求。特别是其多线程架构设计确保了测试过程的高效性,动态数据可视化功能则为测试人员提供了直观的数据分析手段,显著提升了测试效率和质量管控水平。
4 结论
本文针对电气控制装置测试需求进行了系统性分析,基于 QT 框架开发了一套功能完善的测试软件。该软件采用模块化设计思想,实现了参数配置、数据采集、自动测试和结果分析等核心功能模块,通过信号槽机制确保各模块间的高效协同。在实际应用中,该测试软件已成功应用于我司新一代电气控制装置的研发测试环节,其直观的操作界面、稳定的运行性能和高效的测试流程获得了研发测试团队的一致好评。得益于标准化的软件架构设计和灵活的通信协议接口,本测试软件仅需进行简单的参数调整即可适配各类采用标准通信规约的工业设备,展现出良好的通用性和可扩展性,为工业自动化测试领域提供了可靠的软件解决方案。
参考文献:
[1] 陈春宇,杨云鹏,郑亚杰 . 基于 QT 的 Modbus 测试软件开发与应用 [J]. 自动化应用 . 第 66 卷 , 第 4 期 ,2025 年 2 月 .
[2] 刘康丽,谷 静,杜 影,毕 硕,朱元元. 中标麒麟系统下基于QT的PXI仪器软件开发[J]. 计算机测量与控制.2019.27(10).
[3] 郑泽 . 基于 QT 的解耦合消息框架的设计 [J]. 电脑编程技巧与维护 .2025.5(32-35).
作者简介:林鸿(1996-),男,硕士,工程师,主要从事仪器软件开发方向研究。