
圖4 選擇NI DAQmxErrorCheck文件
在界面上添加一個按鍵,名稱為“cmd_Acquire”,Caption為“Acquire”,如圖5所示。

圖5 添加按鍵
添加部件,為了可以使用支持NI板卡的界面模塊。如圖6所示,勾選“National Instuments CW UI 8.0”項。

圖6 添加“National Instuments CW UI 8.0”項
如圖7紅色框所示,拖放圖形控件到Visual Basic表格上。

圖7 將圖形控件拖放到Visual Basic表格上
接下來,在MAX中進行板卡的參數(shù)配置,以NI USB-6009為例。插入USB-6009板卡,在MAX中識別出來,在板卡左邊會有綠色標識,圖8所示。

圖8 USB 6009板卡識別
在MAX中建立采集任務,如圖9所示,在“Data Neighborhood(數(shù)據(jù)鄰居)”選項中選擇“NI-DAQmx Task(NI-DAQmx任務)”。

圖9 創(chuàng)建采集任務
這里我們選擇采集電壓任務,你也可以配置采集溫度、加速度或其他任何測量任務,如圖10所示。

圖10 創(chuàng)建采集電壓任務
選擇要采集的通道,這里選擇“ai0”,如圖11所示。

圖11選擇需要采集物理通道
為采集任務創(chuàng)建任務名稱,如圖12所示,電壓采集任務名為“voltageacq0”。

圖12 創(chuàng)建采集任務名
設置好采集Input Range(電壓范圍),Terminal Configuration(接線端配置)和Acquisition Mode(采集模式),如圖13所示。至此在MAX中創(chuàng)建采集任務完成。

圖13 設置好采集參數(shù)
接著在VB的工程中進行控件的事件響應的函數(shù)編寫。如圖14所示,DAQmxErrChk DAQmxLoadTask函數(shù)作用將MAX中創(chuàng)建的采集任務加載進來,DAQmxErrChk DAQmxReadAnalogF64函數(shù)作用是從通道中讀取數(shù)據(jù),PlotY函數(shù)繪制做采集數(shù)據(jù)至CWGraph1中。完成采集之后,需要通過調(diào)DAQmxStopTask和DAQmxClearTask函數(shù)清除資源。添加ErrorHandler代碼,這個代碼在任何DAQmx錯誤發(fā)生時執(zhí)行。

圖14 編寫按鈕事件觸發(fā)函數(shù)
在NI USB 6009的ai0的通道上輸入正弦波,點擊“運行”按鈕開始采集任務,出現(xiàn)如圖15所示的有限數(shù)據(jù)采集的波形圖。

圖15 有限采集數(shù)據(jù)波形
至此在VB中調(diào)用NI DAQmx板卡的API支持函數(shù)實現(xiàn)數(shù)據(jù)采集任務的步驟就此講解結(jié)束。大家學習到這里肯定意猶未盡吧,不急,接下來我會跟大家一起來交流如何在VB環(huán)境下創(chuàng)建模擬輸入,模擬輸出,計數(shù)器,數(shù)字I/O的任務,請大家拭目以待!
附代碼(僅供參考):
Private Sub cmd_Acquire_Click()
Dim myTask As Long
Dim data(1000) As Double
On Error GoTo ErrorHandler
DAQmxErrChk DAQmxLoadTask("voltageacq0", myTask)
DAQmxErrChk DAQmxReadAnalogF64(myTask, 1000, 10, DAQmx_Val_GroupByChannel, data(0), 1000, 1000, ByVal 0&)
CWGraph1.PlotY (data)
DAQmxErrChk DAQmxStopTask(myTask)
DAQmxErrChk DAQmxClearTask(myTask)
Exit Sub
ErrorHandler:
DAQmxStopTask myTask
DAQmxClearTask myTask
MsgBox Err.Description
End Sub
或者您也可以“下載”此程序包——NI DAQ數(shù)采卡在Visual Basic 6.0編程環(huán)境下使用范例1 。