《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于LabVIEW和TCP的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
基于LabVIEW和TCP的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
來(lái)源:電子技術(shù)應(yīng)用2012年第7期
姚 娟, 張志杰, 李麗芳
中北大學(xué) 信息與通信工程學(xué)院, 山西 太原 030051
摘要: 針對(duì)低成本和遠(yuǎn)程控制的數(shù)據(jù)采集的需求,以L(fǎng)abVIEW為平臺(tái)開(kāi)發(fā)了一套數(shù)據(jù)采集系統(tǒng),通過(guò)TCP連接實(shí)現(xiàn)PC機(jī)LabVIEW圖形化人機(jī)界面軟件與數(shù)據(jù)采集設(shè)備的通信,具有參數(shù)設(shè)置、數(shù)據(jù)采集和存儲(chǔ)以及數(shù)據(jù)分析等功能。該系統(tǒng)操作簡(jiǎn)單,設(shè)置簡(jiǎn)便,功能實(shí)用,成本較低。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)具有良好的可靠性和穩(wěn)定性,是進(jìn)行數(shù)據(jù)采集的有力工具。
中圖分類(lèi)號(hào): TP274
文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 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ā)展,越來(lái)越多的數(shù)據(jù)采集儀器設(shè)備被應(yīng)用于測(cè)量和測(cè)試各種參數(shù)信息。然而,科學(xué)技術(shù)的飛速發(fā)展,也導(dǎo)致舊的儀器設(shè)備越來(lái)越難于滿(mǎn)足新技術(shù)所需測(cè)量的參數(shù)及其所需達(dá)到的測(cè)量指標(biāo)。而開(kāi)發(fā)新的儀器設(shè)備不僅存在開(kāi)發(fā)周期長(zhǎng)、測(cè)試效率低等問(wèn)題,還大大增加了測(cè)試成本。這些都是傳統(tǒng)儀器存在的難以避免的缺點(diǎn)[1]。

    由美國(guó)國(guó)家儀器有限公司(NI)提出的虛擬儀器技術(shù)很好地解決了以上問(wèn)題。它推出的圖形化編程語(yǔ)言LabVIEW提供了很多外觀(guān)與傳統(tǒng)儀器類(lèi)似的控件,采用數(shù)據(jù)流編程方式[2],在程序界面設(shè)計(jì)、編寫(xiě)代碼和實(shí)現(xiàn)功能等都采用了圖形化方式,被廣泛應(yīng)用于航空、汽車(chē)、通信和過(guò)程控制等領(lǐng)域[3]。本文提出了使用LabVIEW虛擬儀器技術(shù)來(lái)設(shè)計(jì)數(shù)據(jù)采集系統(tǒng)軟件平臺(tái),解決了測(cè)試成本高、測(cè)試效率低、系統(tǒng)開(kāi)發(fā)時(shí)間長(zhǎng)等幾個(gè)關(guān)鍵問(wèn)題,同時(shí)它還具備遠(yuǎn)程控制、數(shù)據(jù)采集、數(shù)據(jù)分析等功能。
1 系統(tǒng)設(shè)計(jì)思想
    完整的數(shù)據(jù)采集系統(tǒng)由硬件和軟件兩部分構(gòu)成。硬件部分如圖1所示,主要完成數(shù)據(jù)的采集工作[4]。軟件部分主要由計(jì)算機(jī)系統(tǒng)軟件和軟件開(kāi)發(fā)平臺(tái)組成,主要完成數(shù)據(jù)的讀取、顯示和分析工作。系統(tǒng)采用LabVIEW軟件進(jìn)行編程設(shè)計(jì),首先作為服務(wù)器端的PC機(jī)通過(guò)TCP通信協(xié)議經(jīng)RJ45網(wǎng)絡(luò)端口發(fā)出命令,對(duì)連接客戶(hù)端數(shù)據(jù)采集設(shè)備的無(wú)線(xiàn)通信信道進(jìn)行工作狀態(tài)檢測(cè),隨后對(duì)工作正常的設(shè)備的數(shù)據(jù)采集卡進(jìn)行參數(shù)設(shè)置,讀取TCP通信傳輸過(guò)來(lái)的數(shù)據(jù)后顯示波形,同時(shí)以二進(jìn)制文件格式存儲(chǔ)到指定的文件路徑中,完成有用信息提取、數(shù)據(jù)處理和分析等工作,從而實(shí)現(xiàn)系統(tǒng)遠(yuǎn)程控制及數(shù)據(jù)采集的功能。

