王 洋,魏洪峰,姜明波,杜智濤,江 軍
(北京應(yīng)用氣象研究所,北京 100029)
基于LabVIEW面向?qū)ο缶幊痰臏囟茸詣?dòng)檢定校準(zhǔn)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
王 洋,魏洪峰,姜明波,杜智濤,江 軍
(北京應(yīng)用氣象研究所,北京 100029)
針對(duì)溫度儀器自動(dòng)檢定校準(zhǔn)和原有程序擴(kuò)展升級(jí)需求,基于LabVIEW設(shè)計(jì)和開發(fā)了溫度自動(dòng)檢定校準(zhǔn)系統(tǒng);系統(tǒng)由工控計(jì)算機(jī)、溫度標(biāo)準(zhǔn)器、恒溫槽和多串口卡等組成,實(shí)現(xiàn)了溫度儀器設(shè)備的自動(dòng)控制、數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)顯示、證書與記錄自動(dòng)生成等功能;采用面向?qū)ο蟮木幊趟悸?,設(shè)計(jì)了儀器裝備類,對(duì)類屬性和方法進(jìn)行了定義,通過增加新的子類就能支持新儀器擴(kuò)展,減少程序維護(hù)的難度,在可擴(kuò)展性、代碼重用性、健壯性等方面優(yōu)勢(shì)明顯;應(yīng)用結(jié)果表明系統(tǒng)運(yùn)行平穩(wěn),擴(kuò)展性好;系統(tǒng)能夠減輕檢定人員的工作強(qiáng)度,減少人為錯(cuò)誤的發(fā)生,有效提高計(jì)量檢定校準(zhǔn)工作的效率和質(zhì)量。
LabVIEW;面向?qū)ο缶幊?;檢定校準(zhǔn)
隨著自動(dòng)控制技術(shù)、信息管理技術(shù)、信息控制技術(shù)、信息交換技術(shù)、網(wǎng)絡(luò)技術(shù)的發(fā)展,越來越多的溫度檢定設(shè)備和儀器能夠支持RS-232、RS-485等通信方式,支持利用計(jì)算機(jī)實(shí)現(xiàn)設(shè)備的外部控制和數(shù)據(jù)采集,為實(shí)現(xiàn)自動(dòng)化的溫度計(jì)量檢定校準(zhǔn)奠定了基礎(chǔ)。
目前,各種自動(dòng)化的檢定校準(zhǔn)軟件都是針對(duì)某些具體型號(hào)的儀器編寫的,基本采用面向過程編程方法,具有針對(duì)性強(qiáng)的特點(diǎn),但在實(shí)際工作中,若需要對(duì)軟件進(jìn)行升級(jí),如引進(jìn)了一種新的檢定設(shè)備,檢定一種新的儀器等情況,就需要對(duì)原程序各個(gè)模塊進(jìn)行修改,程序的可讀性差,特別是在程序開發(fā)后段,增強(qiáng)了模塊之間的耦合性,不利用程序的維護(hù)管理和擴(kuò)充。
面向?qū)ο缶幊?Object-oriented programming, OOP),具有清晰的接口,適合團(tuán)隊(duì)合作和方便后期維護(hù),能夠有效解決上述問題,大大提高編程的靈活性和可維護(hù)性,同時(shí)具有很好的代碼重用性。面向?qū)ο缶幊虖?qiáng)調(diào)在軟件開發(fā)過程中面向客觀世界或問題域中的事物,采用人類在認(rèn)識(shí)客觀世界的過程中普遍運(yùn)用的思維方法,直觀、自然地描述客觀世界中的有關(guān)事物[1],既提供從一般到特殊的演變手段,又提供了從特殊到一般的歸納形式[2],具有繼承性、封裝性和多態(tài)性等特點(diǎn)[3],能夠有效簡(jiǎn)化對(duì)新的對(duì)象類的設(shè)計(jì),減輕新程序中分析、設(shè)計(jì)和編程的工作量,可以自動(dòng)根據(jù)不同類型的對(duì)象對(duì)相同的激勵(lì)做出適當(dāng)?shù)牟煌憫?yīng)。
LabVIEW是一款圖形化的軟件開發(fā)工具[4],具有編程簡(jiǎn)單、直觀、開發(fā)效率高等特點(diǎn),特別適合工程師快速進(jìn)行原理驗(yàn)證與設(shè)計(jì)開發(fā),尤其是在涉及到硬件控制、數(shù)據(jù)采集、交互操作等方面具有很大的優(yōu)勢(shì),被公認(rèn)為是標(biāo)準(zhǔn)的數(shù)據(jù)采集和儀器控制軟件[5-6]。因此利用LabVIEW進(jìn)行氣象計(jì)量自動(dòng)檢定程序開發(fā)具有好的便利性。
本文基于LabVIEW設(shè)計(jì)和開發(fā)了溫度自動(dòng)檢定系統(tǒng),實(shí)現(xiàn)了溫度儀器設(shè)備的自動(dòng)控制、數(shù)據(jù)自動(dòng)采集、數(shù)據(jù)處理、數(shù)據(jù)顯示、證書與記錄自動(dòng)生成,減輕了檢定人員的工作強(qiáng)度,減少了人為錯(cuò)誤的發(fā)生,有效提高了計(jì)量檢定工作的效率和質(zhì)量。采用面向?qū)ο蟮木幊趟悸罚贚abVIEW中設(shè)計(jì)了在用各類儀器裝備類,對(duì)其屬性和方法進(jìn)行了定義,通過增加新的子類就能支持新儀器程序擴(kuò)展,減少程序維護(hù)的難度,增強(qiáng)了代碼重用性,提高了軟件開發(fā)的效率。
1.1 系統(tǒng)總體設(shè)計(jì)
設(shè)計(jì)的溫度自動(dòng)檢定系統(tǒng)采用比較法進(jìn)行檢定。通過數(shù)據(jù)采集設(shè)備對(duì)標(biāo)準(zhǔn)恒溫設(shè)備、溫度標(biāo)準(zhǔn)器和工控計(jì)算機(jī)進(jìn)行控制和數(shù)據(jù)采集;設(shè)計(jì)了自動(dòng)溫度檢定校準(zhǔn)程序,實(shí)現(xiàn)標(biāo)準(zhǔn)器與被檢件信息管理、檢定點(diǎn)設(shè)置與升降溫控制、穩(wěn)定判斷、標(biāo)準(zhǔn)器與被檢表數(shù)據(jù)采集與處理、檢定證書與記錄出具與檢定數(shù)據(jù)自動(dòng)存儲(chǔ)等功能,能夠滿足二級(jí)氣象計(jì)量技術(shù)機(jī)構(gòu)配備的多種鉑電阻溫度計(jì)的自動(dòng)檢定校準(zhǔn)需求。整個(gè)檢定校準(zhǔn)系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 溫度自動(dòng)檢定系統(tǒng)架構(gòu)
1.2 系統(tǒng)硬件組成
系統(tǒng)主要由標(biāo)準(zhǔn)器、檢定設(shè)備、數(shù)據(jù)采集設(shè)備和工控計(jì)算機(jī)組成,硬件設(shè)備具體型號(hào)如表1所示。標(biāo)準(zhǔn)器和檢定設(shè)備構(gòu)成標(biāo)準(zhǔn)裝置,主要用于提供檢定所需的環(huán)境和復(fù)現(xiàn)標(biāo)準(zhǔn)量值;數(shù)據(jù)采集設(shè)備,能夠?qū)崿F(xiàn)計(jì)算機(jī)與各類儀器設(shè)備的數(shù)據(jù)通信,可選用多串口卡或者串口服務(wù)器作為數(shù)據(jù)采集設(shè)備;計(jì)算機(jī)主要運(yùn)行自動(dòng)檢定軟件,通過軟件實(shí)現(xiàn)設(shè)備儀器控制、數(shù)據(jù)采集處理分析顯示、結(jié)果判定、報(bào)表生成等,是整個(gè)系統(tǒng)的核心。
表1 系統(tǒng)集成的硬件設(shè)備情況
1.3 軟件設(shè)計(jì)
按照功能,將軟件劃分為6個(gè)模塊,如圖2所示。
圖2 軟件功能模塊
初始化模塊,主要實(shí)現(xiàn)硬件、軟件的初始化。
軟件配置模塊,主要實(shí)現(xiàn)軟件參數(shù)配置和檢定基本信息配置。軟件參數(shù)配置,主要實(shí)現(xiàn)報(bào)表存儲(chǔ)路徑設(shè)置、默認(rèn)參數(shù)設(shè)置、曲線圖顏色設(shè)置等;檢定基本信息配置,主要實(shí)現(xiàn)檢定校準(zhǔn)參數(shù)設(shè)置,包括標(biāo)準(zhǔn)器、恒溫槽和被檢儀器的基本設(shè)備信息、串口配置、檢定點(diǎn)、讀數(shù)次數(shù)、環(huán)境條件等。
數(shù)據(jù)采集模塊,主要實(shí)現(xiàn)對(duì)檢定設(shè)備和標(biāo)準(zhǔn)器的控制,包括串口配置、串口命令合成、數(shù)據(jù)采集等。
數(shù)據(jù)處理模塊,主要實(shí)現(xiàn)對(duì)硬件返回?cái)?shù)據(jù)的解析、穩(wěn)定判別等功能。
顯示模塊,主要實(shí)現(xiàn)程序狀態(tài)和采集數(shù)據(jù)的顯示,每次采集返回的數(shù)據(jù)均采用字符串和波形圖的方式顯示,當(dāng)判斷穩(wěn)定后在前面板的記錄表格中顯示。
報(bào)表生成模塊,主要實(shí)現(xiàn)將檢定的原始數(shù)據(jù)和結(jié)果寫入excel記錄文件和word證書文件中,主要借助第三方的office工具包,在excel中通過行列來定位實(shí)現(xiàn)數(shù)據(jù)讀寫[7],在word中通過書簽來定位實(shí)現(xiàn)數(shù)據(jù)讀寫[8]。
軟件主界面采用“生產(chǎn)者/消費(fèi)者”設(shè)計(jì)模式,能夠調(diào)節(jié)各個(gè)線程之間的運(yùn)行速度,將生產(chǎn)和消費(fèi)數(shù)據(jù)速率按不同的任務(wù)分開處理,增強(qiáng)了不同速率的多個(gè)循環(huán)之間數(shù)據(jù)交互和共享的能力,采用這種架構(gòu)可使程序響應(yīng)事件更快、執(zhí)行效率更高[9],是多任務(wù)處理和連續(xù)性、實(shí)時(shí)性要求嚴(yán)格的程序設(shè)計(jì)的一種好的選擇。
根據(jù)實(shí)際需要共設(shè)計(jì)了4個(gè)循環(huán),依次為事件處理循環(huán)、UI循環(huán)、數(shù)據(jù)采集循環(huán)、分析顯示與記錄循環(huán),將上述的六個(gè)模塊分別放入不同的循環(huán)中,同一類型的任務(wù)歸為一類,以獲得較高的運(yùn)行效率。除事件處理循環(huán)外,其它循環(huán)采用隊(duì)列消息處理器結(jié)構(gòu),根據(jù)不同的消息進(jìn)行不同的處理。事件處理循環(huán),捕捉前面板產(chǎn)生的各類事件以及自定義的初始化和停止動(dòng)態(tài)事件,并發(fā)送相應(yīng)的消息至UI循環(huán),是消息的“生產(chǎn)者”;UI循環(huán),對(duì)各類事件進(jìn)行響應(yīng),并發(fā)送相應(yīng)的消息到數(shù)據(jù)采集循環(huán)和分析顯示與記錄循環(huán),是消息的“二傳手”;數(shù)據(jù)采集循環(huán)與分析顯示與記錄循環(huán)負(fù)責(zé)具體處理消息,其中,數(shù)據(jù)采集循環(huán)處理與設(shè)備相關(guān)的儀器配置、儀器命令、數(shù)據(jù)采集等消息;分析顯示與記錄循環(huán)處理數(shù)據(jù)解析、穩(wěn)定判別、檢定點(diǎn)改變、原始記錄和證書生成和前面板顯示等消息。
使用隊(duì)列技術(shù)解決循環(huán)的數(shù)據(jù)傳遞和同步,構(gòu)造了UI消息隊(duì)列、采集消息隊(duì)列、分析顯示消息隊(duì)列。隊(duì)列是一種先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),將新來的元素加入隊(duì)尾,而隊(duì)首的元素總是最先離開,這樣就避免了在數(shù)據(jù)傳輸過程中發(fā)生數(shù)據(jù)丟失或重復(fù)利用問題[10]。前面板如圖3所示,程序框圖如圖4所示。
圖3 主界面前面板
圖4 主界面程序框圖
2.1 類設(shè)計(jì)
面向?qū)ο缶幊虒④浖瓿傻娜蝿?wù)解為不同的“類”,在項(xiàng)目中創(chuàng)建“類”,同時(shí)定義類的屬性、編寫對(duì)類的私有數(shù)據(jù)進(jìn)行操作類的成員VI[11],類是面向?qū)ο缶幊痰年P(guān)鍵。根據(jù)系統(tǒng)所使用的檢定設(shè)備、標(biāo)準(zhǔn)器和被檢儀器種類,設(shè)計(jì)氣象計(jì)量裝備類,按照檢定要素進(jìn)行分類。檢定儀器與裝備類,分為溫度裝備類、濕度裝備類、氣壓裝備類、風(fēng)速裝備類和雨量裝備類;然后根據(jù)使用的裝備儀器的具體型號(hào)進(jìn)行分類,溫度裝備類,包含LU100B恒溫槽類、FLUKE7381恒溫槽類、HART1560溫度計(jì)類、FLKUE SUPERTHERMETER溫度計(jì)類、RCY-1A單溫度計(jì)類、RCY-1A雙溫度計(jì)類、RCY-1D溫度計(jì)類、GP800溫度計(jì)類、SWJKB溫度計(jì)類等,如圖5所示。本系統(tǒng)中僅需要溫度裝備類,設(shè)計(jì)其它類是為了方便以后對(duì)程序進(jìn)行擴(kuò)展,最終實(shí)現(xiàn)全部氣象要素的自動(dòng)檢定。
圖5 檢定儀器與裝備類
類的屬性主要包括串口引用數(shù)組、儀器命令集。由于各儀器串口返回的數(shù)據(jù)較多,因此未將其列入類的數(shù)據(jù)。
自動(dòng)化的計(jì)量檢定程序都涉及對(duì)檢定設(shè)備進(jìn)行控制、讀取標(biāo)準(zhǔn)器和被檢儀器數(shù)據(jù)等基本過程,不同的是各種儀器的通信參數(shù)、控制命令、數(shù)據(jù)格式等存在差異,基本過程相似,具體參數(shù)不同。根據(jù)自動(dòng)檢定儀器控制和數(shù)據(jù)采集的流程和要求,設(shè)計(jì)類的方法主要包括:讀取串口引用數(shù)組、寫入串口引用數(shù)組;配置串口;串口命令配置;數(shù)據(jù)采集;數(shù)據(jù)解析等。其中,讀取串口引用數(shù)組和寫入串口引用數(shù)組為公用函數(shù),用于進(jìn)行類的數(shù)據(jù)訪問;其余為基于動(dòng)態(tài)模板的虛函數(shù),在子類中重寫,類的多態(tài)性就是基于這些虛函數(shù)實(shí)現(xiàn)的。需要注意的是子類中重寫的方法名稱應(yīng)與父類保持一致,才能實(shí)現(xiàn)自動(dòng)重載。
2.2 類的實(shí)例化
在整個(gè)程序中當(dāng)設(shè)置好檢定基本信息后,程序通過選擇類VI實(shí)現(xiàn)類的實(shí)例化。其程序框圖如圖6所示。根據(jù)自定義的枚舉類型“型號(hào)”來實(shí)現(xiàn)儀器類的選擇,并調(diào)用寫入串口引用數(shù)組VI實(shí)現(xiàn)對(duì)類的數(shù)據(jù)的初始化,形成儀器對(duì)象實(shí)例數(shù)組。
圖6 選擇類的程序框圖
形成儀器對(duì)象實(shí)例數(shù)組后,借助類的多態(tài)性,進(jìn)行串口配置、串口命令選擇發(fā)送、數(shù)據(jù)采集、數(shù)據(jù)解析等操作時(shí),程序會(huì)根據(jù)儀器的所屬子類自動(dòng)執(zhí)行相應(yīng)的子類方法,而不需要再編寫程序進(jìn)行判斷,如圖7所示。
圖7 類的多態(tài)性
對(duì)象的行為與整個(gè)程序的架構(gòu)相互獨(dú)立,使代碼更新變得非常簡(jiǎn)單。,這樣在程序后期維護(hù)和擴(kuò)展,添加對(duì)新的儀器設(shè)備的支持時(shí),只需要編寫新儀器類中需要重載的方法,修改枚舉類型“型號(hào)”,并在選擇類VI中增加對(duì)新儀器類的選擇即可,而不需要對(duì)程序中的每個(gè)模塊進(jìn)行大規(guī)模的修改,在可擴(kuò)展性、健壯性等方面優(yōu)勢(shì)明顯。
目前溫度檢定校準(zhǔn)系統(tǒng)已在部分二級(jí)氣象計(jì)量技術(shù)機(jī)構(gòu)應(yīng)用,系統(tǒng)運(yùn)行平穩(wěn),數(shù)據(jù)處理結(jié)果正確,證書記錄輸出格式正確、數(shù)據(jù)準(zhǔn)確,實(shí)現(xiàn)了系統(tǒng)的各項(xiàng)功能,同時(shí)具有良好的擴(kuò)展性。系統(tǒng)采用面向?qū)ο蟮木幊趟悸罚瑥臋z定工作基本流程中抽象出一般規(guī)律,在對(duì)象層面共享代碼,在LabVIEW中設(shè)計(jì)了儀器類,其包含的方法與基于過程編程的方法相比更為具體和細(xì)致,更容易閱讀,通過增加新的子類就能支持新儀器程序擴(kuò)展,減少了程序維護(hù)的難度,增強(qiáng)了代碼重用性。以其為架構(gòu),快速開發(fā)實(shí)現(xiàn)了溫度儀器設(shè)備的自動(dòng)控制、數(shù)據(jù)自動(dòng)采集、證書與記錄的自動(dòng)生成,減輕了檢定人員的工作強(qiáng)度,減少了人為錯(cuò)誤的發(fā)生,有效提高了計(jì)量檢定工作的效率和質(zhì)量。同時(shí)可以進(jìn)一步擴(kuò)展形成有具編程風(fēng)格一致、界面一致、操作一致等特點(diǎn)的溫壓濕風(fēng)雨自動(dòng)檢定校準(zhǔn)系統(tǒng)軟件,提高了氣象自動(dòng)計(jì)量檢定校準(zhǔn)軟件開發(fā)的效率。
[1] 陳超泉,王政鋒,匡昭敏,等. 基于GIS的廣西暴雨風(fēng)險(xiǎn)度實(shí)時(shí)評(píng)估系統(tǒng)[J]. 計(jì)算機(jī)應(yīng)用,2013(1):276-280.
[2] 竇連旺,陳 曦,劉魯源. 基于面向?qū)ο蠹夹g(shù)的參數(shù)化CAD系統(tǒng)[J]. 計(jì)算機(jī)工程,2004(9):182-185.
[3] 王育堅(jiān).VisualC++面向?qū)ο缶幊探坛蘙M]. 北京:清華大學(xué)出版社,2003.
[4] 楊樂平,李海濤,楊 磊.LabVIEW程序設(shè)計(jì)與應(yīng)用[M]. 北京:電子工業(yè)出版社,2005:13-15.
[5] 侯國(guó)屏,王 珅,葉 齊.LabVIEW7.1編程與虛擬儀器設(shè)計(jì)[M]. 北京:清華大學(xué)出版社,2005.
[6] 韓 軒,肖 暉,石建榮,等. 基于LabVIEW的砝碼自動(dòng)檢定系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)測(cè)量與控制,2015(6):1892-1894.
[7] 胡紹海,高亞峰,肖 坦. 基于LabVIEW的Excel報(bào)表生成技術(shù)研究[J]. 測(cè)控技術(shù),2007,10: 64-66,69.
[8] 汪翠英,裴 鋒.LabVIEW中Word報(bào)告生成功能開發(fā)[J]. 儀器儀表用戶,2005(1): 94-96.
[9] 錢聲強(qiáng). 基于LabVIEW的智能家居監(jiān)控系統(tǒng)設(shè)計(jì)[J]. 現(xiàn)代電子技術(shù),2013,24:103-105.
[10] 劉 躍,賀 凱,袁文琦,等. 基于LabVIEW的壓風(fēng)機(jī)遠(yuǎn)程監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J]. 煤礦機(jī)械,2014,12:35-37.
[11] 李 曼,趙 坤.LabVIEW程序設(shè)計(jì)方法在自動(dòng)測(cè)試系統(tǒng)中的應(yīng)用探討[J]. 測(cè)控技術(shù),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-),男,陜西涇陽(yáng)人,碩士研究生,助理研究員,主要從事氣象計(jì)量與裝備論證方向的研究。
1671-4598(2017)02-0054-03
10.16526/j.cnki.11-4762/tp.2017.02.014
TP274
A