Последовательные функциональные схемы (SFC)

В Process management SFC (Sequential Function Chart) диаграммы стоят особняком, а точнее, выше по отношению к остальным трем языкам. Диаграммы SFC являются высокоуровневым графическим инструментом. Благодаря SFC идея превращения модели системы в законченную программу стала реальностью. В отличие от применения вспомогательных средств моделирования SFC дает действующую программу. SFC имеют выраженную направленность сверху вниз и отражаются прямыми линиями. Задать несколько стартовых шагов в SFC нельзя, только один шаг диаграммы является начальным. Графическая диаграмма SFC состоит из шагов и переходов между ними. Разрешение перехода определяется условием, с шагом связаны определенные действия. Описания действий выполняются на языке ST. Сам SFC не содержит каких-либо управляющих команд.

Из-за необходимости внутренней памяти только функциональные блоки и программы могут быть реализованы в SFC, функции такой возможности лишены.

Целью применения SFC является разделение задачи на простые этапы с формально определенной логикой работы системы. SFC дает возможность быстрого построения прототипа системы без программирования. Причем для отработки верхнего уровня не требуется детальное описание действий.

Применение SFC в объемных компонентах позволяет сократить время выполнения и, соответственно, время реакции системы. При помощи шагов монолитная программа разбивается на короткие фрагменты, выполняющиеся в разных рабочих циклах. В других языках реализация объемных и в то же время быстрых программ требует дополнительного кодирования механизма поэтапного выполнения. SFC стимулирует к равномерному распределению вычислительной мощности процессора практически без дополнительных усилий программиста. Реализация функциональных блоков и программ в SFC имеет существенную особенность. Отсутствуют первая и последняя инструкции. Оператор RETURN также не используется. Программа как бы не имеет конца. Каждый вызов SFC компонента равноценен выполнению одного цикла. Что конкретно будет выполнять компонент, зависит от его предыдущего состояния.