How can I get the execution order of blocks in a Simulink model by means of a MATLAB script?
7 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
Categories
Find more on Block Libraries in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!