基于PXI总线的某型气体检测仪便携式测试系统设计

(整期优先)网络出版时间:2023-06-14
/ 4

基于PXI总线的某型气体检测仪便携式测试系统设计

邓友程1,彭卓玲2,黄启勇1

(1.中船重工安谱(湖北)仪器有限公司,宜昌,443000;

2. 中国船舶集团有限公司第七一〇研究所,宜昌,443000)

摘 要:针对某型气体检测仪在设计和生产过程中人工测试效率低的问题,本文采用小型化、通用化的思想,设计了一种基于PXI总线的便携式测试系统。该便携式测试系统针对气体检测仪的功能特点,对其多路信号进行实时监测,并能将测试结果以具体数值或者示波器图像的形式进行实时显示、保存和查看,具有操作简单、界面清晰、测试准确、便于维护等特点,极大地提高了测试效率和资源利用率。

关键词:气体检测仪;PXI总线;Labwindows/CVI;便携式测试系统

0 引 言

近年来,随着对地铁、海关、消防、军事反恐等公共领域的安全监测日趋重视,对某型气体检测仪的研制及应用提出了急迫的需求[1-2]。在气体检测仪装备应用过程中,如何发挥其应有的战斗技术性能,保障装备的安全性、可靠性和维修性,就需要保障部门针对性的运用高效和稳定的测试方法来保证装备的可靠运行[3]。气体检测仪需要测试的项目共涉及几十路信号检测,若对所有的项目严格按照测试规程进行测试,测试一台大约需要一天的时间。现阶段,其检测手段仍然采用人工测试的方式,还没有一套完整的测试设备对其进行检测,大量的人力物力被耗费。

虚拟仪器是利用计算机加上硬件模块,结合软件工具,由用户根据自己的需求设计的新型仪器,常被称作“软件仪器”。虚拟仪器不仅能完成信号的采集和控制、分析处理和结果输出,还将模块化的I/O硬件及高效的软件集成一体,是当前测试技术的主流发展方向[4]。美国国家仪器公司(National Instrument,NI)在发展虚拟仪器及其仪器设备方面一直走在世界前列。20世纪80年代,NI公司提出虚拟仪器的概念,其“软件即仪器”的观念实现了硬件仪器功能向软件化、虚拟化转变,使测试仪器的发展发生了巨大变革[5]。虚拟仪器技术发展迅速,身影早已充斥在各个工业测量领域,如徐春梅等人推出LabWindows/CVI交互式C语言开发平台,用来构建可靠的测试与测量解决方案[6], 王毅等人以LabWindows/CVI为开发软件,设计了一套针对雷达信号的相位噪声测试系统[7]

除了虚拟仪器技术外,PXI总线凭借着其传输速度快、构建成本低、测试精度高等优点,在自动化测试领域以高性能、模块化、开放的架构得到了极为广泛的应用[8]。如王挺等人采用测试测量领域具有最主流模块化仪器标准的PXI总线技术,进行了虚拟数字信号分析仪的设计与实现[9]。游磊等人基于PXI数据采集卡的硬件基础,通过编写软面板以完成数据采集设备的操作与控制[10]

对此,本文根据某型气体检测仪的功能特点和装备测试需求,采用小型化、通用化的思想,设计了针对气体检测仪的便携式测试系统。该系统以便携式机箱为载体,内部采用PXI总线搭建硬件平台,并使用LabWindows/CVI设计人机交互系统、编写测试程序,可将气体检测仪的测试结果实时显示、保存和查看,极大的简化了测试过程,提高了测试效率。

1 硬件系统设计

1.1 硬件系统需求分析

确定系统硬件需求或测试资源是某型气体检测仪便携式测试系统硬件设计的首要任务,硬件系统是软件系统的运行平台,其性能好坏直接决定了自动测试系统的运行效率和检测精度[11]。因此,为了搭建高效可靠的自动测试系统硬件平台,根据气体检测仪的具体功能和装备测试需要,分析硬件系统的测试需求,制定测试方案。对于被测气体检测仪,主要考虑以下测试资源:

1)供电电源:气体检测仪在工作过程中由电池供电,硬件系统在测试时需要根据被测气体检测仪的工作电源种类、数量以及性能指标,为其提供相应的供电电源;

