文獻(xiàn)標(biāo)識碼: B
文章編號: 0258-7998(2012)07-0072-03
隨著科學(xué)技術(shù)的迅速發(fā)展,越來越多的數(shù)據(jù)采集儀器設(shè)備被應(yīng)用于測量和測試各種參數(shù)信息。然而,科學(xué)技術(shù)的飛速發(fā)展,也導(dǎo)致舊的儀器設(shè)備越來越難于滿足新技術(shù)所需測量的參數(shù)及其所需達(dá)到的測量指標(biāo)。而開發(fā)新的儀器設(shè)備不僅存在開發(fā)周期長、測試效率低等問題,還大大增加了測試成本。這些都是傳統(tǒng)儀器存在的難以避免的缺點[1]。
由美國國家儀器有限公司(NI)提出的虛擬儀器技術(shù)很好地解決了以上問題。它推出的圖形化編程語言LabVIEW提供了很多外觀與傳統(tǒng)儀器類似的控件,采用數(shù)據(jù)流編程方式[2],在程序界面設(shè)計、編寫代碼和實現(xiàn)功能等都采用了圖形化方式,被廣泛應(yīng)用于航空、汽車、通信和過程控制等領(lǐng)域[3]。本文提出了使用LabVIEW虛擬儀器技術(shù)來設(shè)計數(shù)據(jù)采集系統(tǒng)軟件平臺,解決了測試成本高、測試效率低、系統(tǒng)開發(fā)時間長等幾個關(guān)鍵問題,同時它還具備遠(yuǎn)程控制、數(shù)據(jù)采集、數(shù)據(jù)分析等功能。
1 系統(tǒng)設(shè)計思想
完整的數(shù)據(jù)采集系統(tǒng)由硬件和軟件兩部分構(gòu)成。硬件部分如圖1所示,主要完成數(shù)據(jù)的采集工作[4]。軟件部分主要由計算機系統(tǒng)軟件和軟件開發(fā)平臺組成,主要完成數(shù)據(jù)的讀取、顯示和分析工作。系統(tǒng)采用LabVIEW軟件進(jìn)行編程設(shè)計,首先作為服務(wù)器端的PC機通過TCP通信協(xié)議經(jīng)RJ45網(wǎng)絡(luò)端口發(fā)出命令,對連接客戶端數(shù)據(jù)采集設(shè)備的無線通信信道進(jìn)行工作狀態(tài)檢測,隨后對工作正常的設(shè)備的數(shù)據(jù)采集卡進(jìn)行參數(shù)設(shè)置,讀取TCP通信傳輸過來的數(shù)據(jù)后顯示波形,同時以二進(jìn)制文件格式存儲到指定的文件路徑中,完成有用信息提取、數(shù)據(jù)處理和分析等工作,從而實現(xiàn)系統(tǒng)遠(yuǎn)程控制及數(shù)據(jù)采集的功能。
2 系統(tǒng)設(shè)計
2.1 開發(fā)工具和關(guān)鍵技術(shù)
系統(tǒng)以LabVIEW軟件為開發(fā)平臺,采用TCP協(xié)議實現(xiàn)Socket通信。
LabVIEW集成了豐富的數(shù)據(jù)采集、存儲、分析、顯示等工具包,內(nèi)置了多種通信協(xié)議的標(biāo)準(zhǔn)庫函數(shù),提供了強大的傳統(tǒng)程序調(diào)試工具和外部程序接口能力[5]。利用LabVIEW設(shè)計開發(fā)的數(shù)據(jù)采集系統(tǒng),在實際開發(fā)中利用封裝好的VI函數(shù),可實現(xiàn)PC機RJ45網(wǎng)絡(luò)接口與LabVIEW的通信,從而替代了NI公司配備的價格高昂的數(shù)據(jù)采集卡,大大降低了設(shè)備成本。
TCP協(xié)議是一個面向連接的傳輸控制協(xié)議,同時具有順序傳遞、流量控制、擁塞控制、差錯控制等機制,能夠?qū)崿F(xiàn)可靠的連接服務(wù),為數(shù)據(jù)的無差錯傳輸提供了保障[6]。
Socket技術(shù)最初是由加州大學(xué)Berkeley分校開發(fā)的,是用于兩個基于TCP/IP協(xié)議的應(yīng)用程序之間相互通信的網(wǎng)絡(luò)通信接口(API)。采用Socket技術(shù)連接時,發(fā)起呼叫連接請求的一方為客戶端,接受呼叫連接請求的一方為服務(wù)端。連接過程可以分為三個步驟:服務(wù)器監(jiān)聽即服務(wù)器處于等待連接的狀態(tài),實時監(jiān)控網(wǎng)絡(luò)狀態(tài);客戶端向服務(wù)器端Socket提出連接請求;連接確認(rèn)即服務(wù)器端Socket監(jiān)聽到連接請求后響應(yīng)請求。Socket技術(shù)能有效地支持不同應(yīng)用程序?qū)?shù)據(jù)的同時應(yīng)用以及多個應(yīng)用程序之間的數(shù)據(jù)交互,實現(xiàn)不同機器、不同語言、不同進(jìn)程間的實時數(shù)據(jù)交互和共享[7]。
2.2 系統(tǒng)的軟件結(jié)構(gòu)設(shè)計
采集系統(tǒng)主要需要實現(xiàn)以下功能:(1)工作狀態(tài)檢測,即對選定的數(shù)據(jù)采集設(shè)備(客戶端)通信信道進(jìn)行的工作狀態(tài)檢測;(2)參數(shù)設(shè)置,包括對采樣頻率、采樣點數(shù)、放大倍數(shù)等參數(shù)的設(shè)置;(3)讀取數(shù)據(jù),并顯示波形及頻譜分析圖;(4)讀取已存儲的數(shù)據(jù)文件;(5)對已采集到的數(shù)據(jù)提取有用或感興趣部分并保存; (6)數(shù)據(jù)分析處理。軟件結(jié)構(gòu)圖如圖2所示。
3 功能實現(xiàn)
數(shù)據(jù)采集系統(tǒng)以LabVIEW為設(shè)計平臺,其圖形化人機界面的特點為人機交互提供了便捷[8],同時,其強大靈活的功能特點使得實現(xiàn)信道工作狀態(tài)檢測、硬件設(shè)備參數(shù)設(shè)置、數(shù)據(jù)讀?。ú杉⒉ㄐ物@示、頻譜分析、有用信號提取和數(shù)據(jù)分析處理等功能成為可能。
3.1工作狀態(tài)檢測功能
工作狀態(tài)檢測模塊的作用是,在進(jìn)行數(shù)據(jù)采集之前進(jìn)行準(zhǔn)備工作,其目的一是檢測數(shù)據(jù)采集硬件設(shè)備是否正常工作,二是檢查無線通信信道是否暢通。由于在特定的測試環(huán)境中可能同時采用多套無線通信的數(shù)據(jù)采集設(shè)備,因此根據(jù)TCP協(xié)議,設(shè)定PC機為服務(wù)器端,數(shù)據(jù)采集設(shè)備端設(shè)為客戶端。進(jìn)行狀態(tài)檢測時,先通過復(fù)選框選擇需檢測的設(shè)備,點擊“檢測”按鈕后,PC機向客戶端發(fā)送狀態(tài)檢測命令,通過接收到的反饋信息或者連接超時信息來判定設(shè)備工作狀態(tài)。
3.2 參數(shù)設(shè)置功能
參數(shù)設(shè)置模塊的功能是通過LabVIEW的TCP子VI,可選擇地對數(shù)據(jù)采集設(shè)備發(fā)送參數(shù)設(shè)置控制指令,這些參數(shù)中包括采樣頻率、采樣點數(shù)、采樣時間和放大倍數(shù)等,同時,參數(shù)設(shè)置模塊中還包含了對無線通信模塊的控制指令,其中包括斷電、清除備份、重啟等功能。通過軟件中的TCP通信程序,參數(shù)設(shè)置模塊實現(xiàn)了對數(shù)據(jù)采集設(shè)備的遠(yuǎn)程控制,大大提高了系統(tǒng)自動化程度,為特殊環(huán)境中的數(shù)據(jù)采集提供了可能。
3.3 數(shù)據(jù)讀取功能
數(shù)據(jù)讀取模塊的程序框圖如圖3所示。數(shù)據(jù)讀取模塊的作用是向下位機發(fā)送開始采集數(shù)據(jù)的命令,并且讀回已采集到的數(shù)據(jù)。LabVIEW為用戶提供了封裝好的TCP VI函數(shù),使用時服務(wù)器端TCP VI需設(shè)置指定的監(jiān)聽端口,客戶端TCP VI則需設(shè)置要與其建立連接的地址和遠(yuǎn)程端口號。根據(jù)Socket技術(shù),其TCP通信流程包括:作為服務(wù)器端的PC機先對指定的端口監(jiān)聽并處于等待連接狀態(tài),作為客戶端的數(shù)據(jù)采集端向服務(wù)器端被監(jiān)聽的端口發(fā)出連接請求后,PC機響應(yīng),先向客戶端發(fā)出數(shù)據(jù)采集命令,再讀取客戶端反饋的表示確認(rèn)握手成功的信息后,讀取文件是否為加密文件的標(biāo)志位,讀取文件數(shù)據(jù)大小信息,最后讀取數(shù)據(jù),完成后關(guān)閉TCP。
當(dāng)所采集的數(shù)據(jù)量較大時,無線傳輸所需要的時間也會相應(yīng)增加,為減少時間和數(shù)據(jù)存儲開銷,數(shù)據(jù)采集端對數(shù)據(jù)進(jìn)行了壓縮。相應(yīng)地,服務(wù)器端的采集系統(tǒng)也需進(jìn)行解壓工作。為實現(xiàn)解壓縮功能,在程序中使用了執(zhí)行系統(tǒng)命令VI(System Exec.vi), 嵌入執(zhí)行軟件7z.exe的解壓縮命令,達(dá)到了數(shù)據(jù)解壓縮的目的。
3.4 有用信號提取功能
由于在所采集到數(shù)據(jù)中,有用信號或感興趣部分只占所采集到的信號中的一部分,為了方便波形的觀察和數(shù)據(jù)的分析處理以及節(jié)省內(nèi)存資源,通常會對信號進(jìn)行截取。程序中通過兩個游標(biāo)位置可確定信號感興趣部分的范圍,截取并保存范圍內(nèi)的波形,即可實現(xiàn)系統(tǒng)有用信號提取功能。
3.5 波形顯示功能
LabVIEW中的波形圖控件本身包含了一些小的輔助控件,其中包括圖形工具、游標(biāo)圖例、標(biāo)尺等。由于游標(biāo)圖例的顯示影響系統(tǒng)界面的整體效果,程序中通過編程達(dá)到了顯示游標(biāo)坐標(biāo)和通過輸入數(shù)值重新定位游標(biāo)的效果,從而替代了游標(biāo)圖例。為初步判斷所采集到的信號的正確性,系統(tǒng)對數(shù)據(jù)進(jìn)行了簡單的頻譜分析。同時,由于波形圖控件沒有撤銷重做的功能,程序中通過捕捉標(biāo)尺范圍的變化,并將改變前的標(biāo)尺范圍值入棧保存來實現(xiàn)撤銷功能。 撤銷功能模塊的部分程序框圖如圖4所示。
3.6 數(shù)據(jù)處理功能
為使去噪效果較理想,數(shù)據(jù)處理模塊中提供了巴特沃斯、切比雪夫、平滑濾波、中值濾波等多種濾波方式以供選擇。此模塊還對濾波后信號的頻譜和功率譜進(jìn)行分析,并進(jìn)行特征值提取、均值和峰值計算、基線估計、溫壓的動態(tài)特性修正等工作。
4 系統(tǒng)應(yīng)用效果驗證
為了測試系統(tǒng)的可靠性,將PC機的RJ45口與數(shù)據(jù)采集設(shè)備相連,運行并對系統(tǒng)進(jìn)行工作狀態(tài)檢測和參數(shù)設(shè)置,系統(tǒng)數(shù)據(jù)采集的運行界面如圖5所示。試驗證明,系統(tǒng)采集到的信號與下位機所發(fā)送的2 Mb的三角波一致,可見數(shù)據(jù)采集系統(tǒng)能夠穩(wěn)定、可靠、準(zhǔn)確地工作。
在實際項目開發(fā)中,系統(tǒng)以LabVIEW軟件為開發(fā)平臺,充分利用了LabVIEW的強大功能,通過TCP連接實現(xiàn)了PC機與數(shù)據(jù)采集設(shè)備的通信,實現(xiàn)了采集卡參數(shù)的遠(yuǎn)程設(shè)置,完成了遠(yuǎn)程數(shù)據(jù)的采集、顯示、存儲、處理等,自動化程度較高,具有較高的可靠性和穩(wěn)定性,具有實際應(yīng)用價值。此數(shù)據(jù)采集系統(tǒng)開發(fā)中取得的經(jīng)驗,可在其他數(shù)據(jù)采集等測控系統(tǒng)中應(yīng)用推廣。
參考文獻(xiàn)
[1] 曾劍,周劍揚.基于LabVIEW的SFP光模塊測試平臺的設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2011,37(4):67-69.
[2] 陳錫輝,張銀鴻. LabVIEW 8.2程序設(shè)計從入門到精通[M].北京:清華大學(xué)出版社,2007.
[3] 張東,施奇峰.基于LabVIEW和TCP的數(shù)據(jù)采集系統(tǒng)的開發(fā)及應(yīng)用[J].冶金自動化,2011,35(2):36-40.
[4] 董剛剛,吳建.基于CPLD+FLASH的多通道測試記錄儀[J].光電技術(shù)應(yīng)用,2011,26(4):8-10.
[5] 陳學(xué)慶,房小溪.LabVIEW圖形化編程與實例應(yīng)用[M].北京:中國鐵道出版社,2005.
[6] 謝希仁.計算機網(wǎng)絡(luò)[M].第5版.北京:電子工業(yè)出版社,2008.
[7] DONAHOO M J, CALVERT K L. TCP/IP Sockets編程(C語言實現(xiàn))[M]. 第2版. 陳宗斌,等譯.北京:清華大學(xué)出版社,2009.
[8] 李全江.虛擬儀器設(shè)計測控應(yīng)用典型實例[M].北京:電子工業(yè)出版社,2010.