Sfc язык программирования – 11 Язык последовательного функционального управления

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

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

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

Пример SFC диаграммы:

 

пример программы SFC

 

Шаг

SFC POU состоит из набора шагов, связанных переходами. Существуют 2 вида шагов:

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

 

Действие

Действие может содержать список инструкций на IL или ST, схемы на FBD или LD, или снова схемы на SFC. При использовании простых шагов действие всегда связывается с этим шагом. Для того, чтобы редактировать действие, необходимо дважды щелкнуть левой клавишей мышки на шаге. Или выделить шаг и выбрать команду меню «Extras» «ZoomAction/Transition». Помимо основного действия, шаг может включать одно входное и одно выходное действие. Действия МЭК шагов показаны в Организаторе Объектов, непосредственно под вызывающей их POU. Редактирование действия запускается двойным щелчком мыши или клавишей <Enter>. Новые действия добавляются командой главного меню «Project» «Add Action». Вы можете сопоставить одному шагу до 9 действий.

 

Входное или выходное действие

В шаг можно добавить входное и выходное действие.

Входное действие выполняется один раз при активизации шага, выходное – при деактивизации. Шаг, который имеет входное действие, обозначается буквой «Е» в левом нижнем углу, шаг с выходными действиями – буквой «Х» в правом нижнем углу.

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

Переход/условие перехода

Между шагами находятся так называемые переходы. Условием перехода может быть логическая переменная или константа, логический адрес или логическое выражение, описанное на любом языке. Условие может включать серию инструкций, образующих логический результат, в виде ST выражения (т.е.(i<= 100) AND b) либо на любом другом языке. Но условие не должно содержать присваивания, вызов программ и экземпляров функциональных блоков.

В редакторе SFC условие перехода можно записать непосредственно около символа перехода либо в отдельном окне редактора для ввода условия  Условие заданное окне редактора предпочтительнее.

 

Активный шаг

После вызова SFC POU начальный шаг (шаг, выделенный двойной рамкой) выполняется первым. Шаг, выполняемый в данный момент, называется активным. Действия, связанные с активным шагом, выполняются один раз в каждом управляющем цикле. В режиме online активные шаги выделяются синим цветом. Следующий за активным шагом шаг станет активным, только когда условие перехода к этому шагу будет истинно.

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

 

Шаг МЭК

В отличие от упрощенного SFC МЭК шаги могут включать несколько действий. Действия МЭК шагов описываются отдельно от них и могут неоднократно использоваться в пределах данного POU, для чего их надо связать с шагом с помощью команды главного меню «Extras» «Associate action».

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

С помощью так называемых классификаторов действия и логические переменные могут активироваться и деактивироваться, возможно, с задержкой времени. Например: действие может продолжать работу, даже если запустивший его шаг утратил активность; с помощью классификатора S (установка) можно программировать параллельные процессы и т.д. Логическая переменная, связанная с шагом, получает значение ИСТИНА при каждой активации шага. Действие, связанное с МЭК шагом, описывается справа от него в блоке, состоящем из двух частот. Левая часть этого блока содержит классификатор, возможно, с константой времени, а правая часть содержит имя действия или логической переменной.

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

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

Extras» «Use IEC-Steps» и подключить к проекту специальную библиотеку Iecsfc.lib. В Организаторе объектов действия показаны непосредственно под SFC POUs, которые их вызывают. Новые действия можно создавать с помощью команды «Project» «Add Action«.

Альтернативная ветвь

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

Параллельные ветви

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

Переход на произвольный шаг (Jump)

Переход на произвольный шаг — это соединение на шаг, имя которого указано под знаком «jump». Такие переходы нужны для того, чтобы избежать пересекающихся и идущих вверх соединений.

 

Мой блог находят по следующим фразам

plc24.ru

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, который определяет условие передачи разрешения на работу с одного Шага на другой.

studfiles.net

Функциональный блок 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/SOut 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.




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

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

www.maxplant.ru

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

Язык программирования SFC (Sequential Function Chart Последовательные функциональные схемы)   это одна из составных частей стандарта IEC61131-3. Sequential Function Chart хоть и именуется языком программирования промышленных контроллеров, по сути своей является вспомогательным средством структурирования программ.  Особое распространение SFC получил в пакетах SCADA – программ.

