Names of connected outputs to inports of selected subsystem

8 views (last 30 days)
I want to get the proper name of the connected port but the get_param gives me the incorrect names:
block_of_interest_params = get_param(block_of_interest,'PortConnectivity');
connected_inports_handle = find_system(block_of_interest_params(i).SrcBlock,'SearchDepth',1,'LookUnderMasks','all','BlockType','Outport','Port',block_of_interest_params(i).Type)
connected_block_nameport{i} = get_param(connected_inports_handle,'Name') %connected block portname
I need to have port names of the outport that are connected to In5 and In6.
and my incorrect result:
correct is when tags out2 are out1.
Thank you in advance for help!
  10 Comments
Ewela
Ewela on 12 Oct 2021
I need the name: Out1 and Out3 not: Subsystem:2. It is possible?
Ewela
Ewela on 12 Oct 2021
The line:
get(get(a.Inport,'line'),'SourcePort')
get the error:
Error using get
Conversion to double from cell is not possible

Sign in to comment.

Accepted Answer

C B
C B on 12 Oct 2021
Edited: C B on 12 Oct 2021
@Ewelina Cholodowicz I hope this will solve your issue :)
Please let me know if you stuck at any point, or any point is not clear.
load_system('sampleModel')
block_of_interest = 'sampleModel/Subsystem1';
block_of_interest_PH = get_param(block_of_interest,'PortHandles');% get all ports
for i= 1: length(block_of_interest_PH.Inport)% loop through all inports
lineHnd = get(block_of_interest_PH.Inport(i),'line');%get line handle to trace back
if lineHnd~= -1 % if line handle is present
SubName = get(lineHnd,'SourcePort');% get source port number of sub
SubHnd = get(lineHnd,'SrcBlockHandle');% get source block i.e Subsystem
OPName = get(find_system(SubHnd,'BlockType','Outport'),'Name');% get all outport name of subsystem
GotoBlockName = OPName{str2num(extractAfter(SubName,':'))}% get specific outport name
%add goto block logic below GotoBlockName have correct name
end
end
GotoBlockName = 'Out1'
GotoBlockName = 'Out3'
The above code shows how to get outport name please add from and gotot logic below that
  5 Comments
C B
C B on 20 Oct 2021
Edited: C B on 20 Oct 2021
Does line connected to multiple subsystem?
Ewela
Ewela on 20 Oct 2021
Edited: Ewela on 20 Oct 2021
yes, line is connected to two subsystems.

Sign in to comment.

More Answers (0)

Categories

Find more on Simulink Functions in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!