Выбор trigger-a для построения счетчиков

Простейшие вопросы в области инженерной разработки
Ответить
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Репутация: 0
Версия LabVIEW: 2019
Контактная информация:

Выбор trigger-a для построения счетчиков

Сообщение dakishi »

Добрый день!

Вопрос в следующем: можете подсказать, где в LabView можно найти триггер, который говорит нам о том, что мы зафиксировали RisingEdge или FallingEdge.

Это делается для следующего:
Я создаю асинхронный триггер работающий в счётном режиме. Всё что он в принципе должен делать - это переключатся по FallingEdge на противоположное значение (1,0) с каждым событием.
Из таких триггеров собирается асинхронный счётчик импульсов.

Входные импульсы воспринимаются через DAQ подприборы и далее анализируются счетчиком/асинхронными триггерами - количество импульсов, скважность, длительность.


Проблема просто в том, что я не нашел в LabView чего то, что будет сообщать о FallingEdge сразу, как оно это обнаруживает, кроме DAQ trigger, который лишь один раз включается по Edge чтобы активировать task reference.

Не болейте!

Аватара пользователя
Vasiliy Baev

Activity Gold Bronze
leader
leader
Сообщения: 512
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Репутация: 0
Версия LabVIEW: 2013
Откуда: Санкт-Петербург
Контактная информация:

Re: Выбор trigger-a для построения счетчиков

Сообщение Vasiliy Baev »

:bye:
Вложения
UTIL_Edge_Detecet.vi
(17.34 КБ) 14 скачиваний
UTIL_Front_Detect.vi
(8.65 КБ) 11 скачиваний
UTIL_Latch Falling Edge.vi
(27.86 КБ) 10 скачиваний
UTIL_Latch Rising Edge.vi
(15.01 КБ) 11 скачиваний
UTIL_RS_Trigger.vi
(21.41 КБ) 14 скачиваний
UTIL_SR_Trigger.vi
(21.39 КБ) 10 скачиваний

Blackman

Activity
leader
leader
Сообщения: 917
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Репутация: 0
Версия LabVIEW: 6.1,8.5,20
Контактная информация:

Re: Выбор trigger-a для построения счетчиков

Сообщение Blackman »

Проблема просто в том, что я не нашел в LabView чего то, что будет сообщать о FallingEdge сразу, как оно это обнаруживает
1. Signal Processing -> Point By Point -> Other Functions -> Bool Crossing
2. Если установлен Real Time -> Function Blocks -> Edge Detect & Bistable/Flip-Flop

ujin
junior
junior
Сообщения: 66
Зарегистрирован: 28 июл 2019, 13:16
Репутация: 0
Версия LabVIEW: 19
Контактная информация:

Re: Выбор trigger-a для построения счетчиков

Сообщение ujin »

В процессе разбора примеров с Real Time устройствами я заметил, что вместо While Loop и Shift register в примерах используют Freedback Node
RS.png
RS.png (13.16 КБ) 229 просмотров
.
Вроде логично. Не создается дополнительный поток ради одной переменной.
Такие VI должны иметь свойство Shared clone reentrant execution или Preallocated clone reentrant execution.
В связи с этим их плохо использовать внутри циклов. Можно Freedback Node условно вынести наружу
RS_ext.png
RS_ext.png (12.13 КБ) 229 просмотров
Если много дискретных переменных можно использовать массивы. Но размер массива заранее может быть не известен и Freedback Node вызовет зацикливание в пустом массиве. Можно добавить проверку на пустой массив.
RSB.png
RSB.png (16.74 КБ) 229 просмотров
И если использовать эти VI с внешними Freedback Node в виде массива, то массив от Freedback Node не нужно автоиндексировать. Тогда в нем первоначально подставятся значения по умолчанию и массив не будет пустой.
N.png
N.png (12.02 КБ) 229 просмотров
В обучающих программах я этого не видел. Лучше использовать VI из стандартных библиотек. Если не хватит стандартных возможно принципы сборки подобных VI пригодятся.

Ответить

Вернуться в «Для чайников»