2)信号激励:气体检测仪在实际工作中,会接收若干路外部输入信号,如传感器检测信号。因此在测试时,硬件系统需要根据外部输入信号的种类、数量以及性能指标为被测气体检测仪模拟外部输入信号,尽可能地模拟其实际外部工作环境;

3)参数测量:气体检测仪在工作过程中,会输出若干模拟或数字信号,如电源转换模块向外部输出的直流电源信号、控制模块向外部输出的控制信号等。因此在测试时,硬件系统会根据被测气体检测仪输出信号的种类、数量以及性能指标提供测试模块,全面地测量其所有输出信号;

4)信号调理:信号调理部分是为了完成硬件系统和被测气体检测仪之间的测试信号连接,实现气体检测仪的上电控制、测试信号转换、测试信号调理等功能;

5)电路接口:电路接口将信号调理单元上的接口信号和被测气体检测仪对接,完成测试系统的机械和电气连接,并实现系统通讯功能。

1.2 硬件系统总体设计

硬件系统基于PXI总线进行搭建,由PXI8槽便携式机箱(含键盘和显示器)、PXI控制器、PXI多功能采集卡、PXI接口卡、信号调理单元、供电单元以及接口电路构成,其组成框图如图1所示。

图1 硬件系统组成框图

1)PXI8槽便携式机箱:PXI8槽便携式机箱为可手持式下翻机箱,内含8槽PXI总线背板,可插入PXI接口卡、多功能采集卡等PXI系列的板卡,用于组建PXI总线测试系统。该机箱自带液晶显示屏和键盘,能为内部的硬件测试提供标准的物理接口,且含剩余空间用于安装其他测试所需的硬件模块,结构轻巧、便于操作人员携带。

2)PXI控制器:PXI控制器插于便携式机箱的8槽背板中,内部集成了CPU、硬盘及内存,并提供了若干常用的I/O接口,如USB、LAN等。PXI控制器是气体检测仪便携式测试系统的核心,测试软件运行在PXI控制器中,能为该测试系统提供一个坚固而稳定的平台,并实现测试过程的控制。

3)PXI多功能采集卡:PXI多功能采集卡插于便携式机箱的8槽背板中,由模拟量输出(A/D)、模拟量输出(D/A)、数字量输入和输出(DIO)组成,用于实现硬件系统的信号激励以及参数测量需求。

4)PXI接口卡:PXI多接口卡插于便携式机箱的8槽背板中,由常见的RS232或RS485通讯模块组成,用于对被测气体检测仪进行串口测试。该模块还能通过串口在测试系统和被测气体检测仪之间发送报文,用传输重要的测试信息。

5)信号调理单元:信号调理单元是测试系统和被测气体检测仪之间的纽带,用于实现信号的传输和处理,如对电压信号进行稳压以输出更加稳定的电源信号;将RS232信号转换为TTL电平信号以实现串口通信;将采集到的小电压信号进行放大以便于多功能采集卡采集等。

6)供电单元:供电单元给整个测试系统提供动力能源,能将外部输入的220V交流电压转换为测试系统所需要的直流工作电压。

7)电路接口:电路接口将信号调理单元上的接口信号和被测气体检测仪接口适配,实现系统的机械和电气连接。

2 软件系统设计

2.1 软件系统总体设计

软件系统以Windows7为操作系统,使用Labwindows/CVI[12]作为开发平台,利用Labwindows/CVI标准ANSI C的交互式开发环境、功能强大的操作函数库及GUI控件,不仅能对硬件系统运行进行控制,用以系统测试与数据分析,还具有良好的人机界面、操作简单、可移植性强等优点。

软件系统是实现气体检测仪便携式测试系统自动化测试的核心,能完成测试结果实时显示、测试数据查询、运行错误报警等多种功能。在满足以上基本功能的前提下,软件系统还应满足一定的非功能性需求,如易操作性、高效性、稳定性、通用性等特点。

软件系统采用模块化思想进行设计,根据系统测试总体需求,将软件系统按功能分为用户管理、测试界面、数据查询、登陆界面、自检共5个模块,软件系统结构框图如图2所示。