2 系統(tǒng)設(shè)計(jì)
2.1 開(kāi)發(fā)工具和關(guān)鍵技術(shù)

  系統(tǒng)以L(fǎng)abVIEW軟件為開(kāi)發(fā)平臺(tái),采用TCP協(xié)議實(shí)現(xiàn)Socket通信。
    LabVIEW集成了豐富的數(shù)據(jù)采集、存儲(chǔ)、分析、顯示等工具包,內(nèi)置了多種通信協(xié)議的標(biāo)準(zhǔn)庫(kù)函數(shù),提供了強(qiáng)大的傳統(tǒng)程序調(diào)試工具和外部程序接口能力[5]。利用LabVIEW設(shè)計(jì)開(kāi)發(fā)的數(shù)據(jù)采集系統(tǒng),在實(shí)際開(kāi)發(fā)中利用封裝好的VI函數(shù),可實(shí)現(xiàn)PC機(jī)RJ45網(wǎng)絡(luò)接口與LabVIEW的通信,從而替代了NI公司配備的價(jià)格高昂的數(shù)據(jù)采集卡,大大降低了設(shè)備成本。
  TCP協(xié)議是一個(gè)面向連接的傳輸控制協(xié)議,同時(shí)具有順序傳遞、流量控制、擁塞控制、差錯(cuò)控制等機(jī)制,能夠?qū)崿F(xiàn)可靠的連接服務(wù),為數(shù)據(jù)的無(wú)差錯(cuò)傳輸提供了保障[6]。
  Socket技術(shù)最初是由加州大學(xué)Berkeley分校開(kāi)發(fā)的,是用于兩個(gè)基于TCP/IP協(xié)議的應(yīng)用程序之間相互通信的網(wǎng)絡(luò)通信接口(API)。采用Socket技術(shù)連接時(shí),發(fā)起呼叫連接請(qǐng)求的一方為客戶(hù)端,接受呼叫連接請(qǐng)求的一方為服務(wù)端。連接過(guò)程可以分為三個(gè)步驟:服務(wù)器監(jiān)聽(tīng)即服務(wù)器處于等待連接的狀態(tài),實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)狀態(tài);客戶(hù)端向服務(wù)器端Socket提出連接請(qǐng)求;連接確認(rèn)即服務(wù)器端Socket監(jiān)聽(tīng)到連接請(qǐng)求后響應(yīng)請(qǐng)求。Socket技術(shù)能有效地支持不同應(yīng)用程序?qū)?shù)據(jù)的同時(shí)應(yīng)用以及多個(gè)應(yīng)用程序之間的數(shù)據(jù)交互,實(shí)現(xiàn)不同機(jī)器、不同語(yǔ)言、不同進(jìn)程間的實(shí)時(shí)數(shù)據(jù)交互和共享[7]。
2.2 系統(tǒng)的軟件結(jié)構(gòu)設(shè)計(jì)
 采集系統(tǒng)主要需要實(shí)現(xiàn)以下功能:(1)工作狀態(tài)檢測(cè),即對(duì)選定的數(shù)據(jù)采集設(shè)備(客戶(hù)端)通信信道進(jìn)行的工作狀態(tài)檢測(cè);(2)參數(shù)設(shè)置,包括對(duì)采樣頻率、采樣點(diǎn)數(shù)、放大倍數(shù)等參數(shù)的設(shè)置;(3)讀取數(shù)據(jù),并顯示波形及頻譜分析圖;(4)讀取已存儲(chǔ)的數(shù)據(jù)文件;(5)對(duì)已采集到的數(shù)據(jù)提取有用或感興趣部分并保存; (6)數(shù)據(jù)分析處理。軟件結(jié)構(gòu)圖如圖2所示。

3 功能實(shí)現(xiàn)
    數(shù)據(jù)采集系統(tǒng)以L(fǎng)abVIEW為設(shè)計(jì)平臺(tái),其圖形化人機(jī)界面的特點(diǎn)為人機(jī)交互提供了便捷[8],同時(shí),其強(qiáng)大靈活的功能特點(diǎn)使得實(shí)現(xiàn)信道工作狀態(tài)檢測(cè)、硬件設(shè)備參數(shù)設(shè)置、數(shù)據(jù)讀?。ú杉⒉ㄐ物@示、頻譜分析、有用信號(hào)提取和數(shù)據(jù)分析處理等功能成為可能。
