Электротехнический интернет-журнал Electrik.info

"Электрик Инфо" - онлайн журнал про электричество. Теория и практика. Обучающие статьи, примеры, технические решения, схемы, обзоры интересных электротехнических новинок. Уроки, книги, видео. Профессиональное обучение и развитие. Сайт для электриков и домашних мастеров, а также для всех, кто интересуется электротехникой, электроникой и автоматикой.
 


Услуги электрика | Схемы подключения | Принципиальные схемы | Электроснабжение Розетки и выключатели | Автоматы защиты | Кабель и провод | Монтаж электропроводки Ремонт электротехники | Молодому электрику | Электротехническая продукция

Электрик Инфо » Устройства автоматики, Программируемые логические контроллеры » Язык функциональных блоковых диаграмм (FBD) и его применение
18 августа 2019
Количество просмотров: 72817
Комментарии к статье: 6


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

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

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

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

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

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

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

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

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

Функциональные блоки

Рассмотрим кусочек программы, написанной на языке 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 в STEP 7

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

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

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

Самые популярные языки программирования ПЛК

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

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

Смотрите также по этой теме: 

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

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

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

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

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

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

Structured Text

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

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





Поделитесь этой статьей с друзьями:


Другие статьи с сайта Электрик Инфо:

  • Язык программирования ПЛК Structured Text (ST) и его применение
  • Язык релейных диаграмм LD (Ladder diagram) и его применение
  • Схемы пуска электродвигателя на языке лестничных диаграмм LD для ПЛК
  • Видеокурс по работе с контроллером ОВЕН ПЛК110 в среде CODESYS2.3
  • Использование ОВЕН ПЛК в системах автоматического управления освещением
  • Языки программирования ПЛК и программная платформа автоматизации CoDeSys
  • Пример модернизации электрической схемы грузового подъемника с использовани ...
  • Примеры простых программ для ПЛК в CodeSys на языке релейных диаграмм
  • Автоматизация освещения в учебном классе
  • Программируемые логические контроллеры для домашней автоматизации
  • Категория: Устройства автоматики, Программируемые логические контроллеры

    ПЛК, Контроллеры управления, Промышленная автоматизация, Андрей Повный – все статьи

      Комментарии:

    #1 написал: Светлана | [цитировать]

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

      Комментарии:

    #2 написал: Виктор | [цитировать]

    У меня сложилось впечатление, что Codesys 2.3 FBD намного лучше, чем Ladder. Если у вас есть возможность программировать большие технологические линии, вы обнаружите, что большинство основных программ написано на этом языке. Крупные компании обычно устанавливают определенный стандарт программирования на своих предприятиях. У меня был коллега, который работал на многих заводах BMW по всему миру, и он упомянул, что основные программы были написаны на этом языке. Помните, что основная программа в большинстве случаев должна быть написана на графическом языке, благодаря такой процедуре у человека, анализирующего программу, например, при отказе машины, будет более легкая задача. Отдел обслуживания часто работает в сжатые сроки и часто в ночные смены - об этом стоит помнить :-)

      Комментарии:

    #3 написал: Алекс Йоханссон | [цитировать]

    FBD происходит из области обработки сигналов и его использование удобно, когда нет циклов. Этим способом, идеально подходит для пользователей, не обладающих продвинутыми навыками программирования и для тех процессов низкой сложности. В настоящее время FBD - это очень популярный язык и он очень распространен. Функциональные блоки выглядят как интегральные схемы и широко используется в Европе.

      Комментарии:

    #4 написал: Elektrik | [цитировать]

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

      Комментарии:

    #5 написал: Сергей Сергеевич | [цитировать]

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

      Комментарии:

    #6 написал: Роберт | [цитировать]

    Интегрированная среда разработки (IDE) Codesys от Codesys GmbH (ранее называвшаяся 3S-Smart Software Solutions) предлагает две разновидности FBD: традиционную FBD IEC 61131-3 и аналогичную, но более гибкую непрерывную функциональную схему (CFC), которая не формально является частью IEC 61131-3. C помощью FBD и СFC можно строить иерархический дизайн — это практика создания проекта из стандартных блоков, которые строятся из более простых стандартных блоков, которые строятся из более простых стандартных блоков и так далее. Технику стандартных блоков легче спроектировать и понять, поскольку она позволяет поддерживать постоянный уровень детализации на каждом уровне иерархии и способствует этому. Таким образом, верхние уровни дизайна не загромождаются запутанными и ненужными деталями, которые важны на нижних уровнях дизайна. Аналогия — автомобильный двигатель, у которого есть стартер, у которого есть якорь, намотанный медной проволокой, выдавленной из меди, добываемой во всем мире. Дизайнеру автомобилей не нужно быть экспертом или интересоваться тем, как устроен и работает двигатель. Этот уровень детализации оставлен на самых нижних уровнях проекта, где эта детализация важна. Иерархический дизайн в CFC с использованием структурных выводов решает обе эти проблемы, сохраняя при этом графическую природу LD. Это бескомпромиссное решение, объединяющее лучшее из обоих миров. Иерархический дизайн является ключевой особенностью объектно-ориентированного промышленного программирования (ООП). Например, верхний уровень проекта показывает, что управление лодкой состоит из входов и выходов (I/O), сервисов, лебедок, цилиндров и гидравлики. Двойной щелчок по любому из этих блоков открывает следующий уровень детализации, такой как обзор цилиндров и гидравлической системы. Дальнейшие двойные щелчки по любым блокам в них постепенно раскрывают дополнительные уровни детализации, каждый из которых реализован на языке, лучше всего подходящем для работы.

    Добавление комментария
    Имя:*
    Комментарий:

    Присоединяйтесь к нам в социальных сетях:

    ВКонтакте | Facebook | Одноклассники | Электрик Инфо на Яндекс Дзен

     


    Популярные разделы сайта:

    Электрика дома  Электрообзоры  Энергосбережение
    Секреты электрика Источники света Делимся опытом
    Домашняя автоматика Электрика для начинающих
    Практическая электроника Электротехнические новинки
    Андрей Повный - все статьи автора



    Copyright © 2009-2022 Электрик Инфо - Electrik.info, Андрей Повный
    Вся информация на сайте предоставлена в ознакомительных и познавательных целях.
    За применение этой информации администрация сайта ответственности не несет.
    Перепечатка материалов сайта запрещена.