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

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

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

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

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

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

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

Разовые редактированием проверки на состояниях

Invalid Intersection

  • Проблема: Состояния и соединения не должны перекрываться в редакторе Stateflow.

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

  • Решение: Избегайте пересечений путем разделения состояний и соединений.

Monitoring Leaf or Child State Activity of Parallel States

  • Проблема: Графики и состояния с параллелью (AND), разложение не поддерживает контроль листа или дочернее действие состояния, потому что параллельные подсостояния активны одновременно.

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

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

Object Contains a Syntax Error

  • Проблема: состояние активности не следует за синтаксическими правилами Stateflow. Редактор Stateflow подчеркивает синтаксические ошибки с красной, волнистой линией.

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

  • Решение: Откорректируйте синтаксическую ошибку в состоянии активности. Для получения дополнительной информации смотрите Метки состояния.

    Примечание

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

Unreachable State

  • Проблема: состоянием является unreachable, когда никакой допустимый путь к выполнению не приводит к нему.

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

  • Решение: Соедините недостижимое состояние с переходом от достижимого состояния или соединением.

Разовые редактированием проверки на переходах

Dangling Transition

  • Проблема: Каждый переход должен иметь допустимое целевое состояние или соединение.

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

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

Default Transition Is Missing

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

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

  • Решение: Задайте начальное состояние путем добавления перехода по умолчанию. Для получения дополнительной информации смотрите Переходы По умолчанию.

Default Transition Path Does Not Terminate in a State

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

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

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

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

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

Invalid Default Transition Path

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

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

  • Решение: Измените путь к переходу по умолчанию, таким образом, это остается в родительском состоянии.

Invalid Transitions Crossing into Graphical Function

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

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

  • Решение: Удалите переход, вводящий графическую функцию.

Object Contains a Syntax Error

  • Проблема: В переходе, условии или действии не следует за синтаксическими правилами Stateflow. Редактор Stateflow подчеркивает синтаксические ошибки с красной, волнистой линией.

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

  • Решение: Откорректируйте синтаксическую ошибку в условии перехода или действии. Для получения дополнительной информации смотрите Метки Перехода.

Transition Action Precedes a Condition Action Along This Path

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

  • Диагностический уровень: Зависит от действия Перехода параметра конфигурации, заданного перед действием условия.

  • Решение: Поместите действие перехода после последнего действия условия с путем.

Transition Begins or Ends in a Parallel State

  • Проблема: В графиках и состояниях с параллелью (AND) разложение, все одноуровневые состояния активны или неактивны одновременно.

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

  • Решение: Удалите переходы или измените разложение родительского состояния к исключительному (OR).

Transition Connects to a Box

  • Проблема: Переходы могут только соединиться с состояниями и соединениями.

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

  • Решение: Переместите или удалите переходы, присоединенные к полю.

Transition Crosses Parallel States

  • Проблема: Автономные диаграммы Stateflow не поддерживают переходы, которые пересекают контур параллельного состояния.

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

  • Решение: Удалите переход, пересекающийся в или из параллельных состояний.

Transition Enters or Exits Graphical Function

  • Проблема: Переходы не должны выходить из графической функции. Блок-схемы в графических функциях должны полностью содержаться в функции.

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

  • Решение: Удалите переход, выходящий из графической функции.

Transition Loops Outside Natural Parent

  • Проблема: Если переход выходит за пределы родительского состояния между источником и местом назначения, график выполняет exit и entry действия родительского состояния перед целевым состоянием становятся активными.

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

  • Решение: Переместите переход так, чтобы он содержался в родительском состоянии.

Transition Shadowing

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

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

  • Решение: Создайте не больше, чем один безусловный переход от каждого состояния или соединение. Явным образом укажите, что безусловный переход выполняется после любых переходов с условиями. Для получения дополнительной информации смотрите Порядок Оценки Перехода.

Unconditional Path Out of State with During Actions or Child States

  • Проблема: Безусловные переходы, выводящие из состояния, запрещают выполнение during действия в состоянии и переходы по умолчанию к дочерним состояниям.

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

  • Решение: Добавьте условие в переход или удалите во время действий и дочерних состояний от состояния.

Разовые редактированием проверки на соединениях

Cycle Contains Transitions with Transition Actions

  • Проблема: Циклы не должны содержать переходы с действиями перехода.

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

  • Решение: Удалите действие перехода или удалите цикл путем удаления перехода.

Invalid History Junction

  • Проблема: соединением истории является invalid когда:

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

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

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

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

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

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

  • Решение: Удалите соединение истории из уровня графика иерархии, состояния с параллелью (AND) разложение или графическая функция. Удалите все кроме одного соединения истории от состояния. Переместите источник перехода в соединительное соединение или состояние. Для получения дополнительной информации смотрите Действие состояния Записи при помощи Соединений Истории.

Junction Has No Unconditional Escape from Cycle

  • Проблема: соединение должно иметь безусловный путь к Escape от цикла до состояния или завершающего работу соединения.

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

  • Решение: Создайте безусловный путь от соединения до состояния или завершающего работу соединения.

Unexpected Backtracking

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

    • Несколько путей к переходу из того же источника приводят к соединению.

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

  • Диагностический уровень: Зависит от параметра конфигурации Неожиданное отслеживание в обратном порядке.

  • Решение: Создайте безусловный путь от соединения до состояния или завершающего работу соединения. Для получения дополнительной информации смотрите Отслеживание в обратном порядке в Блок-схемах.

    Например, подсвеченное соединение в этом графике не имеет безусловного пути к переходу, чтобы утвердить A. Если ConditionA и ConditionB верны и ConditionC является ложным, отслеживание в обратном порядке графика к первому соединению в пути многократно. В результате график выполняет три действия условия.

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

Unreachable Junction

  • Проблема: соединением является unreachable, когда никакой допустимый путь к выполнению не приводит к нему.

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

  • Решение: Соедините недостижимый перекресток с переходом от достижимого состояния или соединение.

Разовые редактированием проверки на функциях

Function is Unused

  • Проблема: функцией является unused когда график, когда нет никаких операторов, которые вызывают функцию.

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

  • Решение: Вызовите функцию от состояния или действия перехода или от другой функции.

Graphical Function Contains a State

Invalid Use of Keywords as Function Arguments

  • Проблема: функциональное определение использует зарезервированное слово в качестве аргумента.

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

  • Решение: Переименуйте аргумент в функцию. Для списка зарезервированных слов см. Правила для Именования Объектов Stateflow.

Похожие темы