Урок 14
Функциональный блок SFC. Язык программирования SEBOL
Язык программирования SEBOL
Язык программирования SFC
Sequential Function Chart (SFC) – графический язык программирования контроллеров.
SFC используют для программирования последовательных шагов управления:
Программа SFС состоит из 3-х элементов:
- Step – действия шага
- Transition – условие для перехода на следующий шаг
- Link – связь между условиями и шагами
Step
Действия выполняются при активации шага.
Шаг активируется при завершении выполнения предыдущего шага и выполнения условия перехода на этот шаг.
Действия (action) могут быть описаны тремя способами:
- В виде логической схемы Logic Chart (LC64)
- В виде таблицы решений Sequence Table (ST16)
- На языке SEBOL:
![Рис. Пример языка SEBOL](jpg/centum/14_sebol.jpg)
Transition
Условие перехода на следующий шаг описываются в виде выражения на языке SEBOL
Link
Селективная связь
![Рис. Селективная связь](jpg/centum/14_selective_link.jpg)
При наличии параллельных шагов всегда выполняется только одна цепочка, для которой первым было выполнено условие перехода.
Циклы (Loop)
![Рис. Циклы](jpg/centum/14_loop_link.jpg)
Переходы по меткам
![Рис. Переходы по меткам](jpg/centum/14_jump_link.jpg)
Функциональный блок SFC
Функциональные блоки SFC используются для выполнения программ, написанных на языке SFC.
Модели блоков SFC:
- _SFCSW: 3-position switch
- _SFCPB: Pushbutton
- _SFCAS: Analog
![Рис. Модели блоков SFC](jpg/centum/14_sfc_model.jpg)
Название | Режим | Комментарий |
---|---|---|
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.