Stateflow® использует переходы в графиках, чтобы переместить от одного исключительного (OR) состояние к другому исключительному (OR) состояние. Для entry
и рабочих процессов execution
выполнения графика, Stateflow оценивает переходы, чтобы определить, допустимы ли они. Допустимый переход является переходом, метки условия которого верны и чей путь заканчивается в состоянии. Если переход допустим, выходы Stateflow из источника утверждают, и вводит целевое состояние. Чтобы узнать о том, когда оценка произойдет во время execution
и рабочих процессов entry
, смотрите Выполнение диаграммы Stateflow и Введите График или состояние.
Когда несколько переходов происходят из одного источника, такого как состояние или соединение, Stateflow использует порядок оценки определить, когда протестировать каждый переход. В зависимости от которого языка действия ваше использование графика, можно создать порядок переходов явным образом или неявно. Или явным образом или неявно упорядоченный, переходы показывают номер около источника перехода, который определяет порядок перехода.
Используйте явное упорядоченное расположение, чтобы избежать ваших переходов от изменяющегося порядка, в то время как вы редактируете график.
Когда вы открываете новую диаграмму Stateflow, все исходящие переходы от источника автоматически пронумерованы в порядке, в котором вы создаете их. Порядок запускается с 1
и продолжается к следующему доступному номеру для источника.
Чтобы изменить порядок выполнения перехода, щелкните правой кнопкой по переходу, установите свой курсор на Execution Order
и выберите порядок, в котором вы хотите, чтобы ваш переход выполнился. Когда вы изменяете номер перехода, диаграмма Stateflow автоматически перенумеровывает другие исходящие переходы для источника путем сохранения их относительного порядка.
Для графиков C в неявном режиме упорядоченного расположения диаграмма Stateflow оценивает группу исходящих переходов от одного источника на основе:
Иерархия.
График оценивает группу исходящих переходов в порядке на основе иерархического уровня родительского элемента каждого перехода.
Метка.
График оценивает группу исходящих переходов с равным иерархическим приоритетом на основе меток, в следующем порядке приоритета:
Метки с событиями и условиями
Метки с событиями
Метки с условиями
Никакая метка
Угловое поверхностное положение источника перехода.
График оценивает группу исходящих переходов с иерархическим равным и приоритет метки на основе углового положения на поверхности исходного объекта. Переход с наименьшим положением часов имеет самый высокий приоритет. Например, переход с 2-часовым исходным положением имеет более высокий приоритет, чем переход с 4-часовым исходным положением. Переход с 12-часовым исходным положением имеет самый низкий приоритет.
В этом примере инициализируется диаграмма Stateflow, и действия entry
выполняются для StateA
. Новый временной шаг происходит, и график просыпается. Следующим Рабочий процесс для Выполнения диаграммы Stateflow Stateflow находит несколько исходящих переходов от StateA
. На этом временном шаге x = 1
, y = 1
и z = 1
.
Следующим Рабочий процесс для Оценки Переходит, шаги для оценки переходов этого графика находятся в этом порядке:
Переход 1 от StateA
отмечен для оценки.
Переход 1 от StateA
имеет условие.
Условие верно.
Место назначения перехода 1 от StateA
не является состоянием.
Соединение действительно имеет исходящие переходы.
Переход 1 от соединения отмечен для оценки.
Переход 1 от соединения имеет условие.
Условие является ложным.
Переход 2 от соединения отмечен для оценки.
Переход 2 от соединения не имеет условия.
Место назначения перехода 2 от соединения является состоянием (StateD
).
StateD
отмечен для entry
, и StateA
отмечен для exit
.
Чтобы завершить временной шаг, следуйте за Рабочим процессом для Выхода из состояния для StateA
и Рабочего процесса для Ввода Графика или состояния для StateE
.
Когда все исходящие переходы от источника недопустимы или не заканчиваются терминальным соединением, но существуют ранее неоцененные переходы, Stateflow возвращается к предыдущему состоянию или соединению, чтобы оценить все возможные пути.
В этом примере инициализируется диаграмма Stateflow, и действия entry
выполняются для StateA
. Происходит новый временной шаг, и график просыпается. Следующим Рабочий процесс для Выполнения диаграммы Stateflow Stateflow находит несколько исходящих переходов от StateA
. На этом временном шаге x = 1
, y = 1
и z = 1
.
Следующим Рабочий процесс для Оценки Переходит, шаги для оценки переходов этого графика находятся в этом порядке:
Переход 1 от StateA
отмечен для оценки.
Переход 1 от StateA
имеет условие.
Условие верно.
Место назначения перехода 1 от StateA
не является состоянием.
Соединение действительно имеет исходящие переходы.
Переход 1 от соединения отмечен для оценки.
Переход 1 от соединения имеет условие.
Условие является ложным.
Переход 2 от соединения отмечен для оценки.
Переход 2 от соединения имеет условие.
Условие является ложным.
Переход 2 от StateA
отмечен для оценки.
Переход 2 от StateA
не имеет условия.
Место назначения перехода 2 от StateA
является состоянием (StateE
).
StateE
отмечен для entry
, и StateA
отмечен для exit
.
Чтобы завершить временной шаг, следуйте за Рабочим процессом для Выхода из состояния для StateA
и Рабочего процесса для Ввода Графика или состояния для StateE
.
В этом примере терминальное соединение предотвращает отслеживание в обратном порядке. Диаграмма Stateflow инициализируется, и действия entry
выполняются для StateA
. Новый временной шаг происходит, и график просыпается. Следующим Рабочий процесс для Выполнения диаграммы Stateflow Stateflow находит несколько исходящих переходов от StateA
. На этом временном шаге x = 1
, y = 1
и z = 1
.
Следующим Рабочий процесс для Оценки Переходит, шаги для оценки переходов этого графика находятся в этом порядке:
Переход 1 от StateA
отмечен для оценки.
Переход 1 от StateA
имеет условие.
Условие верно.
Место назначения перехода 1 от StateA
не является состоянием.
Соединение действительно имеет исходящие переходы.
Переход 1 от соединения отмечен для оценки.
Переход 1 от соединения имеет условие.
Условие является ложным.
Переход 2 от соединения отмечен для оценки.
Переход 2 от соединения имеет условие.
Условие является ложным.
Переход 3 от соединения отмечен для оценки.
Переход 3 от соединения не имеет условия.
Место назначения не является состоянием и не имеет никаких исходящих переходов.
Возвратитесь к рабочему процессу для выполнения диаграммы Stateflow.
Чтобы завершить временной шаг, следуйте за Рабочим процессом для Выполнения диаграммы Stateflow для StateA
, начиная, где вы кончили.
В синтаксисе метки перехода действия условия следуют за условием перехода и заключены в фигурные скобки ({}
). Действия условия выполняются, когда условие оценено как верное, но прежде чем путь к переходу был полон решимости быть допустимым.
В синтаксисе метки перехода действиям перехода предшествуют с наклонной чертой вправо (/
) и заключают в фигурные скобки ({}
). Действия перехода выполняются только после того, как путь к переходу полон решимости быть допустимым.
В этом примере существуют и действия условия и действия перехода. Диаграмма Stateflow инициализируется, и действия entry
выполняются для StateA
. Новый временной шаг происходит, и график просыпается. Существует несколько исходящих переходов от StateA
. На этом временном шаге x = 1
, y = 1
и z = 1
.
Следующим Рабочий процесс для Оценки Переходит, шаги для оценки переходов этого графика находятся в этом порядке:
Переход 1 от StateA
отмечен для оценки.
Переход 1 от StateA
имеет условие ([y >= 1]
).
Условие верно.
Нет никаких действий условия.
Место назначения перехода 1 от StateA
не является состоянием.
Соединение действительно имеет исходящие переходы.
Переход 1 от соединения отмечен для оценки.
Переход 1 от соединения имеет условие ([x > 2]
).
Условие является ложным.
Переход 2 от соединения отмечен для оценки.
Переход 2 от соединения имеет условие ([x >= 1]
).
Условие верно.
Существует действие условия ({y = 0;}
). Теперь y = 0
.
Соединение действительно имеет исходящие переходы.
Переход от соединения отмечен для оценки.
Переход 1 от соединения имеет условие ([z >= 5]
).
Условие является ложным.
Переход 2 от StateA
отмечен для оценки.
Переход 2 от StateA
не имеет условия.
Место назначения перехода 2 от StateA
является состоянием (StateD
).
StateD
отмечен для entry
, и StateA
отмечен для exit
. Выполните действие перехода для этого допустимого пути (/{z = 5}
). Теперь z = 5
.
Чтобы завершить временной шаг, следуйте за Рабочим процессом для Выхода из состояния для StateA
и Рабочего процесса для Ввода Графика или состояния для StateE
.