MATLAB: Using a “global” variable in Simevents

global variables in simeventsMATLABSimEvents

I am returning to Matlab and Simevents after a long time away and much has changed. Two questions:
  1. I am building a simple manufacturing model using Simevents. I am using entity-specific attributes. I addition I would like some Event Actions to be able to access what I'm calling (possibly wrongly) global variables. i.e. multiple blocks can access the same variable. This might be a counter for a particular type of product for example. Could someone please point me in the right direction?
  2. Possibly related to above how do I access simulation time within the blocks?
Many thanks for your help

Best Answer

1) You can create it with set and get functions. They are nothing but two Simulink functions, where the output of the Set is connected to the input of the Get. When you want to assign a new value to this variable, you use the following code:
SetVariable(NewValue);
And when you want to query the variable, you can use:
GetVariable();
For a counter, you first get the old value, increment it, and then set the new value.
2) You should create a Simulink function, which has a Digital Clock block in it. When you needed to get the simulation time, you simply use:
GetSimulationTime();