Когда разовая редактированием проверка включена, Редактор Stateflow® обнаруживает потенциальные ошибки и предупреждения, когда вы работаете над своим графиком. Путем устранения этих проблем рано в процессе проектирования, можно избежать времени компиляции или предупреждений во время выполнения и ошибок.
Редактор Stateflow подсвечивает объекты, которые нарушают разовые редактированием регистрации красного (для ошибок) или оранжевый (для предупреждений). Когда вы указываете на объект, который подсвечен, и кликните по ошибке или предупреждению значка, подсказка отображает детали и возможные меры.
По умолчанию разовая редактированием проверка и выделение синтаксической ошибки включены. Чтобы отключить разовые редактированием проверки, во вкладке Debug, снимают флажок Diagnostics> Edit-Time Errors & Warnings.
Эта таблица приводит разовые редактированием проверки, которые имеют связанный диагностический параметр конфигурации на Diagnostics> панель Stateflow диалогового окна Configuration Parameters.
Можно управлять уровнем диагностического действия для этих разовых редактированием проверок путем устанавливания значения их параметра конфигурации к 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 когда график, когда нет никаких операторов, которые вызывают функцию. Чтобы решить этот вопрос, вызовите функцию от состояния или действия перехода или от другой функции.
Диагностический уровень: Предупреждение