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

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

Добавлено: 22 апр 2020, 15:00
dakishi
Добрый день!

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

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

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


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

Не болейте!

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

Добавлено: 22 апр 2020, 15:28
Vasiliy Baev
:bye:

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

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

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

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