Переходы

transition является строкой с наконечником стрелки, который соединяет один графический объект с другим. В большинстве случаев переход представляет проход системы от одного режима (состояние) другому. Переход обычно соединяет источник и целевой объект. Объект source состоит в том, где переход начинается, и объект destination состоит в том, где переход заканчивается. Следующий график показывает переход от исходного состояния, B, к целевому состоянию, A.

Соединения делят переход на сегменты перехода. В этом случае полный переход состоит из сегментов, взятых от источника до целевого состояния. Каждый сегмент оценен в процессе определения валидности полного перехода.

Следующий пример имеет два сегментированных перехода: один от On состояния, чтобы утвердить Off и другой от On состояния до себя:

Переход по умолчанию является специальным типом перехода, который не имеет никакого исходного объекта. Смотрите Переходы По умолчанию для деталей.

Иерархия перехода

Переходы не могут содержать другие объекты способ, которым могут состояния. Однако переходы содержатся в состояниях. Иерархия для перехода описана с точки зрения его родительского элемента, источника и целевых состояний. Родительский элемент является самым низким уровнем, который содержит источник и место назначения перехода. Рассмотрите родительские элементы для переходов в следующем примере:

Следующая таблица разрешает происхождение каждого перехода в предыдущем примере. Символ / представляет график. Каждый уровень в иерархии состояний разделяется периодом (.) символ.

Метка перехода

Родительский элемент перехода

Источник перехода

Место назначения перехода

switch_off

/

/ Power_on.Low.Heat

/ Power_off

switch_high

/ Power_on

/ Power_on.Low.Heat

/ Power_on.High

switch_cold

/ Power_on.Low

/ Power_on.Low.Heat

/ Power_on.Low.Cold

Обозначение метки перехода

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) состояния

Этот пример показывает простые переходы к и от исключительного (OR) состояния.

Следующий переход...Допустимо когда...
B к AB состояния активен, и событие E1 происходит.
A1 к A2A1 состояния активен, и событие E2 происходит.

Смотрите Переход Между Исключительными состояниями для получения дополнительной информации о семантике этого обозначения.

Переходы к и от Соединений

Следующий график показывает переходы к и от соединительных соединений.

График использует временную логику, чтобы определить, когда вход u равняется 1.

Если вход равняется 1...Переход происходит от...
Прежде t = 2Start к Fast
Между t = 2 и t = 5Start к Good
После t = 5Start к Slow

Для получения дополнительной информации о временной логике, смотрите Выполнение Диаграммы управления при помощи Временной Логики. Для получения дополнительной информации о семантике этого обозначения смотрите Переход от Общего источника до Множественных адресов.

Переходы к и от исключительного (OR) сверхдержавы

Этот пример показывает переходы к и от исключительного (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 с Обнаружением Отказа. Для получения информации о семантике этого обозначения смотрите Переход от Подсостояния до Подсостояния с Событиями.

Похожие темы