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

2 ビュー (過去 30 日間)
Bjoern
Bjoern 2012 年 4 月 5 日
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 件のコメント
Bjoern
Bjoern 2012 年 4 月 5 日
(To clarify: I do know how to create the 1sec timer but not how to read out the signal value during runtime)

サインインしてコメントする。

採用された回答

Guy Rouleau
Guy Rouleau 2012 年 4 月 5 日
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 件のコメント
Craig
Craig 2012 年 9 月 14 日
How can this be done to the outputs about a subsystem (rather than specific internal blocks )? (in 2007b).

サインインしてコメントする。

その他の回答 (1 件)

Bjoern
Bjoern 2012 年 4 月 5 日
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!

カテゴリ

Help Center および File ExchangeModeling についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by