此示例显示了如何从不同采样率运行的两个不同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