|
<< Click to Display Table of Contents >> Navigation: Программирование в MasterSCADA 4D > Редактор ST > Синтаксис Master ST > Операторы Master ST > Оператор IF |
Оператор IF позволяет реализовать ветвление программы в зависимости от условий. Поддерживает:
•Простые условия (IF-THEN);
•Альтернативные ветки (IF-THEN-ELSE);
•Множественные условия (IF-ELSIF-ELSE).
Данный оператор начинается с ключевого слова IFи заканчивается ключевым словом END_IF. Существует несколько вариантов задания оператора:
1.Базовая форма:
IF <условие> THEN |
Алгоритм: Если {выражение} истинно, выполняется {последовательность предложений}, иначе никаких действий не производится.
2.C альтернативой:
IF <условие> THEN <код1> ELSE <код2> END_IF; |
Алгоритм: Если {выражение} истинно, выполняется {последовательность предложений 1}, иначе выполняется {последовательность предложений 2}.
3.Множественный выбор:
IF <условие1> THEN <код1> ELSIF <условие2> THEN <код2> ... ELSE <код_по_умолчанию> END_IF; |
Алгоритм: Выполняется первая по порядку {последовательность предложений}, для которой соответствующее {выражение} истинно. Если все {выражения} ложны, выполняется {последовательность предложений}, следующая за ключевым словом ELSE.
•Блок else может отсутствовать. В этом случае, если все {выражения}, следующие за ELSIF, ложны, никаких действий не производится;
•Количество блоков ELSIF не ограничено;
•Условия проверяются последовательно. При первом истинном условии выполняется соответствующий блок, остальные игнорируются.
1.Для сложных условий используйте скобки:
IF (x > 0) AND ((y < 10) OR (z = 5)) THEN
2.Избегайте слишком глубокой вложенности;
3.Для множественных условий предпочтительнее ELSIF, чем вложенные IF.
Рассмотрим пример контроля температуры с аварийной сигнализацией:
Программа контролирует температуру в промышленной печи. Если температура превышает допустимый порог (150°C), включается аварийный сигнал и отключается нагрев. В противном случае система продолжает работу в нормальном режиме.
IF furnace_temp > 150.0 THEN // Аварийная ситуация alarm := TRUE; // Активируем сигнализацию heater := FALSE; // Отключаем нагрев log_msg := "Превышение температуры!"; ELSE // Нормальный режим alarm := FALSE; heater := TRUE; log_msg := "Температура в норме"; END_IF; |
Результат работы:
•Нормальный режим

•Аварийная ситуация