2软件系统结构框图

用户管理:用户管理界面分为注册、管理功能,根据系统使用权限将用户划分为管理员用户和普通用户两种身份。

登陆界面:登陆界面为用户提供用户和密码输入窗口,能防止无权限用户进入此系统进行误操作。

自检界面:自检界面可完成自动测试系统的硬件自检功能。在对被测气体检测仪进行测试之前,要先系统进行自检,自检完成后,方可进行测试。

测试界面:测试界面用来展示被测气体检测仪的实时测试信息,能展示具体的测试信号曲线图、测试状态、以及其他信息。

数据查询:数据查询界面能根据用户输入的查询条件,将查询的结果以曲线或者表格的形式显示。同时,在此界面下,根据用户的不同需求,可将查询结果以Word或者Excel方式生成报表,供后续使用。

2.2 软件系统运行主流程

软件系统的主要功能是完成气体检测仪的功能测试,用户可根据顺序进行测试操作[13]。首先登录系统,对便携式测试系统进行自检,自检正常后才能进行测试。测试过程中,系统会对每一项测试结果进行判断,并在界面中进行显示。测试完成后,用户可对测试结果进行查看,并根据需要将测试结果生成数据报表。系统软件运行主流程设计如图3所示。

3软件运行主流程

2.3 通信模块设计

便携式测试系统在对被测气体检测仪进行测试时,需要多次在两者之间通过串口完成通信功能。通信模块的程序设计是整个软件程序编写的最重要的部分之一,分别涉及串口收发数据、多线程、串口数据处理等关键技术。在软件设计时,主要使用RS-232 Library[14]中的串口收发函数、Multithreading[15]中的多线程函数等进行编程。

(1)串口收发数据

串口收数和串口发数过程类似,仅使用的部分函数不同。下面是串口收数的程序如下:

OpenComConfig(comport, ,baudrate,0,8,1,512,512);

FlushInQ(comport);

GetInLen(comport);

ComRd(comport,readbuf,512);

首先根据通信的串口号、波特率、数据位、奇偶校验方式等参数使用OpenComConfig()函数对串口进行配置,然后再第一次接收串口数据之前,使用FlushInQ()函数对串口缓冲区的数据进行清空。在被测气体检测仪发送串口数据后或者经过设定的延时时间之后,使用GetInLen ()函数查询串口缓冲区中数据字节数,最后通过ComRd()函数将串口缓冲区中的数据取出,再由软件进行相应处理即可。

(2)多线程技术

软件多线程技术能从软件上实现多个线程同时执行。多线程的使用不仅能让程序响应速度更快,还能资源利用率更好。便携式测试系统和被测气体检测仪通过多个串口进行通信并接收测试数据,采用多线程的方式实现,在不同地串口之间通信时使用不同的线程,既防止数据发生冲突,又能更好地利用资源。多线程创建和使用程序如下:

CmtNewThreadPool(10, pHandle);

CmtScheduleThreadPoolFunction(pHandle, CSThreadFunction,(void)funcID,NULL);

Static int CVICALLBACK CSThreadFunction(void funcID)

{

  While(flag)

  {

   Analyse();

}

}

首先通过CmtNewThreadPool()函数创建线程,然后使用CmtScheduleThreadPoolFunction ()函数将在某个线程中定义的执行函数传递进来,接着在CmtScheduleThreadPoolFunction()函数中部定义某个线程执行时的操作函数。在该线程开启时,flag标志位置为1,即可进行串口数据的收发和处理。最后,通过Analyse()函数对接收到的具体数据进行处理。

(3)串口数据处理

测试系统在分次读取串口数据时,可能将某一次传输的数据帧分开读取,若每次读取串口数据时,只单独处理本次数据,很可能造成数据丢失,使得测试结果发生错误。在串口数据处理部分,使用循环收数数组、循环收数指针、循环分析指针对数据进行处理,可防止数据丢失。循环收数数组长度足够长,一般设置上千个数据量。循环收数指针初始化为0,每接收一个数据增加1 。循环收数数组根据循环收数指针的大小,在循环收数数组的对应位置存储串口传输的数据。当循环收数指针大小等于数组长度时,将其值重新置0,如此反复。循环收数指针初始化为0,串口每接收一次数据,即可根据循环收数数组的内容从循环分析指针位置进行数据处理,每处理一个数据循环分析指针增加1,直到循环分析指针大小等于上一次循环收数指针大小为止。

