1. Что разбираем
FBD — это сокращение от Function Block Diagram.
- На русском это можно перевести как диаграмма функциональных блоков.
- FBD — один из языков программирования PLC. Он позволяет описывать логику управления не текстом, а визуальной схемой из блоков, входов, выходов и соединительных линий.
- Упрощённо FBD-схема выглядит так:
[Вход] → [Логический блок] → [Выход]Например:
[Start_Button] → [AND] → [Motor_Run]Главная идея FBD: программа собирается из готовых функциональных блоков, а связи между ними показывают, как сигнал проходит от входов к выходам.
2. Где используется FBD
FBD применяется в промышленной автоматизации для описания логики работы оборудования.
На FBD удобно делать:
- простую логическую обработку сигналов;
- блокировки;
- разрешения на запуск;
- самоподхват Start/Stop;
- работу с таймерами;
- работу с триггерами;
- управление конвейерами;
- управление насосами;
- управление клапанами;
- простые алгоритмы работы механизмов.
Например, на FBD можно описать условие:
Включить двигатель, если нажата кнопка Start,
и закрыта защитная дверь.В виде схемы это может выглядеть так:
[Start_Button] ─────┐
├── [AND] ──> [Motor_Run]
[Safety_OK] ────────┘3. Из чего состоит FBD-схема
FBD-схема обычно состоит из четырёх основных элементов:
1. Входы
2. Функциональные блоки
3. Связи
4. ВыходыРазберём каждый элемент отдельно.
4. Входы
Вход — это сигнал, который поступает в программу.
В реальной системе вход может приходить от физического устройства:
- кнопки;
- датчика;
- концевого выключателя;
- аварийной цепи;
- другого PLC;
- панели оператора;
- робота или привода.
Примеры имён входов:
Start_Button
Stop_Button
Door_Closed
Part_Sensor
Emergency_OKВ FBD вход обычно располагается слева, потому что логика читается от входных условий к выходному результату.
Пример:
[Start_Button] ──>5. Выходы
Выход — это результат работы программы.
Через выход PLC может управлять внешним устройством:
- двигателем;
- лампой;
- клапаном;
- реле;
- приводом;
- звуковым сигналом;
- командой запуска робота.
Примеры имён выходов:
Motor_Run
Lamp_On
Valve_Open
Alarm_Buzzer
Robot_StartВ FBD выход обычно располагается справа.
Пример:
──> [Motor_Run]6. Функциональные блоки
Функциональный блок — это элемент схемы, который выполняет определённую операцию.
Например:
| Блок | Назначение |
|---|---|
| AND | Выход включается, если включены все входы |
| OR | Выход включается, если включён хотя бы один вход |
| NOT | Инвертирует сигнал |
| RS | Запоминает включённое состояние |
| TON | Включает выход с задержкой |
| TOF | Выключает выход с задержкой |
Пример блока AND:
[Input_1] ─────┐
├── [AND] ──> [Output_1]
[Input_2] ─────┘В этом примере Output_1 будет включён только тогда, когда одновременно включены Input_1 и Input_2.
7. Связи между блоками
Связи показывают, куда передаётся сигнал.
- В FBD связь обычно изображается линией от выхода одного элемента ко входу другого элемента.
- Пример:
[Input_1] ──> [NOT] ──> [Output_1]Здесь сигнал с Input_1 сначала поступает в блок NOT, а затем результат передаётся на Output_1.
- Если Input_1 = TRUE, то после блока NOT будет FALSE.
- Если Input_1 = FALSE, то после блока NOT будет TRUE.
8. Как читать FBD-схему
FBD-схему обычно читают слева направо.
- Слева находятся входные условия.
Справа находится результат. Между ними расположены блоки обработки логики.
- Общий принцип чтения:
1. Найти входы.
2. Понять, в какие блоки они входят.
3. Посмотреть, что делают эти блоки.
4. Проследить сигнал до выхода.
5. Понять, при каких условиях выход включится.Пример:
[Start_Button] ─────┐
├── [AND] ──> [Motor_Run]
[Door_Closed] ──────┘Читается так:
Motor_Run включится,
если Start_Button = TRUE
и Door_Closed = TRUE.То есть двигатель можно запустить только при нажатой кнопке Start и закрытой двери.
9. Простая FBD-программа
Рассмотрим простую задачу.
Есть два условия:
Input_1 — кнопка Start
Input_2 — разрешение Safety_OKЕсть один выход:
Output_1 — команда Motor_RunЗадача:
Включить Motor_Run только если Start нажата
и Safety_OK активен.FBD-схема:
[Input_1: Start_Button] ─────┐
├── [AND] ──> [Output_1: Motor_Run]
[Input_2: Safety_OK] ────────┘10. Таблица сигналов
| Сигнал | Тип | Назначение |
|---|---|---|
| Input_1 | Вход | Кнопка Start |
| Input_2 | Вход | Разрешение работы |
| Output_1 | Выход | Команда включения двигателя |
Таблица работы:
| Input_1 | Input_2 | Output_1 |
|---|---|---|
| FALSE | FALSE | FALSE |
| TRUE | FALSE | FALSE |
| FALSE | TRUE | FALSE |
| TRUE | TRUE | TRUE |
Выход включается только в последней строке, когда оба входа находятся в состоянии TRUE.
11. Чем FBD удобен для начинающих
FBD удобен тем, что логику программы видно визуально.
Пользователь может проследить:
откуда пришёл сигнал;
через какой блок он прошёл;
какой результат получился;
почему включился или не включился выход.Это особенно полезно при изучении PLC, потому что начинающий пользователь видит не только текстовое условие, но и структуру логики.
Например, условие:
Motor_Run = Start_Button AND Safety_OKНа FBD выглядит нагляднее:
[Start_Button] ─────┐
├── [AND] ──> [Motor_Run]
[Safety_OK] ────────┘12. Чем FBD отличается от обычного текстового кода
В текстовом языке условие может выглядеть так:
Motor_Run := Start_Button AND Safety_OK;В FBD та же логика собирается из блоков:
[Start_Button] ─────┐
├── [AND] ──> [Motor_Run]
[Safety_OK] ────────┘Оба варианта описывают одну и ту же логику.
Разница в форме представления:
| Подход | Как выглядит |
|---|---|
| Текстовый код | Условие записано строкой |
| FBD | Условие собрано из блоков и связей |
FBD часто удобен для визуального понимания алгоритма, особенно когда программа состоит из логических условий, таймеров, триггеров и блокировок.
13. Важная особенность FBD
В FBD важно понимать направление передачи сигналов.
- Сигнал не просто «лежит» на схеме. Он передаётся от одного элемента к другому.
- Пример:
[Input_1] ──> [NOT] ──> [Output_1]Здесь Output_1 получает не сам Input_1, а результат работы блока NOT.
То есть:
Output_1 = NOT Input_1Если этого не учитывать, можно неправильно понять поведение программы.
14. Практика в симуляторе
Откройте простой пример FBD-программы в редакторе PLC Portal.
Задача примера:
Output_1 включается только если Input_1 и Input_2 активны одновременно.Что нужно сделать:
- Откройте пример в редакторе.
- Запустите симуляцию.
- Установите Input_1 = TRUE.
- Проверьте, что Output_1 ещё не включился.
- Установите Input_2 = TRUE.
- Проверьте, что Output_1 стал TRUE.
- Верните один из входов в FALSE.
- Проверьте, что Output_1 снова стал FALSE.
Цель упражнения — понять, как входы, блок AND и выход связаны между собой.
15. Что важно понять
FBD — это визуальный способ описать программу PLC.
Основная схема:
входы → функциональные блоки → выходыВходы показывают состояние внешних сигналов.
- Функциональные блоки выполняют логику.
- Выходы получают результат этой логики и управляют оборудованием.
- FBD удобно использовать для изучения PLC, потому что движение сигнала и условия включения выходов видны прямо на схеме.
17. Краткий итог
FBD — это язык программирования PLC, в котором логика строится из блоков и связей.
Главные элементы FBD:
входы;
выходы;
функциональные блоки;
соединительные линии.FBD-схему обычно читают слева направо.
Чтобы понять FBD-программу, нужно проследить путь сигнала от входов через блоки к выходам.
Практический блок
Откройте связанный пример в редакторе, запустите симуляцию и повторите упражнение из статьи. JSON можно скачать отдельно для просмотра или переноса.