Sequential function chart
Послідо́вні функціона́льні схе́ми (діагра́ми) або 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) — дія виконується, поки активний стан;
- R (англ. overriding Reset) — дія деактивується;
- S (англ. Set / Stored — дія активується і залишається активною до скидання;
- L (англ. time Limited) — дія активується на заданий час, але не довше ніж триває стан;
- D (англ. time Delayed) — дія активується через заданий час після активації стану;
- P (англ. Pulse) — дія виконується одноразово;
- 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:
Примітки
- 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
- Grundlagen IEC 61131-3 auf Basis von CoDeSys