首页 理论教育10.2DAQmx节点和编程指南

10.2DAQmx节点和编程指南

【摘要】:下面对常用的DAQmx节点进行介绍。图10-20 利用创建虚拟通道VI创建热电偶虚拟通道图10-21 DAQmx清除任务的节点图标及端口定义对于连续的操作,NI-DAQmx清除任务函数必须用来结束真实的采集或生成。图10-24是四个不同的NI-DAQmx读取VI实例的例程。任务经过该节点后将进入DAQmx Start TaskVI节点之前的状态。图10-29 DAQmx停止任务的节点图标及端口定义6.DAQmx定时NI-DAQmx定时函数配置定时以用于硬件定时的数据采集操作。

下面对常用的DAQmx节点进行介绍。

1.DAQmx创建虚拟通道

NI-DAQmx创建虚拟通道函数创建了一个虚拟通道并且将它添加成一个任务。它也可以用来创建多个虚拟通道并将它们都添加至一个任务。如果没有指定一个任务,那么这个函数将创建一个任务。NI-DAQmx创建虚拟通道函数有许多的实例。这些实例对应于特定的虚拟通道所实现的测量或生成类型。节点的图标及端口定义如图10-18所示。图10-19是4个不同的NI-DAQmx创建虚拟通道VI实例的例程。

978-7-111-40983-0-Chapter10-19.jpg

图10-18 “DAQmx创建虚拟通道”节点图标及端口定义

978-7-111-40983-0-Chapter10-20.jpg

图10-19 DAQmx创建的不同类型的虚拟通道

NI-DAQmx创建虚拟通道函数的输入随每个函数实例的不同而不同,但是,某些输入对大部分函数的实例是相同的。例如一个输入需要用来指定虚拟通道将使用的物理通道(模拟输入和模拟输出)、线数(数字)或计数器。此外,模拟输入、模拟输出和计数器操作使用最小值和最大值输入来配置和优化基于信号最小和最大预估值的测量和生成。而且,一个自定义的刻度可以用于许多虚拟通道类型。在图10-20所示的LabVIEW程序框图中,NI-DAQmx创建虚拟通道VI用来创建一个热电偶虚拟通道。

2.DAQmx清除任务

NI-DAQmx清除任务函数可以清除特定的任务。如果任务现在正在运行,那么这个函数首先中止任务然后释放掉它所有的资源。一旦一个任务被清除,那么它就不能被使用,除非重新创建它。因此,如果一个任务还会使用,那么NI-DAQmx结束任务函数就必须用来中止任务,而不是清除它。DAQmx清除任务的节点的图标及端口定义如图10-21所示。

978-7-111-40983-0-Chapter10-21.jpg

图10-20 利用创建虚拟通道VI创建热电偶虚拟通道

978-7-111-40983-0-Chapter10-22.jpg

图10-21 DAQmx清除任务的节点图标及端口定义

对于连续的操作,NI-DAQmx清除任务函数必须用来结束真实的采集或生成。在图10-22所示的LabVIEW程序框图中,一个二进制数组不断输出直至等待循环退出和NI-DAQmx清除任务VI执行。

978-7-111-40983-0-Chapter10-23.jpg

图10-22 DAQmx Clear Task应用实例

3.DAQmx读取

NI-DAQmx读取函数需要从特定的采集任务中读取采样。这个函数的不同实例允许选择采集的类型(模拟、数字或计数器)、虚拟通道数、采样数和数据类型。其节点的图标及端口定义如图10-23所示。图10-24是四个不同的NI-DAQmx读取VI实例的例程。

978-7-111-40983-0-Chapter10-24.jpg

图10-23 DAQmx读取的节点图标及端口定义

978-7-111-40983-0-Chapter10-25.jpg

图10-24 不同NI-DAQmx读取VI的实例

可以读取多个采样的NI-DAQmx读取函数的实例包括一个输入来指定在函数执行时读取数据的每通道采样数。对于有限采集,通过将每通道采样数指定为-1,这个函数就等待采集完所有请求的采样数,然后读取这些采样。对于连续采集,将每通道采样数指定为-1将使得这个函数在执行的时候读取所有现在保存在缓冲中可得的采样。在如图10-25所示的LabVIEW程序框图中,NI-DAQmx读取VI已经被配置成从多个模拟输入虚拟通道中读取多个采样并以波形的形式返回数据。而且,既然每通道采样数输入已经配置成常数10,那么每次VI执行的时候它就会从每一个虚拟通道中读取10个采样。

978-7-111-40983-0-Chapter10-26.jpg

图10-25 从模拟通道读取多个采样值实例

4.DAQmx开始任务

NI-DAQmx开始任务函数显式地将一个任务转换到运行状态。在运行状态,这个任务完成特定的采集或生成。如果没有使用NI-DAQmx启动任务函数,那么在NI-DAQmx读取函数执行时,一个任务可以隐式地转换到运行状态,或者自动开始。这个隐式的转换也发生在如果NI-DAQmx开始任务函数未被使用而且NI-DAQmx写入函数与它相应指定的自启动输入一起执行。其节点的图标及端口定义如图10-26所示。

