Back to all lessons

Lesson 12

Блокировка двух направлений

Как запретить одновременное включение двух взаимоисключающих команд.

The English article translation is being prepared. For now, Russian lesson content is shown with English navigation.

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

Блокировка двух направлений - это логика, которая не позволяет одновременно включить две противоположные команды.

Типичный пример: механизм может двигаться вверх или вниз, но не должен двигаться вверх и вниз одновременно.

нельзя: Move_Up = TRUE и Move_Down = TRUE одновременно можно: Move_Up = TRUE, Move_Down = FALSE можно: Move_Up = FALSE, Move_Down = TRUE можно: оба FALSE, механизм стоит

2. Где это применяется

  • движение вверх/вниз;
  • движение вперед/назад;
  • открыть/закрыть дверь;
  • вращение по часовой/против часовой стрелки;
  • выдвинуть/задвинуть цилиндр;
  • подъем/опускание платформы.

Такая блокировка защищает программу от противоречивых команд и делает поведение механизма предсказуемым.

3. Сигналы примера

СигналТипНазначение
Up_Buttonвходкоманда движения вверх
Down_Buttonвходкоманда движения вниз
Safety_OKвходразрешение работы
Move_Upвыходвключить движение вверх
Move_Downвыходвключить движение вниз

В учебной схеме будем считать, что Safety_OK = TRUE означает разрешение движения.

4. Принцип взаимной блокировки

Для движения вверх нужно, чтобы была команда Up_Button и одновременно не было команды Down_Button.

Для движения вниз нужно, чтобы была команда Down_Button и одновременно не было команды Up_Button.

Move_Up = Up_Button AND NOT Down_Button AND Safety_OK Move_Down = Down_Button AND NOT Up_Button AND Safety_OK

Если оператор нажмет обе кнопки одновременно, оба выхода останутся FALSE.

5. FBD-схема

Упрощенная схема для движения вверх:

[Down_Button] -> [NOT] --. [Up_Button] ------------- +-- [AND] ---> [Move_Up] [Safety_OK] -------------'

Упрощенная схема для движения вниз:

[Up_Button] -> [NOT] ----. [Down_Button] ----------- +-- [AND] ---> [Move_Down] [Safety_OK] -------------'

Каждое направление проверяет отсутствие противоположной команды.

6. Таблица работы

Up_ButtonDown_ButtonSafety_OKMove_UpMove_Down
FALSEFALSETRUEFALSEFALSE
TRUEFALSETRUETRUEFALSE
FALSETRUETRUEFALSETRUE
TRUETRUETRUEFALSEFALSE
TRUEFALSEFALSEFALSEFALSE
FALSETRUEFALSEFALSEFALSE

Четвертая строка показывает важный случай: если одновременно активны Up_Button и Down_Button, оба выхода выключены.

7. Вариант с приоритетом

Иногда в программе задают приоритет одного направления. Например, если одновременно нажаты Up и Down, разрешать только Stop или только одно выбранное направление.

Для начального обучения проще и безопаснее использовать вариант без приоритета: при конфликте команд оба выхода выключены.

оба направления запрошены одновременно -> Move_Up = FALSE и Move_Down = FALSE

8. Связь с реальным оборудованием

В реальном шкафу управления программная блокировка обычно дополняется аппаратной блокировкой. Например, контакторы прямого и обратного направления могут иметь электрическую и механическую блокировку.

В учебном симуляторе рассматривается логическая часть: как правильно сформировать выходы программы, чтобы они не стали TRUE одновременно.

9. Расширение схемы

В реальной задаче к каждому направлению могут добавляться конечные выключатели и дополнительные разрешения.

Move_Up = Up_Button AND NOT Down_Button AND Safety_OK AND NOT Top_Limit Move_Down = Down_Button AND NOT Up_Button AND Safety_OK AND NOT Bottom_Limit

Top_Limit запрещает движение вверх, если верхнее положение уже достигнуто. Bottom_Limit запрещает движение вниз, если нижнее положение уже достигнуто.

10. Практика в симуляторе

Откройте пример блокировки двух направлений в редакторе PLC Portal.

1. Установите Safety_OK = TRUE.

2. Включите Up_Button и проверьте, что Move_Up = TRUE, Move_Down = FALSE.

3. Выключите Up_Button.

4. Включите Down_Button и проверьте, что Move_Down = TRUE, Move_Up = FALSE.

5. Включите Up_Button и Down_Button одновременно.

6. Проверьте, что оба выхода FALSE.

7. Установите Safety_OK = FALSE и убедитесь, что движение запрещено в любом направлении.

11. Краткий итог

Блокировка двух направлений запрещает одновременное включение противоположных выходов.

Move_Up = Up_Button AND NOT Down_Button AND Safety_OK Move_Down = Down_Button AND NOT Up_Button AND Safety_OK

Такую логику применяют для механизмов с противоположными командами: вверх/вниз, вперед/назад, открыть/закрыть.

12. Следующий урок

Следующий материал: Логика конвейера.

В нем будет разобрана более практическая схема запуска конвейера с кнопками, разрешениями и аварийным запретом.

Practice block

Open the related example in the editor, run the simulation, and repeat the exercise from the article. The JSON is also available as a direct download.