基于LabVIEW的數(shù)據(jù)采集系統(tǒng)分析與設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
0 引言
現(xiàn)代技術(shù)的進(jìn)步,特別是以計(jì)算機(jī)技術(shù)為代表的不斷革新的計(jì)算機(jī)技術(shù),正從各個(gè)層面上影響并引導(dǎo)著各行各業(yè)的技術(shù)革新,基于計(jì)算機(jī)技術(shù)的虛擬儀器系統(tǒng)技術(shù)也正以不可逆轉(zhuǎn)的力量推動(dòng)著測(cè)量控制技術(shù)、數(shù)據(jù)采集和分析等技術(shù)的發(fā)展。傳統(tǒng)儀器主要由信號(hào)采集與控制模塊、分析與處理模塊、以及測(cè)量結(jié)果的表達(dá)與輸出模塊這三大功能模塊組成。傳統(tǒng)儀器的這些功能都是以硬件(或固化的軟件)形式存在的。而虛擬儀器則是將這些功能移植到計(jì)算機(jī)上完成。它在計(jì)算機(jī)上插上數(shù)據(jù)采集卡,然后利用軟件在屏幕上生成儀器面板,并利用軟件進(jìn)行信號(hào)的分析與處理。相對(duì)于傳統(tǒng)儀器,虛擬儀器具有性能高、擴(kuò)展性強(qiáng)、開(kāi)發(fā)時(shí)間少、完美的集成功能等特點(diǎn)。
LabVIEW是一款優(yōu)秀的虛擬儀器軟件開(kāi)發(fā)平臺(tái)。LabVIEW以其直觀、簡(jiǎn)便的編程方式,眾多的源碼級(jí)設(shè)備驅(qū)動(dòng)程序,多種多樣的分析和表達(dá)支持功能,可為用戶(hù)快捷地構(gòu)建實(shí)際生產(chǎn)中所需要的儀器系統(tǒng)創(chuàng)造有力的基礎(chǔ)條件。其中數(shù)據(jù)采集與儀器控制是LabVIEW最具競(jìng)爭(zhēng)力的核心技術(shù)。
1 系統(tǒng)整體方案設(shè)計(jì)
一個(gè)完整的LabVIEW程序主要包括前面板、程序框圖、連接器三部分。前面板是一種交互式圖形化用戶(hù)界面,用于設(shè)置輸入數(shù)值和觀察輸出:框圖是定義VI 功能的圖形化源代碼,可利用圖形語(yǔ)言對(duì)前面板的控制量和指示量進(jìn)行控制;圖標(biāo)和連接器窗格用于把程序定義成一個(gè)子程序,以便在其他程序中加以調(diào)用。本系統(tǒng)包括波形信號(hào)采集、保存標(biāo)準(zhǔn)信號(hào)、信號(hào)處理和分析、采集數(shù)據(jù)回放四個(gè)部分。圖1是信號(hào)采集與分析系統(tǒng)框圖。
1.1 波形信號(hào)的采集
該部分主要利用外部觸發(fā)方式發(fā)出觸發(fā)信號(hào),以使發(fā)出信號(hào)和通道的采集達(dá)到同步。以信號(hào)發(fā)生器發(fā)出信號(hào)為例;為了分析有限個(gè)波形的數(shù)據(jù),必須保證采集卡采集的數(shù)據(jù)是發(fā)出的全部信號(hào)并且只有一個(gè)發(fā)出信號(hào)。本系統(tǒng)通過(guò)采集卡輸出一個(gè)脈沖信號(hào)來(lái)觸發(fā)信號(hào)發(fā)生器,以使采集卡的輸入通道和脈沖輸出通道同步。實(shí)際上,正是基于這一點(diǎn),其發(fā)出的任意信號(hào)才必須被無(wú)遺漏的同步采集過(guò)來(lái)。本設(shè)計(jì)正好滿(mǎn)足了此要求。該部分的前面板控件包括采集信號(hào)參數(shù)的設(shè)置控件、脈沖輸出端口、信號(hào)輸入端口以及存放信號(hào)處理后峰值點(diǎn)位置的三個(gè)數(shù)組。其中采樣率的設(shè)置比較重要,例如根據(jù)需要發(fā)出的信號(hào)周期是0.4ms,每個(gè)周期采集200個(gè)點(diǎn),采 5個(gè)周期就需要rate=l MHz,那么,每個(gè)點(diǎn)之間的時(shí)間間隔就是lμs,這樣推理便于后面的信號(hào)處理。
程序中可利用數(shù)據(jù)采集的工具DAQmx中的各種子vi來(lái)實(shí)現(xiàn)數(shù)據(jù)的通信,并可通過(guò)Get Terminal Name with Device Prefix.vi來(lái)實(shí)現(xiàn)輸入與輸出之間的同步。最后通過(guò)波形圖顯示所采集到的信號(hào),同時(shí)通過(guò)Waveform Peak Detection for l Chan.vi獲得信號(hào)超過(guò)閾值的峰值點(diǎn)。其數(shù)據(jù)采集程序框圖如圖2所示。
1.2 信號(hào)處理與分析
此部分首先選擇以前保存過(guò)的標(biāo)準(zhǔn)信號(hào)作為信號(hào)處理的標(biāo)準(zhǔn)。選擇路徑后,相應(yīng)的標(biāo)準(zhǔn)會(huì)存放到處理中的位置。然后點(diǎn)擊前面板中的“信號(hào)處理”按鈕,這樣,相應(yīng)的處理結(jié)果就會(huì)顯示出來(lái)。標(biāo)準(zhǔn)信號(hào)和采集信號(hào)峰值點(diǎn)的位置和個(gè)數(shù)相應(yīng)的顯示出來(lái),最后的相減結(jié)果也以數(shù)組的形式給出。其中無(wú)論是重新選擇的標(biāo)準(zhǔn)信號(hào)還是以前默認(rèn)的信號(hào),都可以通過(guò)波形再次回放出來(lái)。通過(guò)一個(gè)選擇結(jié)構(gòu)來(lái)實(shí)現(xiàn)用什么樣的標(biāo)準(zhǔn)信號(hào)來(lái)處理,其信號(hào)處理子模塊的程序框圖如圖3所示。
l.3 信號(hào)的保存
在信號(hào)采集模塊中,每次采集都默認(rèn)保存,而且采集信號(hào)每次保存后都會(huì)覆蓋上一個(gè),這樣,在程序運(yùn)行過(guò)程中,用戶(hù)可以隨機(jī)地保存標(biāo)準(zhǔn)信號(hào)。其方法是把默認(rèn)目錄下的test.1vb文件復(fù)制到想要保存的路徑下,然后通過(guò)讀取測(cè)量文件把該目錄下的波形提取出來(lái)。在此,標(biāo)準(zhǔn)信號(hào)的回放在信號(hào)處理的過(guò)程中已經(jīng)用波形圖的形式顯示出來(lái),但要用到此處保存路徑的屬性節(jié)點(diǎn)。其保存標(biāo)準(zhǔn)信號(hào)的程序框圖如圖4所示。
2 設(shè)計(jì)模式的選擇
該程序的設(shè)計(jì)模式是基于事件結(jié)構(gòu)的人機(jī)界面(UI EventLoop),即用控件的事件結(jié)構(gòu)來(lái)響應(yīng)用戶(hù)操作。它可以避免因輪詢(xún)導(dǎo)致的CPU浪費(fèi),而且會(huì)自動(dòng)產(chǎn)生事件隊(duì)列,從而避免丟失事件。