MATLAB: Simulink Mask Icon Display

displaymasksimulink

Is there a way to make the simulink mask icon display measurements from SIMPOWER measurement blocks? Similar to the display simulink block. For example I have a mask which contains power, voltage, and current measurement blocks. I would like to show these results on the icon of the mask. I know I could create an output and connect a display, but I was looking for something more elegant.

Best Answer

You can get some idea from example below.
Here a display (MyOwnDisplay/Subsystem/Display)is used inside the masked subsystem. Run time object of this display is registered with add_exec_event_listener in StartFun callback of model using
lisnh = add_exec_event_listener('MyOwnDisplay/Subsystem/Display',...
'PostOutputs',@disp_listner);
When the simulation is started disp_listner function is called at each update event of Display (which is inside the subsystem). In the disp_listner display inport value is read and converted into string. This string is assigned to 'MaskDisplay' property of masked subsystem.
The code inside disp_listner function is
function disp_listner(dispblk, eventData)
a = sprintf('%s',num2str(dispblk.InputPort(1).Data));
str = ['fprintf(''MyOwnDispValue = ' a ''')'];
set_param('MyOwnDisplay/Subsystem','MaskDisplay',str);
end