首页 百科知识 函数采集数据

函数采集数据

时间:2022-10-08 百科知识 版权反馈
【摘要】:VI会按照Channels中所列出的通道顺序进行采集或输出数据DAQ的操作。每个子VI可以创建一种类型的虚拟通道,并加入一个数据采集任务中。DAQmx Read读函数端口定义如图6-20所示,功能是从指定的任务或通道读取数据。如果到时没有采集够数据就有多少返回多少,并报告出错。任务经过该节点函数后,将进入DAQmx Start Task.vi之前的状态。连续采集数据与有限点采集在采样模式方面的差别是通过DAQmxTiming的SampingMode体现,连续采集SampingMode项设置为ContinuousSamples。

1.DAQ节点常用的几个术语

(1)设备号和任务号(Device ID和Task ID)。每个DAQ设备都有一个唯一编号与之对应。在使用工具节点配置DAQ设备时,这个设备可以由用户指定。输出参数Task ID是系统给特定的I/O操作分配的一个唯一的标识号,贯穿于以后DAQ操作始终。

(2)通道(Channels)。在信号输入输出时,每个端口称为一个Channel。Channel中所有指定的通道会形成一个通道组(group)。VI会按照Channels中所列出的通道顺序进行采集或输出数据DAQ的操作。

(3)通道命名(Channel Name Addressing)。应用DAQ设备,必须先对DAQ硬件进行配置,为了让DAQ设备的I/O通道的功能和意义更加直观地为用户所理解,使用每个通道所对应的实际物理参数意义或名称来命名通道是一个理想的办法。可以在Channel中输入一定物理意义的名称来确定通道的地址

(4)通道编号(Channel Number Addressing)。每个通道名称实际上是和通道编号相对应的。可以将每个通道编号作为一个数组中的元素;也可以将数个通道编号填写在一个数组元素中,编号之间用逗号隔开(如0,1,3表示0、1、3这3个通道在使用);还可以在一个数组元素中指定通道的范围(如0∶2表示通道0~2这3个通道都在使用)。

(5)扫描次数。扫描次数是在用户指定一组通道中,进行数据采集的次数。

2.DAQmx节点函数

(1)新建虚拟通道DAQmx Create Virtual Channel。这是DAQmx中使用非常普遍的一个函数,端口定义如图6-19所示,选择DAQmx→Data Acuquisition选项,该函数位于函数子模板的顶层。这是一个多态VI,它有许多子VI。每个子VI可以创建一种类型的虚拟通道,并加入一个数据采集任务中。

图6-19 DAQmx Create Virtual Channel图标及端口定义

•physical channels:物理通道列出了系统安装的设备上所有的物理通道名。

•name to assign:指定虚拟通道名,其他函数和节点都要通过名称访问特定的虚拟通道。默认的名称是使用的物理通道名称,如果一次调用此函数产生多个虚拟通道,通道名之间用逗号隔开。

•units:测量电压值所用的单位,这个参数有两个选择,伏特Volts或来自定制标度from custom scale。

•maximum value和minimum value:最大值和最小值,指定测量电压范围。

•input terminal configuration:输入端口设置,设置被测信号连接方式。

•custom scale name:输入在MAX中设置的标度名。

•task out:函数执行完后产生的任务参考号。

(2)读函数DAQmx Read。DAQmx Read读函数端口定义如图6-20所示,功能是从指定的任务或通道读取数据。这是一个多态的VI,允许选择采集不同的类型(主要有模拟、数字或计数器、模拟通道数、采集数和数组等)。它的主要参数如下。

图6-20 DAQmx Read图标及端口定义

•task/channels in:输入任务名或虚拟通道名,如果输入虚拟通道名,则自动创建一个任务。

•number of samples per channel:执行一次从每个通道采回的数据量。如果是一个连续采集任务,而且这个任务没有连接-1,则返回缓冲区的所有数据。如果是有限点采集的任务,而且这个参数是-1,则读回任务中设置的采样数。

