Действие состояния монитора через активные данные состояния

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

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

  • Просмотрите действие графика при помощи осциллографа, Инспектора Данных моделирования или Logic Analyzer.

  • Регистрируйте действие графика для диагностики.

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

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

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

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

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

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

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

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

Можно включить активные данные состояния или в Property Inspector или в Model Explorer.

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

    1. Чтобы открыть Property Inspector, во вкладке Modeling, нажимают Property Inspector.

    2. В холсте редактора Stateflow выберите объект Stateflow контролировать.

    3. В разделе Monitoring Property Inspector установите флажок Create output for monitoring и отредактируйте активные свойства данных состояния.

  • Model Explorer

    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 в панели Символов или в Model Explorer. Для получения дополнительной информации смотрите Set Data Properties.

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

Задайте перечисляемый тип действия состояния

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

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

classdef gearType < Simulink.IntEnumType
   enumeration
		None(0),
		first(1),
		second(2),
		third(3),
		fourth(4)
   end
...
end
Для получения дополнительной информации смотрите, Задают Перечислимые Типы данных.

Основной тип хранения для автоматически созданных значений по умолчанию перечислений к Native Integer. Для меньшего объема потребляемой памяти, в панели Optimization диалогового окна Configuration Parameters, изменяют значение поля Base storage type for automatically created enumerations. Для получения дополнительной информации смотрите Основной тип хранения для автоматически созданных перечислений (Simulink Coder).

Действие состояния и параллельные состояния

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

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

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

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

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

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

  • Активные данные состояния не поддерживаются в графиках, которые используют классическую или Мучнистую семантику, когда свойство диаграммы Initialize outputs every time chart wakes up включено. Для получения дополнительной информации смотрите Initialize выходные параметры, которые будит каждая временная диаграмма.

Смотрите также

|

Похожие темы