Можно синхронизировать несколько устройств в DataAcquisition с помощью часов общего скана и триггера общего запуска. Можно синхронизировать устройства с помощью линий PFI или RTSI.
Требование
Вы должны зарегистрировать свой кабель RTSI с помощью National Instruments ™® Measurement & Automation Explorer.
Этот пример показывает, как получить синхронизированные данные о напряжении от нескольких устройств с помощью триггера общего запуска и общего синхроимпульса скана. Аналоговые входные каналы на всех трех устройствах соединены с одним и тем же генератором функций.
Создайте DataAcquisition и добавьте один входной канал напряжения от каждого устройства:
NI- USB-6211 с идентификатором устройства Dev1
NI USB 6218 с идентификатором устройства Dev2
NI USB 6255 с идентификатором устройства Dev3
d = daq("ni"); addinput(d,"Dev1",0,"Voltage") addinput(d,"Dev2",0,"Voltage") addinput(d,"Dev3",0,"Voltage")
Выберите терминал PFI4
на Dev1
в качестве источника запуска. Подключите источник триггера к терминалам назначения PFI0
на Dev2
и PFI0
на Dev3
.
addtrigger(d,"Digital","StartTrigger","Dev1/PFI4","Dev2/PFI0") addtrigger(d,"Digital","StartTrigger","Dev1/PFI4","Dev3/PFI0")
Выберите терминал PFI5
на Dev1
в качестве источника синхроимпульса скана. Подключите его к терминалам назначения PFI1
на Dev2
, и PFI1
на Dev3
.
addclock(d,"ScanClock","Dev1/PFI5","Dev2/PFI1") addclock(d,"ScanClock","Dev1/PFI5","Dev3/PFI1")
Получите данные и присвойте их dataIn
.
dataIn = read(d,350,"OutputFormat","Matrix");
Постройте график данных.
plot(dataIn)
Все каналы подключены к одному и тому же генератору функций, поэтому на графике отображаются перекрывающиеся сигналы, указывающие на синхронизацию.
В этом примере показано, как синхронизировать запуск триггера выходных операций счетчика из двух каналов на разных устройствах.
d = daq("ni"); addoutput(d,"Dev1","ctr0","PulseGeneration") addoutput(d,"Dev2","ctr0","PulseGeneration") addtrigger(d,"Digital","StartTrigger","Dev1/PFI0","Dev2/PFI0") start(d)
Этот пример использует два устройства USB или PCI, но может быть изменен для каналов через корпус CompactDAQ или PXI. Если у вас есть выходные модули CompactDAQ счетчика в том же корпусе, не обязательно вызывать addtrigger
; но это необходимо для нескольких модулей в одном корпусе PXI.
Этот пример показывает, как получить синхронизированные данные от двух устройств Dynamic Signal Analyzer (DSA) PXI, NI PXI-4462 и NI PXI-4461, используя AutoSyncDSA
свойство.
Создайте DataAcquisition и добавьте один аналоговый входной канал напряжения от каждого из двух устройств PXI
d = daq("ni"); addinput(d,"PXI1Slot2",0,"Voltage") addinput(d,"PXI1Slot3",0,"Voltage")
Получение данных на переднем плане без синхронизации каналов:
[data,time] = read(d,seconds(1),"OutputFormat","Matrix"); plot(time,data)
Возвращенные данные не синхронизируются.
Синхронизируйте два канала с помощью AutoSyncDSA
свойство:
d.AutoSyncDSA = true;
Получите данные на переднем плане и постройте график:
[data,time] = read(d,seconds(1),"OutputFormat","Matrix"); plot(time,data)
Теперь данные синхронизированы.
В этом примере показано, как получить данные о напряжении от двух устройств PXI на том же корпусе, используя общий триггер запуска для синхронизации операций в DataAcquisition. Устройства PXI имеют общие опорные часы, которые автоматически синхронизируют часы скана. Необходимо добавить только триггерные соединения для синхронизации операций в DataAcquisition с PXI-устройствами. Аналоговые входные каналы на всех устройствах соединены с одним и тем же генератором функций.
Создайте DataAcquisition и добавьте один входной канал напряжения от каждого устройства NI-PXI 4461 с идентификаторами PXI1Slot2
и PXI1Slot3
.
d = daq("ni"); addinput(d,"PXI1Slot2",0,"Voltage") addinput(d,"PXI1Slot3",0,"Voltage")
Добавьте начальное триггерное соединение к терминальному PXI_Trig0
на PXI1Slot2
и соедините его с терминалом PXI_Trig0
на PXI1Slot3
. Платы PXI подключаются через объединительную плату корпуса, поэтому вы не должны проводить их физически.
addtrigger(d,"Digital","StartTrigger","PXI1Slot2/PXI_Trig0","PXI1Slot3/PXI_Trig0")
Получите данные и присвойте их dataIn
.
dataIn = read(d,seconds(1),"OutputFormat","Matrix");
Постройте график данных.
plot(dataIn)
Все каналы подключены к одному и тому же генератору функций и имеют общие опорные часы. Сигналы перекрываются, указывая на синхронизацию.