
图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 。