APP下载

某型控制舱测试仪软件设计

2019-02-18马朋朋卢晓春

现代商贸工业 2019年5期
关键词:数据采集数据处理

马朋朋 卢晓春

摘要:首先介绍了测试仪的系统组成,然后对测试软件的开发环境、架构、功能模块的实现和数据采集、处理方法进行了阐述。该测试软件已对控制舱(以下简称产品)进行了实际测试,测试结果准确可靠,能够真实反映产品的状态,自动化程度和稳定性满足产品的测试需求。

关键词:Labwindows/CVI;模块控制;数据采集;数据处理

中图分类号:TB文献标识码:Adoi:10.19311/j.cnki.1672-3198.2019.05.088

1系统组成

测试仪由测控组件、测试平台、气源单元三部分组成。其中测控组件主要由PXI系统(包括AD数据采集卡、422通讯卡等)、测试软件、产品电源、设备电源、信号转接单元等部分组成。测控组件主要完成测试任务的管理、测试流程控制、测试数据的采集、显示和存储;提供测试仪和产品所需的各路直流电源;产品信号输入/输出控制、调理和转换。测试平台用于装夹产品。气源单元在测试时为产品提供所需的特定压力、流量的气体。

2软件设计

测试软件安装在测控组件的PXI系统的计算机上,是全系统的控制核心和数据信息处理中心,与测试仪硬件构成完整的测试系统,共同完成对产品的测试任务。测试软件与测控组件、测试平台和气源单元之间的外部接口主要包括模拟量采集,总线通讯控制,接口关系如图1所示。产品输出的信号由电气转接单元引入多功能卡AD通道由测试软件进行信号采集,测试软件对产品的加电、状态控制通过多功能卡DO通道控制电气转接单元的继电器动作来实现。测试软件通过RS422总线与程控电源和测试平台进行交互,通过RS232接口与气源单元进行交互。

在进行产品测试时测试软件主要完成测试环境确认,测试资源的检查和复位;产品供电及工作时序的控制;产品输出信息的接收、存储和实时显示;产品测试项目的检测和判读。测试仪对产品参数进行动态检测的过程中,能够实时显示系统测试状态、测试数据和测试曲线,并直观显示测试的最终结果。

测试软件采用NI公司LabWindows/CVI2010进行开发,CVI2010将功能强大、使用灵活的C语言与测控技术领域专业工具有机结合,適用于自动测试、自动控制、测试仪器通信、测试硬件控制和信号分析处理的软件开发,是一种基于C语言的虚拟仪器开发平台。其集成化开发环境、交互式编程方法、丰富的控件和库函数等特点使其成为工程技术人员开发测控系统软件的重要工具。

3软件实现

3.1软件架构设计

测试软件采用分层次的模块化设计,从结构上划分为两层,硬件驱动层通过各硬件模块将数据采集并存入内存中特定的单元,或者从内存中取出所需的数据并发送出去。测试功能层负责完成测试流程控制,测试数据的记录、分析和显示,其只关注具体的测试信号及这些信号数据可从内存中的那个地址取得,而不用关心这些数据是通过那些硬件操作的,对于硬件资源与具体测试信号之间的关联由专门的配置文件提供绑定,用这种方法提供强大的测试通道重组功能。

3.2软件界面设计

测试仪软件界面是用户直接操作测试仪的接口,设计以简洁为原则,具有直观性。整个界面划分为测试项目区、测试结果区、过程显示区、状态监控区和功能选择区五个区域,软件界面如图2所示。

3.3数据通讯模块的实现

测试过程中测试软件需要对程控电源、测试平台、气源进行控制和任务调度,使被测产品处于所需要的测试状态。

测试软件与程控直流电源通过RS422通讯卡的端口4实现指令发送和应答接收控制,电源地址6,波特率4800,数据位8位,停止位1位,采用奇校验。

测试软件与测试平台通过RS422通讯卡的端口1实现指令发送和应答接收控制,波特率4800,数据位8位,停止位1位,无校验。

测试软件与气源单元通过计算机RS232接口实现指令发送和应答接收控制,波特率9600,数据位8位,停止位1位,无校验。

3.4数据采集和处理模块实现

测试软件通过AD卡采集产品输出的信号,AD接口设置和数据采集采用NI DAQ接口函数集来完成。在进行产品测试时为了真实反映产品工作状态,需要通过软件算法对产品输出的个别信号进行频率、时间间隔和波形实时跟踪显示等测试。本文利用LabWindows/CVI软件自带的多线程机制,采用线程和异步定时器相互结合的方法来实现数据实时采集和数据处理。

将用户界面处理放在主线程中,同时创建一个线程专门用于循环采集AD数据,并将采集到的数据存储于开辟的缓冲区中。这样,在用户对界面进行操作时,操作系统将进行线程切换,为数据采集线程提供完成任务所需的时间,这样就能最大限度的保证数据采集的实时性,又能及时响应用户的其他操作。异步定时器负责从缓冲区中取出数据进行处理和显示。

AD采集线程:

hThread_AD=CreateThread(NULL,0,TestFunc_AD,0,0,&threadID_AD)。

通过TestFunc_AD()函数将采集的数据存储于缓冲区static double* m_pAIVal[32]中。信号的实时监控采用异步定时器timer=NewAsyncTimer(0.1,-1,1,Signal_Test,NULL)实现,刷新周期为100ms。

4结论

该测试仪软件基于Labwindows/CVI开发环境进行设计,采用分层次、模块化设计思路,实现了模块控制、数据采集、数据处理等,便于软件维护,提高了软件可靠性。该测试软件已对批量产品进行了实际测试,涵盖了产品的主要性能参数、测试结果准确可靠,能够真实反映产品的状态。

参考文献

[1]张凤均等.LabWindows/CVI开发入门和进阶[M].北京:北京航空航天大学出版社,2001.

[2]陈莉,林圳杰.基于LabWindows/CVI多线程研究与工程应用[J].工业控制技术,2006,10(1):92-94.

猜你喜欢

数据采集数据处理
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
基于开源系统的综合业务数据采集系统的开发研究
MATLAB在化学工程与工艺实验数据处理中的应用
Matlab在密立根油滴实验数据处理中的应用
基于POS AV610与PPP的车辆导航数据处理
依托陆态网的GNSS远程数据处理软件开发