Разберём задачу.
Есть таймер:
fbTimer(
IN := xSignal,
PT := T#5s
);
Сигнал на входе меняется так:
TRUE → 4.9 сек
FALSE → 0.1 сек
TRUE → 4.9 сек
Начальное состояние:
Q = FALSE
ET = T#0s
❓ Что произойдёт с выходом
Q?А)
Q станет TRUE, потому что суммарно сигнал был TRUE больше 5 секундБ)
Q станет TRUE во втором интервале TRUEВ)
Q ни разу не станет TRUEГ)
Q кратковременно станет TRUE в момент сбросаСначала выберите вариант, потом откройте ответ 👇
🔎 Открыть правильный ответ
✅ Правильный ответ — В.
Q ни разу не станет TRUE.
Почему?
В первом интервале:
xSignal = TRUE → 4.9 сек
До PT = 5 сек не хватает 0.1 секунды, поэтому Q остаётся FALSE.
Затем сигнал становится FALSE.
Для TON это означает сброс:
ET → T#0s
Q → FALSE
После этого, когда xSignal снова становится TRUE, таймер начинает отсчёт заново.
Во втором интервале сигнал снова активен только 4.9 секунды, а этого опять недостаточно.
Поэтому Q ни разу не станет TRUE.
💡 Главная мысль
TON считает не суммарное время активности сигнала, а время, в течение которого вход IN находится в TRUE непрерывно.Как только:
IN = FALSEтаймер сбрасывается.
💬 Получилось ответить правильно до открытия спойлера?
#CODESYS #ПЛК #TON #StructuredText #ПрограммированиеПЛК