Этот пример показывает поведение простого действия условия в пути к переходу с несколькими сегментами. График использует неявное упорядоченное расположение исходящих переходов (см. Неявное Упорядоченное расположение).
Первоначально, график спит. A
состояния активно. Условия
C_one
и C_two
являются ложными. Событие E_one
происходит и пробуждает график, который обрабатывает событие от корня вниз через иерархию:
Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_one
. Допустимый сегмент перехода от A
состояния к соединительному соединению обнаруживается. Действие условия
A_one
обнаруживается на допустимом сегменте перехода и сразу выполняется и завершается. A
состояния все еще активно.
Поскольку условия на сегментах перехода возможным местам назначения являются ложными, ни один из полных переходов не допустим.
A
состояния во время действий (
durA()
) выполнитесь и завершитесь.
A
состояния остается активным.
График возвращается ко сну.
Эта последовательность завершает выполнение этого графика Stateflow®, сопоставленного с событием E_one
когда A
состояния первоначально активно.
Этот пример показывает поведение простого условия и действия перехода, заданного на переходе от одного исключительного (OR) состояние другому.
Первоначально, график спит. A
состояния активно. Условие
C_one
верно. Событие E_one
происходит и пробуждает график, который обрабатывает событие от корня вниз через иерархию:
Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_one
. Допустимый переход от A
состояния утверждать
B
обнаруживается. Условие C_one
верно. Действие условия A_one
обнаруживается на допустимом переходе и сразу выполняется и завершается. A
состояния все еще активно.
A
состояния выйдите из действий (
ExitA()
) выполнитесь и завершитесь.
A
состояния отмечен неактивный.
Действие перехода A_two
выполняется и завершается.
B
состояния отмечен активный.
B
состояния действия записи (
entB()
) выполнитесь и завершитесь.
График возвращается ко сну.
Эта последовательность завершает выполнение этой диаграммы Stateflow, сопоставленной с событием E_one
когда A
состояния первоначально активно.
Действия условия и соединительные соединения используются, чтобы спроектировать for
построение цикла. Этот пример показывает использование действия условия и соединительного соединения, чтобы создать for
построение цикла. График использует неявное упорядоченное расположение исходящих переходов (см. Неявное Упорядоченное расположение).
Смотрите Построение Цикла for, чтобы видеть поведение этого примера.
В этом примере показано, как использовать действия условия, чтобы широковещательно передать события сразу, чтобы быть параллельным (AND) состояниям. График использует неявное упорядоченное расположение параллельных состояний (см. Неявное Упорядоченное расположение Параллельных состояний).
Смотрите Широковещательные События в Действиях Условия, чтобы видеть поведение этого примера.
Избегайте использования неориентированных локальных широковещательных сообщений события, которые могут вызвать нежелательное рекурсивное поведение в вашем графике. Используйте send
оператор для направленных локальных широковещательных сообщений события. Для получения дополнительной информации смотрите Широковещательную передачу Локальные События, чтобы Синхронизировать Параллельные состояния.
Можно установить диагностический уровень для обнаружения неориентированных локальных широковещательных сообщений события. В диалоговом окне Model Configuration Parameters перейдите к Diagnostics> панель Stateflow и установите диагностику Undirected event broadcasts на none
Предупреждение
, или error
. Настройкой по умолчанию является warning
.
Этот пример показывает обозначение, чтобы избежать при использовании широковещательных сообщений события как действия условия, потому что семантика приводит к циклическому поведению.
Первоначально, график спит. On
состояния активно. Событие
E_one
происходит и пробуждает график, который обрабатывает событие от корня вниз через иерархию:
Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_one
.
Допустимый переход от On
состояния утверждать
Off
обнаруживается.
Действие условия с широковещательным событием E_one
перехода.
Событие E_one
обнаруживается на допустимом переходе, который сразу выполняется. On
состояния все еще активно.
Широковещательная передача события E_one
пробуждает график во второй раз.
Перейдите к шагу 1.
Шаги 1 - 5 продолжают выполняться циклическим способом. Метка перехода, указывающая на триггер на том же событии как действие условия, широковещательно передала результаты события в неисправимом циклическом поведении. Эта последовательность никогда не завершается когда событие E_one
широковещательно передается и On
состояния активно.
Избегайте использования неориентированных локальных широковещательных сообщений события, которые могут вызвать нежелательное рекурсивное поведение в вашем графике. Используйте send
оператор для направленных локальных широковещательных сообщений события. Для получения дополнительной информации смотрите Широковещательную передачу Локальные События, чтобы Синхронизировать Параллельные состояния.
Можно установить диагностический уровень для обнаружения неориентированных локальных широковещательных сообщений события. В диалоговом окне Model Configuration Parameters перейдите к Diagnostics> панель Stateflow и установите диагностику Undirected event broadcasts на none
Предупреждение
, или error
. Настройкой по умолчанию является warning
.