[DAQmx]创建虚拟通道时应当注意的基本问题
2015-07-11 00:18
253 查看
问题描述:使用LabVIEW控制NI的采集卡,使用DAQmx是非常方便的。但是正由于其方便性,许多底层的问题都被隐藏了起来。因此使用时如果没有注意到细节问题就会出现一些不预期的结果。以下将记录一些创建虚拟通道函数的使用时的注意问题(当然首先接线方式、最大值、最小值、物理通道等都要配置对)。
任务的创建:DAQmx中任务与通道的概念是不同的,通道是具体的引脚,如8通道模拟输入通道,说明就有对应的8个用于模拟输入的引脚。任务就不一样了,创建一个任务,该任务就可以包括一系列同类型通道的操作,如现要使用ao0和ao1两个输出通道用于模拟输出,这时候就只需要创建一个模拟输出任务就可以了。这里做了个小的实验,我先创建了两个任务,每个任务负责控制一个通道的输出,结果出现问题了,我将ao1输出值改变时,它的实际输出会大部分停留在0V,只有少数的点是对的(这也可能是我“写入”函数的配置不对,我使用的是单通道单采样)。
于是后来改用一个任务,用于ao0与ao1两个输出通道的控制:
![](http://s15.sinaimg.cn/mw690/917f1662gx6CCWSdjKCce&690)
然后用包含两个元素的一维数组输出采样值给ao0和ao1:
![](http://s7.sinaimg.cn/mw690/917f1662gx6CCWZDKMS66&690)
然后运行,并用两个模拟输入通道分别采集两个模拟输出通道的电压进行显示,一切正常了:
![](http://s2.sinaimg.cn/mw690/917f1662gx6CCX5y6t381&690)
任务的创建:DAQmx中任务与通道的概念是不同的,通道是具体的引脚,如8通道模拟输入通道,说明就有对应的8个用于模拟输入的引脚。任务就不一样了,创建一个任务,该任务就可以包括一系列同类型通道的操作,如现要使用ao0和ao1两个输出通道用于模拟输出,这时候就只需要创建一个模拟输出任务就可以了。这里做了个小的实验,我先创建了两个任务,每个任务负责控制一个通道的输出,结果出现问题了,我将ao1输出值改变时,它的实际输出会大部分停留在0V,只有少数的点是对的(这也可能是我“写入”函数的配置不对,我使用的是单通道单采样)。
于是后来改用一个任务,用于ao0与ao1两个输出通道的控制:
然后用包含两个元素的一维数组输出采样值给ao0和ao1:
然后运行,并用两个模拟输入通道分别采集两个模拟输出通道的电压进行显示,一切正常了:
相关文章推荐
- [HWRelated]C语言中的底层技术
- [inline]C99中inline的使用
- [Pointer]C语言中指针的高级用法
- [List]C语言实现链表
- [Memory]C语言中的内存分配
- [enum]C语言中的枚举
- [PreProccess]C语言中预处理指令的使用
- [string]C语言中字符串使用需注意的地方
- [Pointer]C中指针与多维数组学习
- [Comparation]Cadence,PADs,Altium Designer简要对比整理
- [Overview]DSP硬件的初步了解
- [FileIO]C语言中流与文件操作编程学习
- [Union]C语言编程中联合Union的学习
- Mybatis-There is no getter for property named 'tj' in 'class
- java数组初始化
- windows环境下使用VS2012编译SQLITE3
- 新的公司
- Udp广播的发送和接收(iOS + AsyncUdpSocket)下篇
- [C8051F320]串口UART0全双工调试过…
- [struct]C编程数组与结构的学习