Послідо́вні функціона́льні схе́ми (діагра́ми) або Sequential function chart (SFC) — мова програмування стандарту IEC 61131-3IEC 61131-3:2013 Programmable controllers — Part 3: Programming languages, що призначена для програмування промислових контролерів. Знайшла широке використання у SCADA/HMI пакетах багатьох розробників.

SFC — це графічна мова, що призначена для написання програм послідовного керування технологічним процесом, яка описує процес у формі близькій до діаграми станів. Аналогом може слугувати мережа Петрі із різнокольоровим маркерамиМакаров И. М., Назаретов В. М., Кульба А. В., Швецов А. Р. Сети Петри с разноцветными маркерами. // Техническая кибернетика. — 1987. — № 6. — С. 101—107.. У кожному стані система виконує дії (підпрограми) з певними модифікаторами. Наприклад, модифікатор N вказує виконувати, поки стан є активним.

Приклад: Підтримання рівня рідини у посудині з безперервним її витіканням ╔════════╗ ║ ║ ║ START ║ Початковий стан ╚═══╤════╝ │ ─┼─level_low Рівень менший (умова переходу – логічна змінна) │ ┌───┴────┐ ┌───┬────────────┐ │ Motor ├──┤ N │motor_on │ Стан є активним поки не спрацює умова «рівень є більшим». Дія з модифікатором N - поки │ On │ └───┴────────────┘ стан є активним └───┬────┘ ─┼─level_high Рівень більший (умова переходу - логічна змінна) ┌───┴────┐ ┌───┬────────────┐ │ Motor ├──┤ P │motor_off │ Стан є активним поки не спрацює умова «рівень є більшим. Дія з модифікатором P - │ Off │ └───┴────────────┘ одноразове спрацювання └───┬────┘ │ ↓ START Перехід на початковий стан

Основні елементи мови такі: стани (кроки), у яких виконуються певні дії; одночасно можуть бути активними декілька станів, один із станів є початковим; переходи із стану в стан; для кожного переходу задається логічна умова переходу до наступного стану; альтернативне розгалуження алгоритму, коли з поточного стану можливі переходи до декількох станів, при цьому кожному переходу відповідає своя логічна умова і при виконанні алгоритму проводиться лише один із альтернативних переходів; паралельне розгалуження, на відміну від альтернативного має загальну умову переходу на декілька паралельно гілок, що працюють паралельно; перехід до заданого стану; зупинка процесу.

Модифікатори дій за IEC визначають деталі поведінки дій у станах (кроках). Список можливих модифікаторів: N () — дія виконується, поки активний стан; R () — дія деактивується; S ( — дія активується і залишається активною до скидання; L () — дія активується на заданий час, але не довше ніж триває стан; D () — дія активується через заданий час після активації стану; P () — дія виконується одноразово; SD () — дія активується через заданий час після активації стану, навіть якщо стан уже не активний; DS () — дія активується через заданий час після активації стану і залишається активною до скидання; SL () — дія активується на заданий час.

Мова програмування, наприклад, використовується в інструментальному програмному комплексі CODESYS, також при програмуванні промислових контролерів сімейства SIMATIC компанії «Siemens» (мова Graph 7 як доповнення до пакету Simatic Step 7 для контролерів SIMATIC S7-300 та SIMATIC S7-400 або мова під назвою SFC, що застосовується в рамках інтегрованого середовища розробки програм контролерів і систем людино-машинного інтерфейсу SIMATIC PCS 7.

Див. також Мови програмування стандарту IEC 61131-3: LD — мова релейно-контактних схем; FBD — функціональні блокові діаграми; IL — список інструкцій; ST — структурований текст.

Примітки

Джерела Петров И. В. Программируемые контроллеры. Стандартные языки и приёмы прикладного проектирования / Под ред. проф. В. П. Дьяконова. — М.: СОЛОН-Пресс, 2004. — 256 с. — ISBN 5-98003-079-4 Jochen Petry IEC 61131-3 mit CoDeSys V3: Ein Praxisbuch für SPS-Programmierer. — 2011. — 839 с. Birgit Vogel-Heuser, Andreas Wannagat Modulares Engineering und Wiederverwendung mit CoDeSys V3". — Oldenbourg Industrieverlag, 2007. — ISBN 3-8356-3105-5 Grundlagen IEC 61131-3 auf Basis von CoDeSys