978-7-111-40983-0-Chapter10-27.jpg

图10-26 DAQmx开始任务的节点图标及端口定义

虽然不是经常需要,但是使用NI-DAQmx启动任务函数来显式地启动一个与硬件定时相关的采集或生成任务是更值得选择的。而且,如果NI-DAQmx读取函数或NI-DAQmx写入函数将会执行多次,例如在循环中,NI-DAQmx启动任务函数就应当使用。否则,任务的性能将会降低,因为它将会重复地启动和停止。图10-27所示的LabVIEW程序框图演示了不需要使用NI-DAQmx启动函数的情形,因为模拟输出生成仅仅包含一个单一的、软件定时的采样。

图10-28所示的LabVIEW程序框图演示了应当使用NI-DAQmx启动函数的情形,因为NI-DAQmx读取函数需要执行多次来从计数器读取数据。

978-7-111-40983-0-Chapter10-28.jpg

图10-27 模拟输出一个单一的采样

978-7-111-40983-0-Chapter10-29.jpg

图10-28 多次读取计数器数据实例

5.DAQmx停止任务

停止任务。任务经过该节点后将进入DAQmx Start TaskVI节点之前的状态。

如果不使用DAQmx开始任务和DAQmx停止任务,而只是多次使用DAQmx读取或DAQmx写入,例如在一个循环里,这将会严重降低应用程序的性能。其节点的图标及端口定义如图10-29所示。

978-7-111-40983-0-Chapter10-30.jpg

图10-29 DAQmx停止任务的节点图标及端口定义

6.DAQmx定时

NI-DAQmx定时函数配置定时以用于硬件定时的数据采集操作。这包括指定操作是否连续或有限、为有限的操作选择用于采集或生成的采样数量,以及在需要时创建一个缓冲区。其节点的图标及端口定义如图10-30所示。

978-7-111-40983-0-Chapter10-31.jpg

图10-30 DAQmx定时的节点图标和端口定义

对于需要采样定时的操作(模拟输入、模拟输出和计数器),NI-DAQmx定时函数中的采样时钟实例设置了采样时钟的源(可以是一个内部或外部的源)和它的速率。采样时钟控制了采集或生成采样的速率。每一个时钟脉冲为每一个包含在任务中的虚拟通道初始化一个采样的采集或生成。图10-31中,LabVIEW程序框图演示了使用NI-DAQmx定时VI中的采样时钟实例来配置一个连续的模拟输出生成(利用一个内部的采样时钟)。

978-7-111-40983-0-Chapter10-32.jpg(www.chuimin.cn)

图10-31 DAQmxTiming应用实例之一

为了在数据采集应用程序中实现同步,如同触发信号必须在一个单一设备的不同功能区域或多个设备之间传递一样,定时信号也必须以同样的方式传递。NI-DAQmx也是自动地实现这个传递。所有有效的定时信号都可以作为NI-DAQmx定时函数的源输入。例如,在如图10-32所示的DAQmx定时VI中,设备的模拟输出采样时钟信号作为同一个设备模拟输入通道的采样时钟源,而无需完成任何显式的传递。

978-7-111-40983-0-Chapter10-33.jpg

图10-32 模拟输出时钟作为模拟输入时钟源

大部分计数器操作不需要采样定时,因为被测量的信号提供了定时。NI-DAQmx定时函数的隐式实例应当用于这些应用程序。例如,在如图10-33所示的DAQmx定时VI中,设备的模拟输出采样时钟信号作为同一个设备模拟输入通道的采样时钟源,而无需完成任何显式的传递。

978-7-111-40983-0-Chapter10-34.jpg

图10-33 DAQmxTiming应用实例之二

某些数据采集设备支持将握手作为它们数字I/O操作的定时信号的方式。握手使用与外部设备之间请求和确认定时信号的交换来传输每一个采样。NI-DAQmx定时函数的握手实例为数字I/O操作配置握手定时。

7.DAQmx触发

NI-DAQmx触发函数配置一个触发器来完成一个特定的动作。最为常用的动作是一个启动触发器(Start Trigger)和一个参考触发器(Reference Trigger)。启动触发器初始化一个采集或生成。参考触发器确定所采集的采样集中的位置,在那里前触发器数据(pre trigger)结束,而后触发器(post trigger)数据开始。这些触发器都可以配置成发生在数字边沿、模拟边沿或者当模拟信号进入或离开窗口。在下面的LabVIEW程序框图中,利用NI-DAQmx触发VI,启动触发器和参考触发器都配置成发生在一个模拟输入操作的数字边沿。其节点的图标及端口定义如图10-34所示。

978-7-111-40983-0-Chapter10-35.jpg

图10-34 DAQmx触发的节点图标和端口类型

在图10-35所示的LabVIEW程序框图中,利用NI-DAQmx触发VI,启动触发器和参考触发器都配置成发生在一个模拟输入操作的数字边沿。

