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