Оцените переходы

Stateflow® использует переходы в графиках, чтобы переместить от одного исключительного (OR) состояние к другому исключительному (OR) состояние. Для entry и рабочих процессов execution выполнения графика, 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. Возвратитесь к рабочему процессу для выполнения диаграммы Stateflow.

Чтобы завершить временной шаг, следуйте за Рабочим процессом для Выполнения диаграммы Stateflow для 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.

Похожие темы