Чтобы задать параметры генерации кода для сигнальных линий, параметров блоков и состояний в модели, можно использовать объекты данных, которые хранятся в рабочей области или словаре данных. Основные сведения об объектах данных см. в разделе Объекты данных.
Мастер объектов данных позволяет создавать объекты данных для:
Новые или существующие модели, не использующие объекты данных.
Существующие модели, к которым добавлены сигнальные линии или блоки.
В этом примере показано, как использовать мастер объектов данных для создания и настройки объектов данных для создания кода из встроенного пакета. Simulink.
Открыть пример модели rtwdemo_configinterface.
open_system('rtwdemo_configinterface')

Модель создает числовые переменные в базовом рабочем пространстве. Блоки в модели используют эти переменные для установки значений параметров (например, параметра усиления блока усиления). Некоторые сигналы и состояния блоков в модели имеют явные имена, такие как input1.
На вкладке «Моделирование» в разделе «Проект» выберите «Мастер объектов данных».

В мастере объектов данных нажмите кнопку Найти. Мастер предлагает создание Simulink.Parameter объекты для замены переменных и создания Simulink.Signal объекты для представления сигналов и состояний.

Мастер находит только сигналы, параметры, хранилища данных и состояния, для которых установлен класс хранения Auto. Например, если диалоговое окно «Свойства сигнала» используется для указания класса хранения, отличного от Auto для сигнальной линии мастер не предлагает объект данных.
Щелкните Выбрать все (Select All).
Щелкните Создать (Create). Объекты данных отображаются в базовой рабочей области.
Дополнительные сведения о параметрах, которые можно выбрать в мастере объектов данных, см. в разделе Создание объектов данных для модели с помощью мастера объектов данных.
Классы хранения определяют, как генерируемый код использует переменные для представления сигналов, параметров и состояний. Для объектов данных из встроенного пакета Simulink, классом хранения по умолчанию является Auto. Чтобы указать классы хранения для новых объектов данных, используйте обозреватель моделей.
Откройте обозреватель моделей.
На панели Иерархия модели (Model Hierarchy) выберите Базовая рабочая область (Base Workspace).

На панели «Содержимое» в раскрывающемся списке «Представление столбца» выберите Storage Class.
Выберите все новые объекты данных. Например, выберите объект input1, удерживайте нажатой клавишу Shift и выберите объект X.
Установка свойства StorageClass для всех объектов данных ExportToFile. Чтобы изменить класс хранения для всех выбранных объектов, в столбце StorageClass щелкните любой из объектов. В раскрывающемся списке выберите ExportToFile. Внесенные изменения распространяются на все выбранные объекты.
Укажите HeaderFile свойство для всех объектов как myExportedHdrFile.h.
В модели установите Параметры конфигурации > Создание кода > Целевой файл системы в значение ert.tlc. С помощью этой настройки генератор кода поддерживает такие классы хранения, как ExportToFile.
Создайте код из модели.
### Starting build procedure for: rtwdemo_configinterface ### Successful completion of code generation for: rtwdemo_configinterface Build Summary Top model targets built: Model Action Rebuild Reason =========================================================================================== rtwdemo_configinterface Code generated Code generation information file does not exist. 1 of 1 models built (0 models already up to date) Build duration: 0h 0m 8.7161s
В отчете о создании кода просмотрите созданный файл. myExportedHdrFile.h. Файл содержит extern объявления для глобальных переменных, которые соответствуют объектам данных.
/* Exported data declaration */ /* Declaration for custom storage class: ExportToFile */ extern real_T X;
Просмотр файла rtwdemo_configinterface.c. Файл содержит определения глобальных переменных. Код присваивает числовые значения переменным, соответствующим объектам параметров.
/* Exported data definition */ /* Definition for custom storage class: ExportToFile */ real_T X;
Simulink.Parameter | Simulink.Signal