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:

  • LD — мова релейно-контактних схем;
  • FBD — функціональні блокові діаграми;
  • IL — список інструкцій;
  • ST — структурований текст.

Примітки[ред. | ред. код]

  1. IEC 61131-3:2013 Programmable controllers — Part 3: Programming languages
  2. Макаров И. М., Назаретов В. М., Кульба А. В., Швецов А. Р. Сети Петри с разноцветными маркерами. // Техническая кибернетика. — 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 [Архівовано 4 березня 2016 у Wayback Machine.]