这个例子展示了如何设置和启动外部事件的多触发器获取。在这种情况下,设备被配置为在上升沿信号上开始获取数据。
控件创建一个DataAcquisition对象,并添加一个模拟输入通道电压
测量类型,使用NI PCIe 6363,带IDDev4
.
dq =采集(“倪”);addinput (dq,“Dev4”,“ai0”,“电压”);
配置设备获取外部触发器上的数据。启动采集的触发器称为启动触发器。在本例中,交换机连接到终端PFI0
在设备Dev4
.表示这个物理连接(在交换机和终端之间)PFI0
)作为启动触发器。
添加数字启动触发器
触发器有一个触发器类型(数字
).的允许值数字
触发器类型是StartTrigger
.
触发器有源和目的。在本例中,源是交换机(选择)“外部”
作为源)。目的地是PFI0
终端上Dev4
(“PFI0 / Dev4”
).使用addtrigger
在DataAcquisition上添加此触发器。
addtrigger (dq,“数字”,“StartTrigger”,“外部”,“Dev4 / PFI0”);dq。DigitalTriggers
ans = DigitalTrigger带有属性:Source: "External" Destination: 'Dev4/PFI0' Type: 'StartTrigger' Condition: 'RisingEdge'
默认情况下,DataAcquisition为上升边缘数字触发器等待10秒。使用将超时时间增加到30秒DigitalTriggerTimeout
财产。
dq。DigitalTriggerTimeout = 30;
您可以将DataAcquisition配置为在应该响应多个事件时接收多个触发器。在本例中,期望有两个外部触发信号,使设备能够启动Dev4
在收到第二个触发器后开始获取扫描。
dq。NumDigitalTriggersPerRun = 2;
使用读
在收到每个配置好的数字启动触发器时获取扫描。事件的具体顺序是:
DataAcquisition开始
在接收到第一个触发器时,实际采集的一秒开始,除非超时时间已过
在收到第二个触发器时,除非超时时间已过,否则实际采集的一秒将开始
返回数据
[data, startTime] = read(dq, seconds(1));
根据两个触发器启动之间的时间观察不连续性。
(数据。时间,数据。变量,“。”)