How to declare a global variable in a large Simulink model?
6 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
In c-code to declare a global variable is very easy. But I found that it was not so easy in a large Simulink model with several subsystems.
I used a Memory block with a Memory_Read block followed by a GOTO block. Then use FROM blocks at places where this variable was used as input signal (and Memory_Write block to update).
Problems came when this variable was needed (as output) inside an inner level of a subsystem. This variable name would not be recognized there even after adding an input port on the subsystem (unnecessarily) to "feed in" a signal with this name. The only thing I could do was to name an output with this name. When generating code, I found that RTW added a suffix to this name (an operation known as "mangle", meaning that Simulink thinks that it is a diiferent variable so gives it a different name). How to tell Simulink that it is a global variable and not to change its name?
I searched Matlab Help but did not find any advices. My solution was to manually edit the generated code, but was unhappy with the solution. Please help. Thanks!
0 Commenti
Risposte (4)
Kaustubha Govind
il 10 Nov 2011
It appears that what you need is a Data Store Memory block. You can use the Data Store Read and Data Store Write blocks to read/write to it respectively. You can also customize how this data is represented in generated code bu changing the storage class, as described here.
2 Commenti
Kaustubha Govind
il 14 Nov 2011
You need to connect your chart output to a Data Store Write block (http://www.mathworks.com/help/toolbox/simulink/slref/datastorewrite.html), not a Memory Write block. Could you try if this fixes the issue?
Kyon
il 9 Apr 2016
how can i make the output of a block or a subsystem a global variable to write to blocks and Matlab function function blocks?
0 Commenti
Ricardo A. Baila
il 12 Apr 2016
I don't know if it could be simply this, but did you declare the goto's visibility as global?
Foad Sojoodi Farimani
il 20 Feb 2019
This is strange because in Scilab-xcos and Scicoslab-scicos one can write a script in the context including some global variables :
0 Commenti
Vedere anche
Categorie
Scopri di più su Subsystems in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!