APP下载

基于LabVIEW的数字式气压计自动检定系统

2020-04-07婷13

计算机测量与控制 2020年3期
关键词:测量误差串口气压

白 婷13

(1.中国气象局 河南省农业气象保障与应用技术重点实验室,郑州 450003;2.河南省气象探测数据中心,郑州 450003; 3.河南省人工影响天气中心,郑州 450003)

0 引言

河南省目前已装备了121套国家自动气象站与2 900多套区域自动气象站,且将继续建设自动气象站,进一步增加气象环境的探测密度。气压是地面气象观测中的重要观测要素,为保证气压观测数据的准确性,必须对自动气象站的数字气压计进行周期性检定[1]。河南省装备的数字气压计主要为PTB210和PTB220,由于气压计数量多,省级气象检定所的工作任务十分繁重,人工检定及校准的方式已不能满足气象现代化工作的需要,迫切需要一套自动气压计检定系统,提高检定效率和准确性,减轻检定人员的工作强度。

有关PTB220的检定及修正方法研究已经较为全面,PTB210的相关研究相对较少。胡帆、陈正一介绍了PTB220数字气压计的工作原理、设置以及操作命令和修正方法[2];孙嫣等对PTB220的多点修正方法进行了补充研究,提出检定结果修正值与初始修正值叠加的方法,使调整后的气压计与标准值更加接近零误差[3];孟宪罗等采用C#语言开发了一套基于串口通信的PTB220气压计误差自动调整系统,利用3MS系统的检定结果,实现了对PTB220气压计的自动调整[4];罗淇等对检定过程中气压标准器附加误差的产生原因、特征和规律进行了研究,并给出了相应消除或订正方法,有效降低了标准器附加误差对检定结果造成的影响[5-6];黄玲等探讨了气象上静态压力传感器非线性修正的常用方法,对最小二乘法和线性插值法的线性误差进行了比较,证明调整PTB210时采用线性插值法更加有效[7]。

本文基于LabVIEW开发了一套气压计自动检定校准系统,兼容PTB210和PTB220系列气压计,实现了信息读取、数据采集、数据处理、数据库写入、证书生成等检定过程的自动化控制,系统在检定结束后可自动判断气压计是否气压超差并快速实现气压计调整,在减少人为错误的发生的同时,提高检定工作的效率。

1 系统结构和原理

1.1 系统结构

系统主要由计算机、多串口扩展卡、CPC6000型精密压力控制器(以下简称气压发生器)、745-16B型高精度实验室标准表(以下简称标准表)、气压计(PTB220或PTB210,以下简称被检表)、连接器、12 V开关电源、气路等组成,主要硬件设备性能如表1所示。

表1 系统主要硬件设备情况

1.2 工作原理

系统原理图如图1所示,计算机利用多串口扩展卡与各仪器设备进行串口通信,使用三通连接气压发发生器、标准表、被检表,并使其压力检测口保持在同一水平面。

图1 系统原理图

系统采用比较法进行检定,压力检定点为:500、600、700、800、900、950、1 000、1 100 hPa。检定从500 hPa开始,上位机程序控制气压发生器达到预定压力值并稳定3 min后进行数据采集,每隔10秒采集1次被检表和标准表的示值,每个压力点上采集3次,将 3次示值的算术平均值作为该检定点的记录结果,按以上的检定点顺序逐点进行两次压力循环后检定结束。

1.3 被检表连接器

PTB220气压计的通信接口形式和PTB210不同,如图2所示。以往检定或校准PTB220、PTB210时需要分别使用专用线缆,为检定工作造成一定不便。

图2 PTB210与PTB220通信接口示意图

为减少系统所用线缆数量,实现被检表的快速更换,进而减轻检定人员工作强度,设计了一个通用快速连接器,使其既能连接PTB220,也能连接PTB210,其电路原理图如图3所示。

图3 连接器电路原理图

连接器实物如图4所示,电源开关按钮可控制被检表电源通断,上部的DB9接口连接至计算机,下部的DB9接口连接PTB220气压计,中部的免螺丝接线端子连接PTB210气压计。

图4 连接器实物图

1.4 设备串口命令

上位机程序通过发送串口命令完成气压发生器控制点设置、标准表和被检表示值读取等操作。根据所用仪器设备的用户手册[8-11],本系统所用到的串口命令如表2所示。

表2 系统常用串口命令

2 系统软件设计

