Добрый день!
Вопрос в следующем: можете подсказать, где в LabView можно найти триггер, который говорит нам о том, что мы зафиксировали RisingEdge или FallingEdge.
Это делается для следующего:
Я создаю асинхронный триггер работающий в счётном режиме. Всё что он в принципе должен делать - это переключатся по FallingEdge на противоположное значение (1,0) с каждым событием.
Из таких триггеров собирается асинхронный счётчик импульсов.
Входные импульсы воспринимаются через DAQ подприборы и далее анализируются счетчиком/асинхронными триггерами - количество импульсов, скважность, длительность.
Проблема просто в том, что я не нашел в LabView чего то, что будет сообщать о FallingEdge сразу, как оно это обнаруживает, кроме DAQ trigger, который лишь один раз включается по Edge чтобы активировать task reference.
Не болейте!
Выбор trigger-a для построения счетчиков
-
Vasiliy Baev
- leader
- Сообщения: 545
- Зарегистрирован: 31 окт 2011, 09:02
- Награды: 4
- Версия LabVIEW: 2019
- Откуда: Санкт-Петербург
- Благодарил (а): 9 раз
- Поблагодарили: 10 раз
- Контактная информация:
Re: Выбор trigger-a для построения счетчиков
- Вложения
-
- 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 скачивания
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Выбор trigger-a для построения счетчиков
1. Signal Processing -> Point By Point -> Other Functions -> Bool CrossingПроблема просто в том, что я не нашел в LabView чего то, что будет сообщать о FallingEdge сразу, как оно это обнаруживает
2. Если установлен Real Time -> Function Blocks -> Edge Detect & Bistable/Flip-Flop
-
- user
- Сообщения: 94
- Зарегистрирован: 28 июл 2019, 13:16
- Версия LabVIEW: 19
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
- Контактная информация:
Re: Выбор trigger-a для построения счетчиков
В процессе разбора примеров с Real Time устройствами я заметил, что вместо While Loop и Shift register в примерах используют Freedback Node
Вроде логично. Не создается дополнительный поток ради одной переменной.
Такие VI должны иметь свойство Shared clone reentrant execution или Preallocated clone reentrant execution.
В связи с этим их плохо использовать внутри циклов. Можно Freedback Node условно вынести наружу Если много дискретных переменных можно использовать массивы. Но размер массива заранее может быть не известен и Freedback Node вызовет зацикливание в пустом массиве. Можно добавить проверку на пустой массив. И если использовать эти VI с внешними Freedback Node в виде массива, то массив от Freedback Node не нужно автоиндексировать. Тогда в нем первоначально подставятся значения по умолчанию и массив не будет пустой. В обучающих программах я этого не видел. Лучше использовать VI из стандартных библиотек. Если не хватит стандартных возможно принципы сборки подобных VI пригодятся.
.Вроде логично. Не создается дополнительный поток ради одной переменной.
Такие VI должны иметь свойство Shared clone reentrant execution или Preallocated clone reentrant execution.
В связи с этим их плохо использовать внутри циклов. Можно Freedback Node условно вынести наружу Если много дискретных переменных можно использовать массивы. Но размер массива заранее может быть не известен и Freedback Node вызовет зацикливание в пустом массиве. Можно добавить проверку на пустой массив. И если использовать эти VI с внешними Freedback Node в виде массива, то массив от Freedback Node не нужно автоиндексировать. Тогда в нем первоначально подставятся значения по умолчанию и массив не будет пустой. В обучающих программах я этого не видел. Лучше использовать VI из стандартных библиотек. Если не хватит стандартных возможно принципы сборки подобных VI пригодятся.