978-7-111-40983-0-Chapter10-36.jpg

图10-35 DAQmx Trigger应用实例

许多数据采集应用程序需要一个单一设备不同功能区域的同步(例如,模拟输出和计数器)。其他的则需要多个设备进行同步。为了达到这种同步性,触发信号必须在一个单一设备的不同功能区域和多个设备之间传递。NI-DAQmx自动地完成了这种传递。当使用NI-DAQmx触发函数时,所有有效的触发信号都可以作为函数的源输入。例如,在图10-36所示的NI-DAQmx触发VI中,用于设备2的启动触发器信号可以用作设备1的启动触发器的源,而无需进行任何显式的传递。

978-7-111-40983-0-Chapter10-37.jpg

图10-36 用设备2的触发信号触发设备1

8.DAQmx结束前等待

NI-DAQmx结束前等待,函数在结束之前等待数据采集操作的完成。这个函数应当用于保证在任务结束之前完成了特定的采集或生成。最为普遍的是,NI-DAQmx等待直至完成函数用于有限操作。一旦这个函数完成了执行,有限采集或生成就完成了,而且无需中断操作就可以结束任务。此外,超时输入允许指定一个最大的等待时间。如果采集或生成不能在这段时间内完成,那么这个函数将退出而且会生成一个合适的错误信号。其节点的图标及端口定义如图10-37所示。图10-38所示LabVIEW程序框图中的NI-DAQmx等待直至完成VI用来验证有限模拟输出操作在任务清除之前就已经完成。

978-7-111-40983-0-Chapter10-38.jpg

图10-37 DAQmx结束前等待函数的节点图标和端口类型

9.DAQmx写入

NI-DAQmx写入函数将采样写入指定的生成任务中。这个函数的不同实例允许选择生成类型(模拟或数字),虚拟通道数、采样数和数据类型。其节点的图标及端口定义如图10-39所示。图10-40所示是4个不同的NI-DAQmx写入VI实例的例程。

978-7-111-40983-0-Chapter10-39.jpg

图10-38 Wait Until Done节点应用实例

978-7-111-40983-0-Chapter10-40.jpg

图10-39 DAQmx写入函数的节点图标及端口定义

978-7-111-40983-0-Chapter10-41.jpg

图10-40 不同NI-DAQmx写入VI的实例

每一个NI-DAQmx写入函数实例都有一个自启动输入来确定,如果还没有显式地启动,那么这个函数是否将隐式地启动任务。正如我们刚才在本文NI-DAQmx启动任务部分所讨论的那样,NI-DAQmx启动任务函数应当用来显式地启动一个使用硬件定时的生成任务。它也应当用来最大化性能,如果NI-DAQmx写入函数将会多次执行。对于一个有限的模拟输出生成,图10-41所示的LabVIEW程序框图包括一个NI-DAQmx写入VI的自启动输入值为“假”的布尔值,因为生成任务是硬件定时的。NI-DAQmx写入VI已经被配置将一个通道模拟输出数据的多个采样以一个模拟波形的形式写入任务中。

978-7-111-40983-0-Chapter10-42.jpg

图10-41 DAQmx Write应用实例

10.DAQmx属性节点

NI-DAQmx属性节点提供了对所有与数据采集操作相关属性的访问,如图10-42所示。这些属性可以通过写入NI-DAQmx属性节点来设置,而且当前的属性值可以从NI-DAQmx属性节点中读取。而且,在LabVIEW中,一个NI-DAQmx属性节点可以用来写入多个属性或读取多个属性。例如,图10-43所示的LabVIEW NI-DAQmx定时属性节点设置了采样时钟的源,然后读取采样时钟的源,最后设置采样时钟的有效边沿。

978-7-111-40983-0-Chapter10-43.jpg

图10-42 DAQmx的属性节点

978-7-111-40983-0-Chapter10-44.jpg

图10-43 DAQmx Timing属性节点使用

许多属性可以使用前面讨论的NI-DAQmx函数来设置。例如,采样时钟源和采样时钟有效边沿属性可以使用NI-DAQmx定时函数来设置。然而,一些相对不常用的属性只可以通过NI-DAQmx属性节点来访问。在图10-44所示的LabVIEW程序框图中,一个NI-DAQmx通道属性节点用来使能硬件低通滤波器,然后设置滤波器的截止频率来用于应变测量。

978-7-111-40983-0-Chapter10-45.jpg

图10-44 DAQmx属性节点的使用实例

11.DAQ助手

DAQ助手是一个图形化的界面,用于交互式地创建、编辑和运行NI-DAQmx虚拟通道和任务。一个NI-DAQmx虚拟通道包括一个DAQ设备上的物理通道和对这个物理通道的配置信息,例如输入范围和自定义缩放比例。一个NI-DAQmx任务是虚拟通道、定时和触发信息、以及其他与采集或生成相关属性的组合。DAQ ASSISTANT配置完成一个应变测量。其节点图标如图10-45所示。

978-7-111-40983-0-Chapter10-46.jpg

图10-45 未配置前的DAQ助手图标