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

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

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

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

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

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

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

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

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

Atomic subchart contains state actions

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

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

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

    Atomic subchart that contains state actions.

Default transition is missing

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

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

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

    Chart with no default transition.

Graphical function contains a state

Invalid intersection

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

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

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

    Invalid intersection between states.

Monitoring leaf or child state activity of parallel states

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

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

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

    Parallel substates in a state that monitors child state activity.

State contains a syntax error

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

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

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

    State that contains a syntax error.

    Примечание

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

Unreachable state

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

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

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

    Chart that contains an unreachable state.

Проверки переходов во время редактирования

Dangling transition

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

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

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

    Chart that contains a dangling transition.

Default transition path does not terminate in a state

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

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

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

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

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

    Chart without an unconditional default transition path to a state.

Invalid default transition path

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

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

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

    Chart with an invalid default transition path.

Transition contains a syntax error

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

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

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

    Transition that contains a syntax error.

Transition action precedes a condition action along this path

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

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

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

    Transition path in which a transition action precedes a condition action.

Transition begins or ends in a parallel state

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

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

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

    Transitions that begin or end in a parallel states.

Transition connects to a box

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

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

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

    Chart with a transition that connects to a box.

Transition crosses parallel states

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

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

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

    Standalone chart with a transition that crosses the boundary of a parallel state.

Transition enters or exits graphical function

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

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

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

    Chart containing transitions that enter and exit a graphical function.

Transition is not connected to entry/exit port

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

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

  • Решение: Соедините переход к порту или переместите источник перехода или место назначения в другое место.

    Entry port that is located near the destination point of a default transition.

Transition loops outside natural parent

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

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

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

    Transition between substates that goes outside the boundary of the parent state.

Transition shadowing

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

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

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

    The unconditional transition in this chart shadows the conditional transition.

Unconditional path out of state with during actions or child states

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

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

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

    Chart with one transition out of a state with during actions and another transition out of a state with child states.

Проверки соединений во время редактирования

Cycle contains transitions with transition actions

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

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

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

    Flow chart with a transition action in a cycle.

Invalid history junction

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

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

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

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

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

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

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

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

    Chart that contains an invalid history junction.

Junction has no unconditional escape from cycle

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

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

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

    Junction with no unconditional escape from a cycle.

Unexpected backtracking

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

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

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

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

    Chart with unexpected backtracking.

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

    Chart with no unexpected backtracking.

Unreachable junction

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

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

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

    Chart that contains an unreachable junction.

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

Function is unused

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

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

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

    Chart containing an unused function.

Invalid use of keywords as function arguments

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

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

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

    Function that uses a reserved keyword as an argument.

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

Entry or exit junction at top level of chart

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

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

  • Решение: Переместите соединение в исключительное (OR) или атомарная субдиаграмма состояния или удалите соединение.

    Entry and exit junctions on the top level of a chart.

Entry junctions must have an unconditional path to a state

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

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

  • Решение: Добавьте безусловный путь от соединения записи до состояния.

    Entry junction that connects to a single conditional path to a state.

Entry junctions must have outgoing transitions

  • Проблема: соединение записи не соединяется с исходящим путем к переходу.

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

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

    Entry junction that does not connect to a transition path.

Exit ports must have an unconditional path to a state

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

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

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

    Exit port that connects to a single conditional path to a state.

Exit ports must have outgoing transitions

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

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

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

    Exit port that does not connect to a transition path.

Invalid entry or exit junction

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

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

  • Решение: Переместите соединение в исключительное (OR) или атомарная субдиаграмма состояния или удалите соединение.

    Entry and exit junctions in parallel (AND) states.

Missing entry or exit junction

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

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

  • Решение: Удалите порт или создайте соответствующий перекресток с той же меткой.

    Entry and exit ports that do not have a matching junction.

Multiple entry or exit junctions with same label

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

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

  • Решение: Удалите одно из соединений или измените одну из меток.

    Two entry junctions that have the same label in1.

Path from entry junction contains a terminal junction

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

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

  • Решение: Замените терминальный перекресток с состоянием.

    Entry junction that connects to a terminal junction.

Path from exit port contains a terminal junction

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

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

  • Решение: Замените терминальный перекресток с состоянием.

    Exit port that connects to a terminal junction.

Transition path from an entry junction to a history junction

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

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

  • Решение: Удалите путь от соединения записи до соединения истории.

    Entry junction that connects to a history junction.

Transition path from an inner transition to an exit junction

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

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

  • Решение: Удалите путь от внутреннего перехода до выходного соединения.

    State that contains an inner transition to an exit port.

Transition path from entry junction or to exit junction must be contained in parent

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

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

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

    Transition path that exits and re-enters a state before connecting to an exit junction.

Unreachable port or junction

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

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

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

    Chart that contains an unreachable entry junction and port.

Похожие темы