🚀 Пример: управление двигателем
У двигателя будут режимы:
0 — Стоп
1 — Пуск вперёд
2 — Пуск назад
3 — Аварийный стоп
PROGRAM MotorControl
VAR
mode : INT; // Режим работы
motorStart : BOOL; // Сигнал "Пуск"
motorDir : BOOL; // Направление (TRUE = вперед, FALSE = назад)
alarm : BOOL; // Флаг аварии
statusText : STRING[50]; // Текстовое сообщение
END_VAR
CASE mode OF
0: // Стоп
motorStart := FALSE;
motorDir := TRUE; // По умолчанию вперед
alarm := FALSE;
statusText := 'Двигатель остановлен';
1: // Пуск вперед
motorStart := TRUE;
motorDir := TRUE;
alarm := FALSE;
statusText := 'Двигатель работает вперед';
2: // Пуск назад
motorStart := TRUE;
motorDir := FALSE;
alarm := FALSE;
statusText := 'Двигатель работает назад';
3: // Авария
motorStart := FALSE;
alarm := TRUE;
statusText := 'Аварийный стоп!';
ELSE
motorStart := FALSE;
alarm := TRUE;
statusText := 'Ошибка режима!';
END_CASE;
---
🔎 Как работает:
Переменная mode задаёт режим работы (например, с панели оператора или по сигналу).
В зависимости от значения mode, срабатывают разные ветки CASE.
Управление двигателем идёт через флаги:
motorStart — включение/выключение;
motorDir — направление вращения;
alarm — аварийный сигнал.
---
⚙️ Такой подход легко масштабируется: можно добавить больше режимов (например, «плавный пуск», «реверс с паузой», «защита от перегрузки»).
Post #68
541