Чтобы задать опции генерации кода для сигнальных линий, параметров блоков и состояний в модели, можно использовать объекты данных, которые вы храните в словаре данных или рабочей области. Для основной информации об объектах данных смотрите Объекты данных.
Можно использовать Мастер Объекта данных, чтобы создать объекты данных для:
Новые или существующие модели, которые не используют объекты данных.
Существующие модели, на которые вы добавили сигнальные линии или блоки.
В этом примере показано, как использовать Мастер Объекта данных, чтобы создать и сконфигурировать объекты данных для генерации кода от встроенного пакета Simulink
.
Откройте модель rtwdemo_configinterface
в качестве примера.
open_system('rtwdemo_configinterface')
Модель создает числовые переменные в базовом рабочем пространстве. Блоки в использовании модели эти переменные, чтобы установить значения параметров (такие как параметр Усиления блока Gain). Некоторые сигналы и состояния блока в модели имеют явные имена, такие как input1
.
На вкладке Modeling, в соответствии с Проектом, нажимают Data Object Wizard.
В Мастере Объекта данных нажмите Find. Мастер предлагает создание Simulink.Parameter
объекты заменить переменные и создание Simulink.Signal
объекты представлять сигналы и состояния.
Мастер находит только сигналы, параметры, хранилища данных, и утверждает, чей класс памяти установлен в Auto
. Например, если вы используете диалоговое окно Signal Properties, чтобы задать класс памяти кроме Auto
для сигнальной линии мастер не предлагает объект данных.
Нажмите Select All.
Нажмите Create. Объекты данных появляются в базовом рабочем пространстве.
Для получения дальнейшей информации об опциях, которые можно выбрать в Мастере Объекта данных, смотрите, Создают Объекты данных для Модели Используя Мастер Объекта данных.
Классы памяти определяют, как сгенерированный код использует переменные, чтобы представлять сигналы, параметры и состояния. Для объектов данных от встроенного пакета Simulink
, классом памяти по умолчанию является Auto
. Чтобы задать классы памяти для новых объектов данных, используйте Model Explorer.
Откройте Model Explorer.
В панели Иерархии модели выберите Base Workspace.
В панели Содержимого, от выпадающего Представления Столбца списка, выбирают Storage Class
.
Выберите все новые объекты данных. Например, выберите объект input1
, содержите Сдвиг и выберите объект X
.
Установите свойство StorageClass
для всех объектов данных к ExportToFile
. Изменить класс памяти для всех выбранных объектов, в столбце StorageClass, нажатии кнопки любом из объектов. В выпадающем списке выберите ExportToFile
. Изменение, которое вы вносите, распространяет ко всем выбранным объектам.
Задайте HeaderFile
свойство для всех объектов как myExportedHdrFile.h
.
В модели, Параметры конфигурации набора> Генерация кода> Системный конечный файл к ert.tlc
. С этой установкой генератор кода соблюдает классы памяти, такие как ExportToFile
.
Сгенерируйте код из модели.
### Starting build procedure for: rtwdemo_configinterface ### Generated code for 'rtwdemo_configinterface' is up to date because no structural, parameter or code replacement library changes were found. ### Successful completion of code generation for: rtwdemo_configinterface Build Summary 0 of 1 models built (1 models already up to date) Build duration: 0h 0m 3.297s
В отчете генерации кода просмотрите сгенерированный файл 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