1 引言
虚拟仪器(Virtual Instrument)的概念是由美国国家仪器公司(National Instruments)最先提出的[1],其核心技术思想就是“软件即是仪器”。它改变了传统仪器的测量模式,使测量系统由松散结合的、常常不兼容的独立仪器发展成紧密结合的虚拟测量系统。当用户的测试要求变化时可以方便地由用户自己来增减硬、软件模块,或重新配置现有系统以满足新的测试要求。这样,当用户从一个项目转向另一个项目时,就能简单地构造出新的 VI 系统而不丢失己有的硬件和软件资源。
目前城市中汽车保有量的大幅度增加,给人们的日常生活带来了极大的便利,同时也带来了严峻的环境问题,其产生的尾气已经构成公害,因此对于机动车尾气的监测已经成为治理环境污染的一个重要指标。本文设计一套基于虚拟仪器的气体浓度检测的系统,采用NI公司的PCI-6221数据采集卡实现气体检测数据的采集,并借助于NI公司的LabVIEW软件实现数据的处理。
2 虚拟仪器概述
虚拟仪器是基于计算机的功能化硬件模块和计算机软件构成的电子测试仪器,而软件是虚拟仪器的核心(如图1所示),其中软件的基础部分是设备驱动软件,而这些标准的仪器驱动软件使得系统的开发与仪器的硬件变化无关。这是虚拟仪器最大的优点之一,有了这一点,仪器的开发和换代时间将大大缩短。
图1虚拟仪器开发框图
与传统仪器不同,虚拟仪器有其自身的优点:
它可以通过在几个分面板上的操作来实现比较复杂的功能。这样,在每个分面板上就可以实现功能操作的单纯化和面板布置的简洁化,从而提高操作的正确性和便捷性。设计者可以根据用户的要求和操作需要来设计仪器面板。设计者可以根据用户的要求和操作需要来设计仪器面板;仪器的功能是由用户根据需要用软件来定义,不是事先由厂家定义的;虚拟仪器开放、灵活,与计算机同步发展,与网络及其他周边设备互联;由于其以 PC 为核心,在软件的支持下,利用 PC 机 CPU 的强大的数据处理功能来完成;可方便地存贮和交换测试数据,测试结果的表达方式更加丰富多样。
3 系统组成
检测系统的组成如图2所示。
图2 测量系统结构图
光源发出的红外光经过前光学系统汇聚变成平行光束,然后平行光经过通有待测气体的气体池,被测气体将吸收特定波长的红外光,红外辐射的光能量(光强)发生变化(光强减小)。经过气体的吸收后再通过后光学系统的汇聚,将光汇聚到多探头的红外探测器上[2]。当多种混合气体之间没有作用,且吸收光谱没有重叠或影响较小时,可在传感器前安置适合分析气体吸收波长的窄带滤光片,经过滤光片后,红外探测器把被测组分吸收后的剩余光能转换为电信号,经过信号调理电路的滤波放大后通过采集卡送到计算机进行数据分析。入射光强和出射光强的差值是与气体的浓度有关系的,据此可以检测出气体的浓度。
现代自动检测和自动控制都离不开传感器,它是测试与控制系统的首要环节,它能把被测物理量直接转换为与之有确定对应关系的并容易检测的电信号输出,以满足信息的分析、处理等要求。本系统选择了Heimann的TPS4339热电堆探测器。主要是用来检测待测气体所处于吸收波长的光能量的变化。
数据采集是采用NI公司推出的PCI-6221数据采集卡,是基于计算机PCI总线技术,属于M系列卡,只支持DAQmx的数据采集方法。PCI-6221提供16路带37针D-Sub的模拟输入,16位的A/D 转换器,采样率可达到250 kS/s [3]。图3所示是PCI-6221数据采集系统的结构框图。
红外传感器的信号是通过CB-68LP接线端子和SHC68-68-EP电缆送入数据采集卡。采集卡对采集到的信号进行A/D装换,然后通过NI DAQmx驱动与操作系统联系,将采集到的数据用于系统分析处理。
图3 PCI-6221数据采集系统框图
4 软件设计
检测系统启动之后首先初始化各个模块,包括采集卡的配置以及各个采集通道的配置;然后判断是否需要标定,如果需要标定将弹出一个标定窗口程序进行标定;如果不需要标定则直接进入数据采集;一次数据采集完后进入数据处理模块;处理完后将结果显示出来,这样就完成了一次的数据采集和处理。本系统是连续的采集,所以判断是否要结束采集,否的话继续新一轮的数据采集和处理;采集结束的话程序停止。每次采集处理的数据都会存在数据库里,可以方便的进行以往数据的查询。如图4所示是系统的操作界面。
图4 系统操作界面
4.1 标定模块
该系统标定是否准确关系到整个系统最后得到的结果的准确性。
如图5所示标定程序启动之后首先要选择标定气体以及标定点数进行参数设置。由朗伯-比尔定律可知,气体的吸收率和气体浓度呈线性关系,通过往气体池内通入标准的不同浓度的待测气体,对红外光的吸收不同,红外传感器的信号也就不同。利用配比不同浓度的标准样气来对吸收曲线进行定标,通过增加标定的点数来提高吸收曲线的精度。开始标定,首先输入所用标气的标准浓度值,然后通过采集卡采集电压数据,数据稳定后将这两组数据输入保存起来,再进行下一个标定点,直到输入完所有标定点的数据。这时形成的都是一组一组的数据对,然后拟合出气体的线性吸收曲线。在实际的检测中将利用拟合出的吸收曲线对数据进行处理。
图5 标定模块前面板图
4.2 数据采集处理模块
本文利用采集卡采集的是模拟输入信号,NI公司的数据采集卡对于模拟信号的输入可以分为三种连接形式:差分(Differential),参考地单端(Reference Single-ended RSE),无参考地单端(Non-Reference Single-ended NRSE)[3]。一般数据采集首先要根据实际信号和采集设备对采集卡进行配置,然后才能利用LabVIEW的VI模块进行采集程序的设计。
本文中传感器的信号是不与任何地(如大地或建筑物的地)连接的信号,即浮地信号。而且传感器的信号经过调理放大大于1V,所有的信号可以共享一个公共参考点,所以本系统采用参考地单端连接方式,将信号参考点与仪器的模拟输入地连接起来[4]。本系统要采集CO和CO2,以及参考光的信号,所以要用三个通道分别连续的采集数据。将通道配置程序图做成子VI,便于其他程序的调用。
通过PCI-6221采集卡直接采集到的是三个通道的数据,为了分别对三个通道的数据进行处理,就需要将三个通道的数据分离开,并分别进行保存。每完成一次完整的采集就将数据保存到数据库,便于历史数据的复查。
由于数据分析导致的延迟将会增大数据采集的周期,因此采用了队列的方式,即数据采集循环不间断的采集数据,并将采集到的数据放在队列中,数据分析循环不间断的处理数据。如果分析数据的周期大于采集周期,那么数据将会缓存在队列中,队列只要没有满就不会丢失数据;如果分析数据的周期小于采集周期,那么在队列为空时,数据分析处于等待状态,也不会导致数据的重复分析;当数据采集循环停止时,若队列中还有数据,则数据分析循环也会将剩余的数据全部分析,这样也不会丢失前面采集的数据[5]。
4.3 数据库模块
由于LabVIEW本身并不具备数据库访问功能,可以利用LabVIEW用户开发的免费LabVIEW数据库访问工具包LabSQL。LabSQL利用Microsoft ADO以及SQL语言来完成数据库的访问。
首先需要在Access中建立一个数据库,然后创建系统数据源名(Systems Data Source Name),在“Windows控制面板-管理工具-数据源(ODBC)”下的数据源管理器可以完成创建,并为数据源选择Microsoft Access Drive(*.mdb)驱动。在弹出的ODBC Microsoft Access Setup对话框中选择已经创建好的Access数据库即可,这样就完成了数据源的建立。在LabVIEW中通过ADO与创建的DSN建立连接来实现对Access数据库的访问了[6]。
本系统的数据库访问主要是实现对以往数据的查询,据此来为大气环境污染治理提供参考数据。如图6所示,数据库中是以日期为表记录当天的数据,表中的每条记录记录的是当下检测的时间以及检测得到的CO和CO2气体浓度值。查询的时候先选择数据库,然后选择要查询的日期即表名。查询的时候既可以选择单项查询也可以选择组合查询。例如可以选择查询2008年10月2日16点到16点30分检测到的机动车尾气中CO和CO2的浓度值,操作字段和操作条件设置以后选择组合查询,就可以得到符合条件的数据。
图6 数据库模块的前面板图
图7 数据库模块的后面板程序图
5 结论
本文以LabVIEW软件为平台所开发的机动车尾气浓度检测系统,可以方便的对CO和CO2气体浓度采集与检测,分析得出污染气体的浓度值。操作界面友好,直观明了,非常容易实现操作。LabVIEW本身编程效率高,可以方便快捷的实现软件系统的升级。本系统的检测结果既可以对机动车的性能进行监测评价,也可以为治理大气环境污染提供参考数据,非常适应现代化检测的要求。
参考文献
[1] 杨乐平,李海涛等. LabVIEW 程序设计与应用. 电子工业出版社,2001,7:1~4
[2] 俞益超,赵建华,赵中伟. 新型非色散红外三组分气体分析仪的研究.自动化仪表[J],2006,6:70-73.
[3] DAQ M Series User Manual.http://www.ni.com
[4] 蔡春丽.虚拟仪器技术及其软件开发平台.LabVIEW.重庆职业技术学院学报[J],2004,1(34): 102-103.
[5] 杜玉玲.基于 LabVIEW和 PCI-7422的数据采集系统设计.淮海工学院学报(自然科学版)[J],2004,1(31):15-17.
[6] 陈锡辉.LabVIEW8.20程序设计从入门到精通[M].北京:清华大学出版社,2007.