主要内容

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

此示例显示了如何从不同采样率运行的两个不同DAQ设备获取数据。该示例使用两个国家仪器CompactDAQ模拟输入模块(9201和9211),具有不同的采集率限制。9211模块用于温度测量,并以比9201模块更慢的速率(10Hz)获取,用于测量电压(100Hz)。由于数据采集对象中的所有通道必须以相同的速率获取,因为您需要使用两个数据采集对象的多个速率从两个模块获取。要使两个DAQ设备同时启动,可以使用硬件数字触发配置。

硬件设置

  • CompactDAQ机箱NI CDAQ 9178('CDAQ1')

  • NI CDAQ 9211模块具有热电偶测量类型('CDAQ1Mod1')

  • NI CDAQ 9201模块电压测量类型('CDAQ1MOD2')

  • 热电偶探针(k型)

  • 由功能发生器仪器产生的模拟电压信号

配置数据采集对象和通道

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

%在几秒钟内为两个设备指定常见的采集持续时间daqduration = 3;%创建和配置CDAQ 9211模块的DataAcquisition对象和通道d1 = daq('你');addInput(D1,'cdaq1mod1''ai0''热电偶');D1.Channels(1).thermocoupletype ='K';d1.rate = 10;
警告:由于通道配置的变化,速率属性降至14.2857。
%创建和配置CDAQ 9201模块的DataAcquisition对象和通道d2 = daq('你');addInput(D2,'cdaq1mod2''ai0''电压');d2.rate = 100;

配置触发连接

要同步采集启动,可以使用硬件触发和主/从方法。手动启动数据采集对象(主机)之一,并触发其他数据获取对象(从机)的获取开始。

注意:如果您有一个没有PFI触发终端的CompactDAQ机箱模型(如NI 9174),您可以使用额外的数字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.running ||d2.running暂停(1)结尾
后台操作已启动。后台操作将在3秒后停止。要读取获得的扫描,请使用读取。后台操作已启动。后台操作将在3秒后停止。要读取获得的扫描,请使用读取。

将数据保存为时间表

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

data1 =读取(d1,'全部');data2 =读取(d2,'全部');

情节获取数据

由于来自两个设备的获取数据具有不同的尺度和单位,因此使用两个Y轴创建图表。

图yyaxis.剩下绘图(data1.time,data1.variables,'-X')ylabel('温度(DEG。C)')ylim([0 50])yyaxis绘图(data2.time,data2.variables,'-O')ylabel('电压(v)')Xlabel('时间''

清理

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

清除D1D2