Последовательные функциональные схемы (SFC) представляют собой графический инструмент стандарта МЭК 61131, для структурирования последовательности выполнения действий, связанных с конкретными моментами времени или событиями. Основными элементами SFC  (Sequential Function Chart)  являются такие понятия как состояние и переход.  Ежели задаться целью описать все базовые элементы языка программирования SFC, то выглядеть он будет следующим образом:

  • Состояние. В этом блоке описывают некие действия.
  • Переход. Каждый из подобных блоков обладает логическим выражением выполнения.
  • Альтернативное ветвление. При наличии различных условий алгоритм можно разветвлять.
  • Параллельное ветвление. Имеет общее условие на переход.
  • Останов алгоритма
  • .

 

Язык программирования SFC схож визуально с диаграммами состояний. Каждый шаг и условие описываются на одном из 4 языков стандарта программирования промышленных контроллеров: LD, FBD, IL, ST.

Алгоритм программы на  SFC выполняется «сверху-вниз». В целом средства последовательных функциональных схем позволяют упростить процесс описания сложных систем с условиями и ветками, что делает его полезным инструментом в руках программиста ПЛК.

Tags CoDeSys IEC-61131 программирование языки

 

autoworks.com.ua

Создание программы на языке SFC (Отчет по лабораторной работе) | ЛАБЫ

В начало

 

Задание

Создать программу на языке SFC согласно условиям задания 1.

 

Решение

Рис. Решение на языке SFC

 

Рис. Окно редактора переменных

 

 

 

ОТВЕТЫ НА КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Охарактеризуйте язык функционального управления SFC

Графический язык (Sequential Function Chart) появился в 1979 г. как язык, позволяющий ясно и однозначно определить желаемое поведение системы управления. Отличается строгим математиче­ским определением, каждое операционное состояние системы мо­жет быть декодировано с очень небольшим анализом.

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

Диагностика SFC позволяет обнаружить ошибки проекта до того, как приложение тестируется в режиме Online.

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

2.      Для чего служат спецификаторы в языке SFC?

При каждом связывании действия с шагом спецификатор, назначенный для действия, определит управление действием. Спецификатор можно объяснить как вход внутреннего функционального блока для логического связывания шага с действием. Если шаг становится активным, вход этого внутреннего функционального блока устанавливается в состояние 1. Теперь функциональный блок обрабатывается согласно его типу. Когда все условия истинны, выход Q (действие) устанавливается в состояние 1.

Возможные спецификаторы: N, None, S, R, L, D, P и DS. Для L, D и DS дополнительно должно быть определено время действия с типом данных TIME.

Спецификаторы N и «пусто» имеют одинаковое значение и представляют действие «не запомнить или не сохранить».

Спецификатор S представляет действие «установить/сохранить».

Действие установки остается активным, даже если соответствующий шаг становится неактивным. Действие становится неактивным, только когда оно сброшено в другом шаге со спецификатором R.

Спецификатор R представляет действие «доминирующий сброс».

Спецификатор L представляет действие «ограниченный по времени».

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

Спецификатор D представляет действие «задержанный по времени».

Если шаг становится активным, запускается внутренний таймер, и после того как определенное для действия время истекло, действие становится равным 1. Если шаг становится неактивным до времени действия, действие не станет активным.

Спецификатор P представляет действие  «импульс».

Если шаг становится активным, действие будет равно 1 и останется таким для одного сканирования программы, при этом несущественно остается или нет шаг активным.

 Спецификатор DS представляет действие «замедленный и сохраняемый/запоминаемый». Он является комбинацией спецификаторов D и S. Если шаг становится активным, внутренний таймер будет запущен, и после достижения определенного значения времени действие становится активным. Действие станет снова неактивным, когда будет сброшено в другом шаге с использованием спецификатора R.

             3. Каково назначение переходов в языке SFC?

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

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

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

Приведение в действие перехода может контролироваться диагностикой перехода.

Если никакое условие перехода не определено, переход никогда не станет активным.

Пуск перехода дезактивирует (сбрасывает) все непосредственно предшествующие шаги, связанные с переходом, затем активизирует все непосредственно следующие шаги.

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

Переход является переменной типа данных BOOL.

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

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

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

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

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

4.Что такое секция перехода и ее назначение в языке SFC?

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

