Sfc язык программирования: Общие сведения о языке SFC — Документация Beremiz

Содержание

Функциональный блок SFC. Язык программирования SEBOL

Содержание самоучителя


Урок 14
Функциональный блок SFC. Язык программирования SEBOL
Язык программирования SEBOL

Язык программирования SFC

Sequential Function Chart (SFC) – графический язык программирования контроллеров.

SFC используют для программирования последовательных шагов управления:

Программа SFС состоит из 3-х элементов:

  • Step – действия шага
  • Transition – условие для перехода на следующий шаг
  • Link – связь между условиями и шагами
Step

Действия выполняются при активации шага.

Шаг активируется при завершении выполнения предыдущего шага и выполнения условия перехода на этот шаг.

Действия (action) могут быть описаны тремя способами:

  • В виде логической схемы Logic Chart (LC64)
  • В виде таблицы решений Sequence Table (ST16)
  • На языке SEBOL:
Transition

Условие перехода на следующий шаг описываются в виде выражения на языке SEBOL

Link
Селективная связь

При наличии параллельных шагов всегда выполняется только одна цепочка, для которой первым было выполнено условие перехода.

Циклы (Loop)
Переходы по меткам

Функциональный блок SFC

Функциональные блоки SFC используются для выполнения программ, написанных на языке SFC.

Модели блоков SFC:

  • _SFCSW: 3-position switch
  • _SFCPB: Pushbutton
  • _SFCAS: Analog
Режимы блока SFC
НазваниеРежимКомментарий
AUTАвтоматический
SEMI-AUTПолуавтоматическийБлок останавливается в начале каждого шага, и шаг выполняется по команде оператора
O/S
Out of ServiceOnline обслуживание может проводиться в этом режиме

Статусы блока SFC
НазваниеРежимКомментарий
STOPОстановленБлок остановлен и находится в ожидании стартовой команды
RUNВыполняется
PAUSНа паузеВыполнение приостановлено
ABRTПрерванВыполнение прервано из-за фатальной или внутренней ошибки

Язык программирования SEBOL

SEquence and Batch Oriented Language (SEBOL) — язык программирования, предназначенный для управления процессами.

Переменные SEBOL
Глобальные переменные

Глобальные переменные доступны из любого шага блока SFC.
Глобальные переменные описываются в Initial Step:

Локальные переменные

Локальные переменные доступны только в том шаге, где они описаны:

Декларация функциональных блоков
Глобальная декларация

Функциональный блок доступен из любого шага блока SFC.
Описание в Initial Step:

Локальная декларация

Функциональный блок доступен только из того шага блока SFC, в котором он описан:

Задание

Разработать простейшую программу на языке SFC из 3-х шагов.
Действия шагов описать на языке SEBOL.

Решение

  1. Создаём новый проект с названием STEP

  2. Открываем редактор Common Switch Builder:
    FCS0101 > SWITCH > SwitchDef

  3. Добавляем 4 тега:


  4. Открываем редактор схемы управления DR0001 и добавляем SFC Block:


  5. Задаём имя тега – STEP:


  6. Открываем редактор Function Block Detail Builder и добавляем три шага:


  7. Дважды щёлкаем по первому шагу и добавляем комментарий:


  8. Аналогично добавляем комментарий ко второму шагу – «Действие 1» и к третьему шагу – «Действие 2»:


  9. Выделяем первый шаг и нажимаем Edit > Edit Step Action:

  10. Добавляем код SEBOL для Initial Step:


    Закрываем это окно


  11. Щёлкаем дважды по первому переходу и добавляем следующее условие:


  12. Выделяем второй шаг, нажимаем Edit > Edit Step Action, добавляем команду SEBOL:


  13. Щёлкаем дважды по второму переходу и добавляем условие:


  14. Выделяем третий шаг, нажимаем Edit > Edit Step Action, добавляем команду SEBOL:


  15. Запускаем симулятор контроллера

  16. Открываем окно статуса схемы управления:




  17. Щёлкаем дважды по блоку STEP и открываем окно статуса SFC:


    Видим, что статус блока BSTS=STOP


  18. Вызываем лицевую панель блока STEP:



  19. Нажимаем кнопку [RUN] и переводим блок в статус RUN:
    Видим, что блок перешёл в статус RUN

  20. Вызываем лицевые панели тегов: CONDITION1 и ACTION1

  21. Имитируем выполнение условия перехода ко второму шагу – нажимаем кнопку [ON] на лицевой панели CONDITION1:


    Видим, что выполнилось действие 1, и завершился шаг 1


  22. Вызываем лицевые панели тегов: CONDITION2 и ACTION2

  23. Имитируем выполнение условия перехода к третьему шагу – нажимаем кнопку [ON] на лицевой панели CONDITION2:


    Видим, что выполнилось действие 2, и блок перешёл в статус STOP.


  24. Оцените, пожалуйста, полезность этого урока


