exponenta event banner

Синхронизация устройств NI PCI с помощью RTSI

В этом примере показано, как получать синхронизированные данные с двух устройств PCI. Синусоидальная волна подключена к каналу 0 NI PCI-6251 и к каналу 0 NI PCIe-6363. Синхронизированная работа проверяется путем демонстрации запаздывания нулевой фазы между полученными сигналами.

Создание сбора данных и добавление канала аналогового ввода

Создайте DataAcquisition и добавьте каналы ввода аналогового входного напряжения от устройств NI PCI-6251 и NI PCIe-6363.

dd = daq("ni");
addinput(dd,"Dev3","ai0","Voltage");
addinput(dd,"Dev4","ai0","Voltage");

Получение несинхронизированных данных

Используйте read для запуска сбора данных.

[data,time] = read(dd,seconds(1),"OutputFormat","Matrix");
plot(time, data)

Имеется небольшое фазовое отставание между двумя канальными входами. DataAcquisition запускает два канала близко друг к другу, но устройства не совместно используют информацию о часах и триггерах и поэтому не полностью синхронизированы.

Настройка аппаратных соединений

Подключите устройства PCI с помощью кабеля RTSI ® (Real-Time System Integration) и зарегистрируйте его в программе Measurement & Automation Explorer ®. Чтобы синхронизировать получение, разделите часы сканирования и запустите триггер между двумя устройствами.

Выберите исходные и конечные устройства

Устройство, которое обеспечивает сигналы управления и синхронизации, называется устройством источника, а устройство, которое принимает эти сигналы, называется устройством назначения. В этом примере: Dev3 является исходным устройством и Dev4 является устройством назначения.

Добавить триггер запуска

Кабель RTSI создает физическое соединение между RTSI0 терминал включен Dev3 и RTSI0 терминал включен Dev4. Используйте это подключение для совместного использования триггера запуска между исходным и конечным устройствами.

Использовать addtrigger для добавления цифрового триггера запуска из 'RTSI0/PFI3' (источник) в 'RTSI0/Dev4' (пункт назначения).

addtrigger(dd,"Digital","StartTrigger","Dev3/RTSI0","Dev4/RTSI0");

Добавить часы сканирования

Использовать addclock для совместного использования часов сканирования с помощью RTSI1 терминальное соединение.

addclock(dd,"ScanClock","Dev3/RTSI1","Dev4/RTSI1");

Получение данных с синхронизацией

Использовать read для получения данных.

[data,time] = read(dd,seconds(1));
plot(time,data)

Две синусоидальные волны перекрываются с нулевым фазовым запаздыванием, подтверждая, что устройства полностью синхронизированы.