Основы GRAFCET
GRAFCET (IEC 60848) описывает поведение последовательной системы — машины, процесса, светофора — как ряд шагов, связанных переходами. Это язык спецификации, лежащий в основе языка SFC для ПЛК (IEC 61131-3).
Шаги
Шаг — это устойчивое состояние системы: ожидание, наполнение, сверление. Он изображается квадратом со своим номером. В любой момент шаг либо активен, либо неактивен; множество активных шагов — это ситуация графсета.
- Начальный шаг (двойной квадрат) активен при запуске системы. В графсете нужен хотя бы один такой шаг.
- Переменная
X3истинна, пока шаг 3 активен. Её можно использовать в условиях переходов и условиях действий.
Переходы и условия переходов
Переход (короткая горизонтальная черта) связывает шаги. Его условие перехода, записанное рядом, — это условие, при котором система идёт дальше: вход (start), комбинация (start * /door), фронт (↑b), таймер (5s/X2) или сравнение (level >= 80). Условие перехода 1 всегда истинно.
- Переход разрешён, когда активны все шаги непосредственно над ним.
- Разрешённый переход срабатывает (преодолевается), как только его условие становится истинным.
Действия
Прямоугольники справа от шага — его действия: то, что система делает, пока шаг активен, например включить насос. Непрерывное действие называет выход, который истинен, пока шаг активен. Запоминаемые действия изменяют значение один раз — при активации или деактивации шага либо при наступлении события. См. Действия.
Пять правил эволюции
Эти правила из IEC 60848 определяют, как эволюционирует графсет. Симулятор применяет их в точности.
- Начальная ситуация: при запуске активны начальные шаги.
- Условие срабатывания: переход срабатывает, когда он разрешён и его условие перехода истинно.
- Срабатывание: срабатывание перехода активирует все шаги непосредственно под ним и деактивирует все шаги непосредственно над ним.
- Одновременное срабатывание: все переходы, которые могут сработать одновременно, срабатывают одновременно.
- Одновременная активация и деактивация: шаг, который одновременно активируется и деактивируется, остаётся активным.
После изменения входа правила применяются снова и снова, пока ни один переход не сможет сработать: это поиск устойчивости. Шаги, которые во время этого поиска активируются и тут же покидаются, являются неустойчивыми (транзитными): их непрерывные действия не выполняются, а запоминаемые выполняются.
Выбор пути: ИЛИ
Когда за шагом следуют несколько переходов, графсет идёт по пути, условие перехода которого истинно: это альтернативная ветвь, изображаемая одинарной горизонтальной линией (ветвление ИЛИ). Пути снова соединяются на одинарной линии (слияние ИЛИ).
Делайте условия переходов взаимоисключающими (они никогда не могут быть истинными одновременно), здесь a и /a * b. Иначе оба пути были бы пройдены одновременно. GrafcetMaker предупреждает, когда не может доказать, что альтернативные условия переходов взаимоисключающие, и предлагает дать приоритет одной из ветвей.
Одновременные действия: И
Когда за переходом следуют несколько шагов, все они активируются вместе: это параллельные ветви, изображаемые двойной линией (ветвление И). Ветви тоже заканчиваются двойной линией (слияние И): переход под ней разрешён, только когда активен последний шаг каждой ветви, то есть он ждёт завершения всех ветвей.
Циклы
Связь, идущая вверх и нарисованная со стрелкой, возвращает к более раннему шагу: обычный способ повторять цикл. Нажмите L на шаге, затем щёлкните шаг, к которому нужно вернуться.
Большие приложения
- Проект может содержать несколько частичных графсетов, работающих вместе, например один для цикла и один для безопасности. Они видят шаги друг друга через
Xn. - Макрошаг заменяет подробную последовательность, нарисованную на отдельном листе, — его развёртку.
- Охватывающий шаг содержит целый графсет, который работает, только пока этот шаг активен.
- Команда принудительной установки задаёт ситуацию другому графсету, например при аварийном останове.
См. Макрошаги, охватывающие шаги и принудительная установка.
Подробнее
- Запись условий переходов — полный синтаксис выражений.
- Глоссарий — все стандартные термины в одном месте.
- Точная интерпретация каждого правила в GrafcetMaker описана в файле
docs/semantics.mdрепозитория с исходным кодом.