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

Функциональные блоковые диаграммы

Функциональная блоковая диаграмма (ФБД, англ. Functional Block Diagram, FBD) — это графический язык описания и проектирования систем, используемый для представления алгоритмов управления, логических схем и процессов обработки сигналов в виде набора функциональных блоков, соединённых линиями связи. ФБД относится к семейству языков программирования промышленных контроллеров (PLC) и стандартизирована в рамках международного стандарта IEC 61131-3 (ГОСТ Р МЭК 61131-3-2016). Основное назначение ФБД — визуализация потоков данных и логических зависимостей между входными и выходными сигналами.

История

Истоки функциональных блоковых диаграмм восходят к теории автоматического управления и схемотехнике середины XX века. В 1960-х годах при проектировании аналоговых и цифровых вычислительных машин инженеры использовали блок-схемы для описания передаточных функций и логических элементов. С развитием программируемых логических контроллеров (ПЛК) в 1970-х годах возникла потребность в стандартизации графических языков для программирования промышленной автоматики. В 1993 году Международная электротехническая комиссия (МЭК) приняла стандарт IEC 61131-3, который закрепил FBD как один из пяти языков программирования ПЛК (наряду с LD, ST, IL и SFC). В России стандарт был адаптирован как ГОСТ Р МЭК 61131-3-2016.

Основные элементы и структура

ФБД состоит из трёх базовых компонентов: функциональных блоков, линий связи и портов ввода-вывода.

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

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

  • Логическими (AND, OR, NOT, XOR);
  • Арифметическими (ADD, SUB, MUL, DIV);
  • Триггерными (SR, RS, D-триггеры);
  • Таймерными (TON, TOF, TP);
  • Счётными (CTU, CTD);
  • Пользовательскими (созданными разработчиком на основе других языков IEC 61131-3).

Каждый блок имеет прямоугольную форму с именем функции в верхней части и списком входов (слева) и выходов (справа). Входы и выходы могут быть как дискретными (логический 0/1), так и аналоговыми (числовые значения).

Линии связи

Линии (проводники) соединяют выходы одних блоков с входами других, передавая данные. Направление потока данных указывается стрелками. Ветвление линий допускается, но не рекомендуется для сложных схем во избежание путаницы.

Порты и интерфейсы

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

Принцип работы

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

Пример: схема управления двигателем

Рассмотрим простейший пример: пуск двигателя по нажатию кнопки «Пуск» и остановка по кнопке «Стоп». ФБД включает:

  • Блок AND (логическое «И»), на входы которого подаются сигналы с кнопки «Пуск» (нормально разомкнутый контакт) и инвертированный сигнал с кнопки «Стоп» (через блок NOT);
  • Блок SR (триггер с приоритетом сброса), который запоминает состояние включения;
  • Выходной блок, передающий команду на пускатель двигателя.

При нажатии «Пуск» на выходе AND появляется 1, триггер устанавливается, двигатель запускается. При нажатии «Стоп» триггер сбрасывается, двигатель останавливается.

Классификация

ФБД можно классифицировать по нескольким признакам:

По типу решаемых задач

  • Логические схемы управления — для дискретных процессов (конвейеры, станки, системы безопасности);
  • Аналоговые регуляторы — для непрерывных процессов (ПИД-регуляторы, фильтры, преобразователи);
  • Гибридные системы — сочетающие дискретную и аналоговую логику.

По уровню абстракции

  • Базовые блоки — элементарные операции (логические, арифметические);
  • Составные блоки — макросы, объединяющие несколько базовых блоков;
  • Библиотечные блоки — готовые решения для типовых задач (например, блок управления задвижкой).

По среде исполнения

  • Программные ПЛК — реализованные в средах разработки (CODESYS, Siemens TIA Portal, Schneider Electric Unity Pro);
  • Аппаратные ПЛК — встроенные в контроллеры (например, Siemens S7-1200, Allen-Bradley CompactLogix);
  • Симуляционные модели — используемые в MATLAB/Simulink, LabVIEW для моделирования систем.

