1. Что разбираем
OR — это логическая операция «ИЛИ». Она используется, когда выход должен включиться при выполнении хотя бы одного из нескольких условий.
Output = Input_1 OR Input_2Такое условие читается так: выход будет активен, если активен Input_1 или активен Input_2, или активны оба входа сразу.
2. Где применяется OR
OR удобно использовать, когда один результат может быть вызван разными причинами.
- авария активна, если сработал хотя бы один аварийный сигнал;
- запрос на запуск есть, если нажата кнопка на панели или пришла команда от HMI;
- вызов лифта есть, если нажата кнопка на этаже или кнопка в кабине;
- сигнал предупреждения включается, если есть перегрев или низкое давление;
- команда остановки формируется, если нажата кнопка Stop или пришёл внешний запрет.
3. Простое правило OR
Для блока OR выход становится TRUE, если хотя бы один вход равен TRUE.
Если все входы FALSE, результат OR тоже FALSE.| Input_1 | Input_2 | Output_1 |
|---|---|---|
| FALSE | FALSE | FALSE |
| TRUE | FALSE | TRUE |
| FALSE | TRUE | TRUE |
| TRUE | TRUE | TRUE |
4. FBD-схема
В FBD блок OR выглядит как блок с несколькими входами и одним выходом.
[Input_1] ─────┐
├── [OR] ──> [Output_1]
[Input_2] ─────┘Если хотя бы один вход активен, выход блока OR становится TRUE.
5. Пример: запуск с двух мест
Пусть механизм можно запустить двумя способами: с физической кнопки или с панели оператора.
| Сигнал | Тип | Назначение |
|---|---|---|
| Start_Button | Вход | Физическая кнопка Start |
| HMI_Start | Вход | Команда запуска с панели оператора |
| Start_Request | Внутренний сигнал | Общий запрос на запуск |
Start_Request = Start_Button OR HMI_Start| Start_Button | HMI_Start | Start_Request |
|---|---|---|
| FALSE | FALSE | FALSE |
| TRUE | FALSE | TRUE |
| FALSE | TRUE | TRUE |
| TRUE | TRUE | TRUE |
Start_Request становится TRUE при любом источнике команды запуска.
6. Пример: общий аварийный сигнал
OR часто используют для формирования общего аварийного сигнала из нескольких отдельных ошибок.
| Сигнал | Смысл TRUE |
|---|---|
| Motor_Overload | перегрузка двигателя |
| Low_Pressure | низкое давление воздуха |
| Door_Open_Alarm | дверь открыта в опасном режиме |
| Common_Alarm | есть хотя бы одна авария |
Common_Alarm = Motor_Overload OR Low_Pressure OR Door_Open_AlarmЕсли сработает любая из перечисленных ошибок, общий сигнал Common_Alarm станет TRUE.
7. OR и остановка оборудования
OR также удобно применять для объединения разных причин остановки.
Stop_Request = Stop_Button OR Emergency_Active OR External_StopТакой сигнал можно затем использовать для сброса триггера, остановки конвейера или запрета команды запуска.
Важно: цепи безопасности в реальном оборудовании проектируются по отдельным правилам и не должны сводиться только к простой программной логике OR. В учебном примере рассматривается именно логический принцип.
8. Практика в симуляторе
Кнопка «Открыть пример в редакторе» загружает схему общего аварийного сигнала с тремя входами: Motor_Overload, Low_Pressure и Door_Open_Alarm. Результат отображается на выходе Alarm.
- Откройте пример и запустите симуляцию.
- Оставьте все три входа FALSE и проверьте, что Alarm = FALSE.
- По очереди включайте каждый вход, оставляя остальные FALSE.
- Убедитесь, что каждый из трёх сигналов отдельно включает Alarm.
- Включите несколько входов одновременно: Alarm остаётся TRUE.
- Верните все входы в FALSE и проверьте, что Alarm выключился.
Для упражнения с двумя входами используйте отдельную кнопку «Связанный пример». Там High_Level и Manual_Test объединяются в Alarm_Request. Проверьте все четыре сочетания этих входов.
Цель упражнения — увидеть, что блоку OR достаточно одного активного входа.
9. Краткий итог
- OR означает логическое «ИЛИ».
- Выход OR равен TRUE, если хотя бы один вход TRUE.
- OR удобно использовать для запросов, общих аварий и разных причин остановки.
- OR не заменяет AND: команды и разрешения лучше разделять.
Практический блок
Откройте связанный пример в редакторе, запустите симуляцию и повторите упражнение из статьи. JSON можно скачать отдельно для просмотра или переноса.