《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計應(yīng)用 > 基于LabVIEW和TCP的數(shù)據(jù)采集系統(tǒng)設(shè)計與實現(xiàn)
基于LabVIEW和TCP的數(shù)據(jù)采集系統(tǒng)設(shè)計與實現(xiàn)
來源:電子技術(shù)應(yīng)用2012年第7期
姚 娟, 張志杰, 李麗芳
中北大學(xué) 信息與通信工程學(xué)院, 山西 太原 030051
摘要: 針對低成本和遠(yuǎn)程控制的數(shù)據(jù)采集的需求,以LabVIEW為平臺開發(fā)了一套數(shù)據(jù)采集系統(tǒng),通過TCP連接實現(xiàn)PC機LabVIEW圖形化人機界面軟件與數(shù)據(jù)采集設(shè)備的通信,具有參數(shù)設(shè)置、數(shù)據(jù)采集和存儲以及數(shù)據(jù)分析等功能。該系統(tǒng)操作簡單,設(shè)置簡便,功能實用,成本較低。實驗結(jié)果表明,系統(tǒng)具有良好的可靠性和穩(wěn)定性,是進(jìn)行數(shù)據(jù)采集的有力工具。
中圖分類號: TP274
文獻(xiàn)標(biāo)識碼: B
文章編號: 0258-7998(2012)07-0072-03
Design and implementation of data acquisition system based on LabVIEW and TCP
Yao Juan, Zhang Zhijie, Li Lifang
School of Information and Communication Engineering,North University of China, Taiyuan 030051,China
Abstract: Aimed at the need of inexpensive and remotely controlled data acquisition, a data acquisition system is developed on the platform of LabVIEW. The software of LabVIEW graphical man-machine interface communicates with the data acquisition device by TCP connection. It can realize the functions of parameter setting, data acquisition and storage, data analysis and processing and so on. The system has features such as easy operation, convenient setting, utility functionalities, low cost, and easy to operate. The results of experiment indicate that the system is a powerful tool for data acquisition which has good stability and reliability.
Key words : data acquisition; LabVIEW; TCP; man-machine interface

    隨著科學(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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。