Рамка - это графический объект, который организует другие объекты, такие как функции и состояния в диаграмме. Поле можно использовать для инкапсуляции состояний и функций в отдельное пространство имен. Поля поддерживаются только в диаграммах Stateflow ® в моделях Simulink ®.
Например, на этой диаграмме поле Heater группирует связанные состояния Off и On.

Дополнительные сведения об этом примере см. в разделе Система контроля температуры в модели Bang-Bang.
Поля добавляют уровень иерархии к диаграммам Stateflow. Это свойство влияет на видимость функций и состояний внутри рамки для объектов, которые находятся вне рамки. Если вы ссылаетесь на парную функцию или состояние из расположения за пределами поля, необходимо включить имя поля в путь. См. раздел Группирование функций с помощью ящика.
Поля влияют на неявный порядок активации параллельных состояний в диаграмме. Если диаграмма использует неявное упорядочение, параллельные состояния в рамке просыпаются перед другими параллельными состояниями, которые ниже или справа на этой диаграмме. В коробке параллельные состояния просыпаются в порядке сверху вниз, влево-вправо. См. раздел Состояния группы, использующие рамку.
Примечание
Чтобы явно указать порядок активации для каждого конкретного состояния, выберите в диалоговом окне Свойства диаграммы значение Заданный пользователем порядок выполнения состояния/перехода. Этот параметр выбирается по умолчанию при создании новой диаграммы. Дополнительные сведения см. в разделе Явное упорядочение параллельных состояний.
При использовании поля применяются следующие правила:
Включите имя поля в путь, если точечная нотация используется для ссылки на параллельную функцию или состояние из расположения за пределами поля.
Внутри рамки можно перемещать или рисовать графические объекты, такие как функции и состояния.
Можно добавить данные в рамку, чтобы все элементы в рамке могли совместно использовать одни и те же данные.
Рамку и ее содержимое можно сгруппировать в один графический элемент. См. раздел Состояния группы.
Для скрытия его элементов можно подстрочить рамку. См. раздел Инкапсуляция модальной логики с помощью подчисток.
Нельзя определить операторы действий для поля, например entry, during, и exit действия.
Невозможно определить переход в поле или из него. Однако можно определить переход в или из состояния в пределах поля.
Поля на диаграмме создаются с помощью инструмента, показанного ниже.

Выберите инструмент «Рамка».
Переместите указатель в область рисования.
Щелкните в любом месте, чтобы создать рамку.
Появится новое поле с вопросительным знаком (?) имя в левом верхнем углу.
Щелкните на метке вопросительного знака.
Введите имя поля и щелкните за его пределами.
Чтобы удалить рамку, щелкните, чтобы выбрать ее, и нажмите клавишу Delete.
На этой диаграмме показано поле с именем Status которые объединяют функции MATLAB ®.

Выполнение диаграммы происходит следующим образом:
Государство Cold активируется первым.
При входе государство Cold вызывает функцию Status.msgCold.
Эта функция выводит сообщение о том, что температура холодная.
Примечание
Поскольку функция MATLAB находится внутри поля, путь вызова функции должен содержать имя поля. Status. Если этот префикс пропущен, появится сообщение об ошибке.
Если значение входных данных temp превышает 80, переход в состояние Warm происходит.
При входе государство Warm вызывает функцию Status.msgWarm.
Эта функция выводит сообщение о том, что температура теплая.
Примечание
Поскольку функция MATLAB находится внутри поля, путь вызова функции должен содержать имя поля. Status. Если этот префикс пропущен, появится сообщение об ошибке.
Если значение входных данных temp опускается ниже 60, переход к государству Cold происходит.
Шаги 2-5 повторяются до окончания моделирования.
На этой диаграмме показано поле с именем Status которая объединяет родственные состояния. Диаграмма использует неявное упорядочение для параллельных состояний вместо явного режима по умолчанию. (Дополнительные сведения см. в разделе Неявное упорядочение параллельных состояний.)

Основные идеи этой диаграммы:
Государство Temp просыпается первым, за ним государство Wind_Chill. Затем состояние Monitor просыпается.
Примечание
Этот неявный порядок активации возникает из-за Temp и Wind_Chill находиться в ящике. При удалении флажка неявный порядок активации изменяется, как показано на: Temp, Monitor, Wind_Chill.

На основе входных данных temp, переходы между подстанциями происходят в параллельных состояниях Status.Temp и Status.Wind_Chill.
При переходе от Status.Temp.Cold кому Status.Temp.Warm возникает, условие перехода in(Status.Temp.Warm) становится истинным.
При переходе от Status.Temp.Warm кому Status.Temp.Cold возникает, условие перехода in(Status.Temp.Cold) становится истинным.
Примечание
Потому что подстанции Status.Temp.Cold и Status.Temp.Warm находится внутри ящика, аргумент in оператор должен включать имя поля Status. Если этот префикс пропущен, появится сообщение об ошибке. Для получения информации о in см. раздел Проверка активности состояния с помощью оператора in.