Язык последовательных функциональных схем (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 могут быть альтернативными. Каждая альтернативная ветвь должна начинаться и заканчиваться переходом. Альтернативные ветви могут содержать параллельные ветви и другие альтернативные ветви. Альтернативная ветвь начинается горизонтальной линией (начало альтернативы), а заканчивается горизонтальной линией (конец альтернативы) или переходом на произвольный шаг (jump). Если шаг, который находится перед линией альтернативного начала, активен, то первые переходы альтернативных ветвей начинают оцениваться слева направо. Таким образом, первым активируется тот шаг, который следует за первым слева истинным переходом.
Параллельные ветви
Две и более ветви SFC могут быть параллельными. Каждая параллельная ветвь должна начинаться и заканчиваться шагом. Параллельные ветви могут содержать альтернативные ветви и другие параллельные ветви. Параллельная ветвь наносится двойной горизонтальной линией (параллельное начало) и заканчивается двойной горизонтальной линией (конец параллели) или переходом на произвольный шаг (jump). Если шаг активен, условие перехода после этого шага истинно и за этим переходом следуют параллельные ветви, то активируются первые шаги этих ветвей. Эти ветви выполняются параллельно друг другу. Шаг, находящийся после параллельных ветвей, становится активным только тогда, когда все предыдущие шаги активны и условие перехода истинно.
Переход на произвольный шаг (Jump)
Переход на произвольный шаг — это соединение на шаг, имя которого указано под знаком «jump». Такие переходы нужны для того, чтобы избежать пересекающихся и идущих вверх соединений.
Мой блог находят по следующим фразам
11. Язык программирования sfc (Sequential Function Chart)
Текущая версия (не проверялась)
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, который определяет условие передачи разрешения на работу с одного Шага на другой.
Функциональный блок 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
Название | Режим | Комментарий |
---|---|---|
AUT | Автоматический | |
SEMI-AUT | Полуавтоматический | Блок останавливается в начале каждого шага, и шаг выполняется по команде оператора |
O/S | Out of Service | Online обслуживание может проводиться в этом режиме |
Название | Режим | Комментарий |
---|---|---|
STOP | Остановлен | Блок остановлен и находится в ожидании стартовой команды |
RUN | Выполняется | |
PAUS | На паузе | Выполнение приостановлено |
ABRT | Прерван | Выполнение прервано из-за фатальной или внутренней ошибки |
Язык программирования SEBOL
SEquence and Batch Oriented Language (SEBOL) — язык программирования, предназначенный для управления процессами.
Переменные SEBOL
Глобальные переменные
Глобальные переменные доступны из любого шага блока SFC.
Глобальные переменные описываются в Initial Step:
Локальные переменные
Локальные переменные доступны только в том шаге, где они описаны:
Декларация функциональных блоков
Глобальная декларация
Функциональный блок доступен из любого шага блока SFC.
Описание в Initial Step:
Локальная декларация
Функциональный блок доступен только из того шага блока SFC, в котором он описан:
Задание
Разработать простейшую программу на языке SFC из 3-х шагов.
Действия шагов описать на языке SEBOL.
Решение
- Создаём новый проект с названием STEP
- Открываем редактор Common Switch Builder:
FCS0101 > SWITCH > SwitchDef - Добавляем 4 тега:
- Открываем редактор схемы управления DR0001 и добавляем SFC Block:
- Задаём имя тега – STEP:
- Открываем редактор Function Block Detail Builder и добавляем три шага:
- Дважды щёлкаем по первому шагу и добавляем комментарий:
- Аналогично добавляем комментарий ко второму шагу – «Действие 1» и к третьему шагу – «Действие 2»:
- Выделяем первый шаг и нажимаем Edit > Edit Step Action:
- Добавляем код SEBOL для Initial Step:
Закрываем это окно - Щёлкаем дважды по первому переходу и добавляем следующее условие:
- Выделяем второй шаг, нажимаем Edit > Edit Step Action, добавляем команду SEBOL:
- Щёлкаем дважды по второму переходу и добавляем условие:
- Выделяем третий шаг, нажимаем Edit > Edit Step Action, добавляем команду SEBOL:
- Запускаем симулятор контроллера
- Открываем окно статуса схемы управления:
- Щёлкаем дважды по блоку STEP и открываем окно статуса SFC:
Видим, что статус блока BSTS=STOP - Вызываем лицевую панель блока STEP:
- Нажимаем кнопку [RUN] и переводим блок в статус RUN:
Видим, что блок перешёл в статус RUN - Вызываем лицевые панели тегов: CONDITION1 и ACTION1
- Имитируем выполнение условия перехода ко второму шагу – нажимаем кнопку [ON] на лицевой панели CONDITION1:
Видим, что выполнилось действие 1, и завершился шаг 1 - Вызываем лицевые панели тегов: CONDITION2 и ACTION2
- Имитируем выполнение условия перехода к третьему шагу – нажимаем кнопку [ON] на лицевой панели CONDITION2:
Видим, что выполнилось действие 2, и блок перешёл в статус STOP. - Оцените, пожалуйста, полезность этого урока
Пошаговый самоучитель CENTUM VP: урок 15
Пошаговый самоучитель CENTUM VP: урок 13
основные блоки. Встроенные языки программирования, 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 прост в освоении, и при этом позволяет разрабатывать сложнейшие алгоритмы автоматизированного управления без каких-либо специфических знаний других языков программирования.
язык 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]
язык 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]
Тематики
- автоматизированные системы
EN
- Sequential Function Chart
- 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]