Последовательная функциональная диаграмма - Sequential function chart
Последовательная функциональная диаграмма (SFC) - это графический язык программирования, используемый для программируемые логические контроллеры (ПЛК). Это один из пяти языков, определенных IEC 61131-3 стандарт. Стандарт SFC определяется как, Подготовка функциональных схем для систем управления, и был основан на GRAFCET (сам основан на двоичном Сети Петри[1][2]).
Его можно использовать для программирования процессов, которые можно разбить на шаги.
Основными компонентами SFC являются:
- Шаги со связанными действиями;
- Переходы с соответствующими логическими условиями;
- Направленные связи между ступенями и переходами.
Шаги на SFC-диаграмме могут быть активными или неактивными. Действия выполняются только для активных шагов. Шаг может быть активным по одному из двух мотивов:
- Это начальный шаг, указанный программистом.
- Он был активирован во время цикла сканирования и с тех пор не деактивировался.
Шаги активируются, когда все шаги выше него активны и соединительный переход является супераблем (т. Е. Связанное с ним условие истинно). Когда переход пройден, все вышеперечисленные шаги сразу деактивируются и после все шаги, указанные ниже, активируются сразу.
Действия, связанные с шагами, могут быть нескольких типов, наиболее важными из которых являются «Непрерывный» (N), «Установить» (S) и «Сброс» (R). Помимо очевидного значения Set и Reset, действие N гарантирует, что его целевая переменная будет установлена в 1, пока шаг активен. Правило SFC гласит, что если два шага имеют действие N на одной и той же цели, переменная никогда не должна сбрасываться в 0. Также можно вставить LD (Лестничная диаграмма ) действия внутри программы SFC (а это стандартный способ, например, для работы с целочисленными переменными).
SFC по своей сути параллельный язык в том, что несколько потоков управления - программные организационные единицы (POU) на языке стандарта - могут быть активны одновременно.
Нестандартные расширения языка включают макрооперации: то есть действия внутри программного модуля, которые влияют на состояние другого программного модуля. Наиболее важным из таких макродействий является «форсирование», при котором ПМ может определять активные шаги другого ПМ.
Смотрите также
Рекомендации
- ^ Fernandez, J. L .; Sanz, R .; Paz, E .; Алонсо, К. (19–23 мая 2008 г.). «Использование иерархических двоичных сетей Петри для создания надежных приложений для мобильных роботов: RoboGraph». Международная конференция IEEE по робототехнике и автоматизации, 2008 г.. Пасадена, Калифорния, США. С. 1372–1377. Дои:10.1109 / ROBOT.2008.4543394.
- ^ Льюис, Р. У. (1998). Программирование промышленных систем управления с использованием IEC 1131-3. ISBN 978-0852969502.
- ^ Том Медоукрофт, 2018