Запись условий переходов
Условия переходов, условия действий и события — это логические выражения. Вы вводите их обычным ASCII; диаграмма показывает их в учебной нотации (НЕ — чертой сверху, И — как ·). Отключите Вид › Учебная нотация, чтобы видеть в точности то, что вы ввели.
Операторы
| Значение | Ввод | Также допускается | Отображается |
|---|---|---|---|
| И | a * b | a AND b, a && b, a · b | a · b |
| ИЛИ | a + b | a OR b, a || b | a + b |
| НЕ | /a | NOT a, !a, ¬a | a с чертой сверху |
| Передний фронт | ↑a | RE a (ввод ^a даёт ↑a) | ↑a |
| Задний фронт | ↓a | FE a | ↓a |
| Всегда истинно / ложно | 1 / 0 | TRUE / FALSE | 1 / 0 |
| Скобки | (a + b) * c | (a + b) · c |
НЕ связывает сильнее всего, затем И, затем ИЛИ: a + b * /c означает a + (b * (/c)). Если сомневаетесь, используйте скобки.
Передний и задний фронты
Фронт истинен только в момент изменения своего операнда: ↑a (передний фронт, P trigger), когда a переходит из ложного в истинное, ↓a (задний фронт, N trigger), когда из истинного в ложное. Используйте его, чтобы реагировать на нажатие кнопки один раз, сколько бы её ни держали.
Три способа ввести фронт:
- Введите
^перед именем:^startпревращается в↑startпрямо при вводе. - Поставьте текстовый курсор на имя и нажмите Alt+↑ для переднего фронта или Alt+↓ для заднего. Нажмите ещё раз, чтобы убрать фронт, или другую клавишу, чтобы заменить его.
- Щёлкните ↑ или ↓ на панели символов, которая появляется над полем, пока вы редактируете условие перехода.
RE a и FE a тоже допускаются. Фронты работают и с переменными шагов: ↑X3 истинно, когда шаг 3 становится активным.
Переменные шагов
X3 истинна, пока шаг 3 активен. В проекте с несколькими графсетами X3 обозначает шаг 3 того же графсета или единственный шаг 3 проекта. Используйте её для синхронизации графсетов, например чтобы ждать, пока другой графсет достигнет определённого шага.
Таймеры
5s/X2 истинно через 5 секунд после того, как X2 стала истинной, и снова ложно, как только X2 ложна: обычно это «5 с после активации шага 2».
- Единицы:
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, вход) и создаётся, когда вы подтверждаете ввод.
- Панель символов: кнопки для ↑ ↓ НЕ И ИЛИ, скобок (они заключают в себя выделенный текст) и шаблона таймера.
Выражение с проблемой всегда можно подтвердить: оно показывается на диаграмме подчёркнутым красным и значится в списке Проблемы, пока вы его не исправите.