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

Запись условий переходов

Условия переходов, условия действий и события — это логические выражения. Вы вводите их обычным ASCII; диаграмма показывает их в учебной нотации (НЕ — чертой сверху, И — как ·). Отключите Вид › Учебная нотация, чтобы видеть в точности то, что вы ввели.

Операторы

ЗначениеВводТакже допускаетсяОтображается
Иa * ba AND b, a && b, a · ba · b
ИЛИa + ba OR b, a || ba + b
НЕ/aNOT a, !a, ¬aa с чертой сверху
Передний фронт↑aRE a (ввод ^a даёт ↑a)↑a
Задний фронт↓aFE a↓a
Всегда истинно / ложно1 / 0TRUE / FALSE1 / 0
Скобки(a + b) * c(a + b) · c

НЕ связывает сильнее всего, затем И, затем ИЛИ: a + b * /c означает a + (b * (/c)). Если сомневаетесь, используйте скобки.

Передний и задний фронты

Фронт истинен только в момент изменения своего операнда: ↑a (передний фронт, P trigger), когда a переходит из ложного в истинное, ↓a (задний фронт, N trigger), когда из истинного в ложное. Используйте его, чтобы реагировать на нажатие кнопки один раз, сколько бы её ни держали.

Lamp горит от нажатия кнопки до её отпускания ↑button ↓button 0 1 Lamp
Lamp горит от нажатия кнопки до её отпускания

Три способа ввести фронт:

  • Введите ^ перед именем: ^start превращается в ↑start прямо при вводе.
  • Поставьте текстовый курсор на имя и нажмите Alt+↑ для переднего фронта или Alt+↓ для заднего. Нажмите ещё раз, чтобы убрать фронт, или другую клавишу, чтобы заменить его.
  • Щёлкните ↑ или ↓ на панели символов, которая появляется над полем, пока вы редактируете условие перехода.

RE a и FE a тоже допускаются. Фронты работают и с переменными шагов: ↑X3 истинно, когда шаг 3 становится активным.

Переменные шагов

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

Таймеры

5s/X2 истинно через 5 секунд после того, как X2 стала истинной, и снова ложно, как только X2 ложна: обычно это «5 с после активации шага 2».

Нагреватель работает 5 с start 5s/X1 0 1 Heater
Нагреватель работает 5 с
  • Единицы: ms, s, min, h, например 500ms/X4, 2min/start.
  • Операндом может быть любое условие: 3s/(a * b).
  • 2s/a/5s истинно через 2 с после того, как a стала истинной, и остаётся истинным до 5 с после того, как a стала ложной.

Сравнения

Числовые переменные (INT, REAL, TIME) сравниваются с помощью =, <>, <, <=, >, >=, а внутри сравнения можно использовать +, -, *, / и MOD: level >= 80, C = 3, T1 > 2s, (a + b) / 2 < limit. Сравнение — это условие: объединяя его с другими, заключайте его в скобки, как в start * (C < 10). Без них start * C < 10 сравнивало бы start * C с 10.

Присваивания в запоминаемых действиях

Запоминаемые действия содержат присваивание: C := C + 1, Motor := 1, Speed := 2.5, Done := FALSE. См. Действия.

Помощь при вводе

  • Предложения: начните вводить имя и выберите переменную или шаг (X…) клавишами со стрелками, затем Enter или Tab. Остаток выделенного имени показывается серым после курсора; Tab или → принимает его.
  • Пустое поле: первая переменная таблицы, которая ещё нигде не используется, показывается серым (вход для условия перехода, выход для действия); Tab принимает её.
  • Проблемы: окно под полем объясняет, что не так, подчёркивает место и предлагает исправления: Использовать Start для имени с опечаткой. Новое имя объявляется заранее (Новая переменная start: BOOL, вход) и создаётся, когда вы подтверждаете ввод.
  • Панель символов: кнопки для ↑ ↓ НЕ И ИЛИ, скобок (они заключают в себя выделенный текст) и шаблона таймера.

Выражение с проблемой всегда можно подтвердить: оно показывается на диаграмме подчёркнутым красным и значится в списке Проблемы, пока вы его не исправите.