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

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

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

Примечание

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

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

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

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

clockFreq = 100;

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

sClk = daq.createSession('ni');
ch1 = addCounterOutputChannel(sClk,'Dev1',0,'PulseGeneration')

Совет

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

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

clkTerminal = ch1.Terminal;

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

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

ch1.Frequency = clockFreq

Установите сеанс на непрерывный режим.

sClk.IsContinuous = true;

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

Этот пример показывает, как создать цифровой входной сеанс и импортировать внешний таймер из сеанса часов.

Создайте сеанс и добавьте строку от строки порта 0 2 на Dev1.

s = daq.createSession('ni');
addDigitalChannel(s,'Dev1','Port0/Line2','InputOnly')

Примечание

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

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

Совет

Ресурсы терминала PFI могут быть совместно использованы. Проверяйте свою маршрутизацию устройства в NI МАКСИМУМ.

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

s.Rate = clockFreq;

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

addClockConnection(s,'External',['Dev1/' clkTerminal],'ScanClock');

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

startBackground(sClk);
for i = 1:10 
    if sClk.IsRunning
        break;
    else
        pause(0.1);
    end
end

Получите и отобразите данные на графике.

dataIn = startForeground(s);
plot(dataIn)

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте