Код коллбэка маски

Добавьте код маски

Можно использовать код MATLAB®, чтобы инициализировать маску и чертить значки маски. Поскольку местоположение кода влияет на производительность модели, добавьте свой код, чтобы отразить функциональность, в которой вы нуждаетесь.

ЦельДобавьте в редакторе маскиПрограммируемая спецификация
Инициализируйте маскуПанель InitializationMaskInitialization параметр
Чертите значок маскиПанель Icon & PortsMaskDisplay параметр
Код коллбэка для параметров маскиПанель Parameters & DialogMaskCallbacks параметр

Выполните команду рисования

Поместите код MATLAB для рисования значков маски в разделе Icon Drawing Commands панели Icon & Ports. Simulink® выполняет эти команды последовательно, чтобы перерисовать значок маски когда:

  • Блок представляется сначала на Редакторе Маски холстом.

  • Параметры маски и значения, которые зависят от изменения команд рисования.

  • Внешний вид блока меняется из-за вращения или других изменений.

Примечание

Размещение кода MATLAB для рисования значков маски в панели Initialization влияет на производительность модели. Это поведение состоит в том, потому что Simulink перерисовывает значок каждый раз, когда маскированный блок оценен в модели.

Выполните команду инициализации

Команды инициализации для всех маскированных блоков в модели запускаются когда вы:

  • Обновите схему

  • Запустите симуляцию

  • Запустите генерацию кода

  • Примените изменения маски

  • Измените любой из параметров, которые задают маску, такую как MaskDisplay и MaskInitialization, использование Редактора Маски или set_param.

  • Вращайте или инвертируйте маскированный блок, если значок зависит от команд инициализации.

  • Заставьте значок чертиться или перерисовываться, и рисунок значка зависит от кода инициализации.

  • Измените значение параметра маски при помощи диалогового окна блока или set_param.

  • Скопируйте маскированный блок в той же модели или между различными моделями.

Когда вы открываете модель, Simulink определяет местоположение видимых маскированных блоков, которые находятся в верхнем уровне модели или в открытой подсистеме.

Simulink только выполняет команды инициализации для этих видимых маскированных блоков, если они отвечают любому из следующих условий:

  • Маскированный блок имеет команды рисования значка.

    Примечание

    Simulink не инициализирует маскированные блоки, которые не имеют команд рисования значка, даже если у них есть команды инициализации во время загрузки модели.

  • Подсистема маскированная принадлежит библиотеке и включила параметр Allow library block to modify its contents.

Когда вы загружаете модель в память, не отображая её графически, никакие команды инициализации для маскированных блоков не выполняются. Смотрите Загрузку Модель и load_system для получения информации о загрузке модели, не отображая его.

Примечание

Ненастраиваемые параметры блока маскированного не вычисляются, если модель уже скомпилирована (инициализирована).

Выполните код коллбэка

Коды коллбэка параметра маски выполнены во временной рабочей области а не в базовом рабочем пространстве. Если вам нужна переменная, созданная в коллбэке, чтобы быть доступными позже (не во время обработки коллбэка), необходимо явным образом присвоить те переменные базовому рабочему пространству.

Simulink выполняет команды коллбэка когда:

  • Вы открываете диалоговое окно маски. Команды коллбэка выполняются последовательно, начиная с главного диалогового окна маски.

  • Вы изменяете значение параметров в диалоговом окне маски и затем изменяете позицию курсора. Например, вы нажимаете клавишу Tab или нажатие кнопки в другое поле в диалоговом окне после изменения значения параметров.

  • Вы изменяете значение параметров при помощи set_param команда, команды коллбэка выполняются.

  • Вы изменяете значение параметров, или в диалоговом окне маски или в использовании set_param, и затем примените изменение путем нажатия на Apply или OK. Команды инициализации маски выполняются после команд коллбэка. Для получения дополнительной информации смотрите Панель Инициализации.

  • Вы наводите на маскированный блок, чтобы видеть подсказку для блока, когда подсказка содержит название и значение параметра.

    Примечание

    Команды коллбэка не выполняются, если диалоговое окно маски открыто, когда подсказка блока появляется.

  • Вы обновляете схему путем нажатия Ctrl+D или путем нажатия на Update Model на вкладке Modeling в Редакторе Simulink.

  • Если вы закрываете диалоговое окно маски, не сохраняя изменения, команда Коллбэка для параметров выполняется последовательно.

Примечание

Кнопки на диалоговом окне маски недоступны, когда код коллбэка, сопоставленный с кнопкой, выполняется.

Для связанных моделей Simulink в качестве примера см.:

Похожие темы