第6.3节 基于DAQmx的测量应用程序定式
前面谈到过,数据采集(DAQ)是将模拟信号转变成数字信号的一种变换方法(含逆过程——产生)。而DAQmx起着LabVIEW开发软件与NI硬件间的无缝链接作用,也是形成测量应用程序架构(模式)的主体核心部分。
由此可以看出数据采集部分的程序构架和代码是来自DAQmx。下面就给出使用DAQmx架构的通用数据采集结构——定式(基本模式)。
定式这个词来自于“围棋”术语,表示常规、合理的做法。在这里使用这个词其含义是一样的。
注意:我们这里所说的“数据采集”包含着:测量和产生。
这个定式可以代表几乎所有连续进行的模拟输入、模拟输出、数字输入、数字输出、计时、频率等等测量(产生)操作。
我在实际应用中,基本不涉及到触发(只有个别实例涉及),所以我的定式是下面的简洁本。
DAQmx测量程序架构的简洁本
这个简洁本是我最常用的连续运行测量程序的基本架构,它去掉了“触发”和“停止任务”两个vi。之所以称它为测量架构,得益于上面这些vi很多都具有的多态性。这样通过简单设置(配置)的方法就可以实现模拟输入、模拟输出、数字输入、数字输出、计时、频率等等测量(产生)操作。
请注意这个定式的主要特点:
在While循环之前,是完成创建、配置、设置任务的所有相关信息和要求。依据数据流的关系,它只执行一次后就进入了循环体,循环结束后,清除、结束任务。这也就意味着,一旦测量开始我们无法再更改任何设置、配置信息(即便是可以更改也是无效的)。若想在测量时改动某些参数,只能是在循环中通过属性节点或其它方法(事件)来改变。这与使用DAQ助手是有很大区别的。关于DAQ助手的使用方法我们后面会谈到。
掌握了这个基本架构,就可以通过对多态vi的设置,实现成百上千种测量(产生)应用程序。
DAQmx的测量架构是基于“任务”的
我之所以认定这样的架构,就是DAQmx的测量架构是基于“任务”的。
任务是一个集合,它包括了通道信息、时序、采样方式、触发等等一系列信息。创建一个任务有很多方法,在这里我们先使用这种最基本的方法来创建一个任务。简洁本架构表现的是一个任务执行的全过程,包括任务的创建、配置及销毁,也可以说:在任务中包含了许多测量细节和信息。
任务是一个抽象的叫法,它反映了设计者的测量目的和所期待获得的测量结果。下面简要介绍一下任务中,每个vi的作用或功能(更多的解释请看“详细帮助信息”)。
1、DAQmx创建任务
在函数选板》测量I/O》DAQmx-数据采集》DAQmx高级任务选项》DAQmx创建任务,可以找到这个vi。
因为测量架构是基于任务的,所以我习惯使用这个vi来创建相互独立的测量任务,这样比较符合基于任务的结构。同时在使用中要注意,当任务结束后一定要清除该任务,避免过多的占用内存。
最好不要在循环中使用该vi,如果必须在循环中使用的话,在任务结束后,在循环中清除该任务。
2、DAQmx创建通道
在函数选板》测量I/O》DAQmx-数据采集》DAQmx创建通道,可以找到这个vi。这个vi是一个多态vi,可以选择多种测量功能的虚拟通道添加到任务中。正因为如此,没办法对它进行更多的、更详细的说明。
实际使用中,常利用“分配名称”来给虚拟通道进行命名,比如:Ua、Ia等等这样在图形显示时,曲线名称就会自动显示“分配名称”。
3、DAQmx定时
在函数选板》测量I/O》DAQmx-数据采集》DAQmx定时,可以找到这个vi。这个vi也是一个多态vi。
需要注意的是:在使用非同步多通道采样时(M系列),要注意“采样率”X“使用的通道数”之积不要超过板卡的最大共享采样率。
4、DAQmx开始任务
在函数选板》测量I/O》DAQmx-数据采集》DAQmx开始任务,可以找到这个vi。
5、DAQmx读取
在函数选板》测量I/O》DAQmx-数据采集》DAQmx读取,可以找到这个vi。这个vi也是一个多态vi。
6、DAQmx写入
在函数选板》测量I/O》DAQmx-数据采集》DAQmx写入,可以找到这个vi。这个vi也是一个多态vi。
7、DAQmx清除任务
在函数选板》测量I/O》DAQmx-数据采集》DAQmx定时,可以找到这个vi。
使用中应该注意:它应该与“创建任务”vi成对出现。
小结
本单元给出了使用DAQmx做连续运行时的架构,这是我在应用程序设计时经常采用的架构。由于DAQmx是一个强大、复杂的驱动系统,所以很多细节、功能和概念可能还没有认识清楚。对于上面所介绍的多态vi,也只能到具体应用时再做更详细的说明。下面是我的几点看法:
1、架构仅仅是常规用法
我们所谈的架构仅仅是常规用法,更多的认识和理解还要多看NI提供的例程,从中获得更多的启迪。
2、任务是数据采集中的重要概念
架构表现的是一个任务执行的全过程,包括任务的创建、配置及销毁。也可以说:在任务中包含了许多测量细节和信息。任务仅仅是一个抽象的叫法,它反映了设计者的测量目的和所期待获得的测量结果。
3、属性和vi同等重要
上面仅介绍几个常用的vi,它们的属性更应该深入了解,以便在应用程序设计中使用更灵活的设计手法。
4、DAQmx帮助文档
DAQmx帮助文档是最好的教科书,应该仔细认真的阅读。
5、实践是提高的最有效方法
尽可能多的进行实践,实践是最好的学习过程。实践过程如同考试可以检验出许多不足之处。