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