LabVIEW既具有传统仪器的特征,又有一般仪器不具备的特殊功能,特别适合于经常需要改变仪器和设备参数、功能的场合。本系统包含多个测量仪器,对测量数据的人机交互界面要求较高,且需经常对设备参数进行修改,因此非常适合采用LabVIEW编写检定程序。

2.1 总体结构

软件的编程方法一般可分为面向过程和面向对象。本系统主要实现检定、校准及生成报表等流程的自动化控制,所用设备相对较少且功能较为专一,是典型的面向过程的软件设计。本系统的软件结构如图5所示,按功能不同,可将程序分为6个模块。

图5 软件功能结构图

1)初始化模块,实现程序各状态变量的初始化。

2)参数配置模块,主要实现软件参数配置和检定基本信息配置,软件参数配置主要包括仪器设备串口配置、报表存储路径设置等;检定基本信息配置主要包括气压检定点、环境条件以及气压发生器、标准表和被检表的基本设备信息等。

3)检定模块,主要实现对压力控制器、标准表和被检表的控制,包括串口命令合成、检定点设置、数据采集、数据解析以及压力判稳等。

4)校准模块,主要实现对PTB210和PTB220多点修正值的重新设置。

5)报表生成模块,主要实现将检定的结果和数据记录写入word证书文件中,借助LabVIEW报表工具插件,利用书签定位实现环境条件等检定基本信息的插入,word中的检定记录表格则通过行列定位单元格,在双重for循环中调用WordEditCell.vi将数据记录写入。

2.2 主程序

程序主界面如图6所示,左侧从上至下依次显示气压发生器、标准表、被检表的压力曲线,右侧为控制按钮及运行状态监控。为防止误操作,系统启动后如未进行参数配置,“开始检定”及“停止检定按钮”均为禁用状态。

图6 主程序界面

本系统上位机程序的过程可以简化为数据的采集、处理、显示、保存,由于实际运行中各过程的运行速度并不同步,普通的顺序循环结构或是管道流水线结构都将导致程序的总体执行效率受到各过程中最慢的那个的影响。因此,采用“生产者—消费者模型”设计主程序,通过引入消息队列作为缓存,调节各过程之间的运行速度,将采集和处理等过程分开处理,以增强不同速率循环间的数据交互和共享能力,提高程序的事件响应速度及执行效率[12-13]。

主程序框图如图7所示,程序主要由五个循环构成,分别为事件处理循环、UI消息循环、采集循环、处理和记录循环、显示循环。

图7 主程序框图

事件处理循环捕捉前面板按钮动作事件,并将相应消息写入Message Queue的UI队列中,是消息的“生产者”;UI消息循环从Message Queue的UI队列读取消息,响应前面板按钮动作事件,并发送相应的消息到采集循环以及处理和记录循环,是消息的“二传手”;采集循环从Message Queue的采集队列读取消息,完成气压检定点设置、数据采集等具体操作,并将采集到的数据写入数据队列和通知器;处理和记录循环从数据队列中获取采集数据,执行数据解析、数据库写入等操作。

各循环之间通过消息队列VI(操作者框架)保证分立性以及消息连续性。通过数据队列和通知器,调节采集循环、处理和记录循环的运行速度,保证采集、处理、记录过程中数据的同步性和完整性。

2.3 检定程序

在采集循环中使用状态机来控制检定流程,如图8所示。

图8 检定程序框图

图10 数据库写入程序

使用Message Queue的采集队列进行状态传递,循环每次迭代时首先从队列中取出下一状态,然后执行条件结构的相应分支,并在每一个状态分支结束前将后一次或几次迭代中需要执行的状态写入队列,从而实现按用户设置的检定点执行“压力控制—数据读取—压力控制”的检定流程,当所有检定点完成两次升压降压循环后,检定结束。

2.4 数据库操作

信息化和网络化是气象业务发展的重要方向,为便于检定信息的快速检索和共享等,本系统将形成的检定记录信息存入MySQL数据库。

数据库操作主要通过LabSQL工具包完成。首先在本机安装MySQL数据库和MySQL Connector/ODBC驱动,并在ODBC数据源管理器中添加和配置MySQL数据源,设置数据源名称、数据库服务器TCP/IP地址、用户名及密码、要访问的Database等,如图9所示。设置完成后点击“Test”按钮,弹出提示框显示“Connection Successful”即代表数据源连接成功。

图9 配置数据源

数据库写入程序框图如图10所示,首先使用“ADO Connection Create.vi”新建连接,并通过“ADO Connection Open.vi”打开数据源,调用“SQL Execute.vi”执行双重for循环拼接好的SQL语句即可完成数据库写入,最后关闭数据源并销毁连接。

