How to declare a global variable in a large Simulink model?
6 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(4 个)
Kaustubha Govind
2011-11-10
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 个评论
Kaustubha Govind
2011-11-14
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
2016-4-9
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 个评论
Ricardo A. Baila
2016-4-12
I don't know if it could be simply this, but did you declare the goto's visibility as global?
Foad Sojoodi Farimani
2019-2-20
This is strange because in Scilab-xcos and Scicoslab-scicos one can write a script in the context including some global variables :
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Subsystems 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!