К списку уроков

Урок 06

Логическая операция NOT

NOT инвертирует сигнал и помогает описывать запреты, аварии и активные низкие сигналы.

1. Что разбираем

NOT — это логическая операция «НЕ». Она меняет значение сигнала на противоположное.

Output = NOT Input

Если вход TRUE, после блока NOT будет FALSE. Если вход FALSE, после блока NOT будет TRUE.

2. Простое правило NOT

Input_1Output_1
FALSETRUE
TRUEFALSE

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_ActiveNo_Alarm
FALSETRUE
TRUEFALSE

Если аварии нет, Alarm_Active = FALSE, поэтому No_Alarm = TRUE. Это условие можно использовать как разрешение запуска.

6. Пример: запуск с учётом аварии

Пусть двигатель должен запускаться, если нажата кнопка Start и авария не активна.

No_Alarm = NOT Alarm_Active
Motor_Run = Start_Button AND No_Alarm
Start_ButtonAlarm_ActiveNo_AlarmMotor_Run
FALSEFALSETRUEFALSE
TRUEFALSETRUETRUE
FALSETRUEFALSEFALSE
TRUETRUEFALSEFALSE

Даже если 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_ClosedDoor_Not_Closed
FALSETRUE
TRUEFALSE

Такой сигнал можно использовать для предупреждения или запрета запуска.

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 можно скачать отдельно для просмотра или переноса.