(一) 效果展示:
(二) 采集流程:
- 检索采集设备
- 检索采集通道
- 创建DAQ任务
- 创建采集通道
- 配置采集频率
- 开始采集任务
- 读取采集数据
- 停止采集任务
- 清空采集任务
(三) 相关接口:
//该接口可以检测系统已连接的相关采集卡的设备名称
param data:分配的空间用来存储系统识别到的设备名称。
param bufferSize:分配空间的大小。
DAQmxGetSysDevNames(char *data, uInt32 bufferSize);
该接口可以检测设备的通道
param device[]:设备名称字符串
param data: 通道名称
param bufferSize:通道大小
DAQmxGetDevAIPhysicalChans(const char device[], char *data, uInt32 bufferSize);
//该接口创建一个DAQ任务
param taskName[]:任务名称
param taskHandle:返回一个任务句柄
DAQmxCreateTask(const char taskName[], TaskHandle *taskHandle);
//该接口创建一个电压采集通道
param TaskHandle:任务句柄
param physicalChannel:选择一个检测到的物理名称
param nameToAssignToChannel[]:NULL
param terminalConfig:DAQmx_Val_Cfg_Default
param minVal:采集范围最小值(>=-10)
param maxVal:采集范围最大值(<= 10)
param units:DAQmx_Val_Volts(代表采集的是电压)
param customScaleName[]:NULL
DAQmxCreateAIVoltageChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, const char customScaleName[]);
//该接口用来配置采集频率
param taskHandle:任务句柄
param source[]:NULL
param rate:采集频率
param activeEdge:DAQmx_Val_Rising
param sampleMode DAQmx_Val_ContSamps(连续采集)
param sampsPerChan:每通道采样数
DAQmxCfgSampClkTiming(TaskHandle taskHandle, const char source[], float64 rate, int32 activeEdge, int32 sampleMode, uInt64 sampsPerChan);
//开始采集任务
param taskHandle:任务句柄
DAQmxStartTask(TaskHandle taskHandle);
//读取采集到的结果
param taskHandle:任务句柄
param numSampsPerChan:采集通道个数
param timeout:超时(-1永不超时)
param fillMode:DAQmx_Val_GroupByChannel
param readArray[]:采集到的数据
param arraySizeInSamps:1
param sampsPerChanRead:每个通道读取到的字节数
param reserved:NULL
DAQmxReadAnalogF64(TaskHandle taskHandle, int32 numSampsPerChan, float64 timeout, bool32 fillMode, float64 readArray[], uInt32 arraySizeInSamps, int32 *sampsPerChanRead, bool32 *reserved);
//停止采集
DAQmxStopTask(taskHandle);
//清空任务
DAQmxClearTask(taskHandle);
//获取错误信息
DAQmxGetExtendedErrorInfo(char errorString[], uInt32 bufferSize);
驱动下载地址:NI-DAQ™mx Download - NI
安装好后相关文档和资料在相应目录下