Моделирование
Симулятор выполняет ваш графсет точно по правилам IEC 60848, так что вы можете проверить его до того, как он попадёт в ПЛК.
Запуск и остановка
Нажмите F5 (или Моделирование › Начать моделирование). Диаграмма блокируется, элементы управления моделированием заменяют инструменты вверху, слева появляется панель Моделирование (сверните её шевроном, чтобы видеть больше диаграммы), и часы начинают идти. Shift+F5 останавливает моделирование и возвращает к редактированию.
Изменение входов
Панель Моделирование перечисляет входы:
- У входов BOOL есть переключатель и кнопка Удерж. для кратковременного нажатия (как у кнопки без фиксации; с клавиатуры удерживайте на ней Space).
- У входов INT, REAL и TIME есть поле значения.
Можно также щёлкнуть вход BOOL там, где он написан в условии перехода или условии на диаграмме (или коснуться его пальцем): он включается или выключается. Графсет эволюционирует, как только изменяется вход.
Во время моделирования каждая переменная INT, REAL или TIME, записанная в условии перехода или условии, показывает своё текущее значение в маленьком окошке над именем, а запоминаемое действие показывает значение записываемой им переменной под своим прямоугольником. Щёлкните значение (или коснитесь его), чтобы ввести новое, затем нажмите Enter (Escape отменяет). Это работает для входов, а также для внутренних переменных и выходов, например чтобы проверить счётчик вблизи его предела.
Наведите указатель на переход (или коснитесь его), чтобы увидеть, чего он ждёт: шаги, которые сначала должны стать активными, или члены его условия перехода, которые ещё ложны, с оставшимся временем таймера, например 10s/X0. Фронт, например ↑start, всегда указывается в списке: он истинен только в момент изменения своего входа.
Время
Время в симуляторе виртуальное и детерминированное.
- F5 приостанавливает часы и снова запускает их. Таймеры (
5s/X2) идут, только пока часы работают. - Скорость — от ×0.25 до ×10. Быстро перескакивает сразу от истечения одного таймера к следующему.
- F10 переходит к истечению следующего таймера и выполняет этот цикл.
- ⟲ перезапускает моделирование с начальной ситуации.
Полоса показывает время, номер цикла и момент истечения следующего таймера. Скорость по умолчанию задаётся в Настройки › Моделирование.
Что видно на диаграмме
- Активные шаги закрашены и несут метку-точку, а под ними показано, сколько времени они активны.
- Разрешённые переходы отмечены маркером ▶; переходы мигают при срабатывании.
- Истинные сигналы в условиях переходов и условиях действий выделены зелёным, полужирным и подчёркиванием: включённая переменная, активный шаг
Xn, выполняющееся сравнение. То, что не зелёное, — это то, чего переход ещё ждёт. Под чертой НЕ цвет показывает сам сигнал: в/aaзелёный, когдаaвключён. - Выполняемые непрерывные действия показывают ✓; запоминаемые действия показывают текущее значение своей переменной.
- Шаг за шагом: когда одно изменение заставляет сработать несколько переходов подряд, диаграмма показывает каждый пройденный шаг не меньше 0,1 с, чтобы можно было проследить за меткой. Ждёт только отображение: в моделировании эти неустойчивые шаги не длятся нисколько, как требует IEC 60848, а показанные значения уже окончательные.
Журнал эволюции
Журнал на панели «Моделирование» (свёрнут: щёлкните Журнал эволюции, чтобы открыть его) перечисляет каждый цикл с тем, что его вызвало, и каждую итерацию поиска устойчивости: сработавшие переходы, активированные и деактивированные шаги. Там видны неустойчивые эволюции (шаги, пройденные без остановки). Щёлкните цикл, чтобы увидеть диаграмму такой, какой она была в тот момент.
Наблюдение за несколькими графсетами
При разделении (Ctrl+\) обе области показывают моделирование вживую: следите за производственным графсетом и его графсетом безопасности или за макрошагом и его развёрткой рядом.
Временная диаграмма
Панель Временная диаграмма (её кнопка в правом нижнем углу) отображает каждую переменную и шаги открытого графсета во времени. Щёлкните или перетащите в ней, чтобы вернуться назад во времени: диаграмма следует за этим. К текущему моменту возвращает в настоящее.
Сценарии
Чтобы точно повторить тест, запишите его:
- Щёлкните Запись: моделирование перезапускается и записывает каждое изменение входа с его временем.
- Проведите тест, затем остановите запись и дайте сценарию имя. Он сохраняется в проекте.
- Воспроизвести перезапускает моделирование и воспроизводит сценарий.
Когда графсет никогда не стабилизируется
Если переходы постоянно вызывают срабатывание друг друга (например, цикл, в котором все условия переходов истинны), эволюция никогда не становится устойчивой. Симулятор останавливается после 1000 итераций и сообщает в «Проблемах» о бесконечной неустойчивой эволюции. Добавьте условие (часто фронт ↑a), чтобы цикл не мог выполняться бесконечно. См. Устранение неполадок.