Инкапсулируйте модальную логику при помощи субдиаграмм

subchart является графическим объектом, который может содержать что-либо, что график верхнего уровня может, включая другие субдиаграммы. Субдиаграмма или состояние подотмеченное на диаграмме, является сверхсостоянием состояний, которые она содержит. Можно вложить субдиаграммы к любому уровню в проекте графика.

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

Субдиаграмма появляется как блок со своим именем в центре блока. Однако можно задать действия и переходы по умолчанию для субдиаграмм, как вы можете для сверхсостояний. Можно также создать переходы к и от субдиаграмм, как можно создать переходы к и из сверхсостояний. Можно создать переходы между состояниями, находящимися вне субдиаграммы и любого состояния в субдиаграмме. Термин суперпереход относится к переходу, который пересекает контуры субдиаграммы таким образом. Смотрите Перемещение Между Уровнями Иерархии при помощи Суперпереходов для получения дополнительной информации.

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

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

Создайте субдиаграмму

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

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

  1. Щелкните правой кнопкой по объекту и выберите Group & Subchart> Subchart.

  2. Подтвердите, что объект теперь появляется как субдиаграмма.

Чтобы преобразовать субдиаграмму назад в ее исходную форму, щелкните правой кнопкой по субдиаграмме. В контекстном меню выберите Group & Subchart> Subchart.

Правила преобразования субдиаграммы

Когда вы преобразуете поле в субдиаграмму, субдиаграмма сохраняет атрибуты поля. Например, положение получившейся субдиаграммы определяет свой порядок активации в графике, если неявное упорядоченное расположение включено (см. Объекты диаграммы Группы при помощи Полей для получения дополнительной информации).

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

Преобразуйте состояние в субдиаграмму

Предположим, что у вас есть следующий график:

  1. Преобразовывать On утвердите к субдиаграмме, щелкните правой кнопкой по состоянию и выберите Group & Subchart> Subchart.

  2. Подтвердите что On состояние теперь появляется как субдиаграмма.

Управляйте субдиаграммами как объектами

Субдиаграммы также действуют как отдельные объекты. Можно переместить, скопировать, сократить, вставить, повторно пометить и изменить размер субдиаграмм, когда вы были бы состояния и поля. Можно также чертить переходы к и от субдиаграммы и любого другого состояния или субдиаграммы на тех же или разных уровнях в иерархии графика (см. Перемещение Между Уровнями Иерархии при помощи Суперпереходов).

Откройте субдиаграмму

Открытие субдиаграммы позволяет вам просматривать и изменять ее содержимое. Чтобы открыть субдиаграмму, выполнить одно из следующих действий:

  • Дважды кликните где угодно в поле, которое представляет субдиаграмму.

  • Выберите поле, представляющее субдиаграмму, и нажмите клавишу Enter.

Отредактируйте субдиаграмму

После того, как вы открываете субдиаграмму (см. Открытый Субдиаграмма), можно выполнить любую операцию редактирования на ее содержимом, которое можно выполнить на графике верхнего уровня. Это означает, что можно создать, скопировать, вставить, сократить, повторно пометить и изменить размер состояний, переходов и субдиаграмм в субдиаграмме. Можно также сгруппировать состояния, поля и графические функции в субдиаграммах.

Можно также вырезать и вставить объекты между разными уровнями в графике. Например, чтобы скопировать объекты от графика верхнего уровня до одной из его субдиаграмм, откройте сначала график верхнего уровня и скопируйте объекты. Затем откройте субдиаграмму и вставьте объекты в субдиаграмму.

Переходы от внешних субдиаграмм до состояний или соединений в субдиаграммах называются суперпереходами. Вы создаете суперпереходы по-другому, чем вы делаете обычные переходы. Смотрите Перемещение Между Уровнями Иерархии при помощи Суперпереходов для получения информации о создании суперпереходов.

Переместитесь по субдиаграммам

Панель инструментов Editor Stateflow® содержит набор кнопок для навигации по иерархии субдиаграммы графика.

Инструмент

Описание

Если редактор Stateflow отображает субдиаграмму, отмечание этой кнопки заменяет субдиаграмму на родительский элемент субдиаграммы в редакторе Stateflow. Если редактор Stateflow отображает график верхнего уровня, отмечание этой кнопки заменяет график на окно модели Simulink®, содержащее тот график.

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

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

Примечание

Можно также использовать ключ Escape, чтобы перейти до родительского объекта для состояния подотмеченного на диаграмме, поля или функции.