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

Чтобы улучшить удобочитаемость графика 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

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

a == b

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

a != b

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

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

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

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

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

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

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

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

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

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

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

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

  • График

  • Субдиаграмма

  • Состояние

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

  • Состояния активности

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

  • Вектор и индексирование матриц

  • Функции MATLAB

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

  • Функции Simulink

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

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

Похожие темы