2 检测软件设计
软件是虚拟仪器的关键。设计一个虚拟仪器系统,在硬件平台确定之后,就可以通过设计不同的软件模块,实现不同的功能。汽车尾气检测系统的应用软件采用NI的图形化编程语言LabVIEW8.2开发,模块化设计。按双怠速法检测尾气排放的程序流程图如图2所示。
双怠速法尾气检测程序的执行过程为:首先在主程序界面上输入被检车辆基本信息,然后通过LED显示屏提示受检车辆进入检测工位,通过读取红外接收光电管的状态判断车辆到位情况。若车辆到位,则按照国标规定的双怠速测量方法进行尾气排放检测,检测数据由串口输入。最后计算数据,显示、存储检测结果。为直观起见,采集到的原始数据可用曲线图的形式输出。
在检测程序设计中,由于工控计算机和尾气分析仪是通过串口来传送测量命令和测量数据的,因此串行通信程序是检测软件中最关键的模块之一。在LabVIEW8.2中,可以利用VISA模块编写串行通信程序,这样可以摆脱烦琐的底层命令,轻松实现工控计算机与仪器之间的通信。
VS5067-5汽车尾气分析仪通信参数为:9600波特率、8位数据位、无奇偶校验、1位停止位,通信命令包含:计算机控制、CAL、测量、读数据、结束测量、手动操作等,命令格式为多字节的ASCII码形式,例如,“计算机控制”命令为:02H,*,S,R,E,M,20H,K,O,03H,即10个字节的ASCII码。同样,仪器的应答信号也是多字节的ASCII码,例如,对应“计算机控制”命令的应答信号为9个字节的ASCII码,即:02H,*,S,R,E,M,20H,0,03H。也就是说,工控计算机与尾气分析仪之间的串行数据均为多字节的ASCII码信息。由于在程序开发中,一般ASCII码用十六进制表示比较方便,因此,串行发送与接收数据就存在着数据类型转换的问题。在LabVIEW8.2中,ASCII码与十六进制数据的转换可以很方便的用“字节数组至字符串转换”、“字符串至字节数组转换”两个函数实现。以发送“计算机控制”命令为例,LabVIEW8.2设计的串行通信程序如图3所示。