Обнаружьте ошибки моделирования в течение времени редактирования

Редактор Stateflow® отображает потенциальные ошибки и предупреждения путем выделения объектов красного или оранжевого цвета. Редактор подчеркивает синтаксические ошибки с красной волнистой строкой. Чтобы видеть детали и возможные меры, установите свой курсор на объект, который подсвечен, и кликните по ошибке или предупреждению значка. Путем устранения этих проблем, когда вы разрабатываете свои графики, вы избегаете потенциальной компиляции или предупреждений во время выполнения и ошибок.

Включите разовую редактированием проверку и выделение синтаксической ошибки через флажок Display> Error & Warnings.

Много разовых редактированием проверок имеют связанный диагностический параметр конфигурации. Чтобы управлять уровнем диагностического действия, откройте диалоговое окно Model Configuration Parameters. В Diagnostics> панель Stateflow, можно выбрать error, warning или none. Когда вы изменяете диагностический уровень для параметра конфигурации, диагностический уровень для соответствующей разовой редактированием проверки также изменяется. Например, если вы устанавливаете параметр конфигурации Unreachable execution path на none, затем Stateflow не подсвечивает затенение перехода в редакторе. Не все разовые редактированием проверки имеют соответствующие параметры конфигурации.

Разовая редактированием проблема проверкиДиагностический параметр конфигурации
Объект содержит синтаксическую ошибкуНикакая связанная диагностика. Всегда ошибка.
Повисший переходНедостижимый путь к выполнению (Simulink)
Недостижимое состояниеНедостижимый путь к выполнению (Simulink)
Затенение переходаНедостижимый путь к выполнению (Simulink)
Недопустимый путь к переходу по умолчаниюНикакая связанная диагностика. Всегда ошибка.
Безусловный Путь из состояния с Во время Действий или Дочерних состоянийПереход вне естественного родительского элемента (Simulink)
Графическая функция содержит состояниеНикакая связанная диагностика. Всегда ошибка.
Переход по умолчанию отсутствуетНикакая связанная диагностика. Всегда ошибка.
Путь к переходу по умолчанию не останавливается в состоянииНикакие безусловные переходы по умолчанию (Simulink)
Неожиданное отслеживание в обратном порядкеНеожиданное отслеживание в обратном порядке (Simulink)
Циклы перехода вне естественного родительского элементаПереход вне естественного родительского элемента (Simulink)
Действие перехода предшествует действию условия вдоль этого путиДействие перехода задано перед действием условия (Simulink)
Переход начинается или заканчивается в параллельном состоянииНикакая связанная диагностика. Всегда предупреждение.
Контроль листа или дочернего действия состояния параллельных состоянийНикакая связанная диагностика. Всегда предупреждение.
Неправильные переходы, пересекающиеся в графическую функциюНикакая связанная диагностика. Всегда ошибка.
Неправильные переходы, Пересекающиеся из Графической функцииНикакая связанная диагностика. Всегда ошибка.

Объект содержит синтаксическую ошибку

В состоянии или переходе, обозначение для действия или условия не следует за синтаксическими правилами. Нарушения подсвечены как ошибки. Смотрите Обозначение Метки Перехода и Метки состояния.

Примечание

Подграфики с синтаксическими ошибками кажутся красными в вышестоящей диаграмме со значком, указывающим на проблему синтаксиса. В редакторе подграфика объект подсвечен в красном, однако нет никакого значка, указывающего на проблему.

Повисший переход

Повисший переход не соединяется с целевым объектом. Переходы должны иметь допустимое исходное состояние или соединение и допустимое целевое состояние или соединение. Смотрите Переходы.

Управляйте уровнем диагностического действия путем установки параметра конфигурации диагностики Unreachable execution path.

Недостижимое состояние

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

Управляйте уровнем диагностического действия путем установки параметра конфигурации диагностики Unreachable execution path.

Затенение перехода

Затенение перехода происходит, когда график содержит безусловный переход, происходящий из источника, который предотвращает другие переходы от того же источника от выполнения. Избегать затенения перехода:

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

  • Явным образом задайте безусловный переход как более низкий порядок оценки, чем какие-либо переходы с условиями. Смотрите Порядок Оценки Перехода.

Управляйте уровнем диагностического действия путем установки параметра конфигурации диагностики Unreachable execution path.

Недопустимый путь к переходу по умолчанию

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

Безусловный Путь из состояния с Во время Действий или Дочерних состояний

Безусловные переходы, выводящие из запрещения состояния:

  • Выполнение действий during в состоянии.

  • Переходы по умолчанию к дочерним состояниям.

