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

Устранение неполадок

GrafcetMaker проверяет проект, пока вы работаете. Счётчики в правом верхнем углу показывают число ошибок (красный) и предупреждений (оранжевый); щёлкните их, чтобы открыть список Проблемы. Щёлкните проблему, чтобы перейти к элементу, и воспользуйтесь кнопкой исправления, если она есть. Элементы с проблемой также несут значок на диаграмме: наведите на него указатель, чтобы увидеть подробности.

Ошибки

В графсете G1 нет начального шага. Ничто никогда не сможет стать активным. Выделите первый шаг и нажмите исправление Сделать шаг … начальным или задайте ему вид Начальный шаг.

Несколько шагов имеют один номер. Номера в графсете должны быть уникальными, иначе Xn был бы неоднозначным. Используйте Перенумеровать шаги или измените номер клавишей F2.

Пустое условие перехода. Каждому переходу нужно условие. Используйте 1 для перехода, который всегда истинен (исправление сделает это за вас).

Неизвестная переменная. Имя не объявлено (файл создан в другом месте или переменная удалена). Имена, которые вы вводите в условии перехода или действии, создаются автоматически; для остальных используйте исправление, чтобы создать переменную, или выберите предложенное имя, если это опечатка.

Проблемы в выражениях (неожиданный символ, недостающая скобка…). Окно проблемы под полем отмечает место и даёт подсказку. Частая ошибка: / перед условием означает НЕ, поэтому пишите a * /b для «a и не b». См. Запись условий переходов.

Действие присваивает значение входу. Входы поступают от процесса, и записывать их нельзя. Измените направление переменной или используйте другую переменную.

Команда принудительной установки указывает на несуществующий графсет или шаг. Проверьте имя графсета и номера шагов в команде.

Команды принудительной установки образуют цикл. Графсет не может принудительно устанавливать тот, который принудительно устанавливает его, напрямую или через другие. Удалите одну из команд или поручите третьему графсету принудительно устанавливать оба.

Макрошаги и охватывающие шаги образуют цикл. Графсет не может содержать сам себя: макрошаг или охватывающий шаг ведёт, напрямую или через другие, обратно к собственному графсету. Задайте этому шагу вид Шаг и верните прежний: он получит собственный подграфсет.

У макрошага … нет графсета развёртки (или У охватывающего шага … нет вложенного графсета). Его подграфсет был удалён. Задайте шагу вид Шаг и снова Макрошаг (или Охватывающий шаг), чтобы получить новый, или оставьте его обычным шагом.

Графсет … используется несколькими шагами. Каждому макрошагу и охватывающему шагу нужен свой подграфсет. Задайте одному из шагов вид Шаг и верните прежний: он получит собственный подграфсет.

Предупреждения

Шаг … никогда не может стать активным. К нему не ведёт ни один путь от начального шага. Свяжите его или удалите.

У шага … нет исходящего перехода. Став активным, он остаётся активным навсегда. Обычно не хватает цикла назад (L).

Альтернативные ветви не взаимоисключающие. Оба условия перехода могут быть истинны одновременно, и тогда активировались бы обе ветви. Сделайте их взаимоисключающими, например a и /a * b, или используйте исправление Дать приоритет ….

Возможна бесконечная неустойчивая эволюция. Все переходы цикла могут быть истинны одновременно, и графсет никогда бы не стабилизировался. Добавьте условие, часто фронт (↑start), которое не может оставаться истинным.

Выход задаётся непрерывными действиями шагов, которые могут быть активны одновременно. Две параллельные ветви управляют одним выходом. Управляйте им из одного места или используйте запоминаемые действия.

Действие без шага запоминается при деактивации. Без шага действие всегда активно и никогда не деактивируется, поэтому оно никогда не выполняется. Прикрепите его к шагу или измените его вид.

Выход задаётся действием без шага и ещё одним действием. Выход истинен, когда истинно любое из них. Убедитесь, что вы этого хотите.

Запоминаемое по событию, но без события. Введите событие (например, ↑b) на панели «Свойства».

Условное действие без условия. Оно работает как непрерывное действие, пока вы не введёте его условие на панели «Свойства».

Запоминаемые действия макрошага игнорируются. Макрошаг активен через свою развёртку: поместите запоминаемые действия на шаг развёртки.

Принудительная установка в пустую ситуацию, которая никогда не отменяется. Команда вроде G2{} деактивирует все шаги G2, и ничто не активирует их снова. Используйте G2{INIT}, чтобы перезапустить G2 в его начальной ситуации.

Развёртка (или вложенный графсет) … не используется. На неё не указывает ни один макрошаг или охватывающий шаг. Удалите её вкладку, если она вам больше не нужна.

Развёртке нужен ровно один входной шаг и один выходной шаг. В развёртке макрошага у входного шага нет перехода над ним, а у выходного — под ним.

Информация

Переменная … не используется. Она объявлена, но не используется ни в одном выражении. Удалите её исправлением или оставьте на будущее.

Другие вопросы

Моделирование остановилось из-за бесконечной неустойчивой эволюции. См. предупреждение выше: симулятор останавливается после 1000 итераций без устойчивости, в показанный момент времени.

Мой таймер не идёт. Таймеры идут, только пока работают часы: нажмите F5, чтобы запустить их, или F10, чтобы перейти к следующему таймеру.

Переход срабатывает снова и снова. Если его условие перехода остаётся истинным, графсет крутится по кругу так быстро, как может. Используйте фронт ↑a, чтобы реагировать один раз на нажатие.

Я потерял свою работу. Загляните в Файл › Локальная история: снимки хранятся в браузере. После перезагрузки или сбоя GrafcetMaker автоматически снова открывает ваш последний проект, включая несохранённые изменения.

Файл не открывается. GrafcetMaker открывает собственные файлы .grafcet.json и файлы grafcet.io (.grafcetio); сообщение объясняет, почему файл отклонён. Для файла, сохранённого более новой версией GrafcetMaker, нужна эта более новая версия.