transition является строкой с наконечником стрелки, который соединяет один графический объект с другим. В большинстве случаев переход представляет проход системы от одного режима (состояние) другому. Переход обычно соединяет источник и целевой объект. Объект source состоит в том, где переход начинается, и объект destination состоит в том, где переход заканчивается. Следующий график показывает переход от исходного состояния, B
, к целевому состоянию, A
.
Соединения делят переход на сегменты перехода. В этом случае полный переход состоит из сегментов, взятых от источника до целевого состояния. Каждый сегмент оценен в процессе определения валидности полного перехода.
Следующий пример имеет два сегментированных перехода: один от On
состояния, чтобы утвердить Off
и другой от On
состояния до себя:
Переход по умолчанию является специальным типом перехода, который не имеет никакого исходного объекта. Смотрите Переходы По умолчанию для деталей.
Переходы не могут содержать другие объекты способ, которым могут состояния. Однако переходы содержатся в состояниях. Иерархия для перехода описана с точки зрения его родительского элемента, источника и целевых состояний. Родительский элемент является самым низким уровнем, который содержит источник и место назначения перехода. Рассмотрите родительские элементы для переходов в следующем примере:
Следующая таблица разрешает происхождение каждого перехода в предыдущем примере. Символ /
представляет график. Каждый уровень в иерархии состояний разделяется периодом (.
) символ.
Метка перехода | Родительский элемент перехода | Источник перехода | Место назначения перехода |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
transition label может состоять из события или сообщения, условия, действия условия и действия перехода. Каждая часть метки является дополнительной. Символ ?
является меткой перехода по умолчанию. Метки перехода имеют этот полный формат:
event_or_message[condition]{condition_action}/transition_action
Этот пример иллюстрирует части метки перехода.
Задает событие, или обменивайтесь сообщениями, который заставляет переход происходить, когда условие верно. Задайте несколько событий с помощью логического оператора OR (|
). Определение события или сообщения является дополнительным. Отсутствие события или сообщения указывает, что переход происходит на вхождении любого события. Для получения дополнительной информации смотрите, Синхронизируют Компоненты модели Широковещательными Событиями и Связываются с диаграммами Stateflow путем Отправки сообщений.
В предыдущем примере широковещательная передача события E
инициировала переход от On
до Off
, если условие [off_count==0]
верно.
Задает Булево выражение, которое, когда верный, подтверждает переход для заданного события или триггера сообщения. Заключите условие в квадратные скобки ([]
). Если никакое условие не задано, подразумеваемое условие оценивает к истине. Для получения дополнительной информации смотрите Условия.
В предыдущем примере, когда событие E
происходит, условие, [off_count==0]
должен оценить как верный для перехода от On
до Off
, чтобы быть допустимым.
Выполняется после того, как условие для перехода оценено как верное, но прежде чем переход к месту назначения полон решимости быть допустимым. Заключите действие условия в фигурные скобки ({}
) после условия. Для получения дополнительной информации смотрите Поведение Действия Условия.
В предыдущем примере, если событие E
происходит и условие, [off_count==0]
верен, то действие условия {off_count = off_count + 1}
сразу выполняется.
Выполняется после того, как переход к месту назначения полон решимости быть допустимым. Если переход состоит из нескольких сегментов, то действие перехода выполняется, когда целый путь к переходу к конечному пункту назначения полон решимости быть допустимым. Действия перехода происходят после выходных действий исходного состояния и перед действиями записи целевого состояния. Предшествуйте действию перехода с /
. Для получения дополнительной информации смотрите Поведение Действия Условия и Перехода.
В предыдущем примере, если событие E
происходит и условие, [off_count==0]
верен, то действие перехода, {Light_off()}
выполняется, когда переход от On
до Off
полон решимости быть допустимым. Действие перехода происходит после того, как On
становится неактивным, но прежде чем Off
становится активным.
Действия перехода поддерживаются только в графиках Stateflow® в моделях Simulink®.
Обычно, переход допустим, когда исходное состояние перехода активно, и метка перехода допустима. Переходы по умолчанию отличаются, потому что нет никакого исходного состояния. Валидность перехода по умолчанию к подсостоянию оценена, когда существует переход к его сверхдержаве, принимая, что сверхдержава активна. Этот критерий маркировки применяется и к переходам по умолчанию и к переходам общего случая. В следующей таблице перечислены возможные комбинации допустимых меток перехода.
Метка перехода | Допустимо если... |
---|---|
Событие только | То событие имеет место |
Событие и условие | То событие имеет место, и условие верно |
Сообщение только | То сообщение происходит |
Сообщение и условие | То сообщение происходит, и условие верно |
Условие только | Любое событие имеет место, и условие верно |
Действие только | Любое событие имеет место |
Не заданный | Любое событие имеет место |
Этот пример показывает простые переходы к и от исключительного (OR) состояния.
Следующий переход... | Допустимо когда... |
---|---|
B к A | B состояния активен, и событие E1 происходит. |
A1 к A2 | A1 состояния активен, и событие E2 происходит. |
Смотрите Переход Между Исключительными состояниями для получения дополнительной информации о семантике этого обозначения.
Следующий график показывает переходы к и от соединительных соединений.
График использует временную логику, чтобы определить, когда вход u
равняется 1.
Если вход равняется 1... | Переход происходит от... |
---|---|
Прежде t = 2 | Start к Fast |
Между t = 2 и t = 5 | Start к Good |
После t = 5 | Start к Slow |
Для получения дополнительной информации о временной логике, смотрите Выполнение Диаграммы управления при помощи Временной Логики. Для получения дополнительной информации о семантике этого обозначения смотрите Переход от Общего источника до Множественных адресов.
Этот пример показывает переходы к и от исключительного (OR) сверхдержава и использование перехода по умолчанию.
График имеет два состояния на высшем уровне в иерархии, Power_off
и Power_on
. По умолчанию Power_off
активен. Событие Switch
переключает систему между состояниями Power_on
и Power_off
. Power_on
имеет три подсостояния: First
, Second
и Third
. По умолчанию, когда Power_on
становится активным, First
также становится активным. Когда Shift
равняется 1, системные переходы от First
до Second
, Second
к Third
, Third
к First
, для каждого вхождения события Switch
, и затем повторений шаблона.
Для получения дополнительной информации о семантике этого обозначения смотрите Выполнение Диаграммы управления при помощи Переходов По умолчанию.
Следующий пример показывает переходы к и от исключительного (OR) подсостояния.
Для получения дополнительной информации о том, как этот график работает, см. Сигналы Debounce с Обнаружением Отказа. Для получения информации о семантике этого обозначения смотрите Переход от Подсостояния до Подсостояния с Событиями.