Clear Filters
Clear Filters

How can i maintain different variable(global) for multiple instances of same block.

4 views (last 30 days)
I have generated a library.
Integrated external c function using s-function builder.
Different instances of the custom block operates on a single global variable. My requirement needs to maintain separate global variable for multiple instances.
How can i get that to work?
Using R2020b

Answers (1)

Rishav
Rishav on 19 Feb 2024
Hi Anamika,
You can use Simulink's S-Function API to manage instance-specific data. Please follow the below mentioned steps to achieve the same:
  1. Define a structure to hold the instance-specific data for each block instance. This structure will include the global variable and any other relevant information.
  2. Use the S-Function's 'mdlInitializeSizes' function to allocate memory for the instance-specific data structure for each block instance.
  3. Use the S-Function's 'mdlOutputs' or 'mdlUpdate' functions to access and manipulate the instance-specific data as needed.
You can also refer to the below mentioned documentations on:
  1. mdlInitializeSizes - https://www.mathworks.com/help/releases/R2020b/simulink/sfg/mdlinitializesizes.html
  2. mdlOutputs - https://www.mathworks.com/help/releases/R2020b/simulink/sfg/mdloutputs.html
  3. mdlTerminate - https://www.mathworks.com/help/releases/R2020b/simulink/sfg/mdlterminate.html

Categories

Find more on Simulink Coder in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!