PDA

Просмотр полной версии : Линия задержки



Андрей 77
07.09.2023, 22:18
Добрый день.Часто в чужом коде встречаю линию задержки.Читал в справки Линия задержки используется для создания задержки на один цикл передачи значения с выхода компонента на вход.Не могу понять для чего это нужно и где эта задержка применяется если можно на пару примерах?Я взял SR триггер с его выхода подал на вход R линию задержки и получилось что я могу одной кнопкой вкл и выкл триггер.А для чего еще нужна задержка для аварий или еще для чего?

kondor3000
07.09.2023, 22:26
Добрый день.Часто в чужом коде встречаю линию задержки.Читал в справки Линия задержки используется для создания задержки на один цикл передачи значения с выхода компонента на вход.Не могу понять для чего это нужно и где эта задержка применяется если можно на пару примерах?Я взял SR триггер с его выхода подал на вход R линию задержки и получилось что я могу одной кнопкой вкл и выкл триггер.А для чего еще нужна задержка для аварий или еще для чего?

Линия задержки используется, во многих блоках, например внутри R_Trig и F_Trig, для включения выхода на один цикл.
Можно использовать задержку для сравнения чисел, на больше или меньше, для сравнения времени и выделения промежутка времени,
а так же запоминание чисел (защёлка), перечислить всё даже не возможно.
Вот несколько примеров, повторите и посмотрите, как работает и что будет если заменить задержку перемычкой 70099
Первый при нажатии кнопки включает свет, при втором нажатии выключает.
Из секунд, с помощью задержки можно сделать и секундные импульсы и импульсы раз в минуту,
а при изменении числа State каждый раз запускается таймер TON.
Последний запоминает наибольшее и наименьшее последнее число Float с аналогового входа.

Сергей0308
07.09.2023, 22:50
Добрый день.Часто в чужом коде встречаю линию задержки.Читал в справки Линия задержки используется для создания задержки на один цикл передачи значения с выхода компонента на вход.Не могу понять для чего это нужно и где эта задержка применяется если можно на пару примерах?Я взял SR триггер с его выхода подал на вход R линию задержки и получилось что я могу одной кнопкой вкл и выкл триггер.А для чего еще нужна задержка для аварий или еще для чего?

Это основной элемент в ОЛ, без него бы не работали большинство моих алгоритмов, короче, если в двух словах, на нём всё держится:

70098

https://owen.ru/forum/showthread.php?t=12691&page=62

АРТ.Кар 64
08.09.2023, 02:15
"Линия задержки"....
Очень интересная "иконка "в ОЛ Попробую объяснить на "языке обывателя". "Прямая линия" и "пунктирная линия" сами по себе дают подсказку о том ,что какой-то "участок" схемы будет работать в "импульсном(т.е "прерывистом") режиме. Сама ОЛ даёт на это "подсказку. Та линия ,которая работает в "прерывистом" режиме и соединена "перемычкой" программа высветит "неприятным жёлтым цветом. И "поведает" о том ,что в Проекте появились "циклические связи"Обычно это актуально при соединении выхода и входа То есть изменение состояния выхода влияют на состояние входа.
А то ,что "линия задержки" применяется более сложных макросах,где используются ФБ(такие "битовые и сдвиговые")-то без "линии задержки" тут будет явно не обойтись.
Тем более при "чтении "схем каким-то другим человеком (а не автором Проекта) эта "пунктирная линия даёт более наглядное представление о работе всей схемы или Макроса.Это уже как хотите.

Sbersh
20.03.2024, 11:11
Добрый день. Как линия задержки выглядит на языке ST?

Dimensy
20.03.2024, 12:26
IF foo AND NOT bar THEN
;
END_IF;
bar := foo;
где bar это линия задержки

это больше на защелку похоже.

Dimensy
20.03.2024, 12:43
Добрый день. Как линия задержки выглядит на языке ST?

На ST нет линии задержки, вы сами задаете в каком порядке и как должен выполняться алгоритм.
Хотя, если вы в начале ФБ присвоите значение выходу - это будет аналог линии задержки на выходе, а если в конце ФБ прочитаете значение входа - это будет аналог линии задержки на входе. Но это только для ФБ, с функцией такое не прокатит

kondor3000
20.03.2024, 12:59
Добрый день. Как линия задержки выглядит на языке ST?

Самый простой код линии задержки, при чём переменные входа In, выхода Out и промежуточной M, могут быть булевые, целочисленные и Float


VAR
M: UDINT;
END_VAR

OUT:= M;
M:= IN;

end_function_block

Sbersh
21.03.2024, 13:48
Ок, понял . Спасибо! Как все просто - не прокурил :-)