Если вы не используете константы для параметров блоков в вашей модели, они появляются в сгенерированном коде как переменные. Можно выбрать, как эти переменные появляются в сгенерированном коде. Для получения дополнительной информации смотрите Параметры блоков в Сгенерированном коде.
Чтобы управлять, как параметры блоков появляются в сгенерированном коде:
Используйте переменные вместо констант для параметров блоков.
Задайте эти параметры в рабочей области MATLAB® одним из следующих способов:
Используйте скрипт MATLAB, чтобы создать Simulink.Parameter
объект. Запустите скрипт каждый раз, когда модель загружает.
Simulink® хранит Simulink.Parameter
объекты вне модели. Можно затем совместно использовать Simulink.Parameter
объекты между многоуровневыми моделями.
Используйте диалоговое окно Model Configuration Parameters, чтобы сделать параметры настраиваемыми.
Simulink хранит заданное использование глобальных настраиваемых параметров диалогового окна Configuration Parameters моделью. Вы не можете совместно использовать эти параметры между многоуровневыми моделями.
Примечание
Значение параметров рабочего пространства MATLAB должно иметь совпадающий тип данных, как используется в модели. В противном случае значение переменной в сгенерированном коде обнуляется. Смотрите Ограничения Типа данных параметров Рабочей области.
Simulink.Parameter
ОбъектыВ этом примере показано, как создать и изменить Simulink.Parameter
объект.
Модель plcdemo_tunable_params_slparamobj
иллюстрирует эти шаги. Модель содержит блок Subsystem SimpleSubsystem
это имеет три блока Усиления с настраиваемыми параметрами, 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.
В диалоговом окне Model Properties, на вкладке 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
это имеет три блока Усиления с настраиваемыми параметрами, K1
, K2
, и K3
.
Укажите что переменные K1
, K2
, и K3
должен быть инициализирован перед загрузками модели и что рабочее пространство MATLAB должно быть очищено, прежде чем модель закроется.
Во вкладке Modeling и выбирают Model Properties из выпадающего Model Settings.
В диалоговом окне Model Properties, на вкладке 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, чтобы открыть диалоговое окно Configuration Parameters.
Перейдите к панели Optimization. Укажите, что все параметры должны быть встроены в сгенерированном коде. Выберите Inlined
для Default Parameter Behavior.
Чтобы заменить встраивание и сделать отдельные параметры настраиваемыми, нажмите Configure. В диалоговом окне Model Parameter Configuration, от Source list, выбирают Referenced workspace variables
.
Ctrl +select параметры и нажимает 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 |