exponenta event banner

Ссылочные значения по имени с помощью перечисляемых данных

Для улучшения читаемости диаграммы Stateflow ® используйте перечисляемые данные. С помощью перечисляемых данных можно:

  • Создайте ограниченный набор значений и обратитесь к ним по имени.

  • Группировать связанные значения по отдельным типам данных.

  • Избегайте определения длинного списка констант.

Перечисляемые данные поддерживаются в диаграммах Stateflow в моделях Simulink ®.

Пример перечисляемых данных

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

Перечисляемые данные output ограничивается конечным набором значений. На эти значения можно ссылаться по их именам: Red, Yellow, и Green.

Перечисляемое значениеИмяЦелочисленное значение
Red(0)Red0
Yellow(1)Yellow1
Green(2)Green2

Этот файл MATLAB ® определяет перечисляемый тип данныхBasicColors , на который ссылается диаграмма.

classdef BasicColors < Simulink.IntEnumType
  enumeration
    Red(0)
    Yellow(1)
    Green(2)
  end
end

Вычисление с помощью перечисляемых данных

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

Пример

Описание

a = exp

Присвоение exp кому a. exp должно вычисляться до перечисляемого значения.

a == b

Сравнение, равенство.

a != b

Сравнение, неравенство.

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

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

Нотация для перечисляемых значений

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

Префиксные идентификаторы

Чтобы предотвратить конфликты имен при ссылке на перечисляемые значения в диаграммах Stateflow, можно использовать префиксные идентификаторы формы Type.Name. Type является перечисляемым типом данных и Name является именем перечисляемого значения. Например, предположим, что определены три типа данных (Colors, Temp, и Code), которые содержат перечисляемое имя Red. Используя префиксную нотацию, можно различить Colors.Red от Temp.Red и Code.Red.

Нефиксированные идентификаторы

Чтобы минимизировать длину идентификатора при обращении к уникальным перечисляемым значениям, можно использовать нефиксированные имена перечисляемых значений. Например, предположим, что перечисляемое имя Red принадлежит только типу данных Colors. Затем можно обратиться к этому значению с нефиксированным идентификатором Red.

Если диаграмма использует типы данных, содержащие идентичные перечисляемые имена (например, Colors.Red и Temp.Red), используйте префиксные идентификаторы для предотвращения конфликтов имен.

Где использовать перечисляемые данные

Используйте перечисляемые данные на следующих уровнях иерархии Stateflow:

  • Диаграмма

  • Поддиаграмма

  • Государство

Использовать перечисляемые данные в качестве аргументов для:

  • Действия состояния

  • Условия и переходные действия

  • Индексация вектора и матрицы

  • Функции MATLAB

  • Графические функции

  • Функции симулятора

  • Блоки таблицы истинности и функции таблицы истинности

Если установлен Simulink Coder™, можно использовать перечисляемые данные для моделирования и создания кода.

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