TGViewer
Codesys 3.5 Обучение программированию. Codesys 3.5 Обучение программированию. @codesys4 · 267 subscribers
Post #142 236
Гораздо понятнее и надёжнее вызывать экземпляр таймера каждый цикл:

fbTimer(
IN := xSignal,
PT := T#5s
);


А затем использовать его выход:

IF fbTimer.Q THEN
xAlarm := TRUE;
END_IF


Так алгоритм легко читать:

xSignal определяет состояние входа таймера на каждом цикле ПЛК.

━━━━━━━━━━━━━━━━━━

🔎 Для чего нужен ET?

ET показывает текущее прошедшее время.

Например:

fbTimer.ET


может иметь значения:

T#500ms
T#2s
T#4s
T#5s


Это удобно использовать для:

• диагностики программы
• отображения времени на HMI
• индикации процесса задержки
• анализа работы алгоритма
• отладки

Например, оператору можно показать:

«Авария будет подтверждена через 2.3 секунды».

Для основной логики обычно используют Q, а ET — как дополнительную информацию.

━━━━━━━━━━━━━━━━━━

📌 Коротко: алгоритм TON

Если:

IN = FALSE

получаем:

ET = T#0s
Q = FALSE


Если:

IN = TRUE

начинается отсчёт.

Пока:

ET < PT


получаем:

Q = FALSE

Когда:

ET ≥ PT


получаем:

Q = TRUE

Если после этого:

IN = FALSE

таймер снова сбрасывается.

━━━━━━━━━━━━━━━━━━

💡 Где TON используется на практике?

Очень часто:

• задержка формирования аварии
• фильтрация кратковременных сигналов
• задержка включения оборудования
• контроль устойчивого состояния датчика
• контроль длительного превышения параметра
• ожидание перед переходом на следующий шаг алгоритма
• антидребезг дискретных сигналов
• задержка разрешения операции

Главный вопрос при выборе TON:

«Нужно ли мне убедиться, что условие непрерывно выполняется заданное время?»

Если да — TON обычно подходит.

━━━━━━━━━━━━━━━━━━

🧠 Запомните

TON — это не просто команда:

«подождать 5 секунд».

Это проверка:

«Оставался ли вход IN непрерывно в TRUE в течение заданного времени PT?»

Даже кратковременный переход IN в FALSE приводит к сбросу отсчёта.

И именно поэтому таймер иногда кажется «неработающим», хотя на самом деле работает совершенно правильно.

━━━━━━━━━━━━━━━━━━

❓ Проверим себя

Пусть задано:

PT := T#5s


Сигнал ведёт себя так:

TRUE  → 4.9 сек
FALSE → 0.1 сек
TRUE → 4.9 сек


Станет ли Q = TRUE хотя бы на одном цикле?

💬 Напишите свой ответ в комментариях 👇

#CODESYS #ПЛК #АСУТП #StructuredText #ST #ПрограммированиеПЛК #Автоматизация
More from @codesys4
  1. Oct 5, 2026При следующем выполнении этого CASE значение eState будет прочитано снова, и тогда будет в…
  2. Oct 5, 2026🔀 CASE в CODESYS: как строить понятные пошаговые алгоритмы По мере роста программы ПЛК ча…
  3. Oct 5, 2026🔀 CASE в CODESYS: когда алгоритм начинает тонуть в IF Небольшой проект легко написать на…
  4. Oct 4, 2026📘 Новая книга по CODESYS 3.5 Подготовил практическую книгу по программированию ПЛК в CODE…
  5. Oct 4, 2026✅ РАЗБОР ЗАДАЧИ: R_TRIG и F_TRIG Исходный сигнал: Цикл: 1 2 3 4 5 6 7 Signal: FALSE FALSE…
  6. Oct 4, 2026🧠 РАЗБОР КОДА: R_TRIG и F_TRIG Посмотрите на изменение сигнала по циклам ПЛК: Цикл: 1 2 3…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →