exponenta event banner

Программный контроль связанного блока

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

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

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

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

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

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

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

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

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

Примечание

Не рекомендуется изменять свойства ссылочного блока с помощью set_param в коде инициализации маски или коде обратного вызова того же блока. Для таких образцов моделирования можно использовать блоки вариантов (маскирование блоков вариантов) или использовать 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 - это ссылка на подсистему в библиотеке, которая содержит блок усиления. Если открыть А и выбрать блок усиления, 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 в режиме «Иерархия» инструмента «Связи». См. раздел Восстановление отключенных ссылок.

Примечание

  • При использовании get_param для запроса состояния связи блока также разрешаются устаревшие связи блоков.

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

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

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