В этом примере показано, как настроить и запустить мультитриггерный захват на внешнем событии. В этом экземпляре устройство сконфигурировано, чтобы начать получать данные по возрастающему сигналу ребра.
Создайте объект DataAcquisition и добавьте канал аналогового входа с Voltage
тип измерения, с помощью NI PCIe 6363, с ID Dev4
.
dq = daq("ni"); addinput(dq,"Dev4","ai0","Voltage");
Сконфигурируйте устройство, чтобы получить данные по внешнему триггеру. Триггер, который запускает захват, называется Триггером Запуска. В этом примере переключатель соединен к терминалу PFI0
на устройстве Dev4
. Представляйте это физическое соединение (между переключателем и терминалом PFI0
) как триггер запуска.
Добавьте цифровой триггер запуска
Триггер имеет триггерный тип (Digital
). Позволенное значение для Digital
триггерным типом является StartTrigger
.
Триггер имеет источник и место назначения. В этом примере источник является переключателем (выберите 'External'
как источник). Местом назначения является PFI0
терминал на Dev4
('PFI0/Dev4'
). Используйте addtrigger
чтобы добавить это включает DataAcquisition.
addtrigger(dq,"Digital","StartTrigger","External","Dev4/PFI0"); dq.DigitalTriggers
ans = DigitalTrigger with properties: Source: "External" Destination: 'Dev4/PFI0' Type: 'StartTrigger' Condition: 'RisingEdge'
По умолчанию DataAcquisition ожидает в течение 10 секунд возрастающего ребра цифровой триггер. Увеличьте тайм-аут до 30 секунд с помощью DigitalTriggerTimeout
свойство.
dq.DigitalTriggerTimeout = 30;
Можно сконфигурировать DataAcquisition, чтобы получить несколько триггеров, когда он должен ответить на несколько событий. В этом примере два внешних триггерных сигнала ожидаются, включая устройству Dev4
начинать получать сканы по получении второго триггера.
dq.NumDigitalTriggersPerRun = 2;
Используйте read
получать сканы по получении каждого сконфигурированного цифрового триггера запуска. Определенная последовательность событий:
DataAcquisition запускается
Одна секунда фактического захвата начинается по получении первого триггера, если период тайм-аута не истекает
Одна секунда фактического захвата начинается по получении второго триггера, если период тайм-аута не истекает
Данные возвращены
[data, startTime] = read(dq, seconds(1));
Заметьте, что разрыв на основе времени между этими двумя инициировал, запускается.
plot(data.Time, data.Variables, '.')