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

Простейшие вопросы в области инженерной разработки
Ответить
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Версия 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
Сообщения: 545
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Благодарил (а): 9 раз
Поблагодарили: 10 раз
Контактная информация:

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

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

:bye:
Вложения
UTIL_Edge_Detecet.vi
(17.34 КБ) 123 скачивания
UTIL_Front_Detect.vi
(8.65 КБ) 103 скачивания
UTIL_Latch Falling Edge.vi
(27.86 КБ) 105 скачиваний
UTIL_Latch Rising Edge.vi
(15.01 КБ) 108 скачиваний
UTIL_RS_Trigger.vi
(21.41 КБ) 109 скачиваний
UTIL_SR_Trigger.vi
(21.39 КБ) 92 скачивания
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия 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
user
user
Сообщения: 94
Зарегистрирован: 28 июл 2019, 13:16
Версия LabVIEW: 19
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

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

Сообщение ujin »

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

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