MATLAB Answers

Simulink Custom Library of S-Functions

1 view (last 30 days)
SRance
SRance on 30 Sep 2020
Commented: Fangjun Jiang on 16 Oct 2020
Hi all,
I am looking to create a simulink custom library, with s-functions in it, however am a little confused by the process.
I understand normally you may make a library .slx and cut subsystems into it to create your library, then link this to the normal Library Browser to use elsewhere. However with s-functions, as these are support by additional code, I am unclear how this is meant to work without breaking links to supported file(s).
Has anyhow done this before and have a process for linking?
For some context, I am making a library for Arduino hardware with the aim to have a folder structure that has the library at the top level with subfolders containing each block .slx model with supported .c/.cpp/.h and build files to support the s-functions, such as below.
Thanks in advance!

  0 Comments

Sign in to comment.

Answers (1)

Fangjun Jiang
Fangjun Jiang on 30 Sep 2020
Usually, to make a S-function work, you need to compile the source code into a .dll file or .mex file using mex().
So for a customized library with 10 S-Function blocks, I would make it a single .slx file containing the 10 blocks and provide the 10 .dll files. The files can be anywhere as long as they are in the path.

  2 Comments

SRance
SRance on 16 Oct 2020
Would there happen to be a tutorial on that process? I am likely to need to work through it step-by-step.
At the moment I am assuming I build all the S-Functions in the Library so that I have all the .mex files with the library .slx, though recognise I'll end up with a mass of files.
Currently I've just made the Simulink S-Functions through building in Simulink then altering the .c wrapper; extern "C" before all the void functions and changing to .cpp. This has then been compiled onto my Arduino and tested, and am happy with the functionality - obviously now wanting to link those into a library.
Output wise (as in the screenshots below) I can see the .mexw64, though not really sure what to do with it to then build the library.
Fangjun Jiang
Fangjun Jiang on 16 Oct 2020
See S-Function examples. Build one first.
web(fullfile(docroot, 'simulink/sfg/s-function-examples.html'))

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by