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

Sequential Function Chart

Sequential Function Chart (SFC, рус. «диаграмма последовательных функций» или «функциональная последовательная схема») — это графический язык программирования, используемый в промышленной автоматизации для описания последовательных и параллельных процессов. Он входит в состав стандарта IEC 61131-3, который определяет пять языков программирования программируемых логических контроллеров (ПЛК). SFC предназначен для моделирования дискретных производственных циклов, где операции выполняются в строго определённой последовательности, с возможностью ветвления, параллельного выполнения и синхронизации.

История и стандартизация

Язык Sequential Function Chart был разработан на основе французского стандарта GRAFCET (Graphe Fonctionnel de Commande Étapes-Transitions), созданного в 1977 году. GRAFCET изначально применялся для описания алгоритмов управления в промышленности, особенно в автомобилестроении и машиностроении. В 1993 году Международная электротехническая комиссия (IEC) включила SFC в стандарт IEC 61131-3 как один из графических языков программирования ПЛК. В России этот стандарт адаптирован как ГОСТ Р МЭК 61131-3-2016.

В отличие от других языков IEC 61131-3 (например, лестничных диаграмм LD или структурированного текста ST), SFC не является языком для написания элементарных логических операций. Он служит для организации высокоуровневого управления последовательностью шагов, внутри которых могут использоваться любые другие языки стандарта.

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

SFC состоит из трёх базовых компонентов: шагов (steps), переходов (transitions) и связей (links). Графически схема представляет собой направленный граф, где шаги обозначаются прямоугольниками, а переходы — перпендикулярными линиями (перекладинами), соединяющими шаги.

Шаги (Steps)

Шаг — это состояние системы, в котором выполняется определённый набор действий. Каждый шаг имеет уникальный идентификатор (например, имя или номер). Шаги делятся на:

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

С каждым шагом могут быть связаны действия (actions), которые выполняются, пока шаг активен. Действия описываются на других языках IEC 61131-3 (например, LD, ST, FBD) или в виде текстовых инструкций.

Переходы (Transitions)

Переход — это условие, при котором система переходит от одного шага к другому. Условие записывается в виде логического выражения (например, «датчик_1 = TRUE» или «таймер_1.Q»). Переход может быть:

  • Безусловным — если условие всегда истинно (например, «1»).
  • Условным — зависит от входных сигналов, переменных или результатов вычислений.

Переход срабатывает, когда все предшествующие шаги активны, а условие перехода истинно. После срабатывания предыдущие шаги деактивируются, а следующие — активируются.

Связи и направления

Связи — это линии со стрелками, соединяющие шаги и переходы. По умолчанию движение идёт сверху вниз. Для сложной логики используются:

Типы ветвлений

SFC поддерживает два основных типа ветвлений:

Последовательное ветвление (Selection Branch)

Используется, когда из одного шага можно перейти только в один из нескольких возможных следующих шагов в зависимости от условий. Графически изображается как одна горизонтальная линия, от которой отходят несколько переходов в разные шаги. Приоритет переходов обычно определяется порядком слева направо (если не задано иное). Например, если условие перехода 1 истинно, система идёт по первой ветке; если ложно — проверяется вторая.

Параллельное ветвление (Parallel Branch)

Позволяет активировать несколько шагов одновременно. Изображается двойной горизонтальной линией. После срабатывания перехода все шаги, соединённые с этой линией, становятся активными. Параллельные ветки выполняются независимо, но могут синхронизироваться на этапе слияния. Для завершения параллельного выполнения используется двойная линия слияния, которая ожидает, пока все ветки не достигнут своих конечных шагов.

Действия и квалификаторы

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

  • N (Non-stored) — действие выполняется, пока шаг активен.
  • S (Set) — действие активируется и остаётся активным даже после деактивации шага (до сброса).
  • R (Reset) — сбрасывает действие, установленное квалификатором S.
  • P (Pulse) — действие выполняется один раз при активации шага.
  • L (Limited) — действие выполняется в течение заданного времени.
  • D (Delayed) — действие выполняется после задержки с момента активации шага.
  • DS (Delayed and Stored) — комбинация задержки и установки.

