摘 要:針對直升機(jī)旋翼試驗臺測試系統(tǒng)的要求,使用LabVIEW平臺以及DataSocket網(wǎng)絡(luò)技術(shù)開發(fā)了網(wǎng)絡(luò)化多通道數(shù)據(jù)采集及處理系統(tǒng)。該系統(tǒng)由服務(wù)器端和客戶端組成,服務(wù)器端負(fù)責(zé)數(shù)據(jù)采集、保存及發(fā)布,并具有頻譜、功率譜、自相關(guān)、時域分析以及文件回放、數(shù)字濾波、波形監(jiān)測等功能。客戶端主要負(fù)責(zé)數(shù)據(jù)的遠(yuǎn)程顯示。兩者之間通過DataSocket Server建立連接。該系統(tǒng)通用性和可移植性強(qiáng),可用于其他用途的測試領(lǐng)域。
關(guān)鍵詞:LabVIEW;DataSocket網(wǎng)絡(luò)技術(shù);數(shù)據(jù)采集;文件回放
中圖分類號:TP274文獻(xiàn)標(biāo)識碼:A
文章編號:1004-373X(2010)02-182-03
Networked Data Acquisition and Processing System Based on LabVIEW
CHEN Songlin1,HUANG Jianping2
(1.School of Electronic and Information Engineering,Nanchang Hongkong University,Nanchang,330063,China;
2.Key Lab.of Helicopter Rotor Dyn.National Defense Sci.and Tech.,Helicopter Research and Development Institute,Jingdezhen,333001,China)
Abstract:Requirements for the helicopter rotor tower testing system,using LabVIEW platform and Socket network technology developed a network of multi_channel data acquisition and processing system.The system consists of server_side and client_side components,the server_side responsible for data acquisition,save and publish,with the spectrum,power spectrum,autocorrelation,time_domain analysis and document playback,digital filtering,waveform monitoring function.Client is mainly responsible for the data remote display,a connection is established with DataSocket Server.This system has strong versatility and portability,it also can be used to test area for other purposes.
Keywords:LabVIEW;DataSocket network technology;data acquisition;file playback
0 引 言
在進(jìn)行直升機(jī)旋翼試驗時,需要對試驗臺各系統(tǒng)的參數(shù)進(jìn)行采集,包括槳葉、槳轂、旋翼軸等旋轉(zhuǎn)測試參數(shù)和天平、傳動系統(tǒng)、滑油系統(tǒng)等非旋轉(zhuǎn)參數(shù);同時,還需要對關(guān)鍵參數(shù)進(jìn)行實時監(jiān)控,對重要參數(shù)進(jìn)行實時處理。
根據(jù)試驗臺的需要,測試系統(tǒng)通常包括:數(shù)據(jù)采集處理單元、監(jiān)視報警單元和示波單元等。傳統(tǒng)的方法是每個單元相互獨(dú)立,都要配備單獨(dú)的數(shù)據(jù)采集器。這樣做的優(yōu)點是單一的故障不會影響到系統(tǒng)其他部分,缺點是浪費(fèi)設(shè)備、通用性和可移植性差。隨著網(wǎng)絡(luò)技術(shù)、虛擬儀器技術(shù)的飛速發(fā)展,這種基于現(xiàn)場的測試系統(tǒng)被逐步淘汰。
1 LabVIEW及其DataSocket技術(shù)簡介
LabVIEW是美國NI公司開發(fā)的一種基于圖形程序的虛擬儀器開發(fā)平臺,它以PC為核心,通過軟件建立虛擬儀器面板,配置特定的硬件接口模塊完成儀器控制、數(shù)據(jù)采集、顯示以及分析處理[1]。LabVIEW作為測試測量領(lǐng)域的專業(yè)軟件,其擁有豐富的圖形控件、友好的人機(jī)界面、強(qiáng)大的數(shù)據(jù)顯示、處理以及儀器控制能力等眾多優(yōu)點[2]。將網(wǎng)絡(luò)技術(shù)與虛擬儀器技術(shù)相結(jié)合,構(gòu)建網(wǎng)絡(luò)化虛擬儀器系統(tǒng),是虛擬儀器系統(tǒng)發(fā)展的方向之一。LabVIEW提供的DataSocket技術(shù)是一種基于TCP/IP協(xié)議,面向測控的網(wǎng)絡(luò)技術(shù)。用戶不必進(jìn)行復(fù)雜的底層TCP編程就可以同時通過計算機(jī)網(wǎng)絡(luò)向多個終端發(fā)布現(xiàn)場測量數(shù)據(jù)。
DataSocket由DataSocket API與DataSocket Server兩部分組成。DataSocket API是用戶訪問或?qū)懭刖W(wǎng)絡(luò)數(shù)據(jù)的接口;DataSocket Server負(fù)責(zé)提供DataSocket技術(shù)自帶的協(xié)議(DataSocket Transfer Protocol,DSTP)協(xié)議和管理底層網(wǎng)絡(luò)通信。數(shù)據(jù)發(fā)布者通過DataSocket API以字節(jié)流的方式向DataSocket Server中寫入數(shù)據(jù)。數(shù)據(jù)訂閱者通過DataSocket API從DataSocket Server中還原數(shù)據(jù)。
2 系統(tǒng)設(shè)計
2.1 系統(tǒng)硬件設(shè)計
系統(tǒng)硬件主要有凌華公司的PCI-9112數(shù)據(jù)采集卡、計算機(jī)、傳輸網(wǎng)絡(luò)、旋翼試驗臺及分布在試驗臺上的各種傳感器。其中采集卡具有16路單端或8路差分模擬輸入通道,12位采樣分辨率,110 kS/s最高采樣率,±10 V最大模擬輸入范圍,3個可獨(dú)立編程16位計數(shù)/定時器,攜帶A/D FIFO內(nèi)存。其性能可滿足一般工業(yè)現(xiàn)場需要。系統(tǒng)硬件結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)硬件結(jié)構(gòu)圖
2.2 系統(tǒng)軟件設(shè)計
系統(tǒng)由服務(wù)器端和客戶端組成,服務(wù)器端負(fù)責(zé)數(shù)據(jù)采集、保存及發(fā)布,并具有頻譜、功率譜、自相關(guān)、時域分析以及文件回放、數(shù)字濾波、波形監(jiān)測等功能。客戶端負(fù)責(zé)數(shù)據(jù)的遠(yuǎn)程顯示及保存。設(shè)在服務(wù)器端的DataSocket Server負(fù)責(zé)兩者之間的數(shù)據(jù)傳輸。
數(shù)據(jù)采集模式設(shè)為連續(xù)采集。為減少數(shù)據(jù)讀取周期,數(shù)據(jù)讀取和處理使用兩個并行循環(huán)。循環(huán)之間的數(shù)據(jù)傳輸使用隊列(Queue)技術(shù)。隊列結(jié)構(gòu)是一種先進(jìn)先出(FIFO)的結(jié)構(gòu),可以保證有序的數(shù)據(jù)傳遞,避免競爭或沖突。讀取循環(huán)連續(xù)讀取數(shù)據(jù)并放入隊列,處理循環(huán)連續(xù)從隊列讀取并刪除數(shù)據(jù)。如果數(shù)據(jù)處理周期大于讀取周期,新讀取的數(shù)據(jù)會緩存在隊列中,隊列內(nèi)存設(shè)置足夠大數(shù)據(jù)不會丟失。如果處理周期小于讀取周期,當(dāng)隊列為空時,在設(shè)置的時間內(nèi)處理循環(huán)處于等待狀態(tài),數(shù)據(jù)不會重復(fù)分析。為進(jìn)一步減少數(shù)據(jù)讀取周期、保證參加統(tǒng)計的樣本數(shù)量,提高統(tǒng)計的準(zhǔn)確性,數(shù)據(jù)保存、時域處理及直方圖統(tǒng)計在采集停止后進(jìn)行。
3 程序?qū)崿F(xiàn)
3.1 DataSocket Sever的建立
在使用DataSocket Sever之前,必須在DataSocket Sever Manager中建立預(yù)定義數(shù)據(jù)項并進(jìn)行相應(yīng)的各種配置。在開始菜單中選擇“程序/National Instruments/DataSocket/DataSocket Sever Manger”選項,打開“DataSocket Sever Manger”,在該程序中創(chuàng)建數(shù)據(jù)項并設(shè)置訪問權(quán)限、客戶端最大數(shù)目。只有創(chuàng)建了數(shù)據(jù)項,服務(wù)器端和客戶端才能對該數(shù)據(jù)項進(jìn)行訪問。完成設(shè)置后,選擇Settings/Save Setting Now選項保存當(dāng)前設(shè)置。
在開始菜單中選擇“程序/National Instruments/DataSocket/DataSocket Sever”,啟動DataSocket Sever后,它所包含的數(shù)據(jù)項就可以在被允許訪問的計算機(jī)上通過DSTP訪問。
當(dāng)軟件界面右上角的綠燈亮?xí)r,表示已成功連接DataSocket Seve中指定的數(shù)據(jù)項。紅燈亮則表示連接失敗。
3.2 服務(wù)器端數(shù)據(jù)采集及處理
臺灣凌華公司免費(fèi)提供的軟件包PCIS_DASK和DAQ_LVIEW PnP包含了采集卡驅(qū)動及LabVIEW接口函數(shù),利用這些函數(shù)可在LabVIEW 8.2平臺上實現(xiàn)數(shù)據(jù)采集與處理。前面板和程序流程圖分別如圖2,圖3所示。
圖2 服務(wù)器端前面板圖
圖3 服務(wù)器端程序流程圖
當(dāng)采集開始時啟動兩個While Loop循環(huán)分別進(jìn)行數(shù)據(jù)采集及處理。采集循環(huán)中通過AI Config.vi以及AI Star.vi設(shè)置采樣通道、緩存大小、采樣模式、采樣率等參數(shù)并啟動采集,連續(xù)向緩沖區(qū)寫入數(shù)據(jù)。用一個While Loop循環(huán)連續(xù)讀取緩沖區(qū)的數(shù)據(jù)。第一次讀取數(shù)據(jù)點數(shù)可設(shè),以后每次讀取點數(shù)為緩沖區(qū)中所剩數(shù)據(jù)和設(shè)置值的較大者。
讀取的數(shù)據(jù)先經(jīng)濾波子VI進(jìn)行數(shù)字濾波,濾除試驗中的隨機(jī)干擾和噪聲成分。使用了Butterworth濾波器,它在所有頻率上提供平滑的響應(yīng),過渡帶下降較緩慢,陡峭程度同階數(shù)成正比。濾波后的數(shù)據(jù)分成兩個數(shù)據(jù)流,一個由Enquene Element.vi將數(shù)據(jù)添加到隊列尾部,供數(shù)據(jù)處理循環(huán)使用;一個送入Waveform Chart進(jìn)行波形顯示并寫入DataSocket Sever。
數(shù)據(jù)寫入DataSocket Sever有兩種方式:一是使用DataSocket API中DataSocket Write.vi;二是利用Waveform Chart控件屬性中的數(shù)據(jù)綁定功能。該系統(tǒng)使用第二種方式:右鍵點擊Waveform Chart,選擇屬性:數(shù)據(jù)綁定,在數(shù)據(jù)綁定選擇下拉框中“DataSocket”,訪問類型選擇“只寫”,通過瀏覽選擇DataSocket Sever中指定數(shù)據(jù)項的路徑。
超限報警子VI對各通道進(jìn)行波形監(jiān)測,當(dāng)所選通道的采集數(shù)據(jù)超過設(shè)置的限制值時,紅色報警燈亮。其主要用到了Amplitude and Levels.vi。
每次讀取的數(shù)據(jù)送入Insert Into Array.vi,利用移位寄存器將數(shù)據(jù)插入之前所有數(shù)據(jù)的尾部,停止采集后,所有數(shù)據(jù)流向時域、文件以及直方圖子VI。文件子VI中使用Write to Spreadsheet File.vi將數(shù)據(jù)及采樣率寫入Excel電子表格。時域子VI使用Basic Averaged DC_RMS.vi以及Amplitude and Levels.vi計算各通道的平均值、有效值、最大值、最小值。直方圖子VI使用Histogram.vi對所選通道進(jìn)行直方圖統(tǒng)計,顯示各數(shù)據(jù)點的概率分布。
數(shù)據(jù)處理循環(huán)使用Dequeue Element.vi從隊列中連續(xù)讀取并刪除數(shù)據(jù),其超時等待設(shè)為1 s,即當(dāng)隊列為空時,循環(huán)等待1 s后若隊列中無元素則中止循環(huán)。頻譜分析使用FFT.vi對數(shù)據(jù)進(jìn)行單邊FFT變換,計算信號的頻率組成成分。功率譜分析使用FFT Power Spectrum.vi計算隨機(jī)信號的能量分布。自相關(guān)分析使用AutoCorrelation.vi檢測信號中的周期成分。
當(dāng)接線板第1~3通道無輸入,第4通道接1 500 Hz,2.5 V的正弦波時,其功率譜、自相關(guān)分析、時域分析及直方圖統(tǒng)計界面如圖4所示。
3.3 文件回放
文件回放主要從Excel表格中讀取數(shù)據(jù)進(jìn)行波形顯示和分析。通過Read From Spreadsheet File.vi一次性讀取表格中所有數(shù)據(jù),再通過While Loop循環(huán)以及Array Subset.vi逐次讀取設(shè)定的點數(shù)。在讀取循環(huán)中對數(shù)據(jù)進(jìn)行頻譜、功率譜、自相關(guān)分析。數(shù)據(jù)讀取停止后,進(jìn)行時域分析以及直方圖統(tǒng)計。其程序框圖如圖5所示。
圖4 服務(wù)器端數(shù)據(jù)處理界面圖
圖5 服務(wù)器端文件回放程序框圖
3.4 客戶端數(shù)據(jù)顯示
客戶端通過DataSocket API中的DataSocket Read.vi以及一個While Loop循環(huán)連續(xù)地從DataSocket Sever中指定的數(shù)據(jù)項讀取數(shù)據(jù)并進(jìn)行顯示和保存,其程序框圖如圖6所示。
圖6 客戶端程序框圖
圖6中“dstp://20080715_0011/newdouble”為指定數(shù)據(jù)項的訪問路徑。其格式為“dstp://計算機(jī)名/數(shù)據(jù)項名”。
4 結(jié) 語
該系統(tǒng)是基于直升機(jī)旋翼試驗而開發(fā)的,服務(wù)器端設(shè)在測控間,主要采集直升機(jī)旋翼試驗臺上應(yīng)變、壓力、力、力矩等參數(shù)。客戶端設(shè)在試驗管理人員辦公室,對試驗數(shù)據(jù)進(jìn)行實時監(jiān)控。該系統(tǒng)數(shù)據(jù)處理功能較多,通用性及可移植性強(qiáng),還可用于其他用途的測試領(lǐng)域。
參考文獻(xiàn)
[1]閆玲,方開翔,姚壽廣.基于LabVIEW的多功能數(shù)據(jù)采集與信號處理系統(tǒng)[J].江蘇科技大學(xué)學(xué)報,2006,20(3):50-54.
[2]陳錫輝,張銀鴻.LabVIEW 8.20程序設(shè)計從入門到精通[M].北京:清華大學(xué)出版社,2007.
[3]高占風(fēng),杜彥良,劉玉紅,等.基于LabVIEW的遠(yuǎn)程數(shù)據(jù)采集與傳輸系統(tǒng)[J].微電子學(xué)與計算機(jī),2007,24(3):102-104.
[4]楊樂平,李海濤,趙勇,等.LabVIEW高級程序設(shè)計[M].北京:清華大學(xué)出版社,2002.
[5]梁惺彥,和衛(wèi)星.LabVIEW實現(xiàn)遠(yuǎn)程數(shù)據(jù)采集與傳輸[J].微計算機(jī)信息,2004,20(9):44-45.
[6]燕延,馬增強(qiáng),楊明.基于LabVIEW的數(shù)據(jù)采集與處理軟件編程技巧[J].微計算機(jī)信息,2005,21(5):153-154.
[7]王劍.基于LabVIEW的數(shù)據(jù)采集及分析系統(tǒng)的開發(fā)[D].哈爾濱:哈爾濱理工大學(xué),2004.
[8]孫春龍.基于LabVIEW多通道數(shù)據(jù)采集分析系統(tǒng)開發(fā)[D].武漢:武漢大學(xué),2004.
[9]趙永立,張玉紅,楊建成.虛擬儀器_測試技術(shù)的新領(lǐng)域[A].天津市自動化學(xué)會第十四屆學(xué)術(shù)年會論文集\\.2005.
[10]陳維芹.用于直升機(jī)旋翼試驗的多功能測試系統(tǒng)及應(yīng)用[J].測試技術(shù)學(xué)報,2003,17(1):29-32.