Лекция: Язык программирования SFC (Sequential Function Chart)

11.1 Материал из Википедии — свободной энциклопедии

Текущая версия (не проверялась)

Sequential Function Chart — язык программирования стандарта IEC61131-3. Предназначен для программирования промышленных контроллеров. Широко используется в SCADA/HMI пакетах.

  • SFC — графический язык, предназначенный для написания программ последовательного управления технологическим процессом, описывающий его в форме близкой к диаграмме состояний. Аналогом может служить сеть Петри с разноцветными фишками. В каждом состоянии система выполняет действия (подпрограммы) с определенными модификаторами. Например, модификатор N — исполнять, пока состояние активно.

Пример: Поддержание уровня жидкости в сосуде с непрерывно вытекающей жидкостью

╔════════╗

║ ║

║ START ║ Начальное состояние

╚═══╤════╝

─┼─level_low Уровень меньше (условие перехода — логическая переменная)

┌───┴────┐ ┌───┬────────────┐

│ Motor ├──┤ N │motor_on │ Состояние активно пока не сработает

│ │ │ │ │ условие уровень больше. Действие с

│ │ │ │ │ модификатором N — пока активно

│ On │ └───┴────────────┘

└───┬────┘

─┼─level_high Уровень больше (условие перехода — логическая переменная)

┌───┴────┐ ┌───┬────────────┐

│ Motor ├──┤ P │motor_off │ Состояние активно пока не сработает

│ │ │ │ │ условие уровень больше.Действие с

│ │ │ │ │ модификатором P — однократное срабатывание

│ Off │ └───┴────────────┘

└───┬────┘

START Переход на начальное состояние


Основными элементами языка являются:

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

· останов процесса

При программировании контроллеров семейства SIMATIC, используются две версии этого языка, разработанных в компании Siemens. Язык Graph 7 является дополнением к пакету STEP 7 и реализуем как для контроллеров SIMATIC S7-300, так и SIMATIC S7-400. Вторая версия этого языка под названием SFC, применяется только в рамках интегрированной среды разработки программ контроллеров и систем человеко-машинного интерфейса PCS-7.

 

9.2 SFC расшифровывается как “Последовательность функциональных диаграмм”, и является одним из языков стандарта МЭК61131-3. SFC позволяет легко описывать на Программируемых Логических Контроллерах (ПЛК) последовательность протекания процессов в системе.

На данный момент большинство ПЛК программируется на языке Релейно-контактных схем (LD). SFC осуществляет последовательное управление процессом, базируясь на системе условий, передающих управления с одной операции на другую.

SFC выгодно выделяется своим интуитивно понятным интерфейсом в виде графических форм представления протекания процессов.


Основы языка SFC.

Язык SFC состоит из конечного числа базовых элементов, которые используются как блоки для построения целостного алгоритма протекания программы. Наиболее важным является тип S FC ‘Шаг’, который описывает одно состояние машины или операцию. Шаг изображается в виде прямоугольника с собственным именем внутри. Рисунок 9.1 показывает примеры Шагов «Наполнение» (Fill), «Промывка» (Wash) и «Сушка» (Spin).

 

Рисунок 9.1. Шаги

Шаг предваряется ‘Переходом’, который определяет условие для активации данного Шага в процессе выполнения программы и отображается в виде горизонтальной черты на ветви диаграмм процесса с указанием имени и условия. Для описания Перехода используются языки LD и Структурный Текст (ST). Для примера, окончание Наполнения и переход к Промывке осуществляется по достижению определенного уровня воды в баке, датчик ‘FullSwitch’. Машина прекратит Промывку и перейдет к Сушке, когда кол-во операций достигнет уставки (Aligitations>= 30).

Рисунок 9.2. Переходы

Каждый Шаг содержит одно или несколько ‘Действий’, определяющих какие операции должны выполняться при активации Шага. Каждому Действию присваивается имя. Одно Действие может использоваться сразу в нескольких Шагах. Действие может выполняться непрерывно, пока активен Шаг, либо единожды. Также, ряд признаков могут ограничивать время выполнения каждого Действия в Шаге. Тело Действия может содержать простое обращение к Булевым переменным (как показано ниже) или описываться на любом языке стандарта МЭК (LD, ST и т.д.). При возникновении условия Перехода к новому Шагу все Действия, относящиеся к предыдущему Шагу, прекращаются, активные — активируются.

Использование компонентов языка SFC позволяет воссоздавать диаграмму процесса. Каждая SFC диаграмма обязательно начинается с Шага Инициализации (Start), который отображается в виде прямоугольника в прямоугольнике.

Соединение элементов диаграммы осуществляется линиями или прыжками (стрелки). Использование элементов ‘Divergence и Convergence’ (Расхождение и Сходимость) позволяет ветвить процессы (см.Рисунок 9.3), тем самым обеспечивая их параллельное выполнение. SFC диаграммы могут содержать вложения ‘SubChart’ — SFC элемент ‘Подпрограмма’ –заключающая в себе кусок SFC диаграммы.

Рисунок 9.3. Пример SFC диаграммы

Когда выгодно использовать SFC?

SFC –это мощный графический язык, способен ли он заменить другие языки программирования? Нет.SFC относится к остальным МЭК языкам с большим почтением и максимально полезен при совместном использовании. LD лаконичен и эффективен для работы с Булевой логикой и управления под задачами. ST удобен для математических вычислений, организации условных переходов и циклов. Применение широко известных LD и ST для описания Переходов и Действий стократ усиливает эффект использования визуально понятного языка SFC. Во многих системах SFC идеален с точки зрения обзора системы: отображение на одной диаграмме всех ключевых элементов, мониторинг переменных, возможность свернуть часть диаграммы в Подпрограмму. При более глубоком программировании он может быть полезен для коммуникации с внешними устройствами, когда необходимо передавать последовательность команд в зависимости от получаемого отклика. Следовательно, SFC может применяться всюду, где требуется последовательный контроль процессами.

 

SFC: Удобства разработки

Спрос и требования на системы управления постоянно растет. В больших проектах с множеством подрядчиков встает вопрос о коммуникации между подсистемами. Используя SFC можно выстроить архитектуру протекания процессов в системе и разделить сферы ответственности каждого участника проекта. Последовательность Функциональных Диаграмм (SFC) зачастую реально соответствует последовательности протекания процессов на объекте, так хорошо знакомых конечному пользователю. Каждый элемент SFC определяет некоторые операции, описывает работу отдельного узла. Использование Функциональных Блоков ( FBD) и объектно-ориентированных методов программирования поможет грамотно распределить процессы по задачам и обеспечить целостность данных всей системы. Значительной экономии на времени и затратах при разработке помогает добиться мультизадачность программы ПЛК.

SFC: Удобство обслуживания

Интуитивный и легко читаемый интерфейс SFC часто называют ‘самодокументируемым’. Инженеры по эксплуатации могут легко идентифицировать ошибку и устранить проблему. Наглядный дизайн в купе с простым мониторингом данных сокращает время проведения внеплановых работ.

 

еще рефераты
Еще работы по информатике