exponenta event banner

Управление внешним видом параметров блока в сгенерированном коде

Если для параметров блока в модели не используются константы, они отображаются в создаваемом коде как переменные. Можно выбрать способ отображения этих переменных в созданном коде. Дополнительные сведения см. в разделе Параметры блока в сгенерированном коде.

Для управления отображением параметров блока в сгенерированном коде:

  1. Используйте переменные вместо констант для параметров блока.

  2. Определите эти параметры в рабочей области MATLAB ® одним из следующих способов.

    • Использование сценария MATLAB для создания Simulink.Parameter объект. Запускайте сценарий каждый раз при загрузке модели.

      Магазины Simulink ®Simulink.Parameter объекты вне модели. Затем вы можете поделиться Simulink.Parameter между несколькими моделями.

    • Используйте диалоговое окно Параметры конфигурации модели (Model Configuration Parameters), чтобы сделать параметры настраиваемыми.

      Simulink сохраняет глобальные настраиваемые параметры, заданные в диалоговом окне Параметры конфигурации (Configuration Parameters) вместе с моделью. Эти параметры нельзя совместно использовать в нескольких моделях.

    Примечание

    Значение параметра рабочей области MATLAB должно иметь тот же тип данных, что и в модели. В противном случае значение переменной в сгенерированном коде устанавливается равным нулю. См. раздел Ограничения типов данных параметров рабочей области.

Настройка настраиваемых параметров с помощью Simulink.Parameter Объекты

В этом примере показано, как создать и изменить Simulink.Parameter объект.

Модель plcdemo_tunable_params_slparamobj иллюстрирует эти шаги. Модель содержит блок подсистемы SimpleSubsystem имеет три блока усиления с настраиваемыми параметрами, K1, K2, и K3.

  1. Напишите сценарий 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';
  2. Укажите, что сценарий setup_tunable_params.m необходимо выполнить перед загрузкой модели и очистить рабочую область MATLAB до закрытия модели.

    1. В окне модели перейдите на вкладку Моделирование (Modeling) и выберите Свойства модели (Model Properties) в раскрывающемся списке Настройки модели (Model Settings).

    2. В диалоговом окне Свойства модели (Model Properties) на вкладке Обратные вызовы (Callbacks) выберите PreLoadFcn. Войти setup_tunable_params для функции предварительной загрузки модели.

    3. На вкладке «Обратные вызовы» выберите CloseFcn. Войти clear K1 K2 K3; для функции закрытия модели.

    При каждом открытии модели переменные K1, K2, и K3 загружаются в базовое рабочее пространство. Переменные и их классы хранения можно просмотреть в обозревателе моделей.

  3. Создайте код и проверьте его.

    ПеременнаяКласс храненияСгенерированный код (3S CoDeSys 2.3)
    K1Model default

    K1 - переменная локального функционального блока.

    FUNCTION_BLOCK SimpleSubsystem
    .
    .
    VAR
        K1: LREAL := 0.1;
        .
        .
    END_VAR
    .
    .
    END_FUNCTION_BLOCK
    K2ExportedGlobal

    K2 является глобальной переменной.

    VAR_GLOBAL
        K2: LREAL := 0.2;
    END_VAR
    K3CoderInfo.CustomStorageClass установить в значение Const.

    K3 является глобальной константой.

    VAR_GLOBAL CONSTANT
        SS_INITIALIZE: SINT := 0;
        K3: LREAL := 0.3;
        SS_STEP: SINT := 1;
    END_VAR

Диалоговое окно «Настройка параметров с помощью параметров конфигурации»

В этом примере показано, как сделать параметры настраиваемыми с помощью диалогового окна Параметры конфигурации модели (Model Configuration Parameters).

Модель plcdemo_tunable_params иллюстрирует эти шаги. Модель содержит блок подсистемы SimpleSubsystem имеет три блока усиления с настраиваемыми параметрами, K1, K2, и K3.

  1. Укажите, что переменные K1, K2, и K3 необходимо инициализировать перед загрузкой модели и очистить рабочую область MATLAB до закрытия модели.

    1. На вкладке Моделирование (Modeling) выберите Свойства модели (Model Properties) в раскрывающемся списке Параметры модели (Model Settings).

    2. В диалоговом окне Свойства модели (Model Properties) на вкладке Обратные вызовы (Callbacks) выберите PreLoadFcn. Войти K1=0.1; K2=0.2; K3=0.3; для функции предварительной загрузки модели.

    3. На вкладке «Обратные вызовы» выберите CloseFcn. Войти clear K1 K2 K3; для функции закрытия модели.

  2. На вкладке Моделирование (Modeling) выберите Параметры модели (Model Settings), чтобы открыть диалоговое окно Параметры конфигурации (Configuration Parameters).

  3. Перейдите на панель Оптимизация. Укажите, что все параметры должны быть встроены в созданный код. Выбрать Inlined для параметра «Поведение по умолчанию».

  4. Чтобы переопределить вложение и настроить отдельные параметры, нажмите кнопку «» Настроить «». В диалоговом окне «Конфигурация параметров модели» в списке «Источник» выберите Referenced workspace variables.

  5. Ctrl + выберите параметры и щелкните Добавить в таблицу > >.

    По умолчанию в этом диалоговом окне для всех параметров устанавливается значение SimulinkGlobal класс хранения. Установите квалификатор Класс склада и Тип склада, как показано на этом рисунке. Дополнительные сведения о классах хранения см. в разделе Параметры блоков в сгенерированном коде.

  6. Создайте код и проверьте его.

    ПеременнаяКласс храненияСгенерированный код (3S CoDeSys 2.3)
    K1Model default

    K1 - переменная локального функционального блока.

    FUNCTION_BLOCK SimpleSubsystem
    .
    .
    VAR
        K1: LREAL := 0.1;
        .
        .
    END_VAR
    .
    .
    END_FUNCTION_BLOCK
    K2ExportedGlobal

    K2 является глобальной переменной.

    VAR_GLOBAL
        K2: LREAL := 0.2;
    END_VAR
    K3CoderInfo.CustomStorageClass и квалификатор типа склада имеет значение Const.

    K3 является глобальной константой.

    VAR_GLOBAL CONSTANT
        SS_INITIALIZE: SINT := 0;
        K3: LREAL := 0.3;
        SS_STEP: SINT := 1;
    END_VAR