Can I display the value of an output of my block on its mask?

9 visualizaciones (últimos 30 días)
Jan
Jan el 23 de Mzo. de 2018
Comentada: Jan el 28 de Jul. de 2022
Is it possible to mimic the behavior of the display sink block on my own masks? I would like to modify the value of a slowly varying signal inside my block, deliver the output to a subsequent block and display the output result (an integer) on the mask. This avoids having to fork off the output signal to an additional display block on the top level diagram.

Respuesta aceptada

Andrea Carignano
Andrea Carignano el 28 de En. de 2021
Editada: Andrea Carignano el 28 de En. de 2021
Hi Jan,
If I understood correctly you have a subsystem like this:
Inside the block you have for example:
And you want to see the value of OUTPUT displayed on SUBSYSTEM mask
SOLUTION 1: Show the value label of the signal (not exactly what you want)
SOLUTION 2 (nice but not recommended because it can slow down the simulation)
  • Add a hidden edit box to the SUBSYSTEM mask and choose a name for the parameter (example "x")
  • In Icons & Ports add the code:
disp(get_param(gcb,'x'))
  • Add a Matlab function block inside SUBSYSTEM with 1 input from the value you want to display and no output.
  • Use this code in the matlab function block
function fcn(u)
coder.extrinsic('gcb','set_param','get_param');
p = get_param(gcb,'parent');
set_param(p,'x',sprintf('%.0f',u));
end
  • (Optional but recommended) set the matlab function block Sample Time to avoid a slowdown of the simulation
  • In the end you have the value of the output displayed on your mask during simulation

Más respuestas (0)

Categorías

Más información sobre Author Block Masks en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by