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

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

Редактор Stateflow подсвечивает объекты, которые нарушают разовые редактированием регистрации красного (для ошибок) или оранжевый (для предупреждений). Когда вы указываете на объект, который подсвечен, и кликните по ошибке или предупреждению значка, подсказка отображает детали и возможные меры.

Справьтесь с разовыми редактированием проверками

По умолчанию разовая редактированием проверка и выделение синтаксической ошибки включены. Чтобы отключить разовые редактированием проверки, во вкладке Debug, снимают флажок Diagnostics> Edit-Time Errors & Warnings.

Эта таблица приводит разовые редактированием проверки, которые имеют связанный диагностический параметр конфигурации на Diagnostics> панель Stateflow диалогового окна Configuration Parameters.

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

Можно управлять уровнем диагностического действия для этих разовых редактированием проверок путем устанавливания значения их параметра конфигурации к errorПредупреждение, или none. Когда вы изменяете настройки для параметра конфигурации, диагностический уровень для соответствующих разовых редактированием проверок также изменяется. Например, если вы устанавливаете параметр конфигурации Unreachable execution path на none, затем редактор Stateflow не подсвечивает повисшие переходы, затенение перехода или недостижимые состояния.

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

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

Диагностический параметр конфигурации: Недостижимый путь к выполнению (Simulink)

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

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

Диагностический уровень: Ошибка

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

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

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

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

Для получения дополнительной информации смотрите Переходы По умолчанию.

Диагностический параметр конфигурации: Никакие безусловные переходы по умолчанию (Simulink)

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

Поскольку графические функции выполняются полностью в одном временном шаге, они не должны содержать состояния. Чтобы решить этот вопрос, замените состояния на соединения. Для получения дополнительной информации смотрите Шаблоны Логики Повторного использования путем Определения Графических функций.

Диагностический уровень: Ошибка

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

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

Диагностический уровень: Ошибка

Недопустимое соединение истории

Соединение истории записывает действие подсостояний в сверхдержаве. Соединение истории недопустимо когда:

  • Соединение истории содержится в уровне графика иерархии.

  • Соединение истории содержится в состоянии с параллелью (AND) разложение.

  • Соединение истории содержится в графической функции.

  • Соединение истории является источником перехода.

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

Для получения дополнительной информации смотрите Действие состояния Записи при помощи Соединений Истории.

Диагностический уровень: Ошибка

Недопустимое пересечение

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

Диагностический уровень: Ошибка

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

Переходы не должны вводить графическую функцию. Диаграммы Stateflow вызывают графические функции от актов государственной власти или переходов. Чтобы решить этот вопрос, удалите переход, вводящий графическую функцию. Для получения дополнительной информации смотрите Шаблоны Логики Повторного использования путем Определения Графических функций.

Диагностический уровень: Ошибка

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

Переходы не должны выходить из графической функции. Блок-схемы в графических функциях должны полностью содержаться в функции. Чтобы решить этот вопрос, удалите переход, выходящий из графической функции. Для получения дополнительной информации смотрите Шаблоны Логики Повторного использования путем Определения Графических функций.

Диагностический уровень: Ошибка

Недопустимое использование ключевых слов как аргументы функции

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

Диагностический уровень: Ошибка

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

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

Диагностический уровень: Предупреждение

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

В состоянии или переходе, действии или условии не следует за синтаксическими правилами. Редактор Stateflow подчеркивает синтаксические ошибки с красной, волнистой линией. Для получения дополнительной информации смотрите, что Переход Маркирует Notation и State Labels.

Диагностический уровень: Ошибка

Примечание

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

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

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

Например, предположите тот ConditionA и ConditionB верны.

Выполнение пути к переходу от A состояния утверждать B выполняет этот приказ:

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

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

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

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

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

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

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

В результате ConditionAction2 происходит перед TransitionAction1.

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

Диагностический параметр конфигурации: действие Перехода задано перед действием условия (Simulink)

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

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

Диагностический уровень: Предупреждение

Перекрестные состояния параллели перехода

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

Диагностический уровень: Ошибка

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

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

Например, рассмотрите подсвеченный переход в этом графике.

Когда этот переход становится активным, акты государственной власти выполняются в этом порядке:

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

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

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

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

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

Диагностический параметр конфигурации: Переход вне естественного родительского элемента (Simulink)

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

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

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

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

Для получения дополнительной информации смотрите Порядок Оценки Перехода.

Диагностический параметр конфигурации: Недостижимый путь к выполнению (Simulink)

Безусловный путь из состояния с во время действий или дочерних состояний

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

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

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

Чтобы решить этот вопрос, добавьте условия перехода.

Диагностический параметр конфигурации: Переход вне естественного родительского элемента (Simulink)

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

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

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

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

Для получения дополнительной информации смотрите Отслеживание в обратном порядке в Блок-схемах.

Например, предположите тот ConditionA и ConditionB верны и ConditionC является ложным.

Затем выполняя путь к переходу по умолчанию, чтобы утвердить A выполняет этот приказ:

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

  • График оценивает ConditionA. Поскольку это условие верно, график выполняет Action1 и перемещения к второму соединению.

  • График оценивает ConditionC. Поскольку это условие является ложным, отслеживание в обратном порядке графика к первому соединению.

  • График оценивает ConditionB. Поскольку это условие верно, график выполняет Action2 и перемещения к второму соединению.

  • График оценивает ConditionC. Поскольку это условие является ложным, отслеживание в обратном порядке графика к первому соединению.

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

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

В результате график выполняет три действия условия.

Чтобы постараться не отслеживать в обратном порядке, объедините условия и создайте безусловный путь от второго соединения до целевого состояния.

Диагностический параметр конфигурации: Неожиданное отслеживание в обратном порядке (Simulink)

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

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

Диагностический параметр конфигурации: Недостижимый путь к выполнению (Simulink)

Неиспользованная функция

Функцией является unused когда график, когда нет никаких операторов, которые вызывают функцию. Чтобы решить этот вопрос, вызовите функцию от состояния или действия перехода или от другой функции.

Диагностический уровень: Предупреждение

Похожие темы