技术指南: 使用MCC数据采集设备获取单通道模拟输入值

目的
介绍如何在不同软件平台上使用MCC数据采集设备读取单通道模拟输入值。

适用人群
本文档适用于间歇性读取AI通道的数据采集系统开发人员,并希望理解其在不同软件环境下的使用方法。

概述
模拟输入DAQ设备通常以其高速连续的AI采样能力而为人们称道。 然而当使用这种方式时,产生的数据量难以筛选与存储。为促进大量数据能通过系统总线传输,它们通常以较大数据块或数据包的形式排列,但这可能会使某一特定数据点的获取产生延迟。作为高速多通道AI扫描的补充,MCC DAQ设备也支持另一种采集方式---单通道AI数值的读取。

对于USB DAQ,从一路AI通道读取单个数值的时间取决于DAQ型号,但通常为1ms到5ms。当您发出读取请求时,程序会等待DAQ设备的最终数据点。由于没有使用定速时钟或硬件存储队列,所以这被称为轮询或软件控制读取。

由于需一次次不断获取新电压值,用户经常设置软件定时器(或定时循环)。其它任务,如将一个数值传输至基于电压输入值的DAQ输出通道中,也需要使用这种循环方式。这种循环经常被称为控制循环,它要求实时的输入读取。出于简化目的,本文档中没有展示软件定时器或循环。

但随着程序中AI通道数量或采样率的增加,这种单点读取的方式可能无法满足整体吞吐量需求。同样,当程序不必时刻对每一个可获取的采样点“访问”时,例如以大数组形式处理数据或仅在最后时刻分析数据,您应该考虑波形/数组捕获的情况。

无论基于哪种软件平台,每一次模拟输入读取都必须指定以下信息:

  • AI通道数
  • 输入范围

以下两个信息将会被返回:

  • 电压读数
  • 错误代码

以下示例展示了如何使用Universal Library™、UL for Android™、NI LabVIEW™与DASYLab®采样单个AI数值。

Universal Library
以下示例介绍如何使用University Library(UL)与Visual Basic采样单个AI数值:

Channel = 0 ’定义通道数# 0
Range = MccDaq.Range.Bip10Volts ’定义±10 V的输入范围
ULStat = DaqBoard.VIn (Channel, Range, DataValue, Options)

电压读数返回至DataValue中,同时错误代码以ULStat数值返回。

UL for Android
以下示例介绍如何使用UL for Android与Java采样单个AI数值

// Establish connection to the DAQ device
mDaqDevice.connect();
// Read AI channel 0
AiDaqDevice mAiDevice = mDaqDevice.getAiDev();
aInValue = mAiDevice.aIn(0, ChannelMode.SINGLE_ENDED, Range.BIP10VOLTS,
AiUnit.VOLTS)

电压读数返回至aInValue中。

NI LabVIEW
以下示例介绍如何使用LabVIEW采样单个AI数值。接线图展示了相关VI和设置。硬件设备#0的第一个通道(AiO)被请求返回一个位于-10V到+10V期望范围内的测量值。

NI LabVIEW

DASYLab
间歇性获取读数的非编程人员应考虑这种受欢迎的DASYLab软件包。以下示例介绍如何将Analog Input模块的输出连接至Digital Meter显示模块。读取的电压值在仪表显示器中显示。

DASYLAb

双击Analog Input模块,您可以访问菜单并选择N samples模式。 这里我们指定N为1(采样点数量)。

DASYLab

 

更多信息
如果您有任何疑问或想要获取更多信息,请联系Measurement Computing Corporation。

更多技术指南可在我们的数据采集技术文章网页上获取。