APP下载

基于LabVIEW面向对象编程的温度自动检定校准系统设计与实现

2017-03-21魏洪峰姜明波杜智涛

计算机测量与控制 2017年2期
关键词:串口仪器程序

王 洋,魏洪峰,姜明波,杜智涛,江 军

(北京应用气象研究所,北京 100029)

基于LabVIEW面向对象编程的温度自动检定校准系统设计与实现

王 洋,魏洪峰,姜明波,杜智涛,江 军

(北京应用气象研究所,北京 100029)

针对温度仪器自动检定校准和原有程序扩展升级需求,基于LabVIEW设计和开发了温度自动检定校准系统;系统由工控计算机、温度标准器、恒温槽和多串口卡等组成,实现了温度仪器设备的自动控制、数据采集、数据处理、数据显示、证书与记录自动生成等功能;采用面向对象的编程思路,设计了仪器装备类,对类属性和方法进行了定义,通过增加新的子类就能支持新仪器扩展,减少程序维护的难度,在可扩展性、代码重用性、健壮性等方面优势明显;应用结果表明系统运行平稳,扩展性好;系统能够减轻检定人员的工作强度,减少人为错误的发生,有效提高计量检定校准工作的效率和质量。

LabVIEW;面向对象编程;检定校准

0 引言

随着自动控制技术、信息管理技术、信息控制技术、信息交换技术、网络技术的发展,越来越多的温度检定设备和仪器能够支持RS-232、RS-485等通信方式,支持利用计算机实现设备的外部控制和数据采集,为实现自动化的温度计量检定校准奠定了基础。

目前,各种自动化的检定校准软件都是针对某些具体型号的仪器编写的,基本采用面向过程编程方法,具有针对性强的特点,但在实际工作中,若需要对软件进行升级,如引进了一种新的检定设备,检定一种新的仪器等情况,就需要对原程序各个模块进行修改,程序的可读性差,特别是在程序开发后段,增强了模块之间的耦合性,不利用程序的维护管理和扩充。

面向对象编程(Object-oriented programming, OOP),具有清晰的接口,适合团队合作和方便后期维护,能够有效解决上述问题,大大提高编程的灵活性和可维护性,同时具有很好的代码重用性。面向对象编程强调在软件开发过程中面向客观世界或问题域中的事物,采用人类在认识客观世界的过程中普遍运用的思维方法,直观、自然地描述客观世界中的有关事物[1],既提供从一般到特殊的演变手段,又提供了从特殊到一般的归纳形式[2],具有继承性、封装性和多态性等特点[3],能够有效简化对新的对象类的设计,减轻新程序中分析、设计和编程的工作量,可以自动根据不同类型的对象对相同的激励做出适当的不同响应。

LabVIEW是一款图形化的软件开发工具[4],具有编程简单、直观、开发效率高等特点,特别适合工程师快速进行原理验证与设计开发,尤其是在涉及到硬件控制、数据采集、交互操作等方面具有很大的优势,被公认为是标准的数据采集和仪器控制软件[5-6]。因此利用LabVIEW进行气象计量自动检定程序开发具有好的便利性。

本文基于LabVIEW设计和开发了温度自动检定系统,实现了温度仪器设备的自动控制、数据自动采集、数据处理、数据显示、证书与记录自动生成,减轻了检定人员的工作强度,减少了人为错误的发生,有效提高了计量检定工作的效率和质量。采用面向对象的编程思路,在LabVIEW中设计了在用各类仪器装备类,对其属性和方法进行了定义,通过增加新的子类就能支持新仪器程序扩展,减少程序维护的难度,增强了代码重用性,提高了软件开发的效率。

1 系统设计

1.1 系统总体设计

设计的温度自动检定系统采用比较法进行检定。通过数据采集设备对标准恒温设备、温度标准器和工控计算机进行控制和数据采集;设计了自动温度检定校准程序,实现标准器与被检件信息管理、检定点设置与升降温控制、稳定判断、标准器与被检表数据采集与处理、检定证书与记录出具与检定数据自动存储等功能,能够满足二级气象计量技术机构配备的多种铂电阻温度计的自动检定校准需求。整个检定校准系统结构如图1所示。

图1 温度自动检定系统架构

1.2 系统硬件组成

系统主要由标准器、检定设备、数据采集设备和工控计算机组成,硬件设备具体型号如表1所示。标准器和检定设备构成标准装置,主要用于提供检定所需的环境和复现标准量值;数据采集设备,能够实现计算机与各类仪器设备的数据通信,可选用多串口卡或者串口服务器作为数据采集设备;计算机主要运行自动检定软件,通过软件实现设备仪器控制、数据采集处理分析显示、结果判定、报表生成等,是整个系统的核心。

表1 系统集成的硬件设备情况

1.3 软件设计

按照功能,将软件划分为6个模块,如图2所示。

图2 软件功能模块

