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

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

Создайте DataAcquisition и добавьте аналоговый входной канал

Создайте 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)

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