1. Что разбираем
NOT — это логическая операция «НЕ». Она меняет значение сигнала на противоположное.
Output = NOT InputЕсли вход TRUE, после блока NOT будет FALSE. Если вход FALSE, после блока NOT будет TRUE.
2. Простое правило NOT
| Input_1 | Output_1 |
|---|---|
| FALSE | TRUE |
| TRUE | FALSE |
NOT имеет один вход и один выход. Его задача — инвертировать логическое состояние.
3. FBD-схема
[Input_1] ──> [NOT] ──> [Output_1]Схема читается слева направо: значение Input_1 поступает в блок NOT, а на выходе получается противоположное значение.
4. Где применяется NOT
NOT используется, когда нужно работать с противоположным состоянием сигнала.
- запретить запуск, если активна авария;
- разрешить движение, если датчик препятствия не сработал;
- включить сигнализацию, если дверь не закрыта;
- определить отсутствие детали по сигналу датчика;
- получить условие «не нажата кнопка Stop».
5. Пример: запрет запуска при аварии
Есть сигнал Alarm_Active. Он равен TRUE, когда авария активна. Для запуска двигателя нужно обратное условие: аварии нет.
| Сигнал | Тип | Назначение |
|---|---|---|
| Alarm_Active | Вход | Авария активна |
| No_Alarm | Внутренний сигнал | Аварии нет |
| Motor_Run | Выход | Команда запуска двигателя |
No_Alarm = NOT Alarm_Active| Alarm_Active | No_Alarm |
|---|---|
| FALSE | TRUE |
| TRUE | FALSE |
Если аварии нет, Alarm_Active = FALSE, поэтому No_Alarm = TRUE. Это условие можно использовать как разрешение запуска.
6. Пример: запуск с учётом аварии
Пусть двигатель должен запускаться, если нажата кнопка Start и авария не активна.
No_Alarm = NOT Alarm_Active
Motor_Run = Start_Button AND No_Alarm| Start_Button | Alarm_Active | No_Alarm | Motor_Run |
|---|---|---|---|
| FALSE | FALSE | TRUE | FALSE |
| TRUE | FALSE | TRUE | TRUE |
| FALSE | TRUE | FALSE | FALSE |
| TRUE | TRUE | FALSE | FALSE |
Даже если Start_Button = TRUE, двигатель не включится при активной аварии.
7. Инверсия и имена сигналов
Иногда одну и ту же логику можно записать двумя способами.
No_Alarm = NOT Alarm_Activeили сразу использовать сигнал с положительным смыслом:
Emergency_OKДля учебных схем часто проще использовать имена разрешающих сигналов: Safety_OK, Door_Closed, Drive_Ready. Тогда в схеме требуется меньше инверсий, а логика читается легче.
8. Пример: дверь не закрыта
Есть сигнал Door_Closed. Он равен TRUE, когда дверь закрыта. Чтобы получить сигнал «дверь не закрыта», можно использовать NOT.
Door_Not_Closed = NOT Door_Closed| Door_Closed | Door_Not_Closed |
|---|---|
| FALSE | TRUE |
| TRUE | FALSE |
Такой сигнал можно использовать для предупреждения или запрета запуска.
9. Практика в симуляторе
Откройте пример boolean-not в редакторе PLC Portal.
- Запустите симуляцию.
- Установите Input_1 = FALSE.
- Проверьте, что Output_1 = TRUE.
- Установите Input_1 = TRUE.
- Проверьте, что Output_1 = FALSE.
- Добавьте второй блок NOT после первого и проверьте двойную инверсию.
- Убедитесь, что после двух блоков NOT выход снова повторяет вход.
Цель упражнения — увидеть, что NOT меняет логическое состояние на противоположное.
10. Краткий итог
- NOT означает логическое «НЕ».
- NOT меняет TRUE на FALSE и FALSE на TRUE.
- NOT используется для инверсии сигналов и получения противоположных условий.
- При чтении схемы важно учитывать, проходит ли сигнал через NOT.
- Хорошие имена сигналов часто позволяют уменьшить количество инверсий в схеме.
Практический блок
Откройте связанный пример в редакторе, запустите симуляцию и повторите упражнение из статьи. JSON можно скачать отдельно для просмотра или переноса.