•error out:超时,设置等待采样的秒数。如果到时没有采集够数据就有多少返回多少,并报告出错。如果设置为-1,就无限等待。如果设置为0,就立刻返回数据,数据不够时报告出错。

•data:数据。在图6-21的例子中,返回的数据是波形数据。

•DAQmx Stop Task:停止任务,并把它恢复到执行前的状态。

•task out:函数执行完后产生的任务参考号。

(3)启动DAQmx任务函数DAQmx Start Task。启动DAQmx任务函数可将一个任务显式转换到运行状态,端口定义如图6-21所示。在运行状态,这个任务完成特定的采集或生成。如果没有使用NIDAQmx启动任务函数,那么在执行DAQmx Read时,任务将隐式转换成运行状态或自动启动。

图6-21 DAQmx Start Task图标及端口定义

主要端口参数如下。

•task/channels in:输入任务名或虚拟通道名,如果输入虚拟通道名,它自动创建一个任务。

•task out:函数执行完后产生的任务参考号。

(4)DAQmx Stop Task停止任务函数。任务经过该节点函数后,将进入DAQmx Start Task.vi之前的状态。如果不使用DAQmx Start Task和DAQmx Stop Task,而多次使用DAQmx Read或DAQmx Write(如在一个循环里),将严重降低应用程序的性能,其节点的图标及端口定义如图6-22所示。

图6-22 DAQmx Stop Task图标及端口定义

•task/channels in:输入任务名或虚拟通道名,如果输入虚拟通道名,则自动创建一个任务。

•task out:函数执行完后产生的任务参考号。

练习6-1 使用DAQmx采集直流电压。

参考程序如图6-23和图6-24所示。

图6-23 使用DAQmx采集直流电压演示程序的程序框图

图6-24 使用DAQmx采集直流电压演示程序前面板

(5)DAQmx Timing定时设置。DAQmx Timing用于硬件定时参数设置,它可以设置采样数、采样率,并在必要时设置缓冲区,其节点的图标及端口定义如图6-25所示。

图6-25 DAQmx Timing图标及端口定义

主要端口参数如下。

•task/channels in:输入任务名或虚拟通道名,如果输入虚拟通道名,则自动创建一个任务。

•rate:设置通道采样率。

•source:设置采样时钟信号源,如果这个参数不连接就使用数据采集卡上的时钟。

•active edge:在时钟的上升沿还是下降沿采样。

•samplemode:采样模式,设置连续采样还是有限点采样。

•samples per channel:这个参数规定了缓冲区的大小,即从数据采集卡到LabVIEW每次传输数据的多少。在有限采样时,这个参数就指定了输入或输出的采样点数。

•task out:函数执行完后产生的任务参考号。

对于需要采样定时的操作(模拟输入、模拟输出和计数器),NI-DAQmx定时函数中的采样时钟实例设置了时钟源(它可以是内部或者外部的源)及其速率。采样时钟控制了采样或者产生输出的速率。

对于快速变化的信号,为了精确测量它的波形,一般需要用信号最高频率成分的5~10倍的采样频率进行采样。根据需要,可以一次采样一定数量的信号进行分析,也可以连续进行数据采样,即采集即分析。

练习6-2 使用DAQmx采集有限点的波形。

参考程序如图6-26和图6-27所示。

图6-26 用DAQmx采集有限点的数据的程序框图

图6-27 用DAQmx采集有限点的数据的程序前面板

建议:参数设置满足采样率f s大于信号频率fx的10倍以上,即采样数为10fx;否则,会出现波形失真或者波形显示不清楚等问题。

练习6-3 使用DAQmx连续采集数据。

参考程序如图6-28和图6-29所示。

图6-28 用DAQmx连续采集数据的演示程序框图

图6-29 用DAQmx连续采集数据的演示程序前面板

注意:

连续采集数据与有限点采集在采样模式方面的差别是通过DAQmxTiming的SampingMode体现,连续采集SampingMode项设置为ContinuousSamples。

连续采集时可以用Chart来显示波形数据,但是当图形太密集而看不清楚时,可以通过减小Chart的ChartHistoryLength值,来得到清晰的图形。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