Последовательная функциональная диаграмма
Последовательная функциональная схема ( SFC ) — это визуальный язык программирования , используемый для программируемых логических контроллеров (ПЛК). Это один из пяти языков, определенных стандартом IEC 61131-3 . Стандарт SFC определяется как «Подготовка функциональных схем для систем управления » и основан на GRAFCET (который сам основан на двоичных сетях Петри). [1] [2] ).
Его можно использовать для программирования процессов, которые можно разделить на этапы.

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