2.5 传感器调整

2.5.1 PTB210

通过System Exec.vi调用VAISALA官方工具PTB210 Wizard来调整PTB210气压计,程序框图如图11所示。

图11 LabVIEW调用外部可执行文件

PTB210 Wizard程序界面如图12所示,根据检定结果,在MPC_1~ MPC_8输入框中分别输入各校准点和对应修正值后,点击“Write PTB210”即可完成气压计校准。

图12 PTB210 Wizard程序

2.5.2 PTB220

PTB220气压计在调整多点修正值前,首先打开气压计外壳进行硬件设置,将SW4开关状态拨至“ON”,使能存储器写入功能。

PTB220校准程序主体部分框图如图13所示,首先发送“MPC OFF”命令,停用多点修正。发送“MPC 1”命令,设置1号压力传感器的多点修正值。使用for循环依次输入各校准点和对应修正值后,发送“MPC ON”命令启用多点修正,最后发送“RESET”重启气压计,使设置生效。

图13 PTB220校准程序

3 检定实验

选取一台PTB220气压计(编号D2160055)进行实验,其存储的初始修正值如表3所示。

表3 初始修正值 (hPa)

按照JJG 1084-2013 《数字式气压计检定规程》的步骤进行检定,检定结果如图14所示。

图14 检定结果

由图14可知,该气压计最大测量误差为0.65 hPa,超过检定规程中最大允许误差0.3 hPa的要求,需要对传感器进行校准。PTB210和PTB220气压计的校准可通过重新设置多点修正值实现,其用户手册给出的各点修正值计算方法如式(1)所示。

corr=preference-pmeasured

(1)

式中,corr为修正值,preference为标准表的示值,pmeasured为被检表示值。

修正值反映的是气压计在校准点附近的偏差情况,以MPC_1为例,虽然表3中校准点不是整数值,但根据气压传感器的工作原理,其在500 hPa上的修正值应与499.400 hPa基本一致。因此,可按照式(1)计算出各整数值气压点上修正值,即检定结果的各点测量误差取负值。将新的多点修正值写入气压计后再次进行检定,检定结果如图15所示。

4 结果分析

从第一次修正后的检定结果可以看出,经过调整后的传感器最大测量误差为-0.25 hPa,虽然符合检定规程的要求,但理论上修正后的气压计测量误差应基本接近零值,不应出现较大误差。通过对比表3中气压计的初始修正值可以发现,图15中各检定点的测量误差基本等于初始修正值的取负值,由此判断气压计的初始修正值可能已固化在气压计的处理程序中,按照式(1)得出的修正值调整气压计将造成过校正。

图15 第一次修正后的检定结果

因此,为使修正后的气压计示值更加接近标准值,在实际校准过程中,新的修正值应为气压计存储的初始修正值减去对应检定点测量误差值,如式(2)所示。

corrnew=corrinitial-Δp

(2)

式中,corrnew为某校准点应输入的新修正值;corrinitial为气压计存储的初始修正值;Δp为检定结果中对应检定点的测量误差值。

按照式(2)计算出各整数值气压点上修正值,如表4所示。

表4 新修正值 hPa

按表4重新设置PTB220气压计的多点修正值后,再次进行检定,结果如图16所示。

图16 调整后的检定结果

由图16的检定结果可以看出,在按照式(2)计算的多点修正值调整气压计后,其测量误差最大不超过0.06 hPa,不仅满足检定规程的要求,而且相对于按式(1)修正的检定结果,测量误差更加接近零值,证明在对PTB220气压计进行调整时,应当引入初始修正值。

5 结束语

目前气压检定校准系统已在实验室应用,系统运行平稳,检定流程控制准确,数据处理结果和生成证书格式正确,存在超差问题的气压计经系统校准之后测量误差满足要求,有效减轻了检定人员工作强度,提高了检定校准效率,减少了人为错误的发生。

系统使用中也暴露出一些问题,如:程序采用面向过程思想编写,不利于系统的扩展、维护和移植,在后期的改进中需要进一步完善,以增强系统的健壮性。

猜你喜欢

测量误差串口气压
一种新型多通道可扩展气压控制器设计
《疯狂的计量单位》
气压差减重步行康复训练系统设计
基于EM9000工控板高性能双串口通信模型设计与实现
MCS—51单片机中的多串口通讯技术的应用
气压高度计的测量误差分析及修正方法
运用数理统计方法测定取样和分析测量误差
全程健康教育对高压氧治疗引起气压伤的影响
微机串口的测试诊断
基于VC串口通信的实现