exponenta event banner

Оценка переходов

Stateflow ® использует переходы в диаграммах для перехода из одного состояния «исключающее» (OR) в другое состояние «исключающее» (OR). Для entry и execution workflow выполнения диаграммы, Stateflow оценивает переходы, чтобы определить, являются ли они допустимыми. Допустимый переход - это переход, метки условий которого являются истинными и путь к которому заканчивается в состоянии. Если переход допустим, Stateflow выходит из исходного состояния и переходит в состояние назначения. Чтобы узнать о том, когда происходит оценка во время execution и entry рабочие процессы см. в разделах Выполнение диаграммы Stateflow и Ввод диаграммы или состояния.

Рабочий процесс для оценки переходов

Порядок оценки перехода

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

Примечание

Используйте явное упорядочение, чтобы избежать изменения порядка при редактировании диаграммы.

Явное упорядочение

При открытии новой диаграммы Stateflow все исходящие переходы из источника автоматически нумеруются в порядке их создания. Заказ начинается с 1 и переходит к следующему доступному номеру источника.

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

Неявное упорядочение

Для диаграмм C в режиме неявного упорядочения диаграмма Stateflow оценивает группу исходящих переходов из одного источника на основе:

  • Иерархия.

    Диаграмма оценивает группу исходящих переходов в порядке, основанном на иерархическом уровне родительского элемента каждого перехода.

  • Метка.

    Диаграмма оценивает группу исходящих переходов с одинаковым иерархическим приоритетом на основе меток в следующем порядке приоритета:

    1. Метки с событиями и условиями

    2. Метки с событиями

    3. Метки с условиями

    4. Нет наклейки

  • Угловое положение поверхности источника перехода.

    Диаграмма оценивает группу исходящих переходов с равным иерархическим приоритетом и приоритетом метки на основе углового положения на поверхности исходного объекта. Переход с наименьшей позицией синхронизации имеет наивысший приоритет. Например, переход с 2-часовым исходным положением имеет более высокий приоритет, чем переход с 4-часовым исходным положением. Переход с 12-часовым исходным положением имеет наименьший приоритет.

Пример исходящего перехода

В этом примере инициализируется диаграмма Stateflow и entry действия выполняются для StateA. Происходит новый временной шаг, и диаграмма просыпается. Следуя рабочему процессу для выполнения диаграммы Stateflow, Stateflow находит несколько исходящих переходов из StateA. На данном этапе x = 1, y = 1, и z = 1.

Оценка исходящих переходов

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

  1. Переход 1 от StateA помечен для оценки.

  2. Переход 1 от StateA имеет условие.

  3. Условие истинно.

  4. Назначение перехода 1 из StateA не является государством.

  5. Соединение действительно имеет исходящие переходы.

  6. Переход 1 от соединения помечается для оценки.

  7. Переход 1 от соединения имеет условие.

  8. Условие ложное.

  9. Переход 2 от соединения помечается для оценки.

  10. Переход 2 от соединения не имеет условия.

  11. Местом назначения перехода 2 от соединения является состояние (StateD).

  12. StateD помечен для entry, и StateA помечен для exit.

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

Пример исходящего перехода с обратным отслеживанием

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

В этом примере инициализируется диаграмма Stateflow и entry действия выполняются для StateA. Происходит новый временной шаг, и диаграмма просыпается. Следуя рабочему процессу для выполнения диаграммы Stateflow, Stateflow находит несколько исходящих переходов из StateA. На данном этапе x = 1, y = 1, и z = 1.

Оценка исходящих переходов с обратным отслеживанием

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

  1. Переход 1 от StateA помечен для оценки.

  2. Переход 1 от StateA имеет условие.

  3. Условие истинно.

  4. Назначение перехода 1 из StateA не является государством.

  5. Соединение действительно имеет исходящие переходы.

  6. Переход 1 от соединения помечается для оценки.

  7. Переход 1 от соединения имеет условие.

  8. Условие ложное.

  9. Переход 2 от соединения помечается для оценки.

  10. Переход 2 от соединения имеет условие.

  11. Условие ложное.

  12. Переход 2 от StateA помечен для оценки.

  13. Переход 2 от StateA не имеет условия.

  14. Назначение перехода 2 из StateA является состоянием (StateE).

  15. StateE помечен для entry, и StateA помечен для exit.

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

Запретить обратное отслеживание

В этом примере концевое соединение предотвращает обратное отслеживание. Диаграмма Stateflow инициализирована, и entry действия выполняются для StateA. Происходит новый временной шаг, и диаграмма просыпается. Следуя рабочему процессу для выполнения диаграммы Stateflow, Stateflow находит несколько исходящих переходов из StateA. На данном этапе x = 1, y = 1, и z = 1.

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

  1. Переход 1 от StateA помечен для оценки.

  2. Переход 1 от StateA имеет условие.

  3. Условие истинно.

  4. Назначение перехода 1 из StateA не является государством.

  5. Соединение действительно имеет исходящие переходы.

  6. Переход 1 от соединения помечается для оценки.

  7. Переход 1 от соединения имеет условие.

  8. Условие ложное.

  9. Переход 2 от соединения помечается для оценки.

  10. Переход 2 от соединения имеет условие.

  11. Условие ложное.

  12. Переход 3 от соединения отмечен для оценки.

  13. Переход 3 от соединения не имеет условия.

  14. Адресат не является состоянием и не имеет исходящих переходов.

  15. Вернуться к разделу Workflow for Stateflow Chart Execution.

Чтобы завершить шаг времени, выполните команду Workflow for Stateflow Chart Execution for StateA, начиная с того места, где вы остановились.

Условия и действия перехода

Действия с условиями

В синтаксисе метки перехода действия условия следуют за условием перехода и заключены в фигурные скобки ({}). Действия с условиями выполняются, когда условие оценивается как истинное, но до определения пути перехода как действительное.

Действия перехода

В синтаксисе метки перехода действия перехода предваряются косой чертой (/и заключены в фигурные скобки ({}). Действия перехода выполняются только после определения пути перехода как действительного.

В этом примере существуют как действия условий, так и действия перехода. Диаграмма Stateflow инициализирована, и entry действия выполняются для StateA. Происходит новый временной шаг, и диаграмма просыпается. Существует несколько исходящих переходов от StateA. На данном этапе x = 1, y = 1, и z = 1.

Оценка исходящих переходов с помощью действий условий и переходов

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

  1. Переход 1 от StateA помечен для оценки.

  2. Переход 1 от StateA имеет условие ([y >= 1]).

  3. Условие истинно.

  4. Нет действий с условиями.

  5. Назначение перехода 1 из StateA не является государством.

  6. Соединение действительно имеет исходящие переходы.

  7. Переход 1 от соединения помечается для оценки.

  8. Переход 1 от перехода имеет условие ([x > 2]).

  9. Условие ложное.

  10. Переход 2 от соединения помечается для оценки.

  11. Переход 2 от перехода имеет условие ([x >= 1]).

  12. Условие истинно.

  13. Существует действие условия ({y = 0;}). Сейчас y = 0.

  14. Соединение действительно имеет исходящие переходы.

  15. Переход от соединения помечается для оценки.

  16. Переход 1 от перехода имеет условие ([z >= 5]).

  17. Условие ложное.

  18. Переход 2 от StateA помечен для оценки.

  19. Переход 2 от StateA не имеет условия.

  20. Назначение перехода 2 из StateA является состоянием (StateD).

  21. StateD помечен для entry, и StateA помечен для exit. Выполните действие перехода для этого действительного пути (/{z = 5}). Сейчас z = 5.

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

Связанные темы