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

23 vues (au cours des 30 derniers jours)
Jan
Jan le 23 Mar 2018
Commenté : Jan le 28 Juil 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.

Réponse acceptée

Andrea Carignano
Andrea Carignano le 28 Jan 2021
Modifié(e) : Andrea Carignano le 28 Jan 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

Plus de réponses (0)

Catégories

En savoir plus sur Subsystems dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by