
- •Материалы для подготовки к зачету
- •1. Введение
- •1.1 Понятие информации
- •1.2 Количество и качество информации
- •1.3 Понятие системы и ее свойства
- •1.4 Основные признаки систем
- •1.5 Понятие «черного ящика»
- •1.6 Иерархическая система
- •1.7 Управляющие системы
- •1.8 Прямая и обратная связь управления
- •1.9 Основные направления развития автоматизации управления
- •1.10 Автоматизированные системы управления технологическими процессами (асу тп)
- •1.11 Автоматизированная система управления производством (асуп)
- •2. Определение плк
- •3. Устройство плк
- •4. Введение в программирование плк
- •5. Компоненты организации программ (pou)
- •Присваивание значений параметрам функции
- •6. Данные и переменные
- •7. Структурированный текст (st)
- •8. Язык линейных инструкций (il)
- •9. Релейные диаграммы (ld)
- •10. Язык функциональных блок-схем – fbd
- •11. Язык программирования sfc (Sequential Function Chart)
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, который определяет условие передачи разрешения на работу с одного Шага на другой.