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 !

 Respuesta aceptada

Fangjun Jiang
Fangjun Jiang el 10 de Ag. de 2023
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 comentario

Christian
Christian el 18 de Ag. de 2023
Editada: Christian el 18 de Ag. de 2023
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'),'\','/'));

Iniciar sesión para comentar.

Más respuestas (1)

Sara Nadeau
Sara Nadeau el 11 de Ag. de 2023

0 votos

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 comentario

Christian
Christian el 18 de Ag. de 2023
Editada: Christian el 18 de Ag. de 2023
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.

Iniciar sesión para comentar.

Categorías

Más información sobre Modeling en Centro de ayuda y File Exchange.

Productos

Versión

R2022b

Preguntada:

el 9 de Ag. de 2023

Editada:

el 18 de Ag. de 2023

Community Treasure Hunt

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

Start Hunting!

Translated by