文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 0258-7998(2012)07-0072-03
隨著科學(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.