Если выбор, сделанный в диалоге Options → Preferences → Graphical Editors…, является опцией Dynamic numbered, диалог Transition Properties автоматически отобразит обозначение псевдонима перехода. При вводе собственного имени для секции перехода следует обратить внимание на то, что каждая секция перехода может использоваться только один раз. При вводе имени секции, использованной ранее, появиться сообщение об ошибках.

Секция перехода автоматически создается при первом открытии. Имя секции перехода теперь отображается выше значка перехода в SFC-редакторе.

Если переход и включаемая им секция перехода не отредактированы, анимируемая секция перехода отобразит состояние Disabled.

Если другая опция выбрана как Transition section после того, как секция перехода была создана, появиться сообщение с вопросом, была ли секция перехода очищена. Если ответ No, секция перехода будет сохраняться. Вы можете также использовать командную кнопку Lookup , чтобы просмотреть список всех секций перехода, которые не используются в настоящее время.

5.      Назовите основные элементы языка SFC.

Язык SFC использует следующие структурные элементы для соз­нания программы (рис. 4): шаг (Step), переход (Transition), прыжок (Jump) и связи типа ответвления (Branch) и соединения (Joint).

Рис. Основные структурные элементы

 

6. Что такое альтернативное (параллельное) соединение (ответвление)?

Альтернативное ответвление – это условное программирование ответвлений в потоке управления SFC-структуры.

mc-plc.ru

основные блоки. Встроенные языки программирования, SOFTLOGIC (часть 2).

 

SCADA-системы, которые комплектуются дополнительным ПО для программирования промышленных контроллеров, называются интегрированными и к ним добавляют термин SoftLogіс. Современный контроллер свободно программируем, т.е. предоставляет разработчику возможность создавать пользовательские программы произвольной структуры без ограничений их функциональности, будь то программа управления пастеризатором на молочном комбинате или управление колонной ректификации на НПЗ. По сути, единственным ограничением здесь может быть объем свободных ресурсов контроллера. Очевидно, что незапрограммированный контроллер – это всего лишь пустая железка, не приносящая никакой пользы.

Большинство SCADA-систем имеют встроенные языки высокого уровня, Basic-подобные языки, позволяющие генерировать адекватную реакцию на события, связанные с изменением значения переменной, выполнением некоторого логического условия, использованием комбинации клавиш, а также реализацией некоторого фрагмента с заданной частотой относительно всего приложения или отдельного окна.

Встроенные языки программирования — мощное средство SCADA — систем, предоставляющее разработчику гибкий инструмент для разработки сложных приложений. Первые версии SCADA — систем либо не имели подобных языков, либо эти языки реализовывали небогатый набор функций. В современных версиях SCADA — систем функциональные возможности языков становятся существенно богаче. Явно выделяются два подхода:

  • Ориентация встроенных языков программирования на технологов. Функции в таких языках являются высокоуровневыми, не требующими профессиональных навыков программирования при их использовании.
  • Ориентация на системного интегратора. В этом случае в качестве языков чаще всего используются VBasic — подобные языки.

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

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

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

Краткий обзор языков стандарта.

Аббр. Обозначение Английский Обозначение Русский Описание
IL Instruction List Список инструкций Текстовый язык. Аппаратно-независимый низкоуровневый ассемблероподобный язык.
LD Ladder Diagram Релейно-Контактные Схемы Графический язык. Представляет собой программную реализацию электрических схем на базе электромагнитных реле.
FBD Function Block Diagram Функциональные блоковые диаграммы Графический язык. Функциональный блок (ФБ) выражает некую подпрограмму. Каждый ФБ имеет входы (слева) и выходы (справа). Программа создается путем соединения множества ФБ.
SFC Sequential Function Chart Последовательностные функциональные диаграммы Графический высокоуровневый язык. Создан на базе математического аппарата сетей Петри. Описывает последовательность состояний и условий переходов.
ST Structured Text Структурированный текст Текстовый Паскалеподобный язык программирования

 

Язык LD

Язык LD (LAD, Ladder) является графическим языком разработки, программа на котором представляет собой аналог релейной схемы. Пример программы на данном языке приведен на рис. 7.1. По идеи авторов стандарта, такая форма представления программы облегчит переход инженеров из области релейной автоматики на ПЛК.

К недостаткам данного языка можно отнести то, что по мере увеличения количества «реле» в схеме она становится сложнее для интерпретации, анализа и откладки. Еще один недостаток языка LD заключается в следующем: язык, построенный по аналогии с релейными схемами, может быть эффективно использован только для описания процессов, имеющих дискретный (двоичный) характер; для обработки «непрерывных» процессов (с множеством аналоговых переменных) такой подход теряет смысл.

