Открыть сервис

Function Block Diagram

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

История

Язык Function Block Diagram был разработан в рамках стандартизации языков программирования для промышленных контроллеров. Первая версия стандарта IEC 61131-3 была опубликована в 1993 году Международной электротехнической комиссией (МЭК). В основу FBD легли идеи более ранних графических языков, использовавшихся в SCADA-системах и специализированных контроллерах, таких как блок-схемы (logic diagrams) и диаграммы функциональных блоков, применявшиеся в системах управления технологическими процессами (DCS). Впоследствии стандарт неоднократно обновлялся (в 2003, 2013 и 2023 годах), расширяя возможности языка, включая поддержку объектно-ориентированных элементов и улучшенную интеграцию с другими языками стандарта.

Основные понятия и структура

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

Функциональный блок — это основной элемент FBD. Он представляет собой графический прямоугольник с входными и выходными портами (пинами). Внутри блока реализована определённая функция — от простейших логических операций (И, ИЛИ, НЕ) до сложных математических вычислений, ПИД-регуляторов, таймеров, счётчиков и пользовательских алгоритмов. Каждый блок имеет уникальное имя (например, AND, ADD, TONтаймер с задержкой включения) и набор параметров, которые могут быть заданы при конфигурации.

Соединения

Соединения между блоками выполняются линиями, которые передают сигналы (данные) от выхода одного блока к входу другого. Линии могут быть прямыми или ломаными, могут разветвляться. Тип данных (булевый, целочисленный, вещественный, строковый и т.д.) должен соответствовать типу порта, иначе возникает ошибка компиляции. Для передачи сигналов, не требующих логической обработки, используются специальные блоки-переменные (например, VAR_INPUT, VAR_OUTPUT).

Переменные

В FBD используются переменные, которые делятся на глобальные (доступные во всей программе) и локальные (в рамках одной программы или функционального блока). Переменные могут быть входными, выходными и внутренними. Они задаются в текстовом редакторе среды разработки (например, CODESYS, TwinCAT, Siemens TIA Portal) и затем используются в графической схеме как отдельные блоки или как параметры функциональных блоков.

Классификация функциональных блоков

По источнику определения блоки делятся на:

  • Стандартные (библиотечные) — поставляются производителем среды разработки или в составе стандарта IEC 61131-3. Включают:
  • Логические: AND, OR, XOR, NOT, RS-триггер, SR-триггер.
  • Арифметические: ADD, SUB, MUL, DIV, MOD, ABS.
  • Сравнения: GT (больше), LT (меньше), EQ (равно), GE (больше или равно), LE (меньше или равно), NE (не равно).
  • Таймеры: TON (задержка включения), TOF (задержка выключения), TP (импульсный таймер).
  • Счётчики: CTU (счётчик вверх), CTD (счётчик вниз), CTUD (реверсивный счётчик).
  • Математические функции: SIN, COS, TAN, SQRT, LOG, EXP.
  • Преобразования типов: INT_TO_REAL, REAL_TO_INT, BOOL_TO_BYTE.
  • Пользовательские — создаются разработчиком на основе других языков стандарта (например, ST или LD) или путём комбинации существующих блоков. После создания они могут быть помещены в библиотеку и использоваться повторно.

Применение

FBD широко применяется в следующих областях:

  • Промышленная автоматизация: управление конвейерами, станками, роботизированными линиями, упаковочным оборудованием.
  • Энергетика: системы управления электростанциями, подстанциями, распределительными устройствами.
  • Нефтегазовая и химическая промышленность: управление технологическими процессами (реакторы, колонны, насосные станции).
  • Системы отопления, вентиляции и кондиционирования (HVAC): управление климатическим оборудованием, тепловыми пунктами.
  • Транспорт: системы управления железнодорожными переездами, светофорами, лифтами.

Преимущества и недостатки

