Reading a wire value from Simulink into the Command Window or GUIDE
Show older comments
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.
Accepted Answer
More Answers (1)
River Rock
on 21 Aug 2012
0 votes
4 Comments
Kaustubha Govind
on 21 Aug 2012
Yes, there is an event-listener mechanism that will invoke your callback every time there is a new output. Please see the "Listening for Method Execution Events" section in the page I linked above.
River Rock
on 22 Aug 2012
Edited: River Rock
on 22 Aug 2012
Kaustubha Govind
on 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
on 23 Aug 2012
Categories
Find more on Simulink Environment Customization in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!