《電子技術應用》
您所在的位置:首頁 > 測試測量 > 設計應用 > 基于LabVIEW的虛擬自動氣象站軟件設計
基于LabVIEW的虛擬自動氣象站軟件設計
摘要: 本文介紹一種自動氣象站的軟件設計方法,以美國NI公司的LabVIEW8.5為平臺,配合QLI50氣象數據采集器,實現虛擬自動氣象站設計。
Abstract:
Key words :

1 引言

  虛擬儀器(VI)的概念是美國NI公司在20世紀80年代中期提出來的。所謂虛擬儀器就是以計算機作為儀器統(tǒng)一的硬件平臺,充分利用計算機的運算、存儲、回放、調用、顯示及文件管理等智能化功能,同時把傳統(tǒng)儀器的專業(yè)化功能和面板控件軟件化,使之與計算機結合構成一臺從外觀到功能都完全與傳統(tǒng)硬件儀器相同,同時又充分享用了計算機智能資源的全新儀器系統(tǒng)。與傳統(tǒng)儀器相比,虛擬儀器有許多優(yōu)點:對測試量的處理和計算可更復雜且處理速度更快,測試結果的表達方式更加豐富多樣,可以方便地存儲和交換測試數據,價格低,技術更新快。本文介紹一種自動氣象站的軟件設計方法,以美國NI公司的LabVIEW8.5為平臺,配合QLI50氣象數據采集器,實現虛擬自動氣象站設計。

2 虛擬自動氣象站功能介紹

  自動氣象站由傳感器、數據采集器、數據處理終端等組成。傳感器感應氣象要素的變化;數據采集器可對氣溫、濕度、風向、風速、雨量和氣壓等氣象要素進行自動采集和預處理,數據處理終端能對數據采集器獲取的數據進行進一步運算處理,能在屏幕上按規(guī)定的格式顯示實時數據,并能按規(guī)定的格式自動進行資料的存儲。

  為實現上述自動氣象站的功能,本文設計的虛擬自動氣象站系統(tǒng)主要由數據采集、數據處理、數據顯示、數據保存四個模塊構成。如果數據采集周期沒有特別要求,可以將這四個模塊通過數據流連接起來,即每采集一次數據都需要經過數據處理、顯示、保存后才能開始第二輪采集,對于這種情況,由于數據分析導致的時間延遲將會增大數據采集的周期。

  由于自動氣象站對數據采集周期要求較高,基于數據流的方法顯然是不行的。因此,本文提出了基于隊列技術的數據采集模式:即利用多個并行循環(huán)處理不同的任務,每一個循環(huán)都具有獨立的線程,相互間互不干擾。拿數據采集循環(huán)和數據處理循環(huán)的數據傳遞為例:數據采集循環(huán)不間斷地采集數據,并將采集到的數據放在隊列中,數據處理循環(huán)不間斷地從隊列中取出數據進行數據處理。如果處理數據的周期大于采集周期,那么新采集的數據將會緩存在隊列中,隊列只要沒有滿就不會丟失采集到的數據。如果處理數據的周期小于采集周期,那么在隊列為空時,數據處理循環(huán)將處于等待狀態(tài),因此也不會導致數據的重復分析。當數據采集循環(huán)停止時,若隊列中還有數據,則數據分析循環(huán)也會將剩余的數據全部分析,因此停止數據采集也不會丟失前面采集到的數據。數據顯示循環(huán)和數據保存循環(huán)亦是如此,四個循環(huán)并行進行從而實現自動氣象站的功能。

  另外,為了精確的控制時間,系統(tǒng)還采用了定時結構和通知技術,通過通知器操作函數可以實現一段程序框圖在收到來自于定時結構中每秒發(fā)出的通知消息前保持等待狀態(tài),從而實現了程序中每秒顯示一次數據和每分鐘保存一次數據的功能。

3 數據采集

  數據采集模塊用來獲取QLI50氣象數據采集器所采集到的數據。數據采集模塊的框圖如圖1所示。


圖1 數據采集框圖程序

  首先用“打開TCP連接”函數打開由地址和遠程端口所指定的TCP網絡連接,同時用“獲取隊列引用”函數創(chuàng)建以名為“網口數據”的隊列,再用“讀取TCP數據”函數從TCP網絡連接讀取字節(jié),并把字節(jié)放入“網口數據”隊列中,等待數據處理循環(huán)讀取隊列中數據,同時開始采集下一秒的數據。

4 數據處理

  數據處理模塊用來將采集到的數據進行預處理。數據處理模塊的框圖如圖2所示。

圖2 數據處理框圖程序

  由于采集的原始數據是一系列編碼,要得到各氣象要素的數據還必須解碼。數據從“網口數據”隊列中出列,用“預處理”子VI可以將出列的數據分離開,并通過FOR循環(huán)的自動索引功能將它們按順序加入“處理數據”隊列中,等待數據顯示循環(huán)讀取隊列中數據,同時繼續(xù)從“網口數據”隊列中讀取數據。

5 數據顯示

  數據顯示模塊用來在虛擬前面板上按規(guī)定的格式顯示實時數據。數據顯示模塊的框圖如圖3所示。

圖3 數據顯示框圖程序

  各氣象要素數據從“處理數據”隊列出列,通過全局變量“一次讀取數據”將數據傳送到主界面程序框圖中的波形圖表,可以實時顯示出各氣象要素數據的變化曲線。另外,因為前面板顯示的是各氣象要素一分鐘的平均數據,所以出隊列的數據還通過一個“均值”函數,并將一分鐘內的平均數據通過全局變量“分鐘平均數據”傳送到主界面來顯示各氣象要素一分鐘內的平均值。為了數據保存的需要,創(chuàng)建“保存數據”隊列,將“處理數據”隊列出列的數據加入到“保存數據”中,等待數據保存循環(huán)讀取隊列中數據,同時繼續(xù)從“處理數據”隊列中讀取數據。

6 數據保存

  數據保存模塊用來將采集到的數據按規(guī)定的格式自動進行資料的存儲。數據保存模塊的框圖如圖4所示。

圖4 數據保存框圖程序

  數據保存模塊使用了通知技術,由主程序框圖中的定時器每秒發(fā)出一個通知信號,程序在第60秒時將這一分鐘內從“保存數據”隊列中出列的數據都寫入以當前時間命名的文本文件中,并保存在當前路徑下data文件夾中,從而將每秒采集到的數據都進行了保存。

7 結論

  本自動氣象站軟件以LabVIEW8.5為開發(fā)平臺,配合QLI50氣象數據采集器,實現了虛擬自動氣象站的基本功能。所構成的虛擬自動氣象站成功用于地面氣象觀測中,具有造價低,操作方便等特點。另外,軟件的幾個模塊都采用了子VI的設計,可以采用LabVIEW遠程VI調用技術,即通過本地VI調用另外一臺計算機上的VI,而用戶不需要考慮網絡通信的復雜細節(jié)。通過遠程VI調用可以方便地實現網絡分布式系統(tǒng),可以在本地計算機上實現自動氣象站的數據采集,而在另外遠程計算機上顯示自動氣象站的實時狀態(tài)。

此內容為AET網站原創(chuàng),未經授權禁止轉載。