Страница 1 из 1

Измерение длительности между импульсами на цифровых входах

Добавлено: 15 июл 2016, 09:07
Elena_frz
Добрый день! подскажите, пожалуйста!!! необходимо измерить длительность между импульсами на цифровых входах Р0.1 и Р0.2. как я понимаю, для начала необходимо отловить эти импульсы, а затем каким-то образом измерить длительность. Задачу решаю с помощью пакета DAQmx.
сначала пробовала решать с помощью триггеров, но плата NI PCI-6259 не поддерживает триггеры. далее на ум пришла такая штука как Change Detection (отлавливатель сигнала). вроде бы все хорошо, только отлавливает он неправильно. два вопроса: как отловить сигналы? как измерить длительность между импульсами?
Пожалуйста, подскажите...всю голову сломала уже!

Re: Измерение длительности между импульсами на цифровых вход

Добавлено: 15 июл 2016, 09:44
Borjomy_1
Можно сделать прием данных этих двух каналов на максимальной скорости этих двух каналов. Далее принятые массивы анализировать на фронты (т.е. d<d[i+1]) и, соответственно длительность между импульсами будет разницей индексов найденых фронтов, деленной на частоту сбора

Re: Измерение длительности между импульсами на цифровых вход

Добавлено: 15 июл 2016, 11:59
Elena_frz
Borjomy_1, Не понимаю как сделать это в labview - "прием данных этих двух каналов на максимальной скорости этих двух каналов" ??? Как это реализовать программно.

Re: Измерение длительности между импульсами на цифровых вход

Добавлено: 16 июл 2016, 00:21
Artem.spb
Elena_frz писал(а):Borjomy_1, Не понимаю как сделать это в labview - "прием данных этих двух каналов на максимальной скорости этих двух каналов" ??? Как это реализовать программно.
Плата 6259 содержит 32 10-мегагерцовых цифровых линии.
Топорный вариант: на двум каналам организовать таймированный сбор данных, полученные массивы анализировать по предложенному алгоритму 0->1->0
Примерно так (ищите примеры, там вариации)
DI_cont.png
Т.к. опрос таймированный, dt между значениями фиксирован и известен.

Менее топорно на мой взгляд поколдовать со счётчиками. Есть функция измерения времени между фронтами импульсов двух разных входов. Попробуйте её
DI_edge.png
Ну или поколдовать с таймерами. А что значит, что триггеры не работают? Как так? Вот пуск-стоп-сброс таймера по триггеру был бы вполне уместен, если предыдущий вариант не заработает.

Re: Измерение длительности между импульсами на цифровых вход

Добавлено: 18 июл 2016, 09:22
Elena_frz
Artem.spb, спасибо, возьму на вооружение! Когда запускаю задачу с триггером, вылетает ошибка "Specified property is not supported by the device or is not applicable to the task"!!! Пока пробую решить задачу с помощью Change Detection.

Re: Измерение длительности между импульсами на цифровых вход

Добавлено: 18 июл 2016, 22:31
Artem.spb
Можете скинуть ваш :vi: с триггерами?
Приложенный вариант (Change Detection) в данном случае не подходит, потому что опрос осуществляется программно, а не аппаратно. Так что время появления фронта вы узнаете очень примерно (с погрешностью 100 мс).

Re: Измерение длительности между импульсами на цифровых вход

Добавлено: 25 июл 2016, 09:52
Elena_frz
Artem.spb, вот программа с триггером!

Re: Измерение длительности между импульсами на цифровых вход

Добавлено: 29 июл 2016, 15:41
Artem.spb
если я правильно понял, вам надо то, что на картинке?
Untitled-1.png
но по триггеру с такой маской вы словите данные ПОСЛЕ того, как первый сигнал станет 0, а второй 1, никакой предыстории там нет, так что вычислить длительность не получится, даже если бы такая конфигурация работала.

Re: Измерение длительности между импульсами на цифровых вход

Добавлено: 29 июл 2016, 16:13
Elena_frz
Artem.spb, Вы поняли правильно. наверное стоит поиграть с таймер. может подкинете идейку?

Re: Измерение длительности между импульсами на цифровых вход

Добавлено: 01 авг 2016, 17:10
Artem.spb
два варианта я предложил 16 июл 2016, 01:21.
Сейчас у меня мало времени на эксперименты, поэтому детально что-то посоветовать не могу.

Re: Измерение длительности между импульсами на цифровых вход

Добавлено: 02 авг 2016, 09:07
Elena_frz
Artem.spb, за идею спасибо! :thank: