A good way to publish simulink values to GUI from a running model?

I currently can affect a running model from my GUI, both start/pause/stop and update values that are inputs to the current model. I do this via workspace variables to constant blocks using set_param(...'update').
Now I need to show values from my running model in my GUI but I'm not sure of how I would do that? My plan was to use a 1 second timer and then read out signal values but I'm not sure of how to do that. Please let me know if you have a good way!!
Any thoughts are appreciated, thanks! //bjoern

1 个评论

(To clarify: I do know how to create the 1sec timer but not how to read out the signal value during runtime)

请先登录,再进行评论。

 采纳的回答

This is a good approach.
However with just that, your GUI will need a mechanism to poke at the model to get the data.
I would combine that with an event listener:
That way, the event listener can send the data from the runtime object to your GUI automatically every time the block output value is updated.

1 个评论

How can this be done to the outputs about a subsystem (rather than specific internal blocks )? (in 2007b).

请先登录,再进行评论。

更多回答(1 个)

I just found a possible solution, something like:
  • BlockH = get_param('TheBlockOfInterest','RuntimeObject');
  • TheValue=BlockH.OutputPort(PortNr).Data;
  • DisplayValueInGui(TheValue);
Is this approach recommended? Please any comments are appreciated! Thanks!

类别

在 帮助中心 和 File Exchange 中查找有关 Event Functions 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by