GrafcetMaker
Открыть редактор

Основы GRAFCET

GRAFCET (IEC 60848) описывает поведение последовательной системы — машины, процесса, светофора — как ряд шагов, связанных переходами. Это язык спецификации, лежащий в основе языка SFC для ПЛК (IEC 61131-3).

Части графсета initial step transition + receptivity step with an action loop back (upward arrow) start stop 0 1 Motor
Части графсета

Шаги

Шаг — это устойчивое состояние системы: ожидание, наполнение, сверление. Он изображается квадратом со своим номером. В любой момент шаг либо активен, либо неактивен; множество активных шагов — это ситуация графсета.

  • Начальный шаг (двойной квадрат) активен при запуске системы. В графсете нужен хотя бы один такой шаг.
  • Переменная X3 истинна, пока шаг 3 активен. Её можно использовать в условиях переходов и условиях действий.

Переходы и условия переходов

Переход (короткая горизонтальная черта) связывает шаги. Его условие перехода, записанное рядом, — это условие, при котором система идёт дальше: вход (start), комбинация (start * /door), фронт (↑b), таймер (5s/X2) или сравнение (level >= 80). Условие перехода 1 всегда истинно.

  • Переход разрешён, когда активны все шаги непосредственно над ним.
  • Разрешённый переход срабатывает (преодолевается), как только его условие становится истинным.

Действия

Прямоугольники справа от шага — его действия: то, что система делает, пока шаг активен, например включить насос. Непрерывное действие называет выход, который истинен, пока шаг активен. Запоминаемые действия изменяют значение один раз — при активации или деактивации шага либо при наступлении события. См. Действия.

Пять правил эволюции

Эти правила из IEC 60848 определяют, как эволюционирует графсет. Симулятор применяет их в точности.

  1. Начальная ситуация: при запуске активны начальные шаги.
  2. Условие срабатывания: переход срабатывает, когда он разрешён и его условие перехода истинно.
  3. Срабатывание: срабатывание перехода активирует все шаги непосредственно под ним и деактивирует все шаги непосредственно над ним.
  4. Одновременное срабатывание: все переходы, которые могут сработать одновременно, срабатывают одновременно.
  5. Одновременная активация и деактивация: шаг, который одновременно активируется и деактивируется, остаётся активным.

После изменения входа правила применяются снова и снова, пока ни один переход не сможет сработать: это поиск устойчивости. Шаги, которые во время этого поиска активируются и тут же покидаются, являются неустойчивыми (транзитными): их непрерывные действия не выполняются, а запоминаемые выполняются.

Выбор пути: ИЛИ

Когда за шагом следуют несколько переходов, графсет идёт по пути, условие перехода которого истинно: это альтернативная ветвь, изображаемая одинарной горизонтальной линией (ветвление ИЛИ). Пути снова соединяются на одинарной линии (слияние ИЛИ).

Ветвление и слияние ИЛИ a a·b c d 0 1 Left 2 Right 3
Ветвление и слияние ИЛИ

Делайте условия переходов взаимоисключающими (они никогда не могут быть истинными одновременно), здесь a и /a * b. Иначе оба пути были бы пройдены одновременно. GrafcetMaker предупреждает, когда не может доказать, что альтернативные условия переходов взаимоисключающие, и предлагает дать приоритет одной из ветвей.

Одновременные действия: И

Когда за переходом следуют несколько шагов, все они активируются вместе: это параллельные ветви, изображаемые двойной линией (ветвление И). Ветви тоже заканчиваются двойной линией (слияние И): переход под ней разрешён, только когда активен последний шаг каждой ветви, то есть он ждёт завершения всех ветвей.

Ветвление и слияние И start done1·done2 0 1 Drill 2 Clamp 3
Ветвление и слияние И

Циклы

Связь, идущая вверх и нарисованная со стрелкой, возвращает к более раннему шагу: обычный способ повторять цикл. Нажмите L на шаге, затем щёлкните шаг, к которому нужно вернуться.

Большие приложения

  • Проект может содержать несколько частичных графсетов, работающих вместе, например один для цикла и один для безопасности. Они видят шаги друг друга через Xn.
  • Макрошаг заменяет подробную последовательность, нарисованную на отдельном листе, — его развёртку.
  • Охватывающий шаг содержит целый графсет, который работает, только пока этот шаг активен.
  • Команда принудительной установки задаёт ситуацию другому графсету, например при аварийном останове.

См. Макрошаги, охватывающие шаги и принудительная установка.

Подробнее

  • Запись условий переходов — полный синтаксис выражений.
  • Глоссарий — все стандартные термины в одном месте.
  • Точная интерпретация каждого правила в GrafcetMaker описана в файле docs/semantics.md репозитория с исходным кодом.