Если вы не используете константы для параметров блоков в вашей модели, они появляются в сгенерированном коде как переменные. Можно выбрать, как эти переменные появляются в сгенерированном коде. Для получения дополнительной информации смотрите Параметры блоков в Сгенерированный код.
Чтобы контролировать, как параметры блоков появляются в сгенерированном коде:
Используйте переменные вместо констант для параметров блоков.
Определите эти параметры в MATLAB® рабочая область одним из следующих способов:
Используйте скрипт MATLAB, чтобы создать Simulink.Parameter объект. Запускайте скрипт каждый раз, когда модель загружается.
Simulink® хранит Simulink.Parameter объекты вне модели. Затем можно делиться Simulink.Parameter объекты между несколькими моделями.
Используйте диалоговое окно Model Параметры Конфигурации, чтобы сделать параметры настраиваемыми.
Simulink хранит глобальные настраиваемые параметры, заданные в диалоговом окне Параметров конфигурации с моделью. Вы не можете совместно использовать эти параметры между несколькими моделями.
Примечание
Рабочие пространства MATLAB значения параметров должны быть совпадающим типом данных, как используется в модели. В противном случае значение переменной в сгенерированном коде устанавливается равным нулю. Смотрите Ограничения типа данных параметра рабочей области.
Simulink.Parameter ОбъектыВ этом примере показано, как создать и изменить Simulink.Parameter объект.
Модель plcdemo_tunable_params_slparamobj иллюстрирует эти шаги. Модель содержит блок Subsystem SimpleSubsystem который имеет три блока Gain с настраиваемыми параметрами, K1, K2, и K3.
Написание скрипта MATLAB, который определяет настраиваемые параметры.
Следующий скрипт setup_tunable_params.m создает константы K1, K2, и K3 как Simulink.Parameter объекты, присвоения значения и устанавливают классы памяти для этих констант. Для получения дополнительной информации о классах памяти смотрите Параметры блоков в Сгенерированный код.
% tunable parameter mapped to local variable K1 = Simulink.Parameter; K1.Value = 0.1; K1.CoderInfo.StorageClass = 'Model default'; % tunable parameter mapped to global variable K2 = Simulink.Parameter; K2.Value = 0.2; K2.CoderInfo.StorageClass = 'ExportedGlobal'; % tunable parameter mapped to global const K3 = Simulink.Parameter; K3.Value = 0.3; K3.CoderInfo.StorageClass = 'Custom'; K3.CoderInfo.CustomStorageClass = 'Const';
Задайте, что скрипт setup_tunable_params.m необходимо выполнить перед загрузкой модели, и чтобы Рабочее пространство MATLAB было очищено до закрытия модели.
В окне модели перейдите на вкладку Modeling и выберите Model Properties из раскрывающегося списка Model Settings.
В диалоговом окне Свойств модели» на вкладке «Callbacks» выберите PreLoadFcn. Введите setup_tunable_params для Model pre-load function.

На вкладке Callbacks выберите CloseFcn. Введите clear K1 K2 K3; для Model close function.
Каждый раз, когда вы открываете модель, переменные K1, K2, и K3 загружаются в базовое рабочее пространство. Вы можете просмотреть переменные и их классы памяти в Model Explorer.
Сгенерируйте код и осмотрите его.
| Переменная | Класс памяти | Сгенерированный код (3S CoDeSys 2.3) |
|---|---|---|
K1 | Model default |
FUNCTION_BLOCK SimpleSubsystem
.
.
VAR
K1: LREAL := 0.1;
.
.
END_VAR
.
.
END_FUNCTION_BLOCK |
K2 | ExportedGlobal |
VAR_GLOBAL
K2: LREAL := 0.2;
END_VAR |
K3 | CoderInfo.CustomStorageClass установлено на Const. |
VAR_GLOBAL CONSTANT
SS_INITIALIZE: SINT := 0;
K3: LREAL := 0.3;
SS_STEP: SINT := 1;
END_VAR |
В этом примере показано, как сделать параметры настраиваемыми с помощью диалогового окна Параметры конфигурации модели (Model Configuration Parameters).
Модель plcdemo_tunable_params иллюстрирует эти шаги. Модель содержит блок Subsystem SimpleSubsystem который имеет три блока Gain с настраиваемыми параметрами, K1, K2, и K3.
Задайте, что переменные K1, K2, и K3 необходимо инициализировать перед загрузкой модели и очистить рабочее пространство MATLAB до закрытия модели.
На вкладке Modeling и выберите Model Properties из раскрывающегося списка Model Settings.
В диалоговом окне Свойств модели» на вкладке «Callbacks» выберите PreLoadFcn. Введите K1=0.1; K2=0.2; K3=0.3; для Model pre-load function.
На вкладке Callbacks выберите CloseFcn. Введите clear K1 K2 K3; для Model close function.
На вкладке Modeling и выберите Model Settings, чтобы открыть диалоговое окно Параметров конфигурации.
Перейдите к Optimization панели. Укажите, что все параметры должны быть вставлены в сгенерированный код. Выберите Inlined для Default Parameter Behavior.
Чтобы переопределить встраивание и сделать отдельные параметры настраиваемыми, нажмите Configure. В диалоговом окне Параметр модели Configuration из Source list выберите Referenced workspace variables.
Ctrl + выберите параметры и нажмите Add to table >>.
По умолчанию это диалоговое окно устанавливает все параметры в SimulinkGlobal класс памяти. Установите Storage class и Storage type qualifier как показано на этом рисунке. Для получения дополнительной информации о классах памяти смотрите Параметры блоков в Сгенерированный код.

Сгенерируйте код и осмотрите его.
| Переменная | Класс памяти | Сгенерированный код (3S CoDeSys 2.3) |
|---|---|---|
K1 | Model default |
FUNCTION_BLOCK SimpleSubsystem
.
.
VAR
K1: LREAL := 0.1;
.
.
END_VAR
.
.
END_FUNCTION_BLOCK |
K2 | ExportedGlobal |
VAR_GLOBAL
K2: LREAL := 0.2;
END_VAR |
K3 | CoderInfo.CustomStorageClass и Storage type qualifier установлено на Const. |
VAR_GLOBAL CONSTANT
SS_INITIALIZE: SINT := 0;
K3: LREAL := 0.3;
SS_STEP: SINT := 1;
END_VAR |