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