Этот пример показывает, как получить цифровые данные с помощью встречного выходного канала, который генерирует импульсы как внешний таймер. Счетчик обеспечивает часы в этом приобретении.
В этом примере мы сгенерируем часы в одном сеансе с помощью встречного вывода, образовывают канал и экспортируют часы в другой сеанс, который получает синхронизированные цифровые данные.
Импорт внешнего таймера автоматически не устанавливает уровень вашего сеанса. Вручную установите уровень сеанса совпадать с ожидаемой частотой внешнего таймера.
Этот пример показывает, как создать сеанс часов со встречным выходным каналом, который будет постоянно генерировать импульсы частоты в фоновом режиме. Используйте этот канал в качестве внешнего таймера в вашем синхронизированном цифровом приобретении.
Создайте частоту часов, которую вы будете использовать, чтобы синхронизировать частоту и уровень вашего встречного вывода, а также уровень вашего цифрового приобретения на следующем шаге.
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)