exponenta event banner

Мониторинг активности состояния с помощью данных активного состояния

Данные активного состояния могут упростить проектирование некоторых диаграмм Stateflow ®, поскольку не требуется поддерживать данные, которые сильно коррелируют с иерархией диаграмм. При включении данных активного состояния Stateflow сообщает об активности состояния через порт вывода в Simulink ® или в виде локальных данных на диаграмме. Используя данные активного состояния, можно:

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

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

  • Регистрация активности диаграммы для диагностики.

  • Управление другими подсистемами Simulink.

Типы данных активного состояния

При включении данных активного состояния Stateflow создает логический или перечисляемый объект данных, соответствующий типу действия.

Вид операцииТип данных активного состоянияОписание
Самостоятельная деятельностьБулевАктивно ли государство?
Дочерняя активностьПеречислениеКакой ребенок активен?
Активность состояния листаПеречислениеКакое состояние листа активно?

Для самостоятельной активности диаграммы или состояния значение данных равно true когда активен и false в неактивном состоянии. Для действий с дочерними и конечными состояниями данные являются перечисляемым типом. Stateflow может определить класс перечисления или создать определение вручную. Дополнительные сведения см. в разделе Определение типа перечисления действий состояния.

Можно включить данные активного состояния для диаграммы Stateflow, таблицы состояний, таблицы переходов состояний или атомарной подчастной диаграммы. В этой таблице перечислены типы действий, поддерживаемые каждым типом объекта Stateflow.

Объект потока состоянийСамостоятельная деятельность Дочернее действиеАктивность состояния листа
Чарты Не поддерживаетсяПоддержанныйПоддержанный
Состояния с исключительным разложением (ИЛИ)ПоддержанныйПоддержанныйПоддержанный
Состояния с параллельным разложением (И)ПоддержанныйНе поддерживаетсяНе поддерживается
Атомарные подшаблоныПоддерживается на уровне контейнераПоддерживается внутри вложенной диаграммыПоддерживается внутри вложенной диаграммы
Таблицы переходов состоянийНе поддерживаетсяПоддержанныйПоддержанный

Включить данные активного состояния

Данные активного состояния можно включить в инспекторе свойств или в обозревателе моделей.

  • Инспектор свойств

    1. Чтобы открыть инспектор свойств, на вкладке «Моделирование» выберите «Инспектор свойств».

    2. На холсте «Редактор состояния» выберите объект «Состояние» для мониторинга.

    3. В разделе «Мониторинг» инспектора свойств установите флажок «Создать выходные данные для мониторинга» и измените свойства данных активного состояния.

  • Обозреватель моделей

    1. Чтобы открыть Обозреватель моделей (Model Explorer), на вкладке Моделирование (Modeling) щелкните Обозреватель моделей (Model Explorer).

    2. На панели Иерархия модели (Model Hierarchy) дважды щелкните объект Stateflow для мониторинга.

    3. На панели объектов Stateflow установите флажок Create output for monitoring и измените свойства данных активного состояния.

Свойства данных активного состояния

Вид операции

Тип контролируемой активности состояния. Выберите один из следующих вариантов:

  • Self activity

  • Child activity

  • Leaf state activity

Имя данных

Имя объекта данных активного состояния. Дополнительные сведения см. в разделе Рекомендации по именованию объектов Stateflow.

Имя перечисления

Имя перечисляемого типа данных для объекта данных активного состояния. Это свойство применяется только к активности дочернего и конечного состояния.

Определение перечисляемого типа вручную

Указывает, следует ли определять перечисляемый тип данных вручную. Это свойство применяется только к активности дочернего и конечного состояния. Дополнительные сведения см. в разделе Определение типа перечисления действий состояния.

Задать область для данных активного состояния

По умолчанию данные активного состояния имеют область действия Output. Stateflow создает выходной порт в блоке диаграммы в модели Simulink.

Чтобы получить доступ к данным активного состояния внутри диаграммы Stateflow, измените область на Local на панели Символы (Symbols) или в Обозревателе моделей (Model Explorer). Дополнительные сведения см. в разделе Задание свойств данных.

Можно указать информацию для создания кода, привязав данные локального активного состояния к Simulink.Signal (Simulink) объект. Изменение свойств объекта с помощью CoderInfo собственность. Дополнительные сведения см. в разделе Simulink.CoderInfo (Симулинк).

Определение типа перечисления действий состояния

По умолчанию Stateflow определяет тип данных перечисления для дочернего и конечного действия. Если установлен флажок Определить перечисляемый тип вручную (Define enumerated type manually), и определение типа данных перечисления не существует, то Stateflow предоставляет ссылку для создания определения. Если щелкнуть ссылку Создать определение перечисления из шаблона (Create enum definition from template), создается настраиваемое определение.

Определение типа данных перечисления содержит одно перечисляемое значение для каждого имени состояния. Определение также содержит перечисляемое значение, которое служит значением по умолчанию для типа данных перечисления и указывает, что ни одно подсостояние не активно. Например, в модели sf_car, состояние gear_state содержит четыре дочерних состояния, которые соответствуют передачам в автомобиле: first, second, third, fourth. Модель задает дочерний тип данных действия с этим определением класса перечисления:

classdef gearType < Simulink.IntEnumType 
   enumeration
		None(0),
		first(1),
		second(2),
		third(3),
		fourth(4)
   end
...
end

Это определение можно настроить путем изменения порядка перечисляемых значений или переименования значения по умолчанию. Не переименовывайте перечисляемые значения, соответствующие состояниям, или используйте getDefaultValue для указания другого значения по умолчанию. Дополнительные сведения см. в разделе Определение перечисляемых типов данных.

Совет

Базовый тип склада для автоматически создаваемых перечислений по умолчанию: Native Integer. Для меньшего объема памяти на панели Оптимизация диалогового окна Параметры конфигурации измените значение поля Базовый тип хранилища для автоматически создаваемых перечислений. Дополнительные сведения см. в разделе Базовый тип хранилища для автоматически создаваемых перечислений (Simulink Coder).

Состояние активности и параллельные состояния

В состояниях с параллельным разложением (AND) дочерняя активность и активность конечного состояния недоступны, поскольку параллельные подсостояния активны одновременно.

При включении активности состояния листа в диаграмме или состоянии подсостояние с параллельным разложением (И) рассматривается как состояние листа. Например, предположим, что для этой диаграммы включена активность состояния листа. Потому что состояние B имеет параллельное разложение, его подсостояния B1 и B2 активны одновременно, так что B рассматривается как конечное состояние диаграммы.

Во время моделирования область, связанная с выходными данными активного состояния, показывает перечисляемые значения для конечных состояний. A1, A2, и B.

Ограничения для данных активного состояния

  • Включение вывода дочерних действий для состояний, не имеющих дочерних, приводит к ошибке во время компиляции и выполнения.

  • Нельзя включить дочернюю или конечную активность состояния в диаграммах или состояниях с параллельным разложением. Для проверки активности состояния в подсостояниях параллельных состояний используйте in оператор. Дополнительные сведения см. в разделе Проверка активности состояния с помощью оператора in.

  • Данные активного состояния не поддерживаются в диаграммах, использующих классическую семантику или семантику Mealy, когда свойство Initialize выводит данные при каждом включении диаграммы. Дополнительные сведения см. в разделе Инициализация выходных данных при каждом включении диаграммы.

См. также

(Simulink) | (Симулинк)

Связанные темы