exponenta event banner

Маскировать связанные блоки

Библиотеки Simulink ® могут содержать блоки с масками. Примером такого типа блоков является блок Ramp. Эти блоки становятся связями библиотеки при копировании в модель или другую библиотеку. На этот связанный блок можно добавить маску. Если этот связанный блок находится в библиотеке и скопирован снова, можно добавить другую маску в этот новый связанный блок, создав таким образом стек масок. Маскирование связанных блоков позволяет добавлять пользовательский интерфейс к ссылочным блокам аналогично другим блокам Simulink.

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

Маска блока, которая присутствует в библиотеке, является базовой маской. Производная маска - это маска, созданная поверх базовой маски.

Например, на рисунке библиотека A содержит блок A, имеющий маску A. Блок A копируется в библиотеку B, и к нему добавляется маска B. При копировании блока A в библиотеку B создается ссылка библиотеки из библиотеки B в библиотеку A.

Блок B затем копируется в модель, и к нему добавляется маска C. Это создает библиотечную связь между блоком C и библиотекой B. Теперь блок C имеет маску A, маску B, маску C. Маска C является производной маской, а маска B является базовой маской.

Для блока C:

  • Имена параметров маски уникальны в стеке.

  • Можно задать параметры маски для масок B и C.

  • Маска B и маска C наследуют MaskType и MaskSelfModifiable параметры из маски A.

  • Код инициализации маски для маски C выполняется первым, за ним следуют маска B и маска A.

  • Переменные разрешаются, начиная с маски непосредственно над текущей маской в стеке. Если текущая маска является верхней маской, она следует обычным правилам разрешения переменных.

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

Для просмотра связанного примера см. раздел Использование самодифицируемых масок библиотеки.

Рекомендации по параметрам маски

  • Нельзя использовать одинаковые имена для параметров маски. Исключение составляет Promote параметр маски типа, для которого имя наследуется и совпадает с именем параметра, переданного ему.

  • Невозможно задать параметры маски для масок под базовой маской. Параметры маски для масок под базовой маской наследуются из библиотеки.

Поведение маски для маскированных связанных блоков

Ниже приведены некоторые варианты поведения, которые важны для понимания маскированных связанных блоков.

  • MaskType и MaskSelfModifiable параметры наследуются из базовой маски.

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

  • Сначала выполняется код инициализации маски для производной маски, а затем код инициализации для нижележащих масок.

  • Переменные разрешаются, начиная с маски непосредственно над текущей маской в стеке. Если текущей маской является верхняя маска, применяются обычные правила разрешения переменных.

  • При сохранении модели или библиотеки Simulink, содержащей блок с несколькими масками, с помощью команды «Сохранить» > «Экспортировать модель в» > «Предыдущая версия» на вкладке «Моделирование» Sourceblock параметр изменяется для указания на библиотечный блок, имеющий самую нижнюю маску.

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

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

    • При разрыве связи с блоком библиотеки блок становится автономным блоком.

    • Если восстановить связь после отключения путем восстановления, все изменения маски будут отменены. Если маскировать подсистемы, необходимо восстановить связь после отключения, выполнив толчок. При нажатии изменения подсистемы перемещаются в блок библиотеки, а изменения верхней маски - в непосредственную библиотеку.

Маскировать связанный блок

Шаг 1: Создание пользовательской библиотеки с маскированным связанным блоком

  1. В браузере библиотеки Simulink щелкните стрелку рядом с и выберите «Новая библиотека».

  2. Откройте блок «Пандус» в окне редактора библиотеки.

  3. Выберите блок пандуса и на вкладке Блок в группе Маска щелкните Создать маску.

    Откроется редактор масок.

  4. В разделе Команды рисования значков (Icon drawing commands) панели Значки и порты (Icons & Ports) введите:

    plot ([0:10],[0,1:10])
  5. На панели «Параметры и диалоговое окно» выберите «Продвижение » для продвижения Slope и Initial Output параметры.

  6. Нажмите кнопку ОК.

  7. Переименуйте блок в «Производный блок пандуса».

Шаг 2. Добавление маски в маскированный блок связи

  1. В браузере библиотеки Simulink щелкните стрелку рядом с и выберите «Новая модель». Откроется окно Редактор модели (Model editor).

  2. Перетащите блок «Производный пандус» из редактора библиотеки в редактор модели.

    Блок «Производная рампа» в модели имеет несколько масок. Можно задать параметры производной маски.

Шаг 3: Просмотр масок под верхней маской

  • Щелкните правой кнопкой мыши блок «Производная рампа» в модели и выберите «Маска» > «Базовая маска вида». Откроется редактор масок, отображающий определение базовой маски.

Связанные темы