Объекты диаграммы группы при помощи полей

box является графическим объектом, который организует другие объекты в вашем графике, такие как функции и состояния. Можно использовать поле, чтобы инкапсулировать состояния и функции в отдельном пространстве имен. Поля поддерживаются только в графиках Stateflow® в моделях Simulink®.

Например, в этом графике, поле Heater группируется связанные состояния Off и On.

Chart modeling a bang-bang controller.

Для получения дополнительной информации об этом примере, смотрите Систему Контроля температуры Скорострельного оружия Модели.

Семантика полей Stateflow

Видимость графических объектов в полях

Поля добавляют уровень иерархии к диаграммам Stateflow. Это свойство влияет на видимость функций и состояний в поле к объектам, которые находятся за пределами поля. Если вы обращаетесь к порожденной полем функции или состоянию от местоположения за пределами поля, необходимо включать имя поля в путь. Смотрите, что Функции Группы Используют Поле.

Порядок активации параллельных состояний

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

Примечание

Чтобы задать порядок активации явным образом на идущей от штата к штату основе, выберите User-specified state/transition execution order в диалоговом окне Свойств диаграммы. Эта опция выбрана по умолчанию, когда вы создаете новый график. Для получения дополнительной информации смотрите Явное Упорядоченное расположение Параллельных состояний.

Правила для Использования полей

Когда вы используете поле, эти правила применяются:

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

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

  • Можно добавить данные в поле так, чтобы все элементы в поле могли совместно использовать те же данные.

  • Можно сгруппировать поле и его содержимое в один графический элемент. Смотрите состояния Группы.

  • Вы можете субдиаграмма поле, чтобы скрыть его элементы. Смотрите Инкапсулируют Модальную Логику при помощи Субдиаграмм.

  • Вы не можете задать операторы действия для поля, такие как entry, during, и exit действия.

  • Вы не можете задать переход к или от поля. Однако можно задать переход к или от состояния в поле.

Чертите и редактируйте окно

Создайте поле

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

  1. Кликните по инструменту Box.

  2. Переместите указатель в область рисунка.

  3. Щелкните в любом месте, чтобы создать поле.

    Новое поле появляется с вопросительным знаком (?) назовите в его левом верхнем углу.

  4. Кликните по метке вопросительного знака.

  5. Введите имя для поля и затем щелкните за пределами поля.

Удалите поле

Чтобы удалить поле, щелкните, чтобы выбрать его и нажать клавишу DELETE.

Примеры Использования полей

Функции группы Используя поле

Этот график показывает поле под названием Status это группируется функции MATLAB®.

Стройте диаграмму выполнение происходит можно следующим образом:

  1. Cold состояния активируется сначала.

  2. После записи, Cold состояния вызывает функциональный Status.msgCold.

    Эта функция отображает сообщение о состоянии, что температура является холодной.

    Примечание

    Поскольку функция MATLAB находится в поле, путь вызова функции должен включать имя поля Status. Если вы не используете этот префикс, сообщение об ошибке появляется.

  3. Если значение входных данных temp превышает 80, переход к Warm состояния происходит.

  4. После записи, Warm состояния вызывает функциональный Status.msgWarm.

    Эта функция отображает сообщение о состоянии, что температура является теплой.

    Примечание

    Поскольку функция MATLAB находится в поле, путь вызова функции должен включать имя поля Status. Если вы не используете этот префикс, сообщение об ошибке появляется.

  5. Если значение входных данных temp опускается ниже 60, переход к Cold состояния происходит.

  6. Повторение шагов 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 оператор, смотрите Действие состояния Проверки при помощи в Операторе.