Interested Article - FBD

Язык функциональных блоковых диаграмм

FBD ( англ. Function Block Diagram ) — графический язык программирования стандарта МЭК 61131-3 . Предназначен для программирования программируемых логических контроллеров (ПЛК) . Программа образуется из списка цепей, выполняемых последовательно сверху вниз. Цепи могут иметь метки. Инструкция перехода на метку позволяет изменять последовательность выполнения цепей для программирования условий и циклов.

При программировании используются наборы библиотечных блоков и собственные блоки, также написанные на FBD или других языках МЭК 61131-3 . Блок (элемент) — это подпрограмма, функция или функциональный блок (И, ИЛИ, НЕ, триггеры , таймеры, счётчики, блоки обработки аналогового сигнала, математические операции и др.).

Каждая отдельная цепь представляет собой выражение, составленное графически из отдельных элементов. К выходу блока подключается следующий блок, образуя цепь. Внутри цепи блоки выполняются строго в порядке их соединения. Результат вычисления цепи записывается во внутреннюю переменную либо подается на выход ПЛК.

Пример фрагмента программы на FBD: Переменную A разделить на переменную B , результат деления умножить на 2 и записать в переменную result :

        ┌───────┐
        │       │        ┌───────┐
A───────┤       │        │  *    │
        │  /    ├────────┤       ├───result  
        │       │        │       │
B ──────┤       │    2 ──┤       │
        │       │        └───────┘
        └───────┘

Та же самая функция на псевдокоде:

result := 2*(A/B);

При необходимости управления вызовом блоков в них добавляются специальные входы EN (enable) и выходы ENO. Логический ноль на входе EN запрещает вызов блока. Выход ENO используется для индикации ошибки в блоке и позволяет прекратить вычисление остатка цепи.

Язык FBD прост в изучении, нагляден и удобен для прикладных специалистов, не имеющих специальной подготовки в области информатики. Жесткая последовательность выполнения приводит к простой внутренней структуре команд, которая транслируется в быстрый и надежный код. FBD четко отражает взаимосвязь входов и выходов диаграммы. При условии качественной проработки алгоритма с позиции передачи сигналов, его представление в виде FBD диаграммы получается нагляднее чем в текстовых языках программирования .

Существует много практических реализаций языка FBD с определенными расширениями или ограничениями. Имеет место практика, при которой различными организациями могут разрабатываться специализированные версии FBD , в том числе оптимизированные для определённых типов программируемых-логических контроллеров. Таким примером может служить язык C anny F unction D iagram ( CFD ), а также расширение языка FBD в среде CoDeSys добавляющее в него методологию объектно-ориентированного программирования .

Одним из вариантов FBD является язык программирования CFC ( C ontinuous F unction C hart). Он позволяет произвольно задавать порядок выполнения блоков. Диаграммы CFC дают программисту большую свободу действий, но платой за это является несколько большая вероятность допустить ошибку и более объемный код.

Существует модификация FBD , допускающая использование только чистых функций с одним выходом, без промежуточных состояний. Она реализует парадигму функционального программирования .

См. также

Языки программирования стандарта МЭК 61131-3 :

  • LD — Релейно-Контактные Схемы
  • IL — Список Инструкций
  • SFC — Последовательностные Функциональные Диаграммы
  • ST — Структурированный Текст

Ссылки

Литература

  • Петров И. В. Программируемые контроллеры. Стандартные языки и приемы прикладного проектирования / Под ред. проф. В. П. Дьяконова . — М.: СОЛОН-Пресс, 2004. — 256 c. ISBN 5-98003-079-4 .
  • Минаев И. Г. и др. Программируемые логические контроллеры в автоматизированных системах управления / И. Г. Минаев, В. М. Шарапов, В. В. Самойленко, Д. Г. Ушкур. 2-е изд., перераб. и доп. — Ставрополь: АГРУС, 2010. — 128 с. ISBN 978-5-9596-0670-1 .

Примечания

  1. Лоскутов А. Б., Лоскутов А. А. Зырин Н. В., Шумский Д. В. Программирование ПЛК в CoDeSys / Нижний Новгород: НГТУ. 2018. С. 34—35.
  2. Хесс Д. Объектно-ориентированные расширения МЭК 61131-3 // от 24 января 2022 на Wayback Machine


Источник —

Same as FBD