Преимущества

  • Наглядность: программа легко читается и понимается инженерами, не имеющими глубоких навыков программирования.
  • Модульность: функциональные блоки можно многократно использовать, создавая библиотеки типовых решений.
  • Стандартизация: соответствие IEC 61131-3 обеспечивает переносимость кода между разными системами (при условии поддержки стандарта).
  • Удобство отладки: можно визуально отслеживать значения сигналов на линиях и портах блоков в режиме реального времени.

Недостатки

  • Ограниченная сложность: при очень большом количестве блоков схема становится громоздкой и трудночитаемой.
  • Сложность работы с циклами и ветвлениями: для реализации сложных алгоритмов (например, с большим количеством условий) FBD может быть менее удобен, чем текстовые языки (ST, IL).
  • Зависимость от среды разработки: несмотря на стандарт, реализации FBD в разных средах (CODESYS, Siemens, Rockwell Automation) могут иметь незначительные отличия в синтаксисе и возможностях.

Связь с другими языками стандарта IEC 61131-3

FBD является одним из пяти языков, определённых стандартом IEC 61131-3:

  • LD (Ladder Diagram) — язык релейно-контактных схем, традиционный для ПЛК.
  • ST (Structured Text) — текстовый язык высокого уровня, похожий на Pascal.
  • IL (Instruction List) — низкоуровневый текстовый язык, близкий к ассемблеру.
  • SFC (Sequential Function Chart) — язык для описания последовательных процессов.

Часто в одной программе используются несколько языков: например, основная логика реализуется на FBD, а сложные вычисления — на ST. Это позволяет сочетать наглядность графического представления с гибкостью текстового программирования.

Инструменты разработки

Наиболее распространённые среды разработки, поддерживающие FBD:

  • CODESYS (3S-Smart Software Solutions) — одна из самых популярных сред, используется в контроллерах многих производителей (WAGO, Beckhoff, Eaton, Festo).
  • TIA Portal (Siemens) — среда для программирования контроллеров Siemens SIMATIC S7-1200, S7-1500.
  • RSLogix 5000 / Studio 5000 (Rockwell Automation) — для контроллеров Allen-Bradley.
  • TwinCAT (Beckhoff) — система, интегрирующая ПЛК в операционную систему Windows.
  • OpenPLC — открытая среда, реализующая стандарт IEC 61131-3, включая FBD.

Пример простой программы на FBD

Программа реализует логику управления двигателем: он включается, если нажата кнопка «Пуск» и не нажата кнопка «Стоп», а также если температура не превышает 100°C.

``` [VAR_INPUT] Start: BOOL; Stop: BOOL; Temp: REAL; [VAR_OUTPUT] Motor: BOOL;

[FBD] // Блок сравнения температуры Temp_GT: GT (IN1 := Temp, IN2 := 100.0); // Выход TRUE, если Temp > 100

// Инвертирование сигнала перегрева Not_Overheat: NOT (IN := Temp_GT.OUT); // Выход TRUE, если нет перегрева

// Логическое И для условий пуска And_Start: AND (IN1 := Start, IN2 := Not_Overheat.OUT); // Выход TRUE, если пуск и нет перегрева

// RS-триггер для запоминания состояния RS_Trigger: RS (S := And_Start.OUT, R1 := Stop); // Установка по пуску, сброс по стопу

// Выход Motor := RS_Trigger.Q1; ```

Источники

  1. IEC 61131-3:2013 — Programmable controllers — Part 3: Programming languages.
  2. ГОСТ Р МЭК 61131-3-2016 — Контроллеры программируемые. Часть 3. Языки программирования.
  3. John K. H. (2010) — Programmable Logic Controllers: Principles and Applications. 5th ed.
  4. Lewis R. W. (1998) — Programming Industrial Control Systems Using IEC 1131-3.
  5. Документация CODESYS Development System (3S-Smart Software Solutions GmbH).
  6. Документация TIA Portal (Siemens AG).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →