Выполнение диаграммы Stateflow

Когда Stateflow® график просыпается, график следует рабочему процессу и выполняет действия. Просыпается Диаграмма Stateflow:

  • На каждом временном шаге согласно Simulink® решатель.

  • Когда диаграмма Stateflow получает событие.

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

Рабочий процесс для выполнения диаграммы Stateflow

Этот график потока показывает прогрессирование событий, которые Stateflow принимает для выполнения графика или состояния. В этом графике потока данных текущее состояние относится к состоянию, в котором происходит решение или процесс.

Во время действий

Во время действия для выполнения состояния, когда:

  • Состояние активно, происходит новый временной шаг и отсутствует допустимый переход в другое состояние.

  • Состояние активно, происходит событие и отсутствует допустимый переход в другое состояние.

Во время действий предшествует префикс during или du, и далее следует необходимая двоеточие (:), далее одно или несколько действий. Разделите несколько действий с возвратом каретки, точкой с запятой (;), или запятая (,). Если вы явно не задаете тип состояния активности для оператора, график рассматривает этот оператор как entry, during действие.

Состояние выполняет свою during действия (если задано) при пробуждении графика. Предыдущий график потока показывает процесс выполнения состояния и показывает, когда during происходят действия.

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

Исходящий переход

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

Внутренние переходы

Stateflow помечает внутренние переходы для оценки как часть выполнения диаграммы Stateflow. После того, как внутренний переход будет отмечен для оценки, следуйте рабочему процессу для оценки переходов. Дополнительные сведения о том, как Stateflow оценивает внутренние переходы, см. в разделе Оценка переходов.

Выполнение графика с допустимым переходом

В этом примере диаграмма Stateflow инициализируется и entry действия выполняются для StateA и StateA1. Происходит новый временной шаг, и график просыпается.

На данном временном шаге x = 5, y = 2, и z = 0.

Следуя рабочему процессу для выполнения диаграммы Stateflow, шаги выполнения для выполнения графика выполняются в следующем порядке:

  1. График имеет активное подсостояние, StateA.

  2. StateA имеет исходящий переход на StateB. Следуя рабочему процессу оценки переходов, переход определяется как действительный.

  3. StateB отмечен для entry и StateA отмечен для exit.

Чтобы завершить временной шаг, следуйте рабочему процессу для выхода из состояния для StateA и рабочий процесс ввода графика или состояния для StateB.

Выполнение графика без допустимого перехода

В этом примере диаграмма Stateflow инициализируется и entry действия выполняются для StateA и StateA1. Происходит новый временной шаг, и график просыпается.

На данном временном шаге x = 3, y = 0, и z = 0.

Следуя рабочему процессу для выполнения диаграммы Stateflow до тех пор, пока график не перейдет в спящий режим, шаги выполнения для выполнения диаграммы выполняются в следующем порядке:

  1. График имеет активное подсостояние, StateA.

  2. StateA имеет исходящий переход на StateB. Следуя рабочему процессу оценки переходов, переход определяется как недопустимый.

  3. Выполните during действия для StateA. Теперь y = 1.

  4. StateA не имеет внутренних переходов.

  5. Активное подсостояние StateA является StateA1.

  6. StateA1 имеет исходящий переход на StateA2. Следуя рабочему процессу оценки переходов, переход определяется как недопустимый.

  7. Выполните during действия для StateA1. Теперь x = 4.

  8. StateA1 не имеет активных подсостояний.

  9. График засыпает.

Этапы с 1 по 9 происходят во втором временном шаге.

Похожие темы