初始化模块,主要实现硬件、软件的初始化。

软件配置模块,主要实现软件参数配置和检定基本信息配置。软件参数配置,主要实现报表存储路径设置、默认参数设置、曲线图颜色设置等;检定基本信息配置,主要实现检定校准参数设置,包括标准器、恒温槽和被检仪器的基本设备信息、串口配置、检定点、读数次数、环境条件等。

数据采集模块,主要实现对检定设备和标准器的控制,包括串口配置、串口命令合成、数据采集等。

数据处理模块,主要实现对硬件返回数据的解析、稳定判别等功能。

显示模块,主要实现程序状态和采集数据的显示,每次采集返回的数据均采用字符串和波形图的方式显示,当判断稳定后在前面板的记录表格中显示。

报表生成模块,主要实现将检定的原始数据和结果写入excel记录文件和word证书文件中,主要借助第三方的office工具包,在excel中通过行列来定位实现数据读写[7],在word中通过书签来定位实现数据读写[8]。

软件主界面采用“生产者/消费者”设计模式,能够调节各个线程之间的运行速度,将生产和消费数据速率按不同的任务分开处理,增强了不同速率的多个循环之间数据交互和共享的能力,采用这种架构可使程序响应事件更快、执行效率更高[9],是多任务处理和连续性、实时性要求严格的程序设计的一种好的选择。

根据实际需要共设计了4个循环,依次为事件处理循环、UI循环、数据采集循环、分析显示与记录循环,将上述的六个模块分别放入不同的循环中,同一类型的任务归为一类,以获得较高的运行效率。除事件处理循环外,其它循环采用队列消息处理器结构,根据不同的消息进行不同的处理。事件处理循环,捕捉前面板产生的各类事件以及自定义的初始化和停止动态事件,并发送相应的消息至UI循环,是消息的“生产者”;UI循环,对各类事件进行响应,并发送相应的消息到数据采集循环和分析显示与记录循环,是消息的“二传手”;数据采集循环与分析显示与记录循环负责具体处理消息,其中,数据采集循环处理与设备相关的仪器配置、仪器命令、数据采集等消息;分析显示与记录循环处理数据解析、稳定判别、检定点改变、原始记录和证书生成和前面板显示等消息。

使用队列技术解决循环的数据传递和同步,构造了UI消息队列、采集消息队列、分析显示消息队列。队列是一种先进先出的数据结构,将新来的元素加入队尾,而队首的元素总是最先离开,这样就避免了在数据传输过程中发生数据丢失或重复利用问题[10]。前面板如图3所示,程序框图如图4所示。

图3 主界面前面板

图4 主界面程序框图

2 面向对象设计

2.1 类设计

面向对象编程将软件所要完成的任务解为不同的“类”,在项目中创建“类”,同时定义类的属性、编写对类的私有数据进行操作类的成员VI[11],类是面向对象编程的关键。根据系统所使用的检定设备、标准器和被检仪器种类,设计气象计量装备类,按照检定要素进行分类。检定仪器与装备类,分为温度装备类、湿度装备类、气压装备类、风速装备类和雨量装备类;然后根据使用的装备仪器的具体型号进行分类,温度装备类,包含LU100B恒温槽类、FLUKE7381恒温槽类、HART1560温度计类、FLKUE SUPERTHERMETER温度计类、RCY-1A单温度计类、RCY-1A双温度计类、RCY-1D温度计类、GP800温度计类、SWJKB温度计类等,如图5所示。本系统中仅需要温度装备类,设计其它类是为了方便以后对程序进行扩展,最终实现全部气象要素的自动检定。

图5 检定仪器与装备类

类的属性主要包括串口引用数组、仪器命令集。由于各仪器串口返回的数据较多,因此未将其列入类的数据。

自动化的计量检定程序都涉及对检定设备进行控制、读取标准器和被检仪器数据等基本过程,不同的是各种仪器的通信参数、控制命令、数据格式等存在差异,基本过程相似,具体参数不同。根据自动检定仪器控制和数据采集的流程和要求,设计类的方法主要包括:读取串口引用数组、写入串口引用数组;配置串口;串口命令配置;数据采集;数据解析等。其中,读取串口引用数组和写入串口引用数组为公用函数,用于进行类的数据访问;其余为基于动态模板的虚函数,在子类中重写,类的多态性就是基于这些虚函数实现的。需要注意的是子类中重写的方法名称应与父类保持一致,才能实现自动重载。

2.2 类的实例化

在整个程序中当设置好检定基本信息后,程序通过选择类VI实现类的实例化。其程序框图如图6所示。根据自定义的枚举类型“型号”来实现仪器类的选择,并调用写入串口引用数组VI实现对类的数据的初始化,形成仪器对象实例数组。

图6 选择类的程序框图

形成仪器对象实例数组后,借助类的多态性,进行串口配置、串口命令选择发送、数据采集、数据解析等操作时,程序会根据仪器的所属子类自动执行相应的子类方法,而不需要再编写程序进行判断,如图7所示。

