How can I get the execution order of blocks in a Simulink model by means of a MATLAB script?
    10 views (last 30 days)
  
       Show older comments
    
I am in need of getting the order of execution of each blocks in a Simulink model.Help me with this.
1 Comment
  Ramtej
      
 on 28 Aug 2023
				Hi 
Refer to https://in.mathworks.com/help/rptgenext/ug/report-execution-order-of-tasks-and-blocks-in-a-simulink-system.html for detailed instructions on how to generate report on Execution Order of Tasks and Blocks in Simulink Systems
Accepted Answer
  Jerbin J
      
 on 15 Sep 2023
        % Get model name
modelName = bdroot(gcs);
% Empty array for execution order
executionOrder = [];
% Turn off data logging
mdlsignals = find_system(gcs,'FindAll','on','LookUnderMasks','all','FollowLinks','on','type','line','SegmentType','trunk');
portHandle = get_param(mdlsignals,'SrcPortHandle');
for i=1: length(portHandle)
    set_param(portHandle{i},'datalogging','off')
end
% Get blocks by execution order
sortedList = get_param(modelName, 'SortedList');
%% Logic
for ii = 1:length(sortedList)
    handl = sortedList(ii);    
    % Get block name
    blkName = string(get_param(handl,'Name'));
    % Get block type
    blkType = get_param(handl,'BlockType');
    % Check if block is "Constant"
    if strcmp(blkType,'Constant') == 0
        % Form the array
        executionOrder = [executionOrder;blkName];
    end
end
0 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