3.1工作狀態(tài)檢測(cè)功能
    工作狀態(tài)檢測(cè)模塊的作用是,在進(jìn)行數(shù)據(jù)采集之前進(jìn)行準(zhǔn)備工作,其目的一是檢測(cè)數(shù)據(jù)采集硬件設(shè)備是否正常工作,二是檢查無(wú)線(xiàn)通信信道是否暢通。由于在特定的測(cè)試環(huán)境中可能同時(shí)采用多套無(wú)線(xiàn)通信的數(shù)據(jù)采集設(shè)備,因此根據(jù)TCP協(xié)議,設(shè)定PC機(jī)為服務(wù)器端,數(shù)據(jù)采集設(shè)備端設(shè)為客戶(hù)端。進(jìn)行狀態(tài)檢測(cè)時(shí),先通過(guò)復(fù)選框選擇需檢測(cè)的設(shè)備,點(diǎn)擊“檢測(cè)”按鈕后,PC機(jī)向客戶(hù)端發(fā)送狀態(tài)檢測(cè)命令,通過(guò)接收到的反饋信息或者連接超時(shí)信息來(lái)判定設(shè)備工作狀態(tài)。
3.2 參數(shù)設(shè)置功能
    參數(shù)設(shè)置模塊的功能是通過(guò)LabVIEW的TCP子VI,可選擇地對(duì)數(shù)據(jù)采集設(shè)備發(fā)送參數(shù)設(shè)置控制指令,這些參數(shù)中包括采樣頻率、采樣點(diǎn)數(shù)、采樣時(shí)間和放大倍數(shù)等,同時(shí),參數(shù)設(shè)置模塊中還包含了對(duì)無(wú)線(xiàn)通信模塊的控制指令,其中包括斷電、清除備份、重啟等功能。通過(guò)軟件中的TCP通信程序,參數(shù)設(shè)置模塊實(shí)現(xiàn)了對(duì)數(shù)據(jù)采集設(shè)備的遠(yuǎn)程控制,大大提高了系統(tǒng)自動(dòng)化程度,為特殊環(huán)境中的數(shù)據(jù)采集提供了可能。
3.3 數(shù)據(jù)讀取功能
    數(shù)據(jù)讀取模塊的程序框圖如圖3所示。數(shù)據(jù)讀取模塊的作用是向下位機(jī)發(fā)送開(kāi)始采集數(shù)據(jù)的命令,并且讀回已采集到的數(shù)據(jù)。LabVIEW為用戶(hù)提供了封裝好的TCP VI函數(shù),使用時(shí)服務(wù)器端TCP VI需設(shè)置指定的監(jiān)聽(tīng)端口,客戶(hù)端TCP VI則需設(shè)置要與其建立連接的地址和遠(yuǎn)程端口號(hào)。根據(jù)Socket技術(shù),其TCP通信流程包括:作為服務(wù)器端的PC機(jī)先對(duì)指定的端口監(jiān)聽(tīng)并處于等待連接狀態(tài),作為客戶(hù)端的數(shù)據(jù)采集端向服務(wù)器端被監(jiān)聽(tīng)的端口發(fā)出連接請(qǐng)求后,PC機(jī)響應(yīng),先向客戶(hù)端發(fā)出數(shù)據(jù)采集命令,再讀取客戶(hù)端反饋的表示確認(rèn)握手成功的信息后,讀取文件是否為加密文件的標(biāo)志位,讀取文件數(shù)據(jù)大小信息,最后讀取數(shù)據(jù),完成后關(guān)閉TCP。

 

 

    當(dāng)所采集的數(shù)據(jù)量較大時(shí),無(wú)線(xiàn)傳輸所需要的時(shí)間也會(huì)相應(yīng)增加,為減少時(shí)間和數(shù)據(jù)存儲(chǔ)開(kāi)銷(xiāo),數(shù)據(jù)采集端對(duì)數(shù)據(jù)進(jìn)行了壓縮。相應(yīng)地,服務(wù)器端的采集系統(tǒng)也需進(jìn)行解壓工作。為實(shí)現(xiàn)解壓縮功能,在程序中使用了執(zhí)行系統(tǒng)命令VI(System Exec.vi), 嵌入執(zhí)行軟件7z.exe的解壓縮命令,達(dá)到了數(shù)據(jù)解壓縮的目的。
3.4 有用信號(hào)提取功能
    由于在所采集到數(shù)據(jù)中,有用信號(hào)或感興趣部分只占所采集到的信號(hào)中的一部分,為了方便波形的觀(guān)察和數(shù)據(jù)的分析處理以及節(jié)省內(nèi)存資源,通常會(huì)對(duì)信號(hào)進(jìn)行截取。程序中通過(guò)兩個(gè)游標(biāo)位置可確定信號(hào)感興趣部分的范圍,截取并保存范圍內(nèi)的波形,即可實(shí)現(xiàn)系統(tǒng)有用信號(hào)提取功能。