Пошаговый самоучитель CENTUM VP: урок 15

Пошаговый самоучитель CENTUM VP: урок 13

11. Язык программирования 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 часто называют ‘самодокументируемым’. Инженеры по эксплуатации могут легко идентифицировать ошибку и устранить проблему. Наглядный дизайн в купе с простым мониторингом данных сокращает время проведения внеплановых работ.

SFC для повторного использования.

SFC позволяет легко использовать готовые и оттестированные блоки в новых проектах. Таким образом, можно создать собственную библиотеку блоков, Подпрограмм, Действий и постоянно использовать ее элементы. Частым заблуждением является мнение, что ‘стандартное программирование’ означает ‘стандартные программы’, и что одна SFC программа может все, в то время как у каждого производителя/конечного клиента собственные требования к технологии и создаваемым объектам. В данном случае, повторное использование SFC блоков уместно при тиражировании систем одним клиентом, а так же при реализации отдельных, схожих процессов на объектах у различных клиентов.

Резюме

  • Выгодно использовать SFC как‘ Верхний’ уровень программирования, т.е. как точки отсчета при проектировании, распределении данных, и на стадиях где необходим последовательный контроль над процессами.

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

  • SFC само документирует и сокращает время обслуживания. Программы на SFC трудно адаптируемы для различных производителей и объектов.

