Управляйте связанными блоками программно

Информация о связанных блоках

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

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

Маскировка вариантов блоков

Когда вы выполняете libinfo(gcb) команда на этом блоке:

 Block: 'slexMaskVariantExample/VariantSubsystem2' %Linked block
           Library: 'slexMaskingVariants_libraryblock' %Parent library block
    ReferenceBlock: 'slexMaskingVariants_libraryblock/VariantSubsystem2'
        LinkStatus: 'resolved' %Link status

The ReferenceBlock свойство задает путь к библиотечному блоку, с которым связан блок. Вы можете изменить этот путь программно с помощью set_param команда. Для примера:

set_param('slexMaskVariantExample/VariantSubsystem2','ReferenceBlock','slexMaskVariantExample2/VariantSubsystem')

Здесь, slexMaskVariantExample/VariantSubsystem2 - путь и slexMaskVariantExample2/VariantSubsystem исходного библиотечного блока - путь к новому библиотечному блоку.

Примечание

Изменять свойства ссылочного блока при помощи set_param не рекомендуется команда в коде инициализации маски или коде коллбэка того же блока. Для таких шаблонов моделирования можно использовать блоки Variant (блоки варианта маскировки) или использовать ReferenceBlock параметр на коде коллбэка или код инициализации маски родительского блока эталонного блока.

Блокируйте связанные блоки

Используйте LockLinksToLibrary команда для блокировки или разблокировки связанного блока в библиотеке из командной строки. Когда вы задаете значение LockLinksToLibrary на onсвязи связанных блоков с библиотекой заблокированы.

set_param('MyLibraryName', 'LockLinksToLibrary', 'on') %Lock links
set_param('MyLibraryName', 'LockLinksToLibrary', 'off') %Unlock links

Состояние ссылки

Все блоки имеют LinkStatus параметр и StaticLinkStatus параметр, чтобы указать, является ли блок связанным блоком.

Использование get_param(gcb, 'StaticLinkStatus') запрос состояния ссылки без обновления связанных блоков. Можно использовать StaticLinkStatus запрос состояния связанного блока, который является активным или устаревшим.

Использовать get_param чтобы отправить запрос, чтобы получить значение LinkStatus.

Получение значения LinkStatusОписание
none

Блок не является связанным блоком.

resolved

Разрешенная ссылка.

unresolved

Неразрешенная ссылка.

implicit

Блок находится в библиотечном блоке и сам по себе не является ссылкой на библиотечный блок. Предположим, что A является ссылкой на подсистему в библиотеке, содержащей блок Gain. Если вы открываете A и выбираете блок Gain, get_param(gcb, 'LinkStatus') возвращает implicit.

inactive

Отключенная ссылка.

Использовать set_param для установки LinkStatus.

Установите значение LinkStatusОписание

none

Пропуски ссылки. Использование none чтобы разорвать ссылку, например, set_param(gcb, 'LinkStatus', 'none').

breakWithoutHierarchy

Разрывает ссылки на месте, не нарушая вложенную родительскую иерархию ссылки. Для примера, set_param(gcb, 'LinkStatus', 'breakWithoutHierarchy').

inactive

Отключает ссылку. Использование inactive чтобы отключить ссылку, например, set_param(gcb, 'LinkStatus', 'inactive').

restore

Восстанавливает неактивную или отключенную ссылку на библиотечный блок и отбрасывает все изменения, внесенные в локальную копию библиотечного блока. Для примера, set_param(gcb, 'LinkStatus', 'restore') заменяет выбранный блок на ссылку на библиотечный блок того же типа. Оно отбрасывает любые изменения в локальной копии библиотечного блока.

restore эквивалентно Restore Individual в инструменте « Ссылках».

propagate

Перемещает любые изменения, внесенные в отключенную ссылку на библиотечный блок, и восстанавливает ее ссылку. propagate эквивалентно Push Individual в инструменте « Ссылках».

restoreHierarchy

Восстанавливает все отключенные каналы в иерархии с соответствующими библиотечными блоками. restoreHierarchy эквивалентно Restore в режиме иерархии в инструменте ссылок.

propagateHierarchy

Перемещает все ссылки с изменениями иерархии в свои библиотеки. propagateHierarchy эквивалентно Push в режиме Hierarchy инструмента « Ссылок». См. «Восстановление отключенных ссылок».

Примечание

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

  • Использование StaticLinkStatus команда для запроса состояния ссылки при get_param используется в коде коллбэка дочернего блока. StaticLinkStatus команда не разрешает устаревшие ссылки.

Если вы звоните get_param на блоке в библиотечной ссылке, Simulink® разрешает ссылку при необходимости. Выполнение get_param может включать загрузку части библиотеки и выполнение коллбэков.

Похожие темы