open_system() not working with Model Reference

Hello,
I am using Simulink R2022b.
Currently I am trying to use the open_system() in the Command Window for a top level model that references other models using the Block "Model" from Simulink/Ports&Subsystems library.
However using :
open_system('TOP_LEVELSystem/Model (NAME_REF_MODEL)/SubsystemXYZ')
does not work because in the top level system it only identifies 'TOP_LEVELSystem/Model' as a block, but nothing below that.
Is there any workaround ? Thank you very much !

 採用された回答

Fangjun Jiang
Fangjun Jiang 2023 年 8 月 10 日

1 投票

You need to get the name of the referenced model first and then open the model separately.
RefModel=get_param('TOP_LEVELSystem/Model','ModelName');
open_system(ModelName);
open_system(fullfile(ModelName,'SubsystemXYZ'))

1 件のコメント

Christian
Christian 2023 年 8 月 18 日
編集済み: Christian 2023 年 8 月 18 日
Thank you Fangjun ! This works, had to adjust your code a little :
RefModel=get_param('TOP_LEVELSystem/Model','ModelName');
open_system(strrep(fullfile(RefModel,'SubsystemXYZ'),'\','/'));

サインインしてコメントする。

その他の回答 (1 件)

Sara Nadeau
Sara Nadeau 2023 年 8 月 11 日

0 投票

If you want to open the model within the context of the model hierarchy, you can create a Simulink.BlockPath object and then use the open function to open the model to the location specified in the Simulink.BlockPath object.

1 件のコメント

Christian
Christian 2023 年 8 月 18 日
編集済み: Christian 2023 年 8 月 18 日
Thank you Sara for your reply ! Still I need to get the referenced Models name, like in Fangjuns reply.
So I cannot use :
Simulink.BlockPath = ('TopSystem/Model (RefModelName)/SubsystemXYZ')
instead I have to use:
RefModel=get_param('TOP_LEVELSystem/Model','ModelName');
bp=Simulink.BlockPath(strrep(fullfile(RefModel,'SubsystemXYZ'),'\','/'));
open(bp);
Therefore I do not see any benefit in this method. Even though in Simulink the path is displayed like this :
'TopSystem/Model (RefModelName)/SubsystemXYZ'
It does not work with the BlockPath.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeModeling についてさらに検索

製品

リリース

R2022b

質問済み:

2023 年 8 月 9 日

編集済み:

2023 年 8 月 18 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by