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

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-часовым исходным положением имеет самый низкий приоритет.

Переход к внутреннему краю родительского состояния

Переходы, которые заканчиваются на внутреннем ребре родительского состояния, являются ярлыком назад пути к переходу по умолчанию, и путь по умолчанию оценен в течение текущего такта. В этом примере, переходе от B состояния сразу приводит к переходу по умолчанию, чтобы утвердить A.

Transition to an inner edge.

Если существуют переходы по умолчанию, то 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. Место назначения перехода 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.

Похожие темы