1. Что разбираем
В FBD-программе почти вся логика строится вокруг сигналов. Чтобы правильно читать схему, нужно понимать три базовых типа сигналов: входы, выходы и внутренние сигналы.
входы -> внутренняя логика -> выходы
Входы показывают, что происходит снаружи. Выходы передают команды наружу. Внутренние сигналы используются внутри программы для промежуточной логики.
2. Что такое вход
Вход - это сигнал, который PLC получает от внешнего устройства или от другого источника данных.
- кнопка Start;
- кнопка Stop;
- датчик наличия детали;
- концевой выключатель;
- датчик закрытой двери;
- сигнал готовности привода;
- сигнал разрешения безопасности.
В FBD вход обычно располагается слева, потому что схема читается от условий к результату.
[Start_Button] --->
3. Что такое выход
Выход - это сигнал, которым PLC управляет внешним устройством или передает команду дальше.
- включить двигатель;
- открыть клапан;
- включить лампу;
- подать звуковой сигнал;
- разрешить работу привода;
- выдать команду роботу.
В FBD выход обычно располагается справа, потому что он является результатом выполнения логики.
---> [Motor_Run]
4. Что такое внутренний сигнал
Внутренний сигнал - это промежуточная переменная внутри программы. Она не обязана напрямую соответствовать физическому входу или физическому выходу.
Внутренние сигналы нужны, чтобы сделать программу понятнее и разделить сложную логику на части.
| Сигнал | Тип | Назначение |
|---|---|---|
| Start_Button | Вход | команда оператора на запуск |
| Safety_OK | Вход | разрешение работы |
| Start_Allowed | Внутренний сигнал | результат проверки условий запуска |
| Motor_Run | Выход | команда включения двигателя |
Сигнал Start_Allowed не является физической кнопкой и не управляет двигателем напрямую. Он хранит промежуточный результат логики.
5. Пример без внутреннего сигнала
Допустим, двигатель должен включаться, если нажата кнопка Start и есть разрешение Safety_OK.
[Start_Button] ----+ +-- [AND] ---> [Motor_Run] [Safety_OK] -------+
Такая схема простая, ее можно читать напрямую.
6. Пример с внутренним сигналом
Теперь введем промежуточный сигнал Start_Allowed.
[Start_Button] ----+ +-- [AND] ---> [Start_Allowed] ---> [Motor_Run] [Safety_OK] -------+
По смыслу Start_Allowed означает: все условия запуска выполнены. Такой сигнал можно использовать дальше в нескольких местах программы.
7. Зачем нужны внутренние сигналы
Внутренние сигналы помогают не дублировать одну и ту же логику несколько раз.
- делают схему понятнее;
- позволяют дать имя промежуточному результату;
- упрощают отладку;
- уменьшают количество пересекающихся связей;
- позволяют использовать один результат в нескольких частях программы.
Например, сигнал Line_Ready может объединять несколько условий: нет аварии, закрыта дверь, готов привод и есть давление воздуха.
Line_Ready = Safety_OK AND Door_Closed AND Drive_Ready AND Air_OK
8. Пример: разрешение линии
В промышленной логике часто есть общий сигнал разрешения работы.
| Сигнал | Тип | Смысл TRUE |
|---|---|---|
| Safety_OK | Вход | цепь безопасности исправна |
| Door_Closed | Вход | дверь закрыта |
| Drive_Ready | Вход | привод готов |
| Air_OK | Вход | давление воздуха в норме |
| Line_Ready | Внутренний сигнал | линия готова к запуску |
| Conveyor_Run | Выход | команда на работу конвейера |
[Safety_OK] -----+ [Door_Closed] ---+ [Drive_Ready] ---+-- [AND] ---> [Line_Ready] [Air_OK] --------+
После этого Line_Ready можно использовать в логике запуска конвейера, робота или других механизмов.
9. Как именовать сигналы
Понятные имена сигналов сильно упрощают чтение FBD-схемы.
| Плохо | Лучше |
|---|---|
| Input_1 | Start_Button |
| Input_2 | Door_Closed |
| Flag_1 | Line_Ready |
| Output_1 | Motor_Run |
| Signal_3 | Alarm_Active |
Для учебных примеров допустимы имена Input_1 и Output_1, но при объяснении логики рядом лучше указывать их смысл.
10. Практика в симуляторе
Откройте пример в редакторе PLC Portal и найдите входы, выходы и внутренние сигналы.
1. Найдите вход Start_Button.
2. Найдите вход Safety_OK.
3. Найдите внутренний сигнал Start_Allowed.
4. Найдите выход Motor_Run.
5. Переключите входы и посмотрите, когда Start_Allowed становится TRUE.
6. Проверьте, когда включается Motor_Run.
Цель упражнения - научиться отличать исходные сигналы от промежуточных результатов и итоговых команд.
11. Краткий итог
| Тип сигнала | Что означает | Где обычно расположен в FBD |
|---|---|---|
| Вход | сигнал, который программа читает | слева |
| Внутренний сигнал | промежуточный результат логики | между блоками |
| Выход | команда, которую программа формирует | справа |
Правильное разделение сигналов делает FBD-схему понятнее и облегчает отладку.
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.