Рис. 7.1. Язык релейных диаграмм LD.

 

Язык FBD

Язык FBD (Functional Block Diagram, Диаграмма Функциональных Блоков) является языком графического программирования, так же, как и LD, использующий аналогию с электрической (электронной) схемой. Программа на языке FBD представляет собой совокупность функциональных блоков (functional flocks, FBs), входа и выхода которых соединены линиями связи (connections). Эти связи, соединяющие выхода одних блоков с входами других, являются по сути дела переменными программы и служат для пересылки данных между блоками. Каждый блок представляет собой математическую операцию (сложение, умножение, триггер, логическое “или” и т.д.) и может иметь, в общем случае, произвольное количество входов и выходов. Начальные значения переменных задаются с помощью специальных блоков – входов или констант, выходные цепи могут быть связаны либо с физическими выходами контроллера, либо с глобальными переменными программы. Пример фрагмента программы на языке FBD приведен на рис. 7.2.

Рис. 7.2. Функциональная схема FBD.

 

Практика показывает, что FBD является наиболее распространенным языком стандарта IEC. Графическая форма представления алгоритма, простота в использовании, повторное использование функциональных диаграмм и библиотеки функциональных блоков делают язык FBD незаменимым при разработке программного обеспечения ПЛК.

Язык SFC

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

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

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

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

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

Язык ST

Язык ST (Structured Text, Структурированный Текст) представляет собой язык высокого уровня, имеющий черты языков Pascal и Basic. Данный язык имеет те же недостатки, что и IL, однако они выражены в меньшей степени. Пример программы на языке ST приведен на рис. 7.4.

С помощью ST можно легко реализовывать арифметические и логические операции (в том числе, побитовые), безусловные и условные переходы, циклические вычисления; возможно использование как библиотечных, так и пользовательских функций. Язык также интерпретирует более 16 типов данных.

Рис. 7.4. Язык структурированного текста ST.

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

Язык IL

Язык IL (Instruction List, Список Команд) представляет собой ассемблероподобный язык, достаточно несложный по замыслу авторов стандарта, для его практического применения в задачах промышленной автоматизации пользователем, не имеющим, с одной стороны, профессиональной подготовки в области программирования, с другой стороны, являющимся специалистом в той или иной области производства. Однако, как показывает практика, такой подход себя не оправдывает.

Пример программы на языке IL приведен на рис. 7.5.

Рис. 7.5. Язык инструкций IL.

 

IL часто применяется для кодирования отдельных функциональных блоков, из которых впоследствии складываются схемы FBD или CFC. При этом IL позволяет достичь высокой оптимальности кода: программные блоки, написанные на IL, имеют высокую скорость исполнения и наименее требовательны к ресурсам контроллера. Язык IL имеет все недостатки, которые присущи другим низкоуровневым языкам программирования: сложность и высокую трудоемкость программирования, трудность модификации написанных на нем программ, малую степень «видимого» соответствия исходного текста программы и решаемой задачи.

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

Язык CFC

Язык CFC (Continuous Flow Chart) – еще один высокоуровневый язык визуального программирования. По сути, CFC – это дальнейшее развития языка FBD. Этот язык был специально создан для проектирования систем управления непрерывными технологическими процессами.

Рис. 7.6. Среда проектирования на языке CFC системы Simatic PCS7.

 

Проектирование сводится к выбору из библиотек готовых функциональных блоков, их позиционированию на экране, установке соединений между их входами и выходами, а также настройке параметров выбранных блоков. В отличие от FBD, функциональные блоки языка CFC выполняют не только простые математические операции, а ориентированы на управление целыми технологическими единицами. Так в типовой библиотеке CFC блоков находятся комплексные функциональные блоки, реализующие управление клапанами, моторами, насосами; блоки, генерирующие аварийные сигнализации; блоки PID-регулирования и т.д. Вместе с тем доступны и стандартные блоки FBD. Унаследовав от FBD саму концепцию программирования, язык CFC в наибольшей степени ориентирован на сам технологический процесс, позволяя разработчику абстрагироваться от сложного математического аппарата.

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




infopedia.su

язык 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]

Тематики

EN

translate.academic.ru

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

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