Чтобы сгенерировать тип перечисленных данных, задайте класс перечисления в файле MATLAB. Затем используйте класс перечисления как тип данных сигналов, параметров блоков и состояний в вашей модели.
typedef enum {
Choice1 = 0,
Choice2
} myEnumType;
В текущей папке создайте файл MATLAB ex_myEnumType.m. Файл задает класс перечисления ex_myEnumType.
classdef ex_myEnumType < Simulink.IntEnumType enumeration Choice1(0) Choice2(1) end %enumeration methods (Static) function retVal = getHeaderFile() retVal = 'myEnumHdr.h'; end %function function retVal = getDataScope() retVal = 'Exported'; end %function end %methods end %classdef
1. Откройте модель ex_pattern_enum который имеет блок Enumerated Constant и блок Multiport Switch.

2. В Model Data Editor выберите вкладку Параметры.
3. В модели щелкните Перечисленная константа (Enumerated Constant).
4. В Model Data Editor используйте столбец Value, чтобы задать постоянное значение myChoice. Рядом с myChoice, нажмите кнопку действия (с тремя вертикальными точками) и выберите Create.
5. В диалоговом окне «Создание новых данных» установите значение Simulink.Parameter(ex_myEnumType.Choice1) и нажмите «Создать». A Simulink.Parameter объект с именем myChoice появляется в базовом рабочем пространстве. Объект хранит перечисленное значение Choice1 типа ex_myEnumType.
6. На вкладке Генерации кода установите Класс памяти равным ExportedGlobal. С этой настройкой объект появляется в сгенерированном коде как глобальная переменная.
7. В Model Data Editor выберите вкладку Сигналы.
8. В модели выберите выходной сигнал блока Enumerated Constant.
9. В Model Data Editor используйте столбец Data Type, чтобы задать тип данных сигнала Enum: ex_myEnumType.
10. Выберите блок Multiport Switch.
11. В Property Inspector установите:
Порядок портов данных для Specify indices.
Индексы портов данных в enumeration('ex_myEnumType'). Это выражение возвращает все представители перечисления ex_myEnumType.
12. Установите параметр конфигурации модели Формат упаковки файлов на Modular. С этой настройкой, в сгенерированном коде, определение ex_myEnumType может появиться в указанном заголовочном файле, myEnumHdr.h.
13. Чтобы создать модель и сгенерировать код, нажмите Ctrl + B.
Просмотрите сгенерированный заголовочный файл myEnumHdr.h. Файл определяет тип перечисленных данных.
typedef enum {
Choice1 = 0, /* Default value */
Choice2
} ex_myEnumType;
Просмотрите исходный файл ex_pattern_enum.c. Файл задает переменную myChoice. Алгоритм в step функция использует myChoice для маршрутизации одного из входных сигналов к выходному сигналу.
ex_myEnumType myChoice = Choice1; /* Variable: myChoice
/* Model step function */
void ex_pattern_enum_step(void)
{
/* MultiPortSwitch: '<Root>/Multiport Switch' incorporates:
* Constant: '<S1>/Constant'
*/
if (myChoice == Choice1) {
/* Outport: '<Root>/Data Out' incorporates:
* Inport: '<Root>/Data In 1'
*/
rtY.DataOut = rtU.DataIn1;
} else {
/* Outport: '<Root>/Data Out' incorporates:
* Inport: '<Root>/Data In 2'
*/
rtY.DataOut = rtU.DataIn2;
}
/* End of MultiPortSwitch: '<Root>/Multiport Switch' */
}