Создание определений кода, управляющих созданием кода для данных и функций модели
Чтобы открыть Embedded Coder Dictionary, в окне модели на вкладке C Code выберите Code Interface > Embedded Coder Dictionary.
В окне Embedded Coder Dictionary отображаются определения генерации кода, которые хранятся в файле модели. Если модель связана со словарем данных, в окне также отображаются определения, которые хранятся в этом словаре данных или, если применимо, в словаре, на который имеется ссылка. Столбец Источник указывает, где хранится каждое определение.
Чтобы открыть Embedded Coder Dictionary в словаре данных Simulink ®, на панели «Иерархия моделей» проводника моделей:
В узле словаря выберите узел Embedded Coder.
Если узел не отображается, щелкните правой кнопкой мыши узел словаря и выберите Показать пустые разделы.
На панели «Диалоговое окно» (правая панель) выберите «Открыть словарь встроенного кодера».
В модели создайте класс хранения, который агрегирует внутренние данные модели, включая состояния блоков, в структуру, характеристиками которой можно управлять. Затем проверьте класс хранения, сгенерировав код из модели.
Открыть пример модели rtwdemo_roll.
rtwdemo_roll
Если модель не открывается в приложении Embedded Coder, откройте приложение и перейдите на вкладку C Code.
На вкладке C Code выберите Code Interface > Embedded Coder Dictionary. В окне Embedded Coder Dictionary отображаются определения генерации кода, которые хранятся в файле модели.
В окне Embedded Coder Dictionary нажмите кнопку Add.
Выберите новый класс хранения, который появится в нижней части списка. StorageClass1 . На панели «Инспектор свойств» справа задайте значения свойств, перечисленные в этой таблице.
| Собственность | Стоимость |
|---|---|
| Имя | InternalStruct |
| Файл заголовка | internalData_$R.h |
| Файл определения | internalData_$R.c |
| Тип склада | Structured |
| Свойства структуры > Имя типа | internalData_T_$M |
| Свойства структуры > Имя экземпляра | internalData_$M |
После внесения изменений на нижней панели убедитесь, что предварительный просмотр псевдокода отражает ожидаемое.
Вернуться к редактору модели. Чтобы открыть редактор «Сопоставления кода», под холстом дважды щелкните «Сопоставления кода». На вкладке «Значения по умолчанию» разверните раздел «Сигналы». Выберите строку сигналов, состояний и внутренних данных и установите для класса хранения значение InternalStruct.
В диалоговом окне «Параметры конфигурации» на панели «Создание кода» > «Размещение кода» задайте для параметра «Формат упаковки файлов» значение Modular.
Создать код.
В представлении «Код редактора Simulink» откройте и проверьте файл. internalData_rtwdemo_roll.h. Файл определяет тип структуры internalData_T_, поля которого представляют состояния блоков в модели.
/* Storage class 'InternalStruct', for system '<Root>' */
typedef struct {
real32_T FixPtUnitDelay1_DSTATE; /* '<S7>/FixPt Unit Delay1' */
real32_T Integrator_DSTATE; /* '<S1>/Integrator' */
int8_T Integrator_PrevResetState; /* '<S1>/Integrator' */
} internalData_T_;Файл также объявляет глобальную структурную переменную с именем internalData_.
/* Storage class 'InternalStruct' */ extern internalData_T_ internalData_;
Открыть и проверить файл internalData_rtwdemo_roll.c. Файл выделяет память для internalData_.
/* Storage class 'InternalStruct' */ internalData_T_ internalData_;
С помощью шаблона функции можно указать правило, которое управляет именами созданных функций точки входа. Этот метод помогает экономить время и затраты на обслуживание в модели с множеством функций начального уровня, таких как модель с функцией экспорта или многозадачная многозадачная модель.
В этом примере показано, как создать шаблон функции, определяющий правило именования func_$N_$R. $N - базовое имя каждой сгенерированной функции и $R - имя модели Simulink.
Открыть пример модели rtwdemo_mrmtbb.
Обновите блок-схему. Эта многозадачная модель имеет две скорости выполнения, поэтому сгенерированный код включает в себя две соответствующие функции точки входа.
В модели задайте для параметра конфигурации модели System target file значение ert.tlc. Для использования шаблона настройки функции необходимо использовать системный целевой файл на основе ERT.
В редакторе Simulink откройте приложение Embedded Coder и словарь Embedded Coder Dictionary.
В словаре Embedded Coder на вкладке Function Customization Templates нажмите кнопку Add.
Для нового шаблона функции задайте следующие свойства:
Имя для myFunctions.
Имя функции для func_$N_$R.
После внесения изменений убедитесь, что предварительный просмотр псевдокода отражает ожидаемое.
В окне модели откройте редактор Сопоставления кодов (Code Mappings). На закладке Function Defaults для строк Initialize/Terminate и Execution установите для параметра Function Customization Template значение myFunctions.
Создать код.
В представлении «Код» откройте и проверьте файл. rtwdemo_mrmtbb.c. Файл определяет две функции выполнения, func_step0_rtwdemo_mrmtbb и func_step1_rtwdemo_mrmtbb, имена которых соответствуют правилу, указанному в шаблоне функции.
Пример создания раздела памяти см. в разделе Управление данными и размещением функций в памяти путем вставки прагматиков.
В этом примере показано, как создать класс хранения, помещающий определения и объявления глобальных переменных в файлы, имена которых зависят от имени модели. Создайте две копии класса хранения, чтобы можно было использовать одну копию с данными параметров (категория данных Параметры модели) и одну копию с другими данными.
Обычно сгенерированный код инициализирует данные параметров статически, вне любой функции и динамически инициализирует другие данные в функции инициализации модели. При создании класса хранения с помощью конструктора пользовательских классов хранения или словаря встроенного кодера необходимо задать свойство Инициализация данных, чтобы указать механизм инициализации.
В словаре встроенного кодера для каждого класса хранения необходимо выбрать Static или Dynamic инициализация. Попробуйте создать одну копию класса хранения для данных параметров (Static) и одну копию для других данных (Dynamic).
Открыть пример модели rtwdemo_roll.
Если вкладка C Code не открыта, откройте приложение Embedded Coder и перейдите на вкладку C Code.
Выберите Code Interface > Embedded Coder Dictionary
В словаре встроенного кодера нажмите кнопку Добавить.
Для нового класса хранения задайте следующие свойства:
Имя для SigsStates
Файл заголовка для $R_my_data.h
Файл определения для $R_my_data.c
Инициализация данных в Dynamic
После внесения изменений убедитесь, что предварительный просмотр псевдокода отражает ожидаемое.
Нажмите кнопку «Копировать». Новый класс хранения, SigsStates_copy, появляется.
Для нового класса хранения задайте следующие свойства:
Имя для Params
Инициализация данных в Static
После внесения изменений убедитесь, что предварительный просмотр псевдокода отражает ожидаемое.
Вернитесь к модели и откройте редактор Сопоставления кодов (Code Mappings). Под холстом модели дважды щелкните «Сопоставления кода - C».
На вкладке Значения по умолчанию для строки Параметры > Параметры модели в столбце Класс хранения выберите Params.
Для параметра Signals (Сигналы) > Signals (Сигналы), stations (Состояния) и внутренней строки данных установите для параметра Storage Class значение SigsStates.
Настройте некоторые элементы данных параметров в модели таким образом, чтобы оптимизация не исключала эти элементы из созданного кода. На вкладке Моделирование (Modeling) щелкните Проект (Design) > Рабочее пространство модели (Model Workspace).
В обозревателе моделей на центральной панели выберите три строки, которые соответствуют переменным. dispGain, intGain, и rateGain в рабочем пространстве модели.
Щелкните правой кнопкой мыши одну из строк и выберите Convert to parameter object. Редактор данных модели преобразует переменные рабочего пространства в Simulink.Parameter объекты.
В строке параметра dispGain, в столбце Класс хранилища нажмите кнопку Настроить. Окно модели выделяет строку для dispGain в редакторе сопоставлений кодов.
Для каждой переменной в столбце Класс хранения выберите Model default: Params, что означает, что они получают класс хранения по умолчанию, указанный для параметров модели.
В диалоговом окне «Параметры конфигурации» на панели «Создание кода» > «Размещение кода» задайте для параметра «Формат упаковки файлов» значение Modular.
Создать код.
В представлении «Код» откройте и проверьте файлы. rtwdemo_roll_my_data.c и rtwdemo_roll_my_data.h. Эти файлы определяют и объявляют глобальные переменные, которые соответствуют объектам параметров и некоторым состояниям блоков, таким как состояние блока Integrator в BasicRollMode подсистема.
/* Storage class 'SigsStates' */ real32_T rtFixPtUnitDelay1_DSTATE; real32_T rtIntegrator_DSTATE; int8_T rtIntegrator_PrevResetState; /* Storage class 'Params' */ real32_T dispGain = 0.75F; real32_T intGain = 0.5F; real32_T rateGain = 2.0F;
Можно настроить Embedded Coder Dictionary для обращения к определениям генерации кода, которые хранятся в пакете (см. Создание определений кода для внешних объектов данных). Эти определения появятся доступными для выбора в редакторе сопоставлений кодов. В этом примере выполняется настройка словаря встроенного кодера в rtwdemo_roll см. определения, хранящиеся во встроенном примере пакета ECoderDemos.
Открыть словарь встроенного кодера для rtwdemo_roll. Инструкции см. в разделе Создание и проверка класса хранения.
В окне Embedded Coder Dictionary щелкните Управление пакетами.
В диалоговом окне «Управление пакетами» нажмите кнопку «Обновить». Дождитесь появления дополнительных параметров в выпадающем списке Выбрать пакет.
Задать для параметра Выбрать пакет значение ECoderDemos и щелкните Загрузить (Load).
В окне Embedded Coder Dictionary на вкладке Storage Classes в таблице показаны классы хранения, определенные в ECoderDemos пакет. Теперь, в rtwdemo_rollэти классы хранения можно выбрать в редакторе сопоставлений кодов на вкладке «Значения по умолчанию».
Чтобы выгрузить пакет, в диалоговом окне Управление пакетами (Manage Packages) выберите пакет в раскрывающемся списке Выбрать пакет (Select package) и щелкните Выгрузить (Unload).
Пример совместного использования определений генерации кода между моделями с помощью словарей данных см. в разделе Совместное использование определений словаря встроенного кодера между моделями.
Пример настройки сопоставления кода по умолчанию в общем словаре встроенного кодера см. в разделе Настройка сопоставления кода по умолчанию в общем словаре.
Эти свойства отображаются на панели «Инспектор свойств» окна «Embedded Coder Dictionary». В таблице некоторые свойства отображаются в виде столбцов для облегчения пакетного редактирования.
Классы храненияName - Наименование класса храненияStorageClass1 (по умолчанию) | текстИмя класса хранения. Имя должно быть уникальным среди классов хранения в словаре.
Список встроенных и примерных классов хранения, предоставляемых Simulink, см. в разделе Выбор класса хранения для управления представлением данных в сгенерированном коде.
Description - Назначение и функциональность класса храненияПользовательский текст, который можно использовать для описания назначения и функциональных возможностей класса хранения.
Source - Расположение определения класса храненияЭто свойство доступно только для чтения.
Расположение определения класса хранения.
Built-in - Предоставляется компанией Simulink.
Имя модели - определяется в модели Simulink.
Имя словаря - определяется в словаре данных Simulink (см. Что такое словарь данных?).
Имя пакета - определяется в пакете Simulink или в пользовательском пакете (см. раздел Создание классов хранения с помощью конструктора пользовательских классов хранения).
Data Access - Спецификация для доступа к даннымDirect (по умолчанию) | FunctionСпецификация для доступа к данным, связанным с моделью. Доступ к данным напрямую (Direct) или через настраиваемые get и set функции (Function). Дополнительные сведения см. в разделе Доступ к данным через функции с помощью классов хранения в словаре встроенного кодера.
Установка для этого свойства значения Function:
Задает для области данных значение Imported.
Означает, что невозможно задать свойства нескольких экземпляров.
Включает следующие свойства:
Режим доступа
Разрешенный доступ
Имя Геттера
Имя установщика
Отключает свойство Preserve array dimensions. Чтобы сохранить размеры многомерных массивов в создаваемом коде, установите для параметра Доступ к данным значение Direct.
Data Scope - Спецификация для создания определения данныхExported (по умолчанию) | ImportedСпецификация, определяющая данные сгенерированным кодом (Exported) или импорт (Imported) определение данных из внешнего кода. Встроенные классы хранения и классы хранения в пакетах, таких как Simulink, могут использовать другие параметры области, такие как File.
Установка для этого свойства значения Imported:
Отключает файл определения. Чтобы включить внешний файл исходного кода в процесс построения, используйте параметры конфигурации модели. Пример см. в разделе Настройка интерфейса данных.
Означает, что невозможно установить для файла заголовка значение $N.h, хотя вы можете использовать $N токен.
Установка для этого свойства значения Exported, необходимо использовать один из маркеров $N или $R в значении файла заголовка.
Header File - Имя файла заголовка, объявляющего данные$N.h (по умолчанию) | текстИмя файла заголовка, объявляющего данные, указанное как имя или правило именования. Правило именования включает комбинацию текста и маркеров. Допустимые маркеры перечислены в этой таблице.
| Символ | Описание |
|---|---|
$R | Имя корневой модели |
$N | Имя связанного элемента данных |
$G | Имя класса хранения |
$U | Текст маркера пользователя, который задается для модели, как описано в разделе Управление форматом идентификатора |
Если для параметра «Область данных» задано значение Exported, необходимо использовать один из маркеров $R или $N в значении этого свойства.
Если для параметра «Область данных» задано значение Imported, значение этого свойства нельзя установить равным $N.h, но вы можете использовать $N токен.
Definition File - имя исходного файла, определяющего данные;$N.c (по умолчанию) | текстИмя исходного файла, определяющего данные, указанное как имя или правило именования. Правило именования включает комбинацию текста и маркеров. Допустимые маркеры перечислены в этой таблице.
| Символ | Описание |
|---|---|
$R | Имя корневой модели |
$N | Имя связанного элемента данных |
$G | Имя класса хранения |
$U | Текст маркера пользователя, который задается для модели, как описано в разделе Управление форматом идентификатора |
Установка для области данных значения Imported отключает файл определения. Чтобы включить внешний файл исходного кода в процесс построения, используйте параметры конфигурации модели. Пример см. в разделе Настройка интерфейса данных.
Access Mode - Спецификация для доступа к данным через функцииValue (по умолчанию) | PointerСпецификация класса хранения для доступа к данным, связанным с моделью, через функции с помощью Value или Pointer. Дополнительные сведения см. в разделе Доступ к данным через функции с помощью классов хранения в словаре встроенного кодера.
Это свойство включено, только если для параметра «Доступ к данным» задано значение Function.
Allowed Access - Спецификация для обеспечения доступа к данным через функцииRead/Write (по умолчанию) | Read Only | Write OnlyСпецификация класса хранения, разрешающая чтение и запись (Read/Writeтолько для чтенияRead Only) или только для записи (Write Only) доступ к данным.
Это свойство включено, только если для параметра «Доступ к данным» задано значение Function.
Name of Getter - Наименование get функция, которая извлекает связанные данныеget_$N$M (по умолчанию) | текстНазвание get функция, которая извлекает связанные данные, указанные как имя или правило именования. Правило именования включает комбинацию текста и маркеров. Допустимые маркеры перечислены в этой таблице.
| Символ | Описание |
|---|---|
$N | Имя связанного элемента данных (обязательно) |
$R | Имя корневой модели |
$M | Мангальный текст, обеспечивающий уникальность |
$U | Текст маркера пользователя. См. раздел Управление форматом идентификатора. |
Это свойство включено, только если для параметра «Доступ к данным» задано значение Function.
Name of Setter - Наименование set функция, которая изменяет связанные данныеset_$N$M (по умолчанию) | текстНазвание set функция, которая извлекает данные изменения, указанные как имя или правило именования. Правило именования включает комбинацию текста и маркеров. Допустимые маркеры перечислены в этой таблице.
| Символ | Описание |
|---|---|
$N | Имя связанного элемента данных (обязательно) |
$R | Имя корневой модели |
$M | Мангальный текст, обеспечивающий уникальность |
$U | Текст маркера пользователя. См. раздел Управление форматом идентификатора. |
Это свойство включено, только если для параметра «Доступ к данным» задано значение Function.
Use different property settings for single-instance and multi-instance data - Спецификация для назначения отдельных настроек хранилищаoff (по умолчанию) | onСпецификация для класса хранения данных для использования либо параметров хранения данных, заданных в разделе Одноэкземплярное хранение данных, либо параметров хранения данных, заданных в разделе Многоэкземплярное хранение данных. При применении класса хранения к элементу данных Embedded Coder Dictionary определяет, является ли он классом хранения с одним экземпляром или классом хранения с несколькими экземплярами по типу данных и по контексту модели в иерархии ссылок на модель.
При выборе этого свойства включаются разделы Одноэкземплярное хранение и Многоэкземплярное хранение. Свойства Тип хранилища (Storage Type), Имя типа (Type Name) и Имя экземпляра (Instance Name) отображаются в разделах Хранение в одном экземпляре (Single-instance storage) и Хранение в нескольких экземплярах (Multi-instance storage).
Storage Type - Спецификация для агрегирования данных в структуруUnstructured (по умолчанию) | StructuredСпецификация для агрегирования данных, использующих класс хранения, в структуру в сгенерированном коде. Каждый элемент данных отображается в коде как поле структуры. Для создания структуры используйте Structured.
Установка для этого свойства значения Structured включает «Имя типа» и «Имя экземпляра».
Type Name - Наименование типа структуры$R$N$G$M (по умолчанию) | текстИмя типа структуры в созданном коде, указанное как имя или правило именования. Правило именования включает комбинацию текста и маркеров. Допустимые маркеры перечислены в этой таблице.
| Символ | Описание |
|---|---|
$R | Имя корневой модели |
$N | Базовое имя связанной функции, например step |
$G | Имя класса хранения |
$U | Текст маркера пользователя, который задается для модели, как описано в разделе Управление форматом идентификатора |
$M | При необходимости вставляется текст с искажениями имен, чтобы избежать конфликтов имен |
Установка для типа склада значения Structured включает это свойство.
Instance Name - Имя структурной переменной$N$G$M (по умолчанию) | текстИмя структурной переменной в созданном коде, указанное как имя или правило именования. Правило именования включает комбинацию текста и маркеров. Допустимые маркеры перечислены в этой таблице.
| Символ | Описание |
|---|---|
$R | Имя корневой модели |
$N | Базовое имя связанной функции, например step |
$G | Имя класса хранения |
$U | Текст маркера пользователя, который задается для модели, как описано в разделе Управление форматом идентификатора |
$M | При необходимости вставляется текст с искажениями имен, чтобы избежать конфликтов имен |
Установка для типа склада значения Structured включает это свойство.
Data Initialization - Как инициализировать данныеAuto (по умолчанию) | Dynamic | Static | NoneСпецификация, согласно которой сгенерированный код инициализирует данные.
Auto - сгенерированный код статически инициализирует данные параметров и динамически инициализирует данные сигналов и состояния.
Dynamic - Созданный код инициализирует данные как часть функции точки входа инициализации модели.
Static - Созданный код инициализирует данные в той же инструкции, которая определяет и выделяет память для данных. Оператор присвоения отображается в верхней части .c или .cpp исходный файл, вне функции.
None - Созданный код не инициализирует данные.
При выборе Const это свойство нельзя задать равным Dynamic.
Установка для этого свойства значения Dynamic отключает Const.
Memory Section - Расположение в памяти для выделения данныхNone (по умолчанию) | существующий раздел памятиРасположение в памяти для выделения данных, указанное как раздел памяти, который существует в словаре встроенного кодера на вкладке «Разделы памяти». Дополнительные сведения о разделах памяти см. в разделе Управление данными и размещением функций в памяти путем вставки прагматиков.
Preserve array dimensions - Спецификация для сохранения размеров многомерных массивовoff (по умолчанию) | onСпецификация класса хранения для сохранения размеров многомерных массивов в созданном коде. Дополнительные сведения см. в разделе Сохранение размеров многомерных массивов в сгенерированном коде.
Const - Применяемая спецификация const определительoff (по умолчанию) | onСпецификация для применения const квалификатор данных.
При выборе этого свойства невозможно задать для параметра «Инициализация данных» значение Dynamic.
Установка для инициализации данных значения Dynamic отключает это свойство.
Volatile - Применяемая спецификация volatile определительoff (по умолчанию) | onСпецификация для применения volatile квалификатор данных.
Other Qualifier - Спецификация для применения пользовательского квалификатораСпецификация для применения пользовательского квалификатора к данным. Например, некоторые архитектуры памяти поддерживают квалификаторы far и huge.
Не использовать это свойство для применения ключевого слова static. Вместо этого используйте встроенный класс хранения FileScope, который нельзя применить в редакторе сопоставлений кода. См. раздел Выбор класса склада для представления контроллинговых данных в сгенерированном коде.
Parameters - Разрешить ли использование с параметрами моделиoff (по умолчанию) | onСпецификация, указывающая, следует ли разрешить использование класса хранения с параметрами модели.
Установка для инициализации данных значения Static включает это свойство.
Установка для инициализации данных значения Dynamic отключает это свойство.
Чтобы задать значение этого свойства, задайте для параметра «Инициализация данных» значение None.
Signals - Разрешить ли использование с модельными сигналамиon (по умолчанию) | offСпецификация, указывающая, следует ли разрешить использование класса хранения с модельными сигналами.
Установка для инициализации данных значения Dynamic включает это свойство.
Установка для инициализации данных значения Static отключает это свойство.
Чтобы задать значение этого свойства, задайте для параметра «Инициализация данных» значение None.
Name - Наименование шаблона функцииFunctionTemplate1 (по умолчанию) | текстИмя шаблона. Имя должно быть уникальным среди шаблонов функций в словаре. Встроенный кодер содержит встроенные шаблоны, перечисленные в этой таблице.
| Шаблон | Описание |
|---|---|
ModelFunction | В редакторе сопоставлений кодов используйте функции начальной точки для инициализации, выполнения, завершения и сброса (см. раздел Настройка генерации кода по умолчанию для функций). |
UtilityFunction | В редакторе сопоставлений кодов используйте для общих служебных функций (см. раздел Настройка генерации кода по умолчанию для функций). |
Description - Назначение и функциональность шаблона функцииПользовательский текст, который можно использовать для описания назначения и функциональных возможностей шаблона функции.
Source - Расположение определения шаблона функцииЭто свойство доступно только для чтения.
Расположение определения шаблона функции.
Имя модели - определяется в модели Simulink.
Имя словаря - определяется в словаре данных Simulink (см. Что такое словарь данных?).
Function Name - Наименования создаваемых функций$R$N (по умолчанию) | текстИмена функций в сгенерированном коде, указанные как правило именования. Правило именования включает комбинацию текста и маркеров. Допустимые маркеры перечислены в этой таблице.
| Символ | Описание |
|---|---|
$R | Имя корневой модели |
$N | Базовое имя связанной функции, например step |
$U | Текст маркера пользователя, который задается для модели, как описано в разделе Управление форматом идентификатора |
$C | Для общих служебных функций контрольная сумма вставляется во избежание конфликтов имен |
$M | При необходимости вставляется текст с искажениями имен, чтобы избежать конфликтов имен |
Memory Section - Местоположение в памяти для назначения функцииNone (по умолчанию) | существующий раздел памятиРасположение в памяти для назначения функции, указанное как раздел памяти, который существует в словаре встроенного кодера на вкладке «Разделы памяти». Дополнительные сведения о разделах памяти см. в разделе Управление данными и размещением функций в памяти путем вставки прагматиков.
Name - Наименование раздела памятиИмя раздела памяти. Имя должно быть уникальным среди разделов памяти в словаре. Встроенный кодер содержит встроенные разделы памяти, перечисленные в этой таблице.
| Раздел памяти | Описание |
|---|---|
MemConst | Применение квалификатора типа склада const к данным. |
MemVolatile | Применение квалификатора типа склада volatile к данным. |
MemConstVolatile | Применение квалификаторов типа склада const и volatile к данным. |
Description - Назначение и функциональность секции памятиПользовательский текст, который можно использовать для описания назначения и функциональности раздела памяти.
Source - Определение местоположения раздела памятиЭто свойство доступно только для чтения.
Расположение определения раздела памяти.
Имя модели - определяется в модели Simulink.
Имя словаря - определяется в словаре данных Simulink (см. Что такое словарь данных?).
Имя пакета - определяется в пакете Simulink или в пользовательском пакете (см. раздел Создание определений кода для объектов внешних данных).
Comment - Комментарий для вставки в созданный кодКомментарий к коду, который генератор кода включает вместе с прагматиками или другими украшениями, заданными с помощью предварительного отчета и отчета о проводке.
Pre Statement - Код для вставки перед кодом данных или функцииКод, например, прагматики, для вставки перед определениями и объявлениями данных или функций, находящихся в разделе памяти.
Вы можете использовать маркер $R для представления имени модели, использующей раздел памяти.
Если для параметра Оператор (Statements) Окружить (Surround) задано значение Each variable, вы можете использовать маркер $N для представления имени каждой переменной или функции, использующей раздел памяти.
Post Statement - Код для вставки после данных или кода функцииКод, например, прагматики, для вставки после определений и описаний данных или функций, находящихся в разделе памяти.
Вы можете использовать маркер $R для представления имени модели, использующей раздел памяти.
Если для параметра Оператор (Statements) Окружить (Surround) задано значение Each variable, вы можете использовать маркер $N для представления имени каждой переменной или функции, использующей раздел памяти.
Statements Surround - Спецификация для переноса данных и функций по отдельности или в группуEach variable (по умолчанию) | Group of variablesСпецификация для вставки инструкций по коду (предварительные и последующие инструкции):
Вокруг каждой переменной и функции, которая использует раздел памяти. Выбрать Each variable.
Один раз, вокруг всей секции памяти. Созданный код агрегирует определения переменных и функций в смежный блок кода и окружает блок инструкциями. Выбрать Group of variables.
Класс хранения данных или шаблон настройки функции, создаваемый в словаре встроенного кодера, не может использовать раздел памяти, загружаемый из пакета (как описано в разделе Описание генерации кода в пакете). Используйте раздел памяти, определенный в словаре встроенного кодера.
Невозможно создать определения генерации кода в .mdl файл модели.
Дополнительные ограничения для определений генерации кода в словаре встроенного кодера словаря данных (.sldd файл), см. раздел Развертывание определений генерации кода.