Второй день не могу решить простейшую задачу.
Надо запустить AI на 9205 и счёчик (энкодер) на 9401 одновременно. В сети все вариации вертятся вокруг использования частоты AI в качестве стартового триггера
Но при запуске задача ругается, что она такой тип не поддерживает.
Пробовал старт по времени - тот же результат. Правда, я проверяю на эмуляторе, может в этом проблема?
Кто-нибудь может посоветовать решение?
counter + trigger
-
Andrew Lunev
- VIP
- Сообщения: 957
- Зарегистрирован: 11 дек 2010, 12:31
- Награды: 2
- Версия LabVIEW: 2014-2021
- Откуда: Москва
- Благодарил (а): 4 раза
- Поблагодарили: 10 раз
Re: counter + trigger
Мне кажется задачи для счетчиков на cDAQ в принципе не поддерживают стартовый триггер. Такое решение должно заработать на PCI или PXI платах NI, но cDAQ имеет много особенностей в работе.
Возможно заработает такой вариант, но как именно он работает я не очень понимаю. Скорее всего передача текущего угла из буфера модуля в буфер Labview будет синхронизирована с измерениями аналоговых сигналов. Но скорее всего именно это вам и нужно.
Возможно заработает такой вариант, но как именно он работает я не очень понимаю. Скорее всего передача текущего угла из буфера модуля в буфер Labview будет синхронизирована с измерениями аналоговых сигналов. Но скорее всего именно это вам и нужно.
-
- professor
- Сообщения: 3407
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: counter + trigger
Этот вариант я пробовал и он работает, но задачи стартуют не синхронно, поэтому первая точка напряжения не соответствует первому значению угла.
-
Andrew Lunev
- VIP
- Сообщения: 957
- Зарегистрирован: 11 дек 2010, 12:31
- Награды: 2
- Версия LabVIEW: 2014-2021
- Откуда: Москва
- Благодарил (а): 4 раза
- Поблагодарили: 10 раз
Re: counter + trigger
Странно. Сам сигнал AI Sample Clock должен начать изменяться только после старта задачи AI. До старта задачи фронтов у этого сигнала не должно быть и измерения на счетчике не должны начаться. Тут важна именно последовательность запуска задач. Сначала должна стартовать задача счетчика (Slave) и потом AI (Master).
Вот пример из курса DAQ от NI. Описание:
Задача аналогового вывода – главная
В задаче аналогового ввода в качестве источника импульсов синхронизации используется ao/SampleClock
Задача аналогового ввода запускается, но измерения не начинаются, т.к. еще нет импульсов аналогового вывода
Задача аналогового вывода запускается и начинает формировать последовательность импульсов отсчетов Sample Clock
Задача аналогового ввода по каждому фронту импульсов ao/SampleClock выполняет измерение
Если вдруг все равно не удастся добиться синхронности старта, то можно при первом чтении данных из буфера счетчика вычитать все данные и оставить одно последнее, оно скорее всего будет соответствовать первому из буфера AI. А дальше уже все измерения пойдут синхронно. Но в этом случае последовательность запуска задач должна быть обратной.
Вот пример из курса DAQ от NI. Описание:
Задача аналогового вывода – главная
В задаче аналогового ввода в качестве источника импульсов синхронизации используется ao/SampleClock
Задача аналогового ввода запускается, но измерения не начинаются, т.к. еще нет импульсов аналогового вывода
Задача аналогового вывода запускается и начинает формировать последовательность импульсов отсчетов Sample Clock
Задача аналогового ввода по каждому фронту импульсов ao/SampleClock выполняет измерение
Если вдруг все равно не удастся добиться синхронности старта, то можно при первом чтении данных из буфера счетчика вычитать все данные и оставить одно последнее, оно скорее всего будет соответствовать первому из буфера AI. А дальше уже все измерения пойдут синхронно. Но в этом случае последовательность запуска задач должна быть обратной.
-
- professor
- Сообщения: 3407
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: counter + trigger
Мне тоже это странно. Теория говорит одно, а практика показывает другое. Хотя я тестирую через эмуляцию, а там результат может отличаться от реального. Но я проверяю вот так: Стартую задачу и проверяю наличие значений. Если я правильно понимаю, до старта мастера буфер должен быть пустым, а у меня получается, что там что-то есть.Andrew Lunev писал(а): ↑24 ноя 2020, 07:29 Странно. Сам сигнал AI Sample Clock должен начать изменяться только после старта задачи AI.
Вот это я не понял, почему они будут синхронными? пока оно там вычитает, пока всякие процессы пройдут, всё опять рассинхронизируется.можно при первом чтении данных из буфера счетчика вычитать все данные и оставить одно последнее, оно скорее всего будет соответствовать первому из буфера AI.
-
- professor
- Сообщения: 3407
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: counter + trigger
Вопрос закрыт. На реальном железе буфер пустой, так что метод использовать чужую тактовую частоту работает