
圖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中進行板卡的參數配置,以NI USB-6009為例。插入USB-6009板卡,在MAX中識別出來,在板卡左邊會有綠色標識,圖8所示。

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

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

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

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

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

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

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

圖15 有限采集數據波形
至此在VB中調用NI DAQmx板卡的API支持函數實現數據采集任務的步驟就此講解結束。大家學習到這里肯定意猶未盡吧,不急,接下來我會跟大家一起來交流如何在VB環境下創建模擬輸入,模擬輸出,計數器,數字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數采卡在Visual Basic 6.0編程環境下使用范例1 。