Применение

ФБД широко применяется в промышленной автоматизации, робототехнике, энергетике, системах «умного дома» и транспортной инфраструктуре. Основные области:

Промышленная автоматизация

На заводах и фабриках ФБД используется для программирования ПЛК, управляющих конвейерными линиями, упаковочными машинами, станками с ЧПУ. Например, система управления линией розлива напитков может включать блоки заслонок, датчиков уровня, таймеров и счётчиков бутылок.

Энергетика

В электрических подстанциях и распределительных устройствах ФБД реализует логику защиты, автоматического включения резерва (АВР) и управления выключателями. Блоки сравнения, задержки и триггеры обеспечивают надёжное переключение.

Системы безопасности

Противопожарные системы, аварийные остановки и системы контроля доступа строятся на ФБД с использованием блоков AND, OR, таймеров и счётчиков. Например, сигнал тревоги формируется при одновременном срабатывании двух датчиков дыма (логическое «И»).

Образование и обучение

ФБД используется в учебных курсах по автоматизации, так как наглядно демонстрирует логику работы без глубокого знания текстовых языков программирования. Студенты строят схемы управления светофорами, лифтами, сортировочными станциями.

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

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

Недостатки

  • Ограниченная сложность — при большом количестве блоков схема становится трудночитаемой;
  • Сложность с параллелизмом — в однопоточных контроллерах порядок выполнения блоков может влиять на результат;
  • Зависимость от среды разработки — некоторые производители вводят расширения, несовместимые с другими системами.

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

ЯзыкТип представленияОсновное применение
FBDГрафический (блоки)Логические схемы, аналоговые регуляторы
LD (Ladder Diagram)Графический (релейные схемы)Дискретное управление, традиционная релейная автоматика
ST (Structured Text)ТекстовыйСложные алгоритмы, математические расчёты
IL (Instruction List)Текстовый (ассемблерный)Низкоуровневое программирование, устаревший
SFC (Sequential Function Chart)Графический (конечные автоматы)Последовательные процессы, этапные алгоритмы

ФБД часто комбинируется с SFC для описания последовательности этапов и с ST для реализации сложных функций внутри блоков.

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

Наиболее распространённые среды для создания ФБД:

  • CODESYS (3S-Smart Software Solutions) — кроссплатформенная среда, поддерживающая все языки IEC 61131-3;
  • TIA Portal (Siemens) — интегрированная среда для контроллеров Siemens;
  • Unity Pro (Schneider Electric) — для ПЛК Modicon;
  • RSLogix 5000 (Rockwell Automation) — для контроллеров Allen-Bradley;
  • OpenPLC — открытая платформа для образовательных целей.

Интересные факты

  • В стандарте IEC 61131-3 ФБД является единственным языком, который поддерживает как дискретную, так и аналоговую обработку без переключения контекста.
  • Некоторые производители (например, Siemens) допускают использование ФБД для программирования не только ПЛК, но и промышленных роботов и ЧПУ.
  • В 2020 году вышла обновлённая версия стандарта IEC 61131-3 Edition 3, которая расширила возможности ФБД для работы с объектно-ориентированными структурами данных.

Источники

  • ГОСТ Р МЭК 61131-3-2016. Контроллеры программируемые. Часть 3. Языки программирования.
  • IEC 61131-3:2013. Programmable controllers — Part 3: Programming languages.
  • John, K. H., Tiegelkamp, M. (2001). IEC 61131-3: Programming Industrial Automation Systems. Springer.
  • Lewis, R. W. (1998). Programming Industrial Control Systems Using IEC 1131-3. IEE Control Engineering Series.
  • Документация CODESYS V3.5 SP18 — Functional Block Diagram (FBD).

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

На главную BFOmetr →