MATLAB Answers

Simulink Custom Library of S-Functions

1 view (last 30 days)
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!


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.


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