基于虚拟仪器的有害气体报警仪*
2013-12-30李鹏辉
卢 超,李鹏辉
(陕西理工学院物理系,陕西 汉中723000)
在科研实验、矿产能源开采、家庭住所、各种动物养殖、及卫生医疗等场合经常要用到有害气体报警系统,传统的方法是下位机通过传感器及AD转换器采集到数据,然后利用无线模块将数据传输给上位机。上位机再通过软件处理后利用液晶显示屏和语音芯片进行数据显示及报警等功能,这种方式的缺点是,数据传输不稳定,传输距离短,因为无线模块传输距离只有几十到几百米,受到场地的影响严重。设计一种传输网络化、系统稳定性好、使用方便、用户界面友好、造价低廉且测量准确的有害气体监测仪器,基于单片机和Labview的测试系统,对被测区每个位置的有害气体浓度情况进行网上的实时监测,一旦出现异常现象便于及时分析和处理,将会有效地提高事故的预见性和工作效率,有着重要的实际推广价值和理论研究意义[1]。
1 系统设计
总体结构框图如图1所示。系统主要包有害气体信息采集,模拟/数字信号转换,数据的读取,串口数据通讯,PC机数据处理,网络通信及报警模块。系统的下位机部分通过传感器将有害气体信息采集到单片机内,进行简单的数据处理后将数据通过串口传送给上位机(PC)。上位机由4个独立运行的用Labview编写的程序组成。首先上位机通过“串口VI”完成数据的接收并将数据以波形方式显示,并且在该程序中可以设定报警值大小,一旦达到报警值,程序前面板的指示灯便会变亮,同时通过调用“语音VI”,也可以实现语音报警功能来报警。如果想通过互联网传输数据,只要在上位机上运行TCP/IP程序中的“发送VI”即可。这时,其他用户便可通过TCP/IP程序中的“接收VI”在其PC上读取数据,且同样可以实现主机上的监视及报警功能。上位机在接收到数据后可以将数据进行存储,以便对历史数据进行分析[2-6]。
图1 系统结构框图
2 硬件电路设计
2.1 有害气体采集电路
图2是MQ-7和MQ-5传感器的基本测试电路,需要施加2个电压:加热器电压VH和测试电压VC,其中VH用于为传感器提供特定的工作温度,VC用于测定与传感器串联的负载电阻RL上的电压VRL。MQ-7和MQ-5传感器具有轻微的极性,VC需用直流电源,在满足传感器电性能要求的前提下,VC和VH可以共用同一个电源电路[1]。
图2 MQ-7和MQ-5采集电路
2.2 A/D转换电路
A/D采用ADC0809芯片,需提供约500 kHz的时钟频率,系统采用74LS74芯片对单片机的时钟输出端(ALE输出的时钟频率为2 MHz)进行四分频,供ADC0809使用,ADC0809的CLOCK接Q端口,IN0与IN1分别接一氧化碳传感器和甲烷传感器输出端,ADC0809的OE端接高电平后打开三态数据输出锁存器。将输入选择端口即 ADDA、ADDB、ADDC中的ADDA接到单片机的P2.7端,ADDB和ADDC接地,实现对 IN0与 IN1的控制。VREF+与VREF-为参考电压输入端,分别接5V和地,电路如图3所示,将转换后的电压值接到单片机的P1端口,实现ADC0809与单片机之间的数据通信。START与单片机P2.2相连,控制A/D转换启动,当转换结束信号由低电平跳变为高电平时,EOC引脚将信号通知给单片机使其进行数据的正常读取。
图3 A/D转换电路
2.3 与上位机通信电路
采用MAX232芯片完成两路TTL/RS-232电平的转换,MAX232的9、10引脚是TTL电平端,连接单片机,11,12引脚分别接CH341芯片的TXD和RXD引脚,T1IN和 T2IN接 TTL/CMOS电平的89C51单片机的串口发送端TXD,R1OUT和R2OUT接TTL/CMOS电平的89C51单片机的串口接收端RXD,T1OUT和T2OUT可直接接PC机的RS-232串口的接收端RXD,R1IN和R2IN可直接接PC机的RS-232串口发送端 TXD,电路如图4所示。CH341提供全速USB设备接口,兼容USB2.0,外围器件只需要电容和晶体,电源电压为5 V,USB接口的差分数据线对与 CH341的 UD-和 UD+直接相连[7]。
3 下位机系统软件设计
设计中单片机软件是采用C51语言编写,主要包括ADC0809芯片驱动及有害气体数据采集部分和串口数据发送部分,下位机主程序流程图见图5所示。
数据采集软件主要实现单片机系统对ADC0809传感器的初始化、发送测量命令及数值的读取,有害气体测量时先调用ADC0809初始化子程序进行初始化,它包括复位、传输启动命令。在有害气体数据通信系统中,单片机与PC机之间的数据通信采用串口实现。系统中单片机串行口工作在模式1,即可变波特率10 bit异步收发模式。单片机工作在12 MHz时钟时,用T1的方式2自重装模式,设置9 600 bit/s波特率。
图4 与上位机通信电路
图5 下位机主程序流程图
4 上位机系统软件设计
设计采用Labview为上位机软件开发平台,用G语言进行设计,主要实用VISA高级应用编程接口。VISA是虚拟仪器系统I/O接口软件,基于自底向上结构模型的VISA创造了一个统一形式的I/O控制函数集,提供了非常强大的仪器控制功能与资源管理上位机串口。程序中由4个事件分支构成,上位机串口程序图如图6所示。程序执行条件选择为:值改变。即只有点击当前面板上的“开始运行”按钮后才能执行该程序。在该程序中主要目的是实现VISA的自定义、数据的读取及显示报警功能。通过对VISA进行相应设置后进入While循环,利用VISA读取函数读取字符串数据。在条件结构的真分支中实现字符串与数组之间的转换、波形显示及报警功能。将数据保存到一个缓冲区后关闭串口[8-9]。
VISA的设置是成功读取串口数据的关键,只有与下位机一致才能正确获取下位机资源。在配置VISA时,波特率设置成9 600,字节大小为8 bit,校验位和停止位分别设置为无校验位及1。“保存”事件程序图,程序执行条件选择为:值改变。即当前面板上“保存数据”按钮值改变时可以实现数据的保存,其保存形式为txt文件。“退出”事件分支图,条件为“值改变”。当点击前面板上“退出程序”按钮后可退出该While循环,即终止串口程序运行。当前面板上“数据回放”按钮值改变时,可以实现历史数据的回放,而且可以通过调节前面板上“回放速度”控件调节其数据回放速度大小。
在串口读取程序中,单片机和PC之间是以字符串的形式进行数据交流的,当要把从单片机读取的数据以波形形式进行显示时,就要进行相应的转换,而且Labview中的波形显示控件输入的类型要求为数组形式,因而,要把读取的字符串类型数据首先转换为字节数组,然后再通过调用索引数组、创建数组及数组插入控件建立一个一维数组。通过调用TCP侦听函数、写入TCP数据函数、关闭TCP连接函数等实现数据的网络传送功能。程序运行前必须将打开TCP连接函数的地址设定为发送机的IP地址,且端口号也必须与发送机端口号相同。在该程序中,可以实现在其他计算机上的数据读取及报警功能,实现数据的共享。实现语音报警功能首先要通过编程来调用波形文件,通过对其进行相应的配置后可以实现音量大小调节,当达到报警值时即可启动该函数进行语音报警[11-12]。
图6 上位机串口程序图
5 系统测试
系统调试采用模块化调试和整体组合调试相结合的方法来进行,调试界面如图7所示。经过模块化的软件仿真、硬件电路调试和组装测试,最终实现了单片机系统的有害气体数据采集功能、上位机串口读取、上下限气体浓度设定功能、声光报警功能、TCP/IP数据网络传输功能、温湿度处理显示功能和温、历史数据存储等功能。
图7 上位机调试界面
测试结果对比如表1所示,在相同的环境下,一共进行了10次测量,第2列和第3列为有害气体一氧化碳和甲烷传感器MQ-7、MQ-5输出的模拟电压值,第4列和第5列为精度高的成品报警仪MQ-7和MQ-5输出模拟电压值,第6列和第7列为相对误差,可以看出该有害气体测量装置在实际工作中具有很好的效果,所采集的数据经过与相应的校准器件所得到的数据对比发现其误差很小,一氧化碳传感器平均误差为0.29%,甲烷传感器平均误差为2.14%。
表1 测量结果对比
6 结束语
设计的基于虚拟仪器的有害气体报警仪,结合Labview的数据显示、网络数据传输及报警较好地解决了数据采集精确度及传输距离问题。系统通讯稳定可靠,可拓宽应用于家居、隧道和大坝粮仓等领域的有害气体监测中。
[1]赵冰若,朱瑞祥,冯春生等.室内有害气体远程报警系统设计[J].微计算机信息,2009,11:24-26.
[2]吴伟斌,洪添胜,朱余清等.基于虚拟仪器的果树重叠叶片LAI实时检测系统[J].农业工程学报,2012,04:169-174.
[3]王邦勤,徐军明,秦会斌,郑梁.基于虚拟仪器与总线技术的远程多点环境参数监测系统研究[J].电子器件,2009,04:801-804.
[4]汤家华,王道德.LabVIEW在USB实时数据采集处理系统中的应用[J].电子器件,2006,02:557-560.
[5]张牧,张诚,陈才和等.基于Labview技术的光度式椭偏测厚仪的研究与设计[J].电子器件,2007,01:170-173.
[6]宋青.基于虚拟仪器技术的信号采集与分析系统的研究[J].自动化与仪器仪表,2012,01:1-2.
[7]徐辉.USB接口技术及应用常识[J].开发研究与设计技术,2007(12):1624-1625.
[8]寇雪芹,谷立臣等.基于虚拟仪器的超声信号测量及测距研究[J].计算机工程与应用,2012,06:17-20.
[9]宋爱晶,林峰,邓林红.一种基于虚拟仪器的生理信号测量系统[J].传感器与微系统,2012,01:101-103.
[10]葛李,周学才,穆效江.一种基于虚拟仪器的通用测控系统[J].制造业自动化,2012,10:45-48.
[11]全晓莉,周南权等.基于虚拟仪器技术的音频信号采集与处理[J].仪表技术与传感器,2012,07:32-34.
[12]戴佳,戴卫恒等.51单片机C语言应用程序设计实例讲解[M].电子工业出版社,2008(12):311-317.