Можно использовать MATLAB® код для инициализации маски и рисования значков маски. Поскольку расположение кода влияет на производительность модели, добавьте код, чтобы отразить необходимую функциональность.
Цель | Добавить в Редактор | Программная спецификация |
---|---|---|
Инициализируйте маску | Initialization панель | MaskInitialization параметр |
Нарисуйте значок маски | Icon & Ports панель | MaskDisplay параметр |
Код коллбэка для параметров маски | Parameters & Dialog панель | MaskCallbacks параметр |
Поместите код 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 смотрите: