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

2. В Model Data Editor выберите вкладку Parameters.
3. В модели кликните по блоку Enumerated Constant.
4. В Model Data Editor используйте Столбец значений, чтобы установить постоянное значение к myChoice. Рядом с myChoice, кликните по кнопке действий (с тремя вертикальными точками) и выберите Create.
5. В диалоговом окне Create New Data, установленном Значении к Simulink.Parameter(ex_myEnumType.Choice1) и нажмите Create. Simulink.Parameter возразите названному myChoice появляется в базовом рабочем пространстве. Объектно-ориентированная память перечисляемое значение Choice1 из типа ex_myEnumType.
6. На вкладке Code Generation, Классе памяти набора к ExportedGlobal. С этой установкой объект появляется в сгенерированном коде как глобальная переменная.
7. В Model Data Editor выберите вкладку Signals.
8. В модели выберите выходной сигнал блока Enumerated Constant.
9. В Model Data Editor используйте столбец Типа данных, чтобы установить тип данных сигнала на Enum: ex_myEnumType.
10. Выберите Многопортовый блок 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' */
}