Послідо́вні функціона́льні схе́ми (діагра́ми) абоSequential function chart (SFC) — мова програмування стандартуIEC 61131-3[1], що призначена для програмуванняпромислових контролерів. Знайшла широке використання уSCADA/HMI пакетах багатьох розробників.
SFC — це графічна мова, що призначена для написання програм послідовного керування технологічним процесом, яка описує процес у формі близькій додіаграми станів. Аналогом може слугуватимережа Петрі із різнокольоровим маркерами[2]. У кожному стані система виконує дії (підпрограми) з певними модифікаторами. Наприклад, модифікаторN вказує виконувати, поки стан є активним.
Приклад: Підтримання рівня рідини у посудині з безперервним її витіканням
╔════════╗ ║ ║ ║ START ║ Початковий стан ╚═══╤════╝ │ ─┼─level_low Рівень менший (умова переходу – логічна змінна) │ ┌───┴────┐ ┌───┬────────────┐ │ Motor ├──┤ N │motor_on │ Стан є активним поки не спрацює умова «рівень є більшим». Дія з модифікатором N - поки │ On │ └───┴────────────┘ стан є активним └───┬────┘ ─┼─level_high Рівень більший (умова переходу - логічна змінна) ┌───┴────┐ ┌───┬────────────┐ │ Motor ├──┤ P │motor_off │ Стан є активним поки не спрацює умова «рівень є більшим. Дія з модифікатором P - │ Off │ └───┴────────────┘ одноразове спрацювання └───┬────┘ │ ↓ START Перехід на початковий стан
Основні елементи мови такі:
стани (кроки), у яких виконуються певні дії; одночасно можуть бути активними декілька станів, один із станів є початковим;
переходи із стану в стан; для кожного переходу задається логічна умова переходу до наступного стану;
альтернативне розгалуження алгоритму, коли з поточного стану можливі переходи до декількох станів, при цьому кожному переходу відповідає своя логічна умова і при виконанні алгоритму проводиться лише один із альтернативних переходів;
паралельне розгалуження, на відміну від альтернативного має загальну умову переходу на декілька паралельно гілок, що працюють паралельно;
перехід до заданого стану;
зупинка процесу.
Модифікатори дій за IEC визначають деталі поведінки дій у станах (кроках). Список можливих модифікаторів:
N (англ.Non-stored) — дія виконується, поки активний стан;
SD (англ.Stored and time Delayed) — дія активується через заданий час після активації стану, навіть якщо стан уже не активний;
DS (англ.Delayed and Stored) — дія активується через заданий час після активації стану і залишається активною до скидання;
SL (англ.Stored and time Limited) — дія активується на заданий час.
Мова програмування, наприклад, використовується в інструментальному програмному комплексіCODESYS, також при програмуванні промислових контролерів сімействаSIMATIC компанії«Siemens» (моваGraph 7 як доповнення до пакетуSimatic Step 7 для контролерів SIMATIC S7-300 та SIMATIC S7-400 або мова під назвоюSFC, що застосовується в рамках інтегрованого середовища розробки програм контролерів і систем людино-машинного інтерфейсу SIMATIC PCS 7.
↑IEC 61131-3:2013 Programmable controllers — Part 3: Programming languages
↑Макаров И. М., Назаретов В. М., Кульба А. В., Швецов А. Р. Сети Петри с разноцветными маркерами. // Техническая кибернетика. — 1987. — № 6. — С. 101—107.
Петров И. В. Программируемые контроллеры. Стандартные языки и приёмы прикладного проектирования / Под ред. проф. В. П. Дьяконова. — М.: СОЛОН-Пресс, 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