Reading a wire value from Simulink into the Command Window or GUIDE

6 Ansichten (letzte 30 Tage)
I want to read the values that passes through a wire in my Simulink model.
This value should be displayed in a text field on a MATLAB GUI (it's the water level in a tank that is acquired every 100 ms).
I found out about get_param instruction, but until now I only managed to get the values from constants and transfer functions; example: get_param('main/Constant','Value') ; get_param('main/Transfer Function','Denominator').
How do I address a wire and its property list (value)?
The data is generated by an OPC Read block, passing through a subsystem using an Out port.

Akzeptierte Antwort

Kaustubha Govind
Kaustubha Govind am 20 Aug. 2012
Bearbeitet: John Kelly am 12 Jul. 2016

Weitere Antworten (1)

River Rock
River Rock am 21 Aug. 2012
Thanks for your answer; I was able to get the data from the filter's output
data=get_param('main/level/level_filter','RuntimeObject'); lvl = data.OutputPort(1).Data;
It works ok by request
How can I display this data cyclically in a Static Text field on a GUI ? Is there some callback that runs periodically ( and the sample time can be specified) ?
  4 Kommentare
Kaustubha Govind
Kaustubha Govind am 22 Aug. 2012
Is fetch_data part of the GUI function? I think that it should indeed be a standalone function. You can cache the GUI "handles" object onto the block's UserData. Haven't tested this myself, but how about:
In GUI file:
function pushbutton1_Callback(hObject, eventdata, handles)
set_param('main/nivel/MATLAB Function', 'UserData', handles);
set_param('main','SimulationCommand','start');
iev = add_exec_event_listener('main/nivel/MATLAB Function','PostOutputs',@fetch_data);
In a standalone function:
function fetch_data(block, eventData)
handles = get_param(block.BlockHandle,'UserData');
set(handles.text3,'String','does_it_work');
River Rock
River Rock am 23 Aug. 2012
I found a workaround yesterday. But your solution looks more elegant, I had to use global variables.
Thanks for your great support, the problem is solved.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Programmatic Model Editing finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by