图7 类的多态性

对象的行为与整个程序的架构相互独立,使代码更新变得非常简单。,这样在程序后期维护和扩展,添加对新的仪器设备的支持时,只需要编写新仪器类中需要重载的方法,修改枚举类型“型号”,并在选择类VI中增加对新仪器类的选择即可,而不需要对程序中的每个模块进行大规模的修改,在可扩展性、健壮性等方面优势明显。

3 结束语

目前温度检定校准系统已在部分二级气象计量技术机构应用,系统运行平稳,数据处理结果正确,证书记录输出格式正确、数据准确,实现了系统的各项功能,同时具有良好的扩展性。系统采用面向对象的编程思路,从检定工作基本流程中抽象出一般规律,在对象层面共享代码,在LabVIEW中设计了仪器类,其包含的方法与基于过程编程的方法相比更为具体和细致,更容易阅读,通过增加新的子类就能支持新仪器程序扩展,减少了程序维护的难度,增强了代码重用性。以其为架构,快速开发实现了温度仪器设备的自动控制、数据自动采集、证书与记录的自动生成,减轻了检定人员的工作强度,减少了人为错误的发生,有效提高了计量检定工作的效率和质量。同时可以进一步扩展形成有具编程风格一致、界面一致、操作一致等特点的温压湿风雨自动检定校准系统软件,提高了气象自动计量检定校准软件开发的效率。

[1] 陈超泉,王政锋,匡昭敏,等. 基于GIS的广西暴雨风险度实时评估系统[J]. 计算机应用,2013(1):276-280.

[2] 窦连旺,陈 曦,刘鲁源. 基于面向对象技术的参数化CAD系统[J]. 计算机工程,2004(9):182-185.

[3] 王育坚.VisualC++面向对象编程教程[M]. 北京:清华大学出版社,2003.

[4] 杨乐平,李海涛,杨 磊.LabVIEW程序设计与应用[M]. 北京:电子工业出版社,2005:13-15.

[5] 侯国屏,王 珅,叶 齐.LabVIEW7.1编程与虚拟仪器设计[M]. 北京:清华大学出版社,2005.

[6] 韩 轩,肖 晖,石建荣,等. 基于LabVIEW的砝码自动检定系统设计与实现[J]. 计算机测量与控制,2015(6):1892-1894.

[7] 胡绍海,高亚峰,肖 坦. 基于LabVIEW的Excel报表生成技术研究[J]. 测控技术,2007,10: 64-66,69.

[8] 汪翠英,裴 锋.LabVIEW中Word报告生成功能开发[J]. 仪器仪表用户,2005(1): 94-96.

[9] 钱声强. 基于LabVIEW的智能家居监控系统设计[J]. 现代电子技术,2013,24:103-105.

[10] 刘 跃,贺 凯,袁文琦,等. 基于LabVIEW的压风机远程监测系统设计[J]. 煤矿机械,2014,12:35-37.

[11] 李 曼,赵 坤.LabVIEW程序设计方法在自动测试系统中的应用探讨[J]. 测控技术,2014,12:107-109.

Design and Implementation of Auto-Temperature Verification and Calibration System Based on Object-Oriented Programming with LabVIEW

Wang Yang, Wei Hongfeng, Jiang Mingbo, Du Zhitao, Jiang Jun

(Beijing Institute of Applied Meteorology, Beijing 100029,China)

Aiming at the requirements of automatic temperature meters verification and calibration and original procedures extend and upgrade,auto-temperature verification and calibration system is designed and developed based on LabVIEW. Industrial control computer, temperature standards, baths and multi-port serial cards and other components are included, to achieve auto-control of temperature meters and equipment, data acquisition, data processing, data display, raw data file and certificate generation; with object-oriented programming ideas, instruments classes of kinds of calibration equipment, standards and meters are designed by defining their properties and methods. Adding a new child class can support new instrument extended, which can reduce difficulty of program maintenance, take advantage of extensibility, code reusability and robustness. It is showed that the system is smooth, and expandable. The system can lighten work, reduce errors, and improve efficiency and quality of verification and calibration.

LabVIEW; object-oriented programming; verification and calibration

2016-08-30;

2016-09-26。

王 洋(1987-),男,陕西泾阳人,硕士研究生,助理研究员,主要从事气象计量与装备论证方向的研究。

1671-4598(2017)02-0054-03

10.16526/j.cnki.11-4762/tp.2017.02.014

TP274

A

猜你喜欢

串口仪器程序
《现代仪器与医疗》约稿函
《现代仪器与医疗》2022年征订回执
《现代仪器与医疗》约稿函
《现代仪器与医疗》2022年征订回执
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
给Windows添加程序快速切换栏
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
试论我国未决羁押程序的立法完善
“程序猿”的生活什么样