王 洋,魏洪峰,姜明波,杜智濤,江 軍
(北京應用氣象研究所,北京 100029)
基于LabVIEW面向對象編程的溫度自動檢定校準系統設計與實現
王 洋,魏洪峰,姜明波,杜智濤,江 軍
(北京應用氣象研究所,北京 100029)
針對溫度儀器自動檢定校準和原有程序擴展升級需求,基于LabVIEW設計和開發了溫度自動檢定校準系統;系統由工控計算機、溫度標準器、恒溫槽和多串口卡等組成,實現了溫度儀器設備的自動控制、數據采集、數據處理、數據顯示、證書與記錄自動生成等功能;采用面向對象的編程思路,設計了儀器裝備類,對類屬性和方法進行了定義,通過增加新的子類就能支持新儀器擴展,減少程序維護的難度,在可擴展性、代碼重用性、健壯性等方面優勢明顯;應用結果表明系統運行平穩,擴展性好;系統能夠減輕檢定人員的工作強度,減少人為錯誤的發生,有效提高計量檢定校準工作的效率和質量。
LabVIEW;面向對象編程;檢定校準
隨著自動控制技術、信息管理技術、信息控制技術、信息交換技術、網絡技術的發展,越來越多的溫度檢定設備和儀器能夠支持RS-232、RS-485等通信方式,支持利用計算機實現設備的外部控制和數據采集,為實現自動化的溫度計量檢定校準奠定了基礎。
目前,各種自動化的檢定校準軟件都是針對某些具體型號的儀器編寫的,基本采用面向過程編程方法,具有針對性強的特點,但在實際工作中,若需要對軟件進行升級,如引進了一種新的檢定設備,檢定一種新的儀器等情況,就需要對原程序各個模塊進行修改,程序的可讀性差,特別是在程序開發后段,增強了模塊之間的耦合性,不利用程序的維護管理和擴充。
面向對象編程(Object-oriented programming, OOP),具有清晰的接口,適合團隊合作和方便后期維護,能夠有效解決上述問題,大大提高編程的靈活性和可維護性,同時具有很好的代碼重用性。面向對象編程強調在軟件開發過程中面向客觀世界或問題域中的事物,采用人類在認識客觀世界的過程中普遍運用的思維方法,直觀、自然地描述客觀世界中的有關事物[1],既提供從一般到特殊的演變手段,又提供了從特殊到一般的歸納形式[2],具有繼承性、封裝性和多態性等特點[3],能夠有效簡化對新的對象類的設計,減輕新程序中分析、設計和編程的工作量,可以自動根據不同類型的對象對相同的激勵做出適當的不同響應。
LabVIEW是一款圖形化的軟件開發工具[4],具有編程簡單、直觀、開發效率高等特點,特別適合工程師快速進行原理驗證與設計開發,尤其是在涉及到硬件控制、數據采集、交互操作等方面具有很大的優勢,被公認為是標準的數據采集和儀器控制軟件[5-6]。因此利用LabVIEW進行氣象計量自動檢定程序開發具有好的便利性。
本文基于LabVIEW設計和開發了溫度自動檢定系統,實現了溫度儀器設備的自動控制、數據自動采集、數據處理、數據顯示、證書與記錄自動生成,減輕了檢定人員的工作強度,減少了人為錯誤的發生,有效提高了計量檢定工作的效率和質量。采用面向對象的編程思路,在LabVIEW中設計了在用各類儀器裝備類,對其屬性和方法進行了定義,通過增加新的子類就能支持新儀器程序擴展,減少程序維護的難度,增強了代碼重用性,提高了軟件開發的效率。
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.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中增加對新儀器類的選擇即可,而不需要對程序中的每個模塊進行大規模的修改,在可擴展性、健壯性等方面優勢明顯。
目前溫度檢定校準系統已在部分二級氣象計量技術機構應用,系統運行平穩,數據處理結果正確,證書記錄輸出格式正確、數據準確,實現了系統的各項功能,同時具有良好的擴展性。系統采用面向對象的編程思路,從檢定工作基本流程中抽象出一般規律,在對象層面共享代碼,在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