3.5 波形顯示功能
    LabVIEW中的波形圖控件本身包含了一些小的輔助控件,其中包括圖形工具、游標(biāo)圖例、標(biāo)尺等。由于游標(biāo)圖例的顯示影響系統(tǒng)界面的整體效果,程序中通過(guò)編程達(dá)到了顯示游標(biāo)坐標(biāo)和通過(guò)輸入數(shù)值重新定位游標(biāo)的效果,從而替代了游標(biāo)圖例。為初步判斷所采集到的信號(hào)的正確性,系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行了簡(jiǎn)單的頻譜分析。同時(shí),由于波形圖控件沒(méi)有撤銷(xiāo)重做的功能,程序中通過(guò)捕捉標(biāo)尺范圍的變化,并將改變前的標(biāo)尺范圍值入棧保存來(lái)實(shí)現(xiàn)撤銷(xiāo)功能。 撤銷(xiāo)功能模塊的部分程序框圖如圖4所示。

3.6 數(shù)據(jù)處理功能
    為使去噪效果較理想,數(shù)據(jù)處理模塊中提供了巴特沃斯、切比雪夫、平滑濾波、中值濾波等多種濾波方式以供選擇。此模塊還對(duì)濾波后信號(hào)的頻譜和功率譜進(jìn)行分析,并進(jìn)行特征值提取、均值和峰值計(jì)算、基線(xiàn)估計(jì)、溫壓的動(dòng)態(tài)特性修正等工作。
4 系統(tǒng)應(yīng)用效果驗(yàn)證
    為了測(cè)試系統(tǒng)的可靠性,將PC機(jī)的RJ45口與數(shù)據(jù)采集設(shè)備相連,運(yùn)行并對(duì)系統(tǒng)進(jìn)行工作狀態(tài)檢測(cè)和參數(shù)設(shè)置,系統(tǒng)數(shù)據(jù)采集的運(yùn)行界面如圖5所示。試驗(yàn)證明,系統(tǒng)采集到的信號(hào)與下位機(jī)所發(fā)送的2 Mb的三角波一致,可見(jiàn)數(shù)據(jù)采集系統(tǒng)能夠穩(wěn)定、可靠、準(zhǔn)確地工作。

    在實(shí)際項(xiàng)目開(kāi)發(fā)中,系統(tǒng)以L(fǎng)abVIEW軟件為開(kāi)發(fā)平臺(tái),充分利用了LabVIEW的強(qiáng)大功能,通過(guò)TCP連接實(shí)現(xiàn)了PC機(jī)與數(shù)據(jù)采集設(shè)備的通信,實(shí)現(xiàn)了采集卡參數(shù)的遠(yuǎn)程設(shè)置,完成了遠(yuǎn)程數(shù)據(jù)的采集、顯示、存儲(chǔ)、處理等,自動(dòng)化程度較高,具有較高的可靠性和穩(wěn)定性,具有實(shí)際應(yīng)用價(jià)值。此數(shù)據(jù)采集系統(tǒng)開(kāi)發(fā)中取得的經(jīng)驗(yàn),可在其他數(shù)據(jù)采集等測(cè)控系統(tǒng)中應(yīng)用推廣。
參考文獻(xiàn)
[1] 曾劍,周劍揚(yáng).基于LabVIEW的SFP光模塊測(cè)試平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2011,37(4):67-69.
[2] 陳錫輝,張銀鴻. LabVIEW 8.2程序設(shè)計(jì)從入門(mén)到精通[M].北京:清華大學(xué)出版社,2007.
[3] 張東,施奇峰.基于LabVIEW和TCP的數(shù)據(jù)采集系統(tǒng)的開(kāi)發(fā)及應(yīng)用[J].冶金自動(dòng)化,2011,35(2):36-40.
[4] 董剛剛,吳建.基于CPLD+FLASH的多通道測(cè)試記錄儀[J].光電技術(shù)應(yīng)用,2011,26(4):8-10.
[5] 陳學(xué)慶,房小溪.LabVIEW圖形化編程與實(shí)例應(yīng)用[M].北京:中國(guó)鐵道出版社,2005.
[6] 謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)[M].第5版.北京:電子工業(yè)出版社,2008.
[7] DONAHOO M J, CALVERT K L. TCP/IP Sockets編程(C語(yǔ)言實(shí)現(xiàn))[M]. 第2版. 陳宗斌,等譯.北京:清華大學(xué)出版社,2009.
[8] 李全江.虛擬儀器設(shè)計(jì)測(cè)控應(yīng)用典型實(shí)例[M].北京:電子工業(yè)出版社,2010.

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