新聞中心

EEPW首頁 > 測試測量 > 設計應用 > 設計基于LabVIEW的虛擬儀器系統(tǒng)

設計基于LabVIEW的虛擬儀器系統(tǒng)

作者: 時間:2012-08-09 來源:網(wǎng)絡 收藏

  本文將介紹如何在下快速搭建基于MSP-060101的虛擬和頻譜分析軟件。

  一、硬件部分

  本文中所用到的MSP-060101是一款16bit、500ksps的單通道USB卡。它具有接口簡單、量程可選(±1V與±10V)、速度快、精度高、驅(qū)動函數(shù)接口簡單等優(yōu)點,非常適合用來快速實現(xiàn)虛擬和頻譜分析功能。

  MSP-060101硬件連接非常簡單,將采集卡插入PC的USB接口,按說明安裝好驅(qū)動程序,就可以進行了,不需要外接電源和其他繁瑣的設備。MSP-060101前端接信號的端口只有兩個,分別接到差分輸入信號的正端和負端即可,簡單明了,一目了然。

  二、底層函數(shù)

  連接好硬件,接下來了解該卡驅(qū)動函數(shù)的使用。該卡驅(qū)動函數(shù)只有兩個,封裝于MSP-16bitDAQCard.dll中,用戶可通過調(diào)用DLL的方式來執(zhí)行函數(shù)。函數(shù)定義如下:

  int SetSampleRate (int SampleRate, int DeviceNumber)

  int GetVoltage(float *DataArray, int ArraySize, float mult, float Offset, int DeviceNumber)

  SetSampleRate 函數(shù)用來設置采集卡的采樣率。其參數(shù)為 SampleRate(采樣率,1K-500K范圍內(nèi)任意設置) 和 DeviceNumber(設備序號,同時支持10塊采集卡)。

  GetVoltage 函數(shù)用來采集電壓數(shù)據(jù)。其參數(shù)為DataArray(緩存數(shù)組)、ArraySize(緩存長度)、mult(增益系數(shù))、Offset(偏移量)和DeviceNumber(設備序號)。

  這兩個函數(shù)都有返回值,如果函數(shù)執(zhí)行成功,則返回1,否則返回0。

  在中,是通過Call Library Function Node來調(diào)用DLL函數(shù)的。為了便于使用,我們將調(diào)用DLL的代碼做成子VI函數(shù),子VI主要有兩個,即采集數(shù)據(jù).VI 和 頻率設置.VI。其內(nèi)部程序框圖如下:

內(nèi)部程序框圖

內(nèi)部程序框圖

  三、軟件編寫

  編寫好子VI,接下來的工作就是按照的程序設計方法來設計應用軟件。本文以基本的示波軟件為例,并結合頻譜分析,示范如何利用LABVIEW的高效控件來編寫測試軟件。

  軟件的整體設計思路大致如下:軟件執(zhí)行為一個無限循環(huán),每次循環(huán)分為三個步驟,一是設置采集卡的采樣率,二是連續(xù)采集一段長度的數(shù)據(jù),三是進行數(shù)據(jù)分析。因此,程序的主體框架就是一個while循環(huán)內(nèi)嵌套一個順序結構。

  下面我們來看每次循環(huán)的第一個步驟,設置采樣率。采樣率的設置很簡單,直接調(diào)用子VI即可。但為了讓程序運行的穩(wěn)定,防止由于采集卡無響應造成的程序死機,同時也使軟件更人性化,在這里需要加入一個硬件檢查報錯機制。其思路是調(diào)用設置采樣率的函數(shù),如果采集卡硬件沒有連好,或是硬件工作不正常,函數(shù)執(zhí)行不成功,將返回0,則通過判斷返回值是否為0,就可以判斷采集卡硬件是否出現(xiàn)問題。如果出現(xiàn)問題,則向用戶報錯,提示用戶檢查硬件,并停止程序,不再向下執(zhí)行。如果硬件正常,則繼續(xù)執(zhí)行程序。

  接下來是第二個步驟,采集一定長度的數(shù)據(jù)。這部分也較為簡單,直接調(diào)用采集函數(shù)即可。數(shù)據(jù)采集的同時可以設置數(shù)據(jù)的增益系數(shù)和偏移量,以便獲得更好的波形效果,也可以用來進行數(shù)據(jù)校準。

  對于一個數(shù)據(jù)采集軟件來講,重點在于第三個步驟,即數(shù)據(jù)的處理。本例中,目的是要顯示一個穩(wěn)定的波形,并對其頻譜做初步的分析。這里將用到一個比較重要的功能,即軟件的內(nèi)觸發(fā)。該功能是通過判斷波形在某一個特定電平(觸發(fā)電平)點上是上升還是下降(觸發(fā)極性)來決定后續(xù)顯示波形的起始點。經(jīng)過內(nèi)觸發(fā)后,每次采集得到的波形都將從相同的電壓點,按相同的變化趨勢開始,因此對于周期變化的信號來說,波形就能較為穩(wěn)定的重復出現(xiàn),便于人們進行觀察和分析。在本例中,內(nèi)觸發(fā)功能被做成了功能子VI,通過調(diào)用該VI就可以將波形進行軟件觸發(fā)。

  波形經(jīng)過觸發(fā)后,基本已經(jīng)有了一個較為穩(wěn)定的顯示效果。接下來需要給波形數(shù)據(jù)加入時間特性。其方法是根據(jù)采樣率算出采樣間隔時間Δt,并通過建立波形的控件將Δt賦給波形數(shù)據(jù)。

  至此,我們已經(jīng)得到了一個較為完整的顯示波形,簡單的功能就已經(jīng)實現(xiàn)了。

  想要給軟件加上頻譜分析的功能,在LabVIEW中也是很容易實現(xiàn)的。只需將我們前面得到的波形數(shù)據(jù)直接送入FFT函數(shù)中,就可以得到波形的頻域數(shù)據(jù)。但為了便于分析,我們希望能自動從頻域中提取信號的主頻。其算法也很簡單,就是由低到高依次掃描不同頻率的功率分布值,找到最大值后,根據(jù)最大值所在的位置序號來推算主頻。值得注意的是掃描時不能從頻率0點開始,不然0頻率可能對應的是最大的功率分布,一般要把前幾個點排除在外。


上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