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

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

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

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

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

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

Создание субдиаграммы

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

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

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

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

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

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

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

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

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

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

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

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

Манипулируйте субдиаграммами как объектами

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

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

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

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

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

Редактирование субдиаграммы

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

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

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

Навигация по субдиаграммам

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

Инструмент

Описание

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

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

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

Примечание

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