3 系统验证

为了验证便携式测试系统的功能,开展了多次外场试验,在此仅选取电源模块测试结果进行展示。图4为某次试验时便携式测试系统进行电源模块测试的测试界面,试验时,可以根据设备通信指示的实际情况选择数据接收和发送的串口,在状态指示区观察通信连接情况。在界面的显示区能够实现各路电源数据的实时接收以及显示,采集的电压数据以数值或者示波器图像的形式进行动态显示。例如界面中所显示的6路实时电压数值以及波形,电压源稳定输出,电压信号的波形显示无中断。同时,该界面还可以显示系统的测试状态以及当前测试信息。

4试验时测试系统软件电源模块测试界面

4 结语

本文主要以某型气体检测仪为对象,结合其功能特点和装备测试需求,开发了一种基于PXI总线的某型气体检测仪便携式测试系统,该测试系统在Labwindows/CVI平台上进行开发,能够将气体检测仪的测试结果实时显示、保存和查看,提高了测试效率的同时简化了装备的测试流程,并在外场试验时,对系统的功能进行了多次验证。在接下来的工作中,将对测试系统进行优化:在硬件系统方面,增加信号切换装置,实现示波器一个通道对多路信号的采集,使测试系统的功能测试更为全面;在软件系统方面,针对数据库设计、功能模块设计和软件程序编写方面进行优化,使系统的功能更加完善。同时,可对测试系统进行二次开发,完成更多型号气体检测仪装备的功能测试,提高测试平台的通用性。

参考文献

[1]叶浩杰,贾建,高晓光等.用于有毒工业气体检测的离子迁移谱系统[J].分析仪器,2021,238(05):1-8.

[2]郭小烨,王洋.基于STM32的手持式气体检测仪[J].计算机测量与控制,2022,30(09):265-271.

[3]高亢,齐鑫,纪浩等.基于PXI总线的导弹自动测试系统设计[J].工业控制计算机,2018,31(11):1-2.

[4]Sivaranjani S, Velmurugan S, Kathiresan K , et al. Visualization of virtual environment through labVIEW platform[J]. Materials Today: Proceedings, 2020:2214-7853.

[5]王建新.LABWINDOWS/CVI虚拟仪器设计技术(附光盘)[M].化学工业出版社,2013.

[6]徐春梅,牛斌.LabWindows/CVI在开发测试软件中的应用[J]. 电子测试,2020, 000(002):66-68.

[7]王毅,杜亚杰,付龙文等.基于LabWindows/CVI的雷达信号参数检测系统的设计与实现[J].舰船电子工程,2019,39(02):27-31.

[8]王朕,肖支才,张文广.基于PXI总线的便携式可编程通用测试资源系统的设计[J].仪表技术,2021, 381(01):23-26.

[9]王挺,盛文,蒋伟等.基于LabWindows/CVI的虚拟数字信号分析仪设计与实现[J].自动化与仪表,2018,33(03):88-91.

[10]游磊,梁颖,王进等.基于LabWindows/CVI的PXI数据采集卡软面板设计与实现[J].计量与测试技术,2020,47(07):1-4.

[11]苏同发, 张朴, 侯军涛等. 基于LabVIEW的定向探管电路产品功能自动检测系统[J]. 仪表技术与传感器, 2021, 458(03):76-81.

[12]刘希.基于LabWindows/CVI的某应答机自动测试系统设计[J].计量与测试技术,2020,47(10):23-25.

[13]夏中亚,王伟,陆晓明等.基于LabVIEW的某型舵机综合性能测试系统[J].计算机测量与控制,2015,23(01):53-56.

[14]邹碧霄,丁露,罗浩.基于LabWindows串口通讯设计[J].信息与电脑(理论版),2019,(11):201-202.

[15]唐曦文.多线程在仪器控制软件设计中的研究与应用[J].航空精密制造技术,2020,56(04):23-25.

1