技术指南:使用MCC数据采集设备获取模拟波形

目的
介绍如何在不同软件平台上使用MCC数据采集设备获取模拟波形。

适用人群
本文档适用于需要实时数字化模拟波形的数据采集系统开发人员,并希望理解其在不同软件环境下如何实现波形的获取。

概述
对于变化十分缓慢的模拟现象,以极低频率采样信号绰绰有余。采样时间间隔的变化是可接受的,因为获取信号的当前状态是主要需求。这种情况下,对每路AI通道进行十分简单的“软件轮询”或许可以满足。然而如果信号随时间流逝改变迅速,或用户对信号的频率成分感兴趣,则需要更快的A/D采样。实际上,不仅需要更快的采样,统一且控制良好的采样间隔也很重要。

MCC的AI DAQ设备包含板载定时电路,统一调节来自单通道或多通道AI的读数。MCC DAQ设备也包含板载存储器,用来排列数据并通过接口总线(通常为USB)周期性传输有效大小的数据包。与DAQ硬件配合使用的MCC软件驱动接收数据包,将它们一起捆绑至存储器中的较大缓存区,从而保证高级编程语言用户能获取这些数据和状态。

应用程序开发人员希望从AI采样时长与数据访问需求的角度理解项目。简言之,我需要多长的采样时间与我需要在收集中还是收集完毕之后访问数据。 最简单的情况是在较短时间内收集数据,并且收集完毕后再处理数据。对该情况进行延伸,开发人员可能需要在收集过程中开始处理数据---例如要为操作者提供实时显示。这种情况下,开发人员要在新数据不断填充的同时访问数据缓存区。MCC在Background模式下提供对此类操作的支持。最复杂的情况是收集时间十分长。由于计算机内存有限,此时一个循环缓存区是必要的。随着新数据不断进入,应用程序必须能完成所需的运算、显示亦或需要将结果记录至硬盘并保证高效跟进。虽然这不是本文档的重点,但MCC软件驱动在Continuous模式下支持这种高级需求。

对于非连续扫描,无论使用哪种软件平台,都需要指定以下信息:

  • AI通道数
  • 收集的采样点数
  • 时钟频率
  • 输入范围
  • 存储数据的缓存区

除A/D数据外,错误代码也会被返回。

以下示例展示了如何使用Universal Library™,UL for Android™,NI LabVIEW™,DASYLab®和DAQami实现非连续扫描。

Universal Library
以下示例介绍如何使用Universal Library和Visual Basic实现非连续扫描:

LowChan = 0
HighChan = 0 '从通道0采集数据
Count = 50000 '定义采样点数
Rate = 50000 '定义每通道时钟频率
Range = MccDaq.Range.Bip10Volts ‘定义信号输入范围:±10V
ULStat = DaqBoard.AInScan(LowChan, HighChan, Count, Rate, Range, MemHandle, Options)

采样数据返回至所提供句柄处PC存储器中的缓存区,同时错误代码作为ULStat数值返回。

然后我们将缓存区中的数据复制到本地程序数组中,命名为ADData:

ULStat = MccDaq.MccService.WinBufToArray(MemHandle, ADData, FirstPoint, Count)

至此,为保证高效,数据已经以数字格式传输并存储。我们可以使用以下UL函数将其转化为电压:

ULStat = DaqBoard.ToEngUnits(Range, ADData(0), EngUnits)

UL for Android
以下示例介绍如何使用UL for Android和Java实现非连续扫描:

lowChan = 0;
highChan = 0; //从通道0采集数据
mode = ChannelMode.SINGLE_ENDED; //定义通道信号连接模式
range = Range.BIP10VOLTS; //定时输入信号范围:±10V
samplesPerChan = 50000; //定义每通道采样数
rate = 50000; //定义每通道的时钟频率
mUnit = AiUnit.VOLTS; //定义电压单位
actualScanRate = mAiDevice.aInScan(lowChan, highChan, mode, range, samplesPerChan, rate, options, mUnit, mScanData);

通过调用aInScan()函数收集数值。数据被返回到mScanData数组中。

NI LabVIEW
以下示例介绍如何使用LabVIEW实现非连续扫描。接线图显示了相关VI和设置。硬件设备#0的第一个通道(AiO)被请求以50000Hz的频率返回50000个采样点,期望范围为 -10 V 到 +10 V。最终电压数据可以Measurement Array的形式获取。

NI LabVIEW

DASYLab
非编程人员可以考虑使用一种软件包,它能十分轻松地收集、显示并存储波形数据。其中一种受欢迎的软件包是DASYLab。

以下工作表示例演示了如何将Analog Input模块的输出连接至 Y/t Chart Display模块。采集到的电压波形可在图表显示中查看。

DASYLAb

双击Analog Input模块会打开对话框,您可以根据需求启用通道,选择输入范围并指定采样率。

DASYLab

 

DAQami
以下示例展示了DAQami采集界面,您可以设置采样率与采样次数。

DAQami

最终数据被绘制于DAQami显示页面:

DAQami

 

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

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