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

Чтобы улучшить удобочитаемость графика Stateflow®, используйте enumerated data. С перечислимыми данными вы можете:

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

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

  • Постарайтесь не задавать длинный список констант.

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

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

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

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

EnumeratedValueИмяЦелочисленное значение
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

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

a == b

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

a != b

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

Обозначение для перечисляемых значений

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

Снабженные префиксом идентификаторы

Чтобы предотвратить конфликты по совпадению имен при обращении к перечисляемым значениям в диаграммах 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

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

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

Похожие темы