Управляйте уровнем диагностического действия путем установки параметра конфигурации диагностики Transition outside natural parent.

Графическая функция содержит состояние

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

Переход по умолчанию отсутствует

Графики или состояния с исключительным (OR), разложение требует, чтобы переход по умолчанию указал на дочернее состояние или соединение, где выполнение начинается. Смотрите Переходы По умолчанию. Нарушения подсвечены как ошибки. Чтобы разрешить ошибку, добавьте переход по умолчанию к дочернему состоянию или соединение.

Путь к переходу по умолчанию не останавливается в состоянии

В графиках или состояниях с исключительным (OR) разложение и по крайней мере одно подсостояние:

  • Каждый путь вдоль перехода по умолчанию должен привести к подсостоянию.

  • Должен быть один путь к переходу по умолчанию, который не охраняет условие или инициировало событие.

Если один путь вдоль перехода по умолчанию остается безусловным, можно включать несколько соединений и переходов.

Управляйте уровнем диагностического действия путем установки параметра конфигурации диагностики No unconditional default transitions.

Неожиданное отслеживание в обратном порядке

Непреднамеренное отслеживание в обратном порядке потока управления может произойти на перекрестке, когда эти условия верны:

  • Соединение не имеет безусловного пути к переходу к состоянию или останавливающемуся соединению.

  • Несколько путей к переходу, которые совместно используют исходный вывод к соединению.

Смотрите отслеживание в обратном порядке в блок-схемах.

Управляйте уровнем диагностического действия путем установки параметра конфигурации диагностики Unexpected backtracking.

Циклы перехода вне естественного родительского элемента

Если переход, который циклы за пределами метрополии между источником и местом назначения, выходом и действиями записи метрополии выполняют перед целевым состоянием, становится активным. Например, когда подсвеченный переход в этом графике становится активным, акты государственной власти выполняются в этом порядке:

  • Действия exit в B состояния

  • Действия exit в A состояния

  • Действия entry в A состояния

  • Действия entry в C состояния

Чтобы препятствовать тому, чтобы график вышел и повторно вошел в A состояния, переместите переход так, чтобы это содержалось в A состояния.

Управляйте уровнем диагностического действия путем установки параметра конфигурации диагностики Transition outside natural parent.

Действие перехода предшествует действию условия вдоль этого пути

Когда существует действие перехода с путем с действием условия со следующим переходом, действия не выполняются в порядке переходов. Диаграммы Stateflow выполняют действия условия, когда связанное условие оценено как верное. Напротив, графики выполняют действия перехода только, когда путь к переходу полностью выполняется.

Например, в этом графике, если ConditionA и ConditionB верны, то ConditionAction2 происходит перед TransitionAction1. Путь к переходу от A состояния, чтобы утвердить B выполняет этот приказ:

  • A состояния активен.

  • График оценивает ConditionA.

  • График оценивает ConditionB.

  • График выполняет ConditionAction2.

  • A состояния становится неактивным.

  • График выполняет TransitionAction1.

  • B состояния становится активным.

Чтобы улучшить ясность графика, поместите действие перехода после последнего действия условия с путем.

Управляйте уровнем диагностического действия путем установки параметра конфигурации диагностики Transition action specified before condition action.

Переход начинается или заканчивается в параллельном состоянии

Продвижение переходов к или от параллельной причины состояния весь одноуровневый элемент параллельно состояниям, чтобы стать активным или неактивным. Нарушения подсвечены как предупреждения. Чтобы разрешить предупреждение и избежать неумышленного поведения, удалите переходы в или из параллельных состояний.

Контроль листа или дочернего действия состояния параллельных состояний

Лист или дочернее действие состояния не поддержаны для параллельных состояний. Нарушения подсвечены как предупреждения. Чтобы разрешить предупреждение, в Property Inspector или Model Explorer, снимают флажок Create output for monitoring или выбирают Self activity из выпадающего списка. Для получения дополнительной информации смотрите Действие Состояния монитора Через Активные Данные состояния.

Неправильные переходы, пересекающиеся в графическую функцию

Переходы не могут иметь графической функции как места назначения. Вызовите графические функции от актов государственной власти или переходов. Нарушения подсвечены как ошибки. Чтобы разрешить ошибку, удалите переход, пересекающийся в графическую функцию.

Неправильные переходы, Пересекающиеся из Графической функции

Переходы не могут иметь графической функции как места назначения. Вызовите графические функции от актов государственной власти или переходов. Нарушения подсвечены как ошибки. Чтобы разрешить ошибку, удалите переход, пересекающийся из графической функции.

Похожие темы