Квалификаторы позволяют гибко управлять временными и логическими зависимостями без написания сложного кода.

Применение в промышленности

SFC широко применяется в системах управления производственными процессами, где требуется чёткая последовательность операций. Основные области использования:

Дискретное производство

  • Управление конвейерными линиями, сборочными автоматами, упаковочными машинами.
  • Программирование роботизированных ячеек (например, последовательность захвата, перемещения, установки детали).
  • Системы сортировки и паллетирования.

Непрерывные процессы (с дискретными стадиями)

  • Химические реакторы с циклическими стадиями загрузки, нагрева, выдержки, слива.
  • Водоподготовка: последовательность фильтрации, регенерации, промывки.
  • Пищевая промышленность: рецептурные циклы варки, стерилизации, розлива.

Автоматизация зданий и инфраструктуры

  • Управление лифтами (последовательность вызовов, открытия дверей, движения).
  • Системы вентиляции и кондиционирования с циклическими режимами.

Транспорт и логистика

  • Управление сортировочными станциями, автоматизированными складами.
  • Системы управления шлюзами и затворами.

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

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

  • Наглядность — графическое представление последовательности упрощает понимание и отладку сложных циклов.
  • Модульность — каждый шаг можно реализовать независимо на любом языке IEC 61131-3.
  • Параллелизм — естественная поддержка параллельного выполнения операций.
  • Стандартизация — SFC поддерживается большинством современных ПЛК (Siemens, Schneider Electric, Beckhoff, CODESYS и др.).

Недостатки

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

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

ХарактеристикаSFCLD (Ladder Diagram)ST (Structured Text)FBD (Function Block Diagram)
Основное назначениеПоследовательное управлениеЛогические релейные схемыАлгоритмические вычисленияФункциональные блоки
Графический/текстовыйГрафическийГрафическийТекстовыйГрафический
Сложность освоенияСредняяНизкаяВысокаяСредняя
Поддержка параллелизмаВстроеннаяОграниченнаяЧерез параллельные задачиОграниченная
Типичное применениеЦиклы, последовательностиПростая логика, безопасностьМатематика, обработка данныхАналоговые сигналы, ПИД-регуляторы

Пример реализации

Типичный пример SFC — управление двухпозиционным пневматическим цилиндром:

  1. Начальный шагожидание команды «Старт».
  2. Переходкнопка «Старт» нажата.
  3. Шаг 1 — включение клапана выдвижения, запуск таймера на 5 секунд.
  4. Переходтаймер завершён.
  5. Шаг 2 — включение клапана втягивания, запуск таймера на 3 секунды.
  6. Переход — таймер завершён.
  7. Возврат к начальному шагу.

Внутри шагов действия могут быть описаны на языке ST: Valve_Extend := TRUE; Timer1(IN:=TRUE, PT:=T#5s);.

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

SFC поддерживается в большинстве сред программирования ПЛК, соответствующих стандарту IEC 61131-3:

  • CODESYS (3S-Smart Software Solutions) — популярная кроссплатформенная среда.
  • TIA Portal (Siemens) — для контроллеров Simatic S7-1200/1500.
  • EcoStruxure Control Expert (Schneider Electric) — для Modicon M340/M580.
  • TwinCAT (Beckhoff) — для систем на базе Windows.
  • OpenPCS и Beremiz — открытые реализации.

В России SFC используется на предприятиях машиностроения, энергетики и нефтехимии, где внедрены системы автоматизации на базе ПЛК отечественного производства (например, «Дельта Электроникс», ОВЕН, Fastwel) или зарубежных аналогов.

Источники

  1. IEC 61131-3:2013 «Programmable controllers — Part 3: Programming languages».
  2. ГОСТ Р МЭК 61131-3-2016 «Контроллеры программируемые. Часть 3. Языки программирования».
  3. Lewis R. W. Programming Industrial Control Systems Using IEC 1131-3. — IEE, 1995.
  4. John K.-H., Tiegelkamp M. IEC 61131-3: Programming Industrial Automation Systems. — Springer, 2010.
  5. Документация CODESYS Development System, раздел «Sequential Function Chart (SFC)».

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

На главную BFOmetr →