主要内容

以不同速率从两个设备获取数据

这个例子展示了如何从两个运行在不同采样率的不同DAQ设备中获取数据。该示例使用了两个National Instruments CompactDAQ模拟输入模块(9201和9211),它们具有不同的采集速率限制。9211模块用于温度测量,其采集速率(10hz)低于9201模块,后者用于测量电压(100hz)。由于数据采集对象中的所有通道都必须以相同的速率进行采集,因此要以不同的速率从两个模块进行采集,就需要使用两个数据采集对象。要使两个DAQ设备同时启动,可以使用硬件数字触发配置。

硬件设置

  • CompactDAQ机箱NI cDAQ 9178 ('cDAQ1')

  • NI cDAQ 9211模块,热电偶测量类型('cDAQ1Mod1')

  • NI cDAQ 9201模块,电压测量类型('cDAQ1Mod2')

  • K型热电偶探头

  • 由函数发生器仪表产生的模拟电压信号

配置数据采集对象和通道

创建两个数据采集对象,每个对象具有来自9211模块或9201模块的一个模拟输入通道。数据采集对象分别以10hz和100hz的速率采集数据。

%指定两个设备的公共采集持续时间,单位为秒daqDuration = 3;%为cDAQ 9211模块创建和配置数据采集对象和通道d1 =采集(“倪”);addinput (d1,“cDAQ1Mod1”“ai0”“热电偶”);d1.Channels(1)。ThermocoupleType =“K”;d1。率= 10;
警告:由于通道配置的更改,Rate属性被降低到14.2857。
%创建并配置cDAQ 9201模块的数据采集对象和通道d2 =采集(“倪”);addinput (d2,“cDAQ1Mod2”“ai0”“电压”);d2。率= 100;

配置触发器连接

为了同步采集开始,可以使用硬件触发和源/目标方法。其中一个数据采集对象(源)被手动启动,并触发另一个数据采集对象(目标)的采集启动。

注意:如果CompactDAQ机箱模型(如NI 9174)没有PFI触发端子,可以使用一个额外的数字I/O模块(如NI 9402)来提供触发连接的PFI端子。

%配置源数据采集对象以导出触发cDAQ1的PFI0终端上的%信号addtrigger (d1,“数字”“StartTrigger”“cDAQ1 / PFI0”“外部”);将目标数据采集对象配置为在%外部触发信号在cDAQ1机箱的PFI0终端接收addtrigger (d2,“数字”“StartTrigger”“外部”“cDAQ1 / PFI0”);

开始获取并等待直到完成

目标数据采集对象必须首先启动,并在源数据采集对象启动之前为外部触发器做好准备。

开始(d2,“持续时间”daqDuration)~ d2。WaitingForDigitalTrigger暂停(0.1)结束开始(d1,“持续时间”daqDuration)%等待数据采集完成d1。运行| | d2。运行暂停(1)结束
已启动后台操作。后台操作将在3秒后停止。要读取获得的扫描,请使用read。已启动后台操作。后台操作将在3秒后停止。要读取获得的扫描,请使用read。

将数据保存为时间表

对于每个数据采集对象,将采集到的测量数据和时间戳存储在内存中。以默认的时间表格式从内存中读取所有获取的数据。

data1 =阅读(d1,“所有”);data2 =阅读(d2,“所有”);

情节获得数据

因为从两个设备获得的数据有不同的比例和单位,所以创建一个带有两个y轴的图表。

图yyaxis(data1的阴谋。时间,data1。变量,“- x”) ylabel (“温度(度C)”ylim([0 50]) yyaxis正确的情节(data2。时间,data2。变量,“o”) ylabel (“电压(V)”)包含(“时间(s)”

清理

清除数据采集对象以断开与硬件的连接。

清晰的d1d2