Simulink® библиотеки могут содержать блоки с масками. Примером блока этого типа является блок Ramp. Эти блоки становятся библиотечными ссылками при копировании в модель или другую библиотеку. Вы можете добавить маску на этот связанный блок. Если этот связанный блок находится в библиотеке и скопирован снова, можно добавить другую маску к этому новому связанному блоку, таким образом создав стек масок. Маскирование связанных блоков позволяет вам добавить пользовательский интерфейс к блокам ссылки, подобным другим блокам Simulink.
Можно также применить маску к блоку, а затем включить блок в библиотеку. Маскирование блока, который позже входит в библиотеку, не требует особых условий. Для получения дополнительной информации см. раздел «Создание пользовательской библиотеки».
Маска блока, которая присутствует как часть библиотеки, является базовой маской. Производная маска - это маска, созданная поверх базовой маски.
Например, на рисунке библиотека A содержит блок A, который имеет маску A. Блок A копируется в библиотеку B, и к нему добавляется маска B. Когда блок A копируется в библиотеку B, создается библиотечная ссылка из библиотеки B в библиотеку A.
Блок B затем копируется в модель, и к нему добавляется Mask C. Это создает библиотечную ссылку от блока C до библиотеки B. Блок C теперь имеет маску A, маску B, а маска C. Маска C является производной маской, а маска B является базовой маской.
Для блока C:
Имена параметров маски уникальны в стеке.
Можно задать параметры маски для Mask B и Mask C.
Маска B и маска C наследуют MaskType
и MaskSelfModifiable
параметры из Маски А.
Код инициализации маски для Mask C выполняется первым, далее следуют Mask B и Mask A.
Переменные разрешаются, начиная с маски непосредственно над текущей маской в стеке. Если текущая маска является верхней маской, она соответствует обычным правилам разрешения переменных.
Создание или изменение маски библиотечного блока изменяет интерфейс блока во всех моделях, которые обращаются к блоку с помощью библиотечной ссылки, но не влияет на образцы блока, которые существуют как отдельные копии.
Для просмотра связанного примера смотрите Использование самомодифицируемых библиотечных масок.
Вы не можете использовать те же имена для параметров маски. Исключение составляют Promote
параметр type mask, для которого имя унаследовано и аналогичен параметру, присвоенному ему.
Вы не можете задать параметры маски для масок ниже базовой маски. Параметры маски для масок ниже базовой маски наследуются из библиотеки.
Ниже приведены некоторые виды поведения, которые важно понять в отношении маскированных связанных блоков.
The MaskType
и MaskSelfModifiable
параметры наследуются от базовой маски.
Сначала выполняется код отображения маски для производной маски, за которым следует код отображения для масок под ней, пока мы не сталкиваемся с маской, чья MaskIconFrame
параметру задано значение opaque
.
Код инициализации маски для производной маски выполняется первым, далее следует код инициализации для масок, находящихся под ней.
Переменные разрешаются, начиная с маски непосредственно над текущей маской в стеке. Если текущая маска является верхней маской, применяются обычные правила разрешения переменных.
Когда вы сохраняете модель Simulink или библиотеку, содержащую блок с несколькими масками, используя Save > Export Model to > Previous Version на вкладке Simulation, Sourceblock
параметр изменяется, чтобы указать на библиотечный блок, имеющий самую нижнюю маску.
Следующее происходит при отключении, разрыве или восстановлении ссылок на библиотеки:
Если вы отключите ссылку на библиотечный блок, вся иерархия маски будет сохранена в файле модели, чтобы блок мог действовать как автономный блок.
Если вы разрываете ссылку на библиотечный блок, блок становится автономным блоком.
Если переустановить ссылку после отключения путем восстановления, все изменения маски будут отменены. Если вы маскируете подсистемы, необходимо переустановить ссылку после отключения, выполнив толчок. Когда вы делаете толчок, изменения подсистемы передаются в библиотечный блок, и изменения маски верхней части передаются в непосредственную библиотеку.
В Simulink Library Browser щелкните стреле рядом и выберите New Library.
Откройте блок Ramp в окне редактора библиотек.
Выберите блок Ramp и на вкладке Block, в группе Mask, нажмите Create Mask.
Откроется Mask Editor.
В Icon drawing commands разделе панели «Значки и порты» введите:
plot ([0:10],[0,1:10])
На панели Parameter & Dialog выберите
Promote для продвижения Slope и
Initial Output
параметры.
Нажмите OK.
Переименуйте блок в Derived Ramp блок.
В Simulink Library Browser щелкните стреле рядом и выберите New Model. Откроется окно редактора моделей.
Перетащите Derived Ramp блок из редактора библиотек в редактор моделей.
Блок Derived Ramp в модели имеет несколько масок. Можно задать параметры производной маски.
Щелкните правой кнопкой мыши блок Derived Ramp в модели и выберите Mask > View Base Mask. Это открывает Mask Editor отображения определения базовой маски.