Пример программы на языке sfc

Язык последовательных функциональных схем SFC (Sequential Function Chart), использующийся совместно с другими языками (обычно с ST и IL), является графическим языком, в котором программа описывается в виде схематической последовательности шагов, объединенных переходами. Язык SFC построен по принципу, близкому к концепции конечного автомата, что делает его одним из самых мощных языков программирования стандарта IEC 61131-3. Пример программы на языке SFC приведен на рис. 3.

Наиболее простым и естественным образом на языке SFC описываются технологические процессы, состоящие из последовательно выполняемых шагов, с возможностью описания нескольких параллельно выполняющихся процессов, для чего в языке имеются специальные символы разветвления и слияния потоков (дивергенции и конвергенции, в терминах стандарта IEC 61131-3).

Шаги последовательности располагаются вертикально сверху вниз. На каждом шаге выполняется определенный перечень действий (операций). При этом для описания самой операции используются другие языки программирования, такие как IL или ST.

ASnVK 5 SFC

Действия (операции) в шагах имеют специальные классификаторы, определяющие способ их выполнения внутри шага: циклическое выполнение, однократное выполнение, однократное выполнение при входе в шаг и т.д. В сумме таких классификаторов насчитывается девять, причем среди них есть, например, классификаторы так называемых сохраняемых и отложенных действий, заставляющие действие выполняться даже после выхода программы из шага.

После того, как шаг выполнен, управление передается следующему за ним шагу. Переход между шагами может быть условным и безусловным. Условный переход требует выполнение определенного логического условия для передачи управления на следующий шаг; пока это условие не выполнено программа будет оставаться внутри текущего шага, даже если все операции внутри шага уже выполнены. Безусловный переход происходит всегда после полного выполнения всех операций на данном шаге. С помощью переходов можно осуществлять разделение и слияние ветвей последовательности, организовать параллельную обработку нескольких ветвей или заставить одну выполненную ветвь ждать завершения другой.

Как и любому другому языку, SFC свойственны некоторые недостатки. Хотя SFC может быть использован для моделирования конечных автоматов, его программная модель не совсем удобна для этого. Это связано с тем, что текущее состояние программы определяется не переменной состояния, а набором флагов активности каждого шага, в связи с чем при недостаточном контроле со стороны программиста могут оказаться одновременно активными несколько шагов, не находящихся в параллельных потоках.

Читайте также:
Программа в чем логика

Еще одно неудобство языка связано с тем, что шаги графически располагаются сверху вниз, и переход, идущий в обратном направлении, изображается в неявной форме, в виде стрелки с номером состояния, в которое осуществляется переход.

Рис. 3. Язык последовательных функциональных схем SFC.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:

Программирование ПЛК на FBD с нуля. Урок 1. Первая программа

Источник: studopedia.ru

Языки программирования, используемые в проектах CoDeSys

CoDeSys и ОВЕН

Язык последовательных функциональных схем — SFC

Характер многих технических объектов и технологических процессов предполагает выполнение отдельных операций последовательно. В этих случаях разработчику программного обеспечения очень важно иметь средство программирования, которое позволяло бы наглядно воспроизводить структуру объекта или процесса.

Язык SFC (Sequential Function Chart) — это графический язык, который используется для описания последовательных операций. Процесс представляется в виде набора определённых шагов, связанных переходами. К каждому переходу прикреплено логическое условие. Действия внутри шагов описаны более детально с помощью других языков (как правило — ST).

SFC-программа — это графический набор шагов и переходов, соединённых вместе направленными связями. Для обозначения схождений и расхождений используются множественные связи. Некоторые части программы могут быть отделены и представлены в основной схеме одним символом — макрошагом. Вот основные графические правила для SFC:

  • — шаги не могут следовать подряд;
  • — переходы не могут следовать подряд.

