Чтобы задать опции генерации кода для сигнальных линий, параметров блоков и состояний в модели, можно использовать объекты данных, которые вы храните в рабочей области или словаре данных. Основные сведения об объектах данных см. в разделе Объекты данных.
Мастер объектов данных позволяет создавать объекты данных для:
Новые или существующие модели, которые не используют объекты данных.
Существующие модели, к которым вы добавили сигнальные линии или блоки.
В этом примере показано, как использовать мастер объектов данных для создания и конфигурации объектов данных для генерации кода из встроенного пакета Simulink
.
Откройте пример модели rtwdemo_configinterface
.
open_system('rtwdemo_configinterface')
Модель создает числовые переменные в базовом рабочем пространстве. Блоки в модели используют эти переменные, чтобы задать значения параметров (такие как параметр Gain блока Gain). Некоторые сигналы и состояния блока в модели имеют явные имена, такие как input1
.
На вкладке Моделирования, в разделе Проекта, нажмите Данные Мастер объектов.
В мастере объектов данных нажмите кнопку Найти. Мастер предлагает создание Simulink.Parameter
объекты для замены переменных и создания Simulink.Signal
объекты для представления сигналов и состояний.
Мастер находит только сигналы, параметры, хранилища данных и состояния, чей класс памяти установлен на Auto
. Для примера, если вы используете диалоговое окно Signal Свойств, чтобы задать класс памяти кроме Auto
для сигнальной линии мастер не предлагает объект данных.
Щелкните Выбрать все (Select All).
Нажмите кнопку Создать. Объекты данных появляются в базовом рабочем пространстве.
Для получения дополнительной информации об опциях, которые можно выбрать в мастере объектов данных, см. раздел «Создание объектов данных для модели с помощью мастера объектов данных».
Классы памяти определяют, как сгенерированный код использует переменные для представления сигналов, параметров и состояний. Для объектов данных из встроенного пакета Simulink
, класс памяти по умолчанию Auto
. Чтобы задать классы памяти для новых объектов данных, используйте Model Explorer.
Откройте Model Explorer.
На панели иерархия модели выберите Базовое рабочее пространство.
На панели «Содержимое» в раскрывающемся списке «Представление столбца» выберите Storage Class
.
Выберите все новые объекты данных. Для примера выберите объект input1
, удерживая нажатой сдвиг и выбирая объект 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