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

0 4

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

Написанная на данном языке программа для контроллера состоит из некого списка цепей, которые одна за другой выполняются сверху — вниз. Кроме того, здесь имеется возможность присвоения отдельным цепям меток, в этом случае станет доступно использование инструкций перехода на метку, дабы изменять последовательность исполнения цепей, и создавать условия и циклы.

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

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

Отдельный блок несет на себе конкретную функцию (логическое «и», «не», счетчик и т. д.), при этом один блок может иметь несколько выходов и входов. Изначально значения переменных задаются константами или со специальных входов, а выходы их связываются дальше с другими переменными программы или с выходами ПЛК.

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

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

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

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

Рассмотрим кусочек программы, написанной на языке FBD: В умножить на 4, затем поделить на А, и записать результат в переменную result. В псевдокоде это будет выглядеть так: result := B*4/A. Возможно также добавление к блокам специальных управляющих входов EN и выходов ENO, для управления вызовами отдельных блоков: логический ноль, поданный на вход EN, запретит вызов данного блока, а выход ENO в случае ошибки сообщит о ней, и прервет тем самым выполнение цепи до конца.

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

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

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

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

Или модификация CFC (Continuous Function Chart), позволяющая установить порядок выполнения диаграмм не просто последовательной цепочкой, а по усмотрению разработчика ПО. С CFC разработчик получает больше свободы, хотя код получается более длинным.

Пример языка FBD в STEP 7:

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

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

Ниже показан результат опроса в группе Программируемые контроллеры. Вопрос звучал следующим образом: «Какие языки программирования ПЛК вы используете чаще всего?». При ответе на вопрос допускалась возможность множественного выбора.

По результатам опроса язык FBD напбрал 52,14%, а его разновидность СFC — 10,71%, в сумме два языка набрали 62,85%, что значительно больше, чем другие языки программирования ПЛК. У ближайшего конкурента языка LD — 35%.

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

Преимущество языка FBD перед языком релейных диаграмм LD возрастает с увеличением сложности алгоритма управления. Алгоритм управления написанный в FBD, позволяет легче, чем в LD, отслеживать изменения в программе и искать возможные ошибки во время отладки. 

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

Языки программирования ПЛК и программная платформа автоматизации CoDeSys

Пример модернизации электрической схемы насосной станции с двумя насосами на схему с управлением от ПЛК

Пример модернизации электрической схемы грузового подъемника с использованием программируемого контроллера (ПЛК)

Курс по программированию контроллеров:

Практический курс ПЛК Овен и разработка АСУ ТП в Codesys

Андрей Повный 

Structured Text

Представляем книгу по Structured Text (ST) МЭК 61131-3. Автор — Сергей Романов

Книга «Изучаем Structured Text МЭК 61131-3»: Ссылка на книгу

Надеюсь, что эта статья была для вас полезной. Смотрите также другие статьи в категории Устройства автоматики, Программируемые логические контроллеры

Источник

Оставьте ответ

Ваш электронный адрес не будет опубликован.