Получите цифровые данные Используя встречный Выходной канал как внешний таймер

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

Sharing counter pulses as an external clock

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

Примечание

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

Сгенерируйте часы Используя встречный Выходной канал

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

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

clockFreq = 100;

Создайте объект DataAcquisition и добавьте встречный выходной канал для PulseGeneration тип измерения.

daqClk = daq("ni");
ch1 = addoutput(daqClk,"Dev1","ctr0","PulseGeneration");

Совет

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

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

clkTerminal = ch1.Terminal;

Установите частоту своего встречного канала к тактовой частоте.

ch1.Frequency = clockFreq;

Используйте встречные часы, чтобы получить синхронизированные цифровые данные

Создайте DataAcquisition для цифрового входа и импортируйте внешний таймер из часов DataAcquisition.

Создайте DataAcquisition и добавьте цифровую входную линию от порта 0 линия 2 на Dev1.

daqDgt = daq("ni");
addinput(daqDgt,"Dev1","Port0/Line2","Digital")

Примечание

Не вся поддержка устройств синхронизировала цифровые операции I/O с аппаратной синхронизацией. Для этих устройств можно использовать синхронизированные операции программного обеспечения с одним вызовами скана read и write.

Устройства, которые поддерживают синхронизированные цифровые операции I/O, не могут поддержать их на всех портах. Проверяйте свои спецификации устройств.

Совет

Ресурсы терминала PFI могут быть совместно использованы. Проверяйте свою маршрутизацию устройства в приложение MAX NI.

Установите частоту развертки DataAcquisition на то же значение как уровень встречного выходного канала.

daqDgt.Rate = clockFreq;

Импортируйте часы из своих часов DataAcquisition, чтобы синхронизировать ваш захват.

addclock(daqDgt,"ScanClock","External",clkTerminal)

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

start(daqClk,"Continuous")

Импульсная генерация сразу начинается на встречном выходе. Этому не нужны данные.

Получите и постройте цифровые входные данные.

dataIn = read(daqDgt,seconds(1),"OutputFormat","Matrix");
plot(dataIn(1:100,1))

Остановите часы DataAcquisition.

stop(daqClk)

Похожие темы