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

Добавление кода маски

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

ЦельДобавить в РедакторПрограммная спецификация
Инициализируйте маскуInitialization панельMaskInitialization параметр
Нарисуйте значок маскиIcon & Ports панельMaskDisplay параметр
Код коллбэка для параметров маскиParameters & Dialog панельMaskCallbacks параметр

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

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

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

  • Изменяются параметры и значения, зависящие от команд чертежа.

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

Примечание

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

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

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

  • Обновление схемы

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

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

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

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

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

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

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

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

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

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

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

    Примечание

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

    Примечание

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

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

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

Примечание

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

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

Похожие темы