Используйте 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 linksset_param('MyLibraryName', 'LockLinksToLibrary', 'off') %Unlock linksВсе блоки имеют LinkStatus параметр и StaticLinkStatus параметр, указывающий, является ли блок связанным.
Использовать get_param(gcb, 'StaticLinkStatus') запрос состояния связи без обновления связанных блоков. Вы можете использовать StaticLinkStatus запрос состояния связанного блока, который является активным или устаревшим.
Использовать get_param чтобы отправить запрос для получения значения LinkStatus.
| Получение значения LinkStatus | Описание |
|---|---|
none | Блок не является связанным блоком. |
resolved | Разрешенная ссылка. |
unresolved | Неразрешенная ссылка. |
implicit | Блок находится в блоке библиотеки и сам по себе не является ссылкой на блок библиотеки. Предположим, что A - это ссылка на подсистему в библиотеке, которая содержит блок усиления. Если открыть А и выбрать блок усиления, |
inactive | Отключенная ссылка. |
Использовать set_param для установки LinkStatus.
| Задать значение LinkStatus | Описание |
|---|---|
| Разрыв связи. Использовать |
| Разрыв ссылок на месте без разрыва вложенной родительской иерархии ссылок. Например, |
| Отключает связь. Использовать |
| Восстановление неактивной или отключенной связи с блоком библиотеки и отмена всех изменений, внесенных в локальную копию блока библиотеки. Например,
|
| Перемещает все изменения, внесенные в отключенную ссылку на блок библиотеки, и повторно устанавливает ее связь. |
| Восстанавливает все отключенные связи в иерархии с соответствующими блоками библиотеки. |
| Перемещает все ссылки с изменениями в иерархии в свои библиотеки. |
Примечание
При использовании get_param для запроса состояния связи блока также разрешаются устаревшие связи блоков.
Использование StaticLinkStatus команда для запроса состояния канала при get_param используется в коде обратного вызова дочернего блока. StaticLinkStatus не устраняет устаревшие связи.
При звонке get_param на блоке внутри библиотечной ссылки Simulink ® разрешает эту ссылку везде, где это необходимо. Выполнениеget_param может включать загрузку части библиотеки и выполнение обратных вызовов.