Программирование на SFC обычно разделяется на два различных уровня:

  • • уровень 1 — показывает графически блок-схемы, номера ссылок на шаги, переходы и комментарии, присоединённые к ним; описание шагов и переходов даётся внутри прямоугольников, присоединённых к символам шага и перехода, в виде свободного комментария (который нс является частью языка);
  • • уровень 2 — программирование действий внутри шага или условий, присоединённых к переходу, на языке ST или IL; подпрограммы, написанные на других языках (FDB, ST, LD или IL), могут обращаться к этим действиям или переходам.
Читайте также:
Какая программа открывает pdo

Основные компоненты SFC: шаги, начальные шаги, переходы, ориентированные связи, прыжки на шаг.

О Начальный макрошаг

1—1 Конечный макрошаг

В системе программирования ISaGRAF v3.xx шаг представляется одиночным квадратом. Каждому шагу присваивается номер, написанный внутри квадрата. Основное описание шага пишется внутри прямоугольника, присоединённого к символу шага. Это свободный комментарий (который не является частью языка).

Во время работы активный шаг помечается маркером (выделяется).

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

1 — Start motor 1

У каждого шага есть атрибуты. Они могут быть использованы в любом другом языке в любом месте программы:

GSnnn.x. . активность шага (логическая переменная);

GSnnn.t. продолжительность активного состояния шага (таймер),

где ппп — номер шага.

Переходы представлены горизонтальными полосками которые пересекают линии связи. Каждому переходу присвоен номер, следующий за символом перехода. Описание перехода (комментарий) располагается справа от символа перехода.

Для связи шагов и переходов используются одиночные линии. Это ориентированные связи. Когда ориентация не задана явно, связь ориентирована сверху вниз.

Явная ориентация от перехода 11 к шагу 100

Неявная ориентация от шага 100 к переходу 10

Символ прыжка может быть использован, чтобы определить линию связи от перехода к шагу, не рисуя линию. Символ прыжка должен иметь номер шага назначения:

Прыжок к шагу 102

Связь от шага к переходу нельзя представить с помощью символа прыжка.

Расхождения — это множественные связи от одного символа SFC (шага или перехода) ко многим. Схождение — это множественные связи от более чем одного символа SFC к одному другому символу. Схождения и расхождения могут быть одиночными или двойными.

Читайте также:
Как выучить клавиатуру программа

Одиночное расхождение (альтернативное) — это множественная связь от одного шага к нескольким переходам. Оно позволяет маркеру активности пройти по одной из множества ветвей. Одиночное схождение — это множественная связь от нескольких переходов к одному и тому же шагу. Одиночное схождение обычно используется для того, чтобы объединить несколько ветвей SFC, начавшихся из одиночного расхождения. Одиночные расхождения и схождения обозначаются одиночными горизонтальными линиями.

Следует обратить внимание, что условия, присоединённые к переходам, не являются взаимоисключающими. Для того чтобы программа пошла по одной ветке, надо явно определить исключительность условий перехода.

Двойное расхождение (параллельное) — это множественная связь от одного перехода к нескольким шагам. Она соответствует параллельной работе процесса. Двойное схождение — это множественная связь от нескольких шагов к одному и тому же переходу. Двойное схождение обычно используется для того, чтобы объединить несколько ветвей SFC, начавшихся из двойного расхождения. Двойные расхождения и схождения обозначаются двойными горизонтальными линиями.

При программировании уровня 2 (действий внутри шагов и переходов) доступны следующие основные типы действий:

  • • булевские действия;
  • • импульсные действия, описанные на ST (действия типа Р);
  • • несохраняемые действия, описанные на ST (действия типа N);
  • • SFC-действия.

Булевские действия присваивают значение логической переменной при активизации шага. Логические переменные могут быть выходными или внутренними. Им присваивается значение каждый раз, когда шаг становится активным или перестаёт быть активным. Синтаксис основных логических действий:

Присвоить переменной сигнал активности шага

Присвоить переменной отрицание сигнала активности шага

Присваивает переменной значение TRUE, когда шаг становится активным

Присваивает переменной значение FALSE, когда шаг становится активным

Источник: bstudy.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru