Приведите хотя бы один пример. Хотя подобная тема уже обсуждалась на этом форуме. Линия задержки была введена в Овенлоджик по пожеланиям апологетов прикладной теории цифровых автоматов, чтобы исключить "гонки", которые реально имеют место в цифровой схемотехнике. Но 99 процентов людей, которые программируют промышленную автоматику, понятия не имеют что это такое. И грех предъявлять им претензии по поводу этого незнания, так как заботиться о предотвращении гонок должен компилятор, а не программист.
Самый известный пример во всех средах R_TRIG, он основан на сбросе выхода через 1 цикл (то есть линия задержки на 1 цикл)
Код триггера R_TRIGКод линии задержки, вход поступит на выход в следующем цикле.Код:Q:=In and not R; R:=In;Ещё примеры, перезапуск таймера после окончания отсчёта или сброс счётчика после достижения уставки, как правило происходят в следующем цикле.Код:OUT:= M; M:= IN;
В других языках это не явно, а в ОЛ явно.
В каждом проекте (почти), на любом языке встречается линия задержки на цикл.
У меня почти в каждом примере, есть линии задержки на ST https://owen.ru/forum/showthread.php...=9&p=429061#81
Последний раз редактировалось kondor3000; 27.03.2025 в 15:59.
Ещё примеры, перезапуск таймера после окончания отсчёта или сброс счётчика после достижения уставки, как правило происходят в следующем цикле.
В других языках это не явно, а в ОЛ явно.
Не совсем корректный пример.
В других контроллерах и языках для контроллеров есть явное описание последовательности выполнения программы:
1. Слева направо построчно
2.Слева на право+ строка сверху вниз
и т.д.
Поэтому, когда таймер и аналогичные операции заканчивают отсчет, значение в этой строке, там, где уже программа прошла появляются на следующем шаге программы.
В той части когда, которая еще не выполнялась, значение таймера будет изменено.
В таких случаях имеет значение порядок расположения строк в программе. Можно использовать для отслеживания разных событий.
А такое понятие как линия задержки в этом пакете программирования встречаю впервые.