在LabVIEW中使用NI-DAQmx 进行连续采集时中关于“样本数量”的参数定义

更新 Nov 7, 2018

适用于

Software

  • LabVIEW Full

Driver

  • NI-DAQmx

问题详述

为什么以及如何使用支持LabVIEW的NI-DAQmx连续采集数据时需要指定多个样本?

解决方案

阵列/波形的大小以及DAQmx PC缓冲区的大小由DAQmx任务的配置隐式确定,如下所述。

使用DAQmx执行采集时,数据首先从DAQ设备传输到计算机的内存(RAM)中。计算机的RAM上有一个预先分配的缓冲区,称为DAQmx PC缓冲区,它被保留作为未读数据的预留位置。

然后,通过执行DAQmx读取功能,可以从DAQmx PC缓冲区读取数据,并将数据读取到DAQmx应用程序内部的数组或波形中。


在LabVIEW中为任务配置DAQmx Timing VI时, 每通道样本数值具有不同的效果,具体取决于采样模式是设置为连续采样还是有限采样

  • 对于有限样本每通道样本数值确定了在任务完成之前要采集的样本数。
  • 对于连续样本 ,如果默认缓冲区大小不足,则每通道样本数值用于确定DAQmx PC缓冲区的大小。但是,在大多数情况下,将使用默认缓冲区大小,并忽略此值。有关如何确定连续采集的缓冲区大小的详细信息,请参阅有限或连续采集的DAQmx缓冲区大小分配

相反,DAQmx Read有一个名为每个通道的采样的输入。 每个通道的采样确定了在执行DAQmx读取时从缓冲区读入应用程序的每个数组或数据波形的样本大小。

应该注意的是,DAQmx Read会等到所有请求的样本都被采集并存储在DAQmx PC缓冲区中,然后再将数据提供给应用程序。

因此,如果采样速率不足以在超时分配的时间内创建此大小的数组或波形,则VI将引发超时错误。要防止这种情况,请增大超时参数(默认值为10秒),或减少每个通道的样本数

相关信息

注意: DAQ设备与主机RAM上的DAQmx PC缓冲区之间的传输速度取决于用于与DAQ设备(PCI,USB,PXI等)通信的总线。

在交互式DAQ助手面板以及SignalExpress和NI MAX中,此参数重命名为Samples to Read,如下所示:

每个通道的样本数的默认值为-1,这会导致DAQmx Read立即读取缓冲区中可用的所有数据。如果当每个通道的样本数设置为-1时缓冲区中没有可用数据,则DAQmx Read将返回一个空数组,而不是等待采集样本。

本文是否有帮助?

无帮助