How can I display the SimulationStatus in a simulink model and/or GUI?

6 次查看(过去 30 天)
For example the user wants to see whether the simulation is running, or stopped. I know I can get_param('sys','SimulationStatus') to obtain the parameter, but how can I continuously have that updated on my simulink model or in a GUI? I know I could probably create a block mask that changes dynamically using callbacks, but I don't know the correct syntax to do so.
Thanks!

采纳的回答

Kay Baumann
Kay Baumann 2017-12-31
Hi MaSk,
you could create a textbox:
figure()
ann = annotation('textbox',...
[0 0 0.3 0.1]);
and then write the simulation state to the textbox using the model callbacks (Model Properties >> Callbacks).
To do so, insert following code in each callback (PreLoadFcn, PostLoadFcn, ...):
ann.set('string',get_param('sys','SimulationStatus'))
Remark: using disp() to write directly to the Command Window instead of a textbox seems not to work anymore (tried it with MATLAB 2016b).
  1 个评论
MaSk
MaSk 2018-1-2
Thank you, this works well! What I ended up solving my problem with was within the mask display window executing the following:
y = get_param('sys','SimulationStatus');
if strcmp(y, 'stopped')
image('SimStopped.jpg')
elseif strcmp(y,'running')
image('SimRunning.jpg')
else strcmp(y,'paused')
disp('paused')
end
I just created images that represented what I wanted to display in the box.
Thanks for the help!

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Model, Block, and Port Callbacks 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by