Ссылки

  • Смотри “CX-Programmer Руководство Пользователя” для более детального понимания процесса создания SFC диаграмм в CX-Programmer.

  • R. W. Lewis  “Programming industrial control systems using IEC 1131” замечательная книга в деталях обо всех языках стандарта МЭК 61131-3, включая SFC. ISBN 0-85296-950-3.

  • Больше информации по МЭК 61131 можно почерпнуть с сайта PLCOpen (www.plcopen.org) или сайта МЭК (http://iec.ch). Конечно, информация там носит технический характер и напрямую не предназначена для инженеров по системам управления.

Словарь 

Действие — Элемент SFC, описывающий ‘действие’ или выполняемую операцию в течение шага программы

МЭК — Международная Электротехнический Комиссия, орган стандартизации

МЭК1131 — Старое названи МЭК61131 до смены системы присвоения номеров в МЭК

МЭК61131 — Стандарт МЭК для Программируемых Логических Контроллеров (ПЛК)

Релейно-Контактная Схема (LD) — Базовый язык программирования для ПЛК, другое название–язык Лестничных диаграмм.

ПЛК — Программируемый Логический Контроллер, устройство с возможностью реализации логики и функций управления под конкретные нужды.

PLCOpen — Организация по обсуждению открытых стандартов ПЛК

SFC — Последовательность функциональных диаграмм, графический язык программирования стандарта МЭК

Шаг — Ключевой элемент SFC, обозначающий конкретную часть программы. Программа SFC при выполнении последовательно переходит от Шага к Шагу

Структурный текст — Текстовый язык программирования стандарта МЭК 61131, очень похож на язык PASCAL

Переход — Элемент SFC, который определяет условие передачи разрешения на работу с одного Шага на другой.

Общие сведения о языке IL — Документация Beremiz

ОператорОписание
LDЗагрузить значение операнда в аккумулятор
LDNЗагрузить обратное значение операнда в аккумулятор
STПрисвоить значение аккумулятора операнду
STNПрисвоить обратное значение аккумулятора операнду
SЕсли значение аккумулятора TRUE, установить логический операнд
RЕсли значение аккумулятора FALSE, сбросить логический операнд
ANDПоразрядное И аккумулятора и операнда
ANDNПоразрядное И аккумулятора и обратного операнда
ORПоразрядное ИЛИ аккумулятора и операнда
ORNПоразрядное ИЛИ аккумулятора и обратного операнда
XORПоразрядное разделительное ИЛИ аккумулятора и операнда
XORNПоразрядное разделительное ИЛИ аккумулятора и обратного операнда
NOTПоразрядная инверсия аккумулятора
ADDСложение аккумулятора и операнда, результат записывается в аккумулятор
SUBВычитание операнда из аккумулятора, результат записывается в аккумулятор
MULУмножение аккумулятора на операнд, результат записывается в аккумулятор
DIVДеление аккумулятора на операнд, результат записывается в аккумулятор
GTЗначение аккумулятора сравнивается со значением операнда(>(greater than)). Значение (TRUE или FALSE) записывается в аккумулятор
GEЗначение аккумулятора сравнивается со значением операнда(>=greater than or equal)). Значение (TRUE или FALSE) записывается в аккумулятор
EQЗначение аккумулятора сравнивается со значением операнда (=(equal)). Значение (TRUE или FALSE) записывается в аккумулятор
NEЗначение аккумулятора сравнивается со значением операнда (<>(not equal). Значение (TRUE или FALSE) записывается в аккумулятор
LEЗначение аккумулятора сравнивается со значением операнда (<=(less than or equal to)). Значение (TRUE или FALSE) записывается в аккумулятор
LTЗначение аккумулятора сравнивается со значением операнда (<(less than)). Значение (TRUE или FALSE) записывается в аккумулятор
JMPПереход к метке
JMPCПереход к метке при условии, что значение аккумулятора TRUE
JMPCNПереход к метке при условии, что значение аккумулятора FALSE
CALВызов программного или функционального блока
CALCВызов программного или функционального блока при условии, что значение аккумулятора TRUE
CALCNВызов программного или функционального блока при условии, что значение аккумулятора FALSE
RETВыход из POU и возврат в вызывающую программу
RETCВыход из POU и возврат в вызывающую программу при условии, что значение аккумулятора TRUE
RETCNВыход из POU и возврат в вызывающую программу при условии, что значение аккумулятора FALSE

язык SFC — это… Что такое язык SFC?

 

язык SFC
Язык последовательных функциональных схем. Один из пяти стандартизированных языков программирования ПЛК.
[http://kazanets.narod.ru/PLC_PART2.htm]

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

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

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

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

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

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

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


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

[http://kazanets.narod.ru/PLC_PART2.htm]

Общие сведения о языке ST — Документация Beremiz

ST (Structured Text) – это текстовый язык высокого уровня общего назначения, по синтаксису схожий с языком Pascal. Удобен для программ, включающих числовой анализ или сложные алгоритмы. Может использоваться в программах, в теле функции или функционального блока, а также для описания действия и перехода внутри элементов SFC. Согласно IEC 61131-3 ключевые слова должны быть введены в символах верхнего регистра. Пробелы и метки табуляции не влияют на синтаксис, они могут использоваться везде.

Выражения в ST выглядят точно также, как и в языке Pascal:

Порядок их выполнения – справа налево. Выражения состоят из операндов и операторов. Операндом является литерал, переменная, структурированная переменная, компонент структурированной переменной, обращение к функции или прямой адрес.

Согласно стандарту IEC 61131-3, язык ST поддерживает весь необходимый набор типов, аналогичный классическим языкам программирования. Целочисленные типы: SINT (char), USINT (unsigned char), INT (short int), UINT (unsigned int), DINT (long), UDINT (unsigned long), LINT (64 бит целое), ULINT (64 бит целое без знака). Действительные типы: REAL (float), LREAL (double). Специальные типы BYTE, WORD, DWORD, LWORD представляют собой битовые строки длиной 8, 16, 32 и 64 бит соответственно. Битовых полей в ST нет. К битовым строкам можно непосредственно обращаться побитно. Например:

a.3 := 1; (* Установить бит 3 переменной a *)

Логический тип BOOL может иметь значение TRUE или FALSE. Физически переменная типа BOOL может соответствовать одному биту. Строка STRING является именно строкой, а не массивом. Есть возможность сравнивать и копировать строки стандартными операторами. Например:

strA := strB;

Для работы со строками есть стандартный набор функций (см. приложение 2, раздел «Строковые операции с переменными типа STRING»).

Специальные типы в стандарте IEC определены для длительности (TIME), времени суток (TOD), календарной даты (DATE) и момента времени (DT).

В таблице 3.1 приведены значения по умолчанию, соответствующие описанным выше типам.

Таблица 3.1 – Значения по умолчанию для типов данных IEC 61131-3

Тип(ы) данныхЗначение
BOOL, SINT, INT, DINT, LINT0
USINT, UINT, UDINT, ULINT0
BYTE, WORD, DWORD, LWORD0
REAL, LREAL0.0
TIMET#0S
DATED#0001-01-01
TIME_OF_DAYTOD#00:00:00
DATE_AND_TIMEDT#0001-01-01-00:00:00
STRING‘’ (пустая строка)

По умолчанию, все переменные инициализируются нулем. Иное значение переменной можно указать явно при ее объявлении. Например:

str1: STRING := ‘Hello world’;

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

Таблица 3.2 – Обобщения типов данных IEC 61131-3

ANY 
ANY_BITANY_NUMANY_DATE

TIME

STRING

и другие типы данных

BOOL

BYTE

WORD

DWORD

LWORD

ANY_INTANY_REAL

DATE

TIME_OF_DAY

DATE_AND_TIME

 

INT

SINT

DINT

LINT

UINT

USINT

UDINT

ULINT

REAL

LREAL

К арифметическим операциям относятся:

  • «+» – сложение;
  • «-» – вычитание;
  • «*» – умножение;
  • «/» – деление;
  • «mod» – остаток от целочисленного деления.

Приоритет операций в выражениях указан в таблице 3.4 (чем выше приоритет, тем раньше исполняется операция).

Логические (побитовые) операции

К данным операциям относятся:

  • «OR» – Логическое (побитовое) сложение;
  • «AND» – Логическое (побитовое) умножение;
  • «XOR» – Логическое (побитовое) «исключающее ИЛИ»;
  • «NOT» – Логическое (побитовое) отрицание.

Операции сравнения

Поддерживаются следующие операции сравнения:

  • «=» – сравнение на равенство;
  • «<>» – сравнение на неравенство;
  • «>» – сравнение на больше;
  • «>=» – сравнение на не меньше;
  • «<» – сравнение на меньше;
  • «<=» – сравнение на не больше.

В качестве результата сравнения всегда используется значение типа BOOL.

Присвоение

Для обозначения присвоения используется парный знак «:=». В правой и левой части выражения должны быть операнды одного типа (автоматического приведения типов не предусмотрено). В левой части выражения (принимающая сторона) может быть использована только переменная. Правая часть может содержать выражение или константу.

В таблице 3.4 приведены приоритеты при выполнении описанных выше операций.

Таблица 3.4 – Приоритеты операций

ОперацияПриоритет
Сравнения1
Сложение, вычитание2
Умножение, деление3
OR4
AND, XOR5
NOT6
Унарный минус7
Вызов функции8

Конструкция IF – ELSEIF – ELSE

Для описания некоторых конструкций языка удобно использовать фигурные и квадратные скобки. Считается, что:

язык sfc — с английского на русский

 

язык SFC
Язык последовательных функциональных схем. Один из пяти стандартизированных языков программирования ПЛК.
[ http://kazanets.narod.ru/PLC_PART2.htm]

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

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

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

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

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

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

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

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

[ http://kazanets.narod.ru/PLC_PART2.htm]

Тематики

EN

язык sfc — со всех языков на все языки

 

язык SFC
Язык последовательных функциональных схем. Один из пяти стандартизированных языков программирования ПЛК.
[ http://kazanets.narod.ru/PLC_PART2.htm]

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

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

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

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

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

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

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

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

[ http://kazanets.narod.ru/PLC_PART2.htm]

Тематики

EN

Диаграмма последовательных функций — Википедия опубликована // WIKI 2

Диаграмма последовательных функций ( SFC ) — это графический язык программирования, используемый для программируемых логических контроллеров (ПЛК). Это один из пяти языков, определенных стандартом МЭК 61131-3. Стандарт SFC определен как Подготовка функциональных схем для систем управления и основан на GRAFCET (сам по себе на основе двоичных сетей Петри [1] [2] ).

Может использоваться для программирования процессов, которые можно разбить на этапы.

Базовая партия SFC

с важными элементами, помеченными

Основные компоненты SFC:

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

Шаги в диаграмме SFC могут быть активными или неактивными. Действия выполняются только для активных шагов. Шаг может быть активным по одному из двух мотивов:

  • Это начальный шаг, указанный программистом.
  • Был активирован во время цикла сканирования и с тех пор не деактивирован.

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

Действия, связанные с шагами, могут быть нескольких типов, наиболее актуальными из которых являются Непрерывный (N), Набор (S) и Сброс (R).Помимо очевидного значения Set и Reset, действие N гарантирует, что его целевая переменная установлена ​​в 1, пока шаг активен. Правило SFC гласит, что если два шага имеют действие N для одной и той же цели, переменная никогда не должна сбрасываться в 0. Также возможно вставить действия LD (Ladder Diagram) в программу SFC (и это стандартный способ, например, для работы с целочисленными переменными).

SFC — это по своей сути параллельный язык, в котором одновременно могут быть активны несколько потоков управления — модулей организации программ (POU) на языке стандарта.

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

[3]

Энциклопедия YouTube

  • 1/3

    Просмотров:

    6 646

    1 838

    69 187

  • ✪ CODESYS: программирование последовательной функциональной схемы (SFC) — первый урок

  • Программирование SFC

    FC с RSLogix 5000 (HD)

  • ✪ Программирование SFC с использованием RSLogix 5000 (HD)

См. Также

Рекомендации

  1. ^ Фернандес, Дж. Том Медоукрофт, 2018

Внешние ссылки

  • SFC / GRAFCET бесплатные трафареты для Microsoft Visio (ссылка)
  • Rockwell Automation, Аллен-Брэдли. Диаграммы последовательных функций ([1])
Basic Batch SFC, with important elements labelled Последний раз эта страница редактировалась 24 февраля 2020 года, в 21:53 ,Графики последовательных функций

для всех

Реализация проектов последовательных функциональных схем с использованием Язык программирования лестничных диаграмм для программируемых логических контроллеров

от Джеймса Маквинни
Napier University, Эдинбург, Шотландия.

РЕЗЮМЕ

последовательный Функциональные схемы (SFC) уже давно созданы как средство проектирования и внедрение систем последовательного управления с использованием программируемых контроллеров. Стандарт программирования IEC 61131-3 включает графическую реализацию SFC в его наборе языков программирования.Многие производители предлагают программирование среды, которые позволяют инженерам программировать контроллеры с использованием графического методы реализации SFC. Однако, а также первоначальные затраты накладные расходы оплачиваются с точки зрения скорости вычислений, программы размер и программа управления. Поэтому это средство обычно предлагается только на более крупные и мощные контроллеры, где скорость выполнения и размер программы редко являются проблемой. Этот документ демонстрирует, как SFC могут быть реализованы на любой ПЛК, включая недорогие ПЛК с простым программированием Ladder Diagram язык, с небольшими вычислительными затратами.Таким образом, позволяя пользователю все Преимущества использования SFC в процессе проектирования.

Ключевые слова: управление, конечный автомат (FSM), схемы последовательных функций (SFC), программируемая логика Контроллер (ПЛК).

1.0 Введение

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

Этап проектирования

  • Подробная четкая графическая спецификация
  • Пользователи, не занимающиеся программным обеспечением, могут указать / подтвердить

Реализация

  • Прямое преобразование из спецификации в код
  • Структурное тестирование / отладка

Техническое обслуживание программного обеспечения

  • Легко понять, инженер-модификатор программного обеспечения

Техническое обслуживание машины

  • Позволяет быстро и точно диагностировать неисправность

После краткого введение SFC в читателя, эта статья покажет, как реализовать диаграммы с использованием языка программирования Ladder Diagram (LD).Затем перейдем к обсудите, как диагностика неисправностей и прогнозная диагностика неисправностей могут быть достигнуты.

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

Этот раздел будет кратко объяснить SFC и продемонстрировать, как его можно использовать для определения контроля требования на примере. Тогда метод реализации проектов SFC будет изложил и продемонстрировал.

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


Рисунок 1: Пример последовательной функциональной схемы

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


Рисунок 2: Действия

Акция состоит классификатора, который определяет, какой тип действия e.грамм. S для набора, R для сброса и N для непрерывного на этапе. Описание действия или имени тега и наконец адрес действовал. По мере развития дизайна может быть больше деталей добавлено, как показано на рисунке 3. Эта деталь будет включать в себя память (% M), ввод (% I) и выходная (% Q) адресная информация.


Рисунок 3: Пример детальной последовательной функциональной схемы

2,1 Реализация

Важно при разработке программного обеспечения для ПЛК, чтобы проектировщик знал об операции сканирования.Сканирование ПЛК обычно состоит из следующих последовательных Операции: читает в состоянии внешних устройств в области памяти назначенный вход (I) памяти. Оценивает результаты вывода программы пользователя в память (M) и выходная память (Q). Выходная память затем используется для управления реальные физические результаты, рис 4.

  • считывание входов для ввода ОЗУ
  • Выполнить программу
  • Диагностика и коммуникационные задачи
  • Обновление выходов из ОЗУ вывода
  • Повтор

Рисунок 4: Типичное сканирование ПЛК

При реализации SFC использует Ladder Diagram (LD), шаг и логика перехода могут быть обработаны отдельно от логики действий.Логика Ladder Diagram для типичного шага показано на Рис. 5.


Рисунок 5: Логика шага / перехода SFC

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

Однажды Логика шага / перехода завершена, после чего действия могут быть записаны. В выходы простой системы могут управляться непосредственно из состояний, как показано на рис. 6.


Рисунок 6: Действия SFC

Чтобы проиллюстрировать использование SFC и как они могут быть реализованы, давайте рассмотрим простой пример.

Два поршня как показанные на рис. 7 должны контролироваться с помощью ПЛК. Операционные требования являются следующими. Когда нормально разомкнутый переключатель (% I0.7) на мгновение замкнут и оба поршня находятся дома в следующей последовательности:

  • Поршень А должен быть удлинен.
  • Когда А удлиняется, поршень В удлиняется.
  • После продления B на 3 секунды поршень A втягивается.
  • Когда А отводится, поршень В отводится.

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


Рисунок 7: Пример управления поршнем

Принимая письменное описание, SFC можно нарисовать. Поскольку входы и выходы были назначены может быть включена подробная информация о памяти, как показано на Рис. 8.


Рисунок 8: Подробная диаграмма последовательных функций (SFC)

От этого Код шага / перехода можно записать, как показано на рисунке 9.Обратите внимание, что логика шага вводится в обратном порядке, чтобы последовательность была введена хотя бы для одного Сканирование ПЛК (ссылка).


Рисунок 9: Логика шагов / переходов

Шаг 1 содержит дополнительная логика, «InitSeq», один выстрел (верно для первого сканирования) сигнал используется для помещения системы на шаг 1, когда ПЛК впервые включен или перемещен от остановки к работе, и вход аварийного останова используется для запуска системы в шаг 1, который в этом случае считается безопасным состоянием.Обратите внимание, что все остальные состояния сбрасываются, это необходимо как, например, аварийный останов может произойти на любом этапе.

Далее идет программное обеспечение для управления выходами. Это относительно просто, как показано на рисунке 9.


Рисунок 10: Логика действий

Логика также требуется для логики условия запуска последовательности.

3.0 Диагностика неисправностей

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

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

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

,

SFC-дизайн и программирование-2016 · GitHub

перейти к содержанию ПФС-дизайн и программирование-2016 Зарегистрироваться
  • Почему GitHub? Особенности →
    • Обзор кода
    • Управление проектами
    • Интеграции
    • Действия
    • Пакеты
    • Безопасность
    • Управление командой
    • Хостинг
    • Отзывы клиентов →
    • Безопасность →
  • команда
  • предприятие
  • Проводить исследования
    • Исследуйте GitHub →
    учиться и внести свой вклад
    • Темы
    • Коллекции
    • Тенденции
    • Learning Lab
    • Руководства с открытым исходным кодом
    Общайтесь с другими
.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *