1. Что делает программа
Пример показывает выбор между автоматическим и ручным режимом. Отдельные входы Auto_Mode и Manual_Mode выбирают источник команды, а блоки логики запрещают конфликт, когда оба режима активны одновременно.
Итоговая команда Drive_Command включается только если выбран ровно один режим и в этом режиме есть своя команда.
Auto_Command или Manual_Command -> проверка режима -> Drive_Command
2. Сигналы примера
| Сигнал | Тип | Назначение |
|---|---|---|
| Auto_Mode | вход | выбран автоматический режим |
| Manual_Mode | вход | выбран ручной режим |
| Auto_Command | вход | команда от автоматической логики |
| Manual_Command | вход | команда оператора |
| Mode_Conflict | выход | оба режима выбраны одновременно |
| Drive_Command | выход | итоговая команда управления |
3. Основная логика
Сначала программа проверяет конфликт режимов.
Mode_Conflict = Auto_Mode AND Manual_Mode
Затем конфликт инвертируется и используется как общее разрешение.
No_Conflict = NOT Mode_Conflict
Команды Auto_Command и Manual_Command проходят только через свой выбранный режим и только при отсутствии конфликта.
Auto_Allowed = Auto_Mode AND Auto_Command AND No_Conflict
Manual_Allowed = Manual_Mode AND Manual_Command AND No_Conflict
Drive_Command = Auto_Allowed OR Manual_Allowed
4. Как проверять в симуляции
- включите Auto_Mode и Auto_Command - Drive_Command станет TRUE;
- выключите Auto_Mode, включите Manual_Mode и Manual_Command - команда перейдёт в ручной режим;
- включите Auto_Mode и Manual_Mode одновременно - Mode_Conflict станет TRUE, а Drive_Command должен быть FALSE;
- переключайте команды без выбранного режима - выход не должен включаться;
- проверьте, что конфликт блокирует оба источника.
5. На что обратить внимание
В такой схеме важно не просто объединить две команды через OR. Нужно явно проверить, что выбран только один источник. Иначе автоматическая и ручная логика смогут одновременно влиять на один выход.
В реальной системе выбор режима часто приходит от ключа, HMI или панели оператора. Логика конфликта помогает увидеть неправильную настройку входов.
Проверка в редакторе
Откройте готовую FBD-схему, переключайте входы и сравните поведение симуляции с описанием программы. JSON можно скачать отдельно.