Исходный код:
IF xButton THEN
iCounter := iCounter + 1;
END_IF
Начальное значение:
iCounter = 0Сигнал:
xButton = TRUEв течение 5 циклов ПЛК подряд.
❓ Что будет в iCounter после пятого цикла?
А)
1Б)
5В)
0Г) Зависит от времени цикла
Сначала выберите вариант, потом откройте ответ 👇
🔎 Открыть правильный ответ
✅ Правильный ответ — Б: iCounter = 5.
Почему?
Условие xButton = TRUE выполняется во всех пяти циклах.
Поэтому команда:
iCounter := iCounter + 1;
тоже выполняется пять раз.
Получаем:
0 → 1 → 2 → 3 → 4 → 5
Время цикла здесь не влияет на результат, потому что в условии уже сказано: xButton оставался TRUE ровно 5 циклов.
💡 Главная мысль
IF проверяет состояние сигнала в каждом цикле.Если действие нужно выполнить только один раз при переходе:
FALSE → TRUEнужно использовать определение переднего фронта, например
R_TRIG.💬 Получилось ответить правильно до открытия спойлера?
#CODESYS #ПЛК #StructuredText #ПрограммированиеПЛК