Sources > Scilab


Navigation:  Sources >


Previous pageReturn to chapter overviewNext page


Scilab 5.4.0 Beta 3 - 32 bits or higher

20-sim 4C 2.1 or higher

Note: The installation path of 20-sim 4C (e.g. C:\Program Files\20-sim 4C 2.1) will be referred to as "the 20-sim 4C installation dir" below.

Install 20-sim 4C atoms package

1.Install the Atoms-package that is shipped with 20-sim 4C:  Start Scilab and run:

-> atomsInstall('<20-sim 4C installation dir>/contrib/scilab/')

2. Restart Scilab.

Note: Sometimes, the installation script raises an error, in that case, Scilab needs to be restarted one more time.

Generate C-code in Scilab

In Scilab you can generate C-code from a sub-model:

1.Open a scilab model for code generation. A sample model found at  '<20-sim 4C installation dir>\examples\scilab\demo.xcos' can be used for testing.

2.Select the desired sub-model from the scilab model.

3.Start the code generation from the menu bar > tools > 20-sim 4C code generation.

This will open a dialog on where to save the sub-model.


A project file saving dialog in Scilab

3.Select a directory and Click OK

This starts the code generation process and 20-sim 4C will be opened.

4.Select your target (Note: Scilab code generation currently works with RTAI targets only) and Run the code.

Event triggered Xcos blocks

So far, the event-time triggering the square source is not exported from the Xcos model to 20-sim 4C. Therefore, add the proper event duration to the square block named gensqr.

Continous time solvers

In the 20-sim 4C variables section a variable 'solver type' can be found, which can be used to select the desired continuous time solver method by the following values:

1 results in ode1

2 results in ode2

4 results in ode4

Known issues

The correct event time of external activated blocks within Xcos should be entered manually into 20-sim 4C.

Block names from within Xcos are not transferred to 20-sim 4C.

The first model calculation is executed at model initialization. This causes, for example, a square wave to start with the opposite sign.

The superblock used for code generation cannot itself contain superblocks.

Library blocks not supported

Continuous time systems



oTIME_DELAY. Note that the discrete time delay z-1 can be used.




oDELAYV_f. This block is not supported because it generates events.


oQUANT_f. The quantizer is not supported yet.

Discrete time systems

oAUTOMAT. This block is not supported because it generates events.

oDELAYV_f. This block is not supported because it generates events.

oDELAY_f. Note that a delay can be realized by using the  z-1 block.

oDLRADAPT_f. This block is not supported yet.

oSAMPHOLD_m. Note that in general a sample and hold is used for an analog signal input



Lookup tables

oThis palette is not supported yet.

Event handling

ono blocks are supported. Note that every clock-triggered block has its own clock within 20-sim 4C. (as long as the desired activation time is >= stepsize of the complete model.

Mathematical Operations

oMATMAGPHI. This block is not supported yet.

oMATZREIM. This block is not supported yet.

oMAXMIN. This block is not supported yet.

oMAX_f. This block is not supported yet.

oMIN_f. This block is not supported yet.



oMatrices are not supported yet.


ono blocks are supported


oNo blocks are supported

Zero crossing detection

ono blocks are supported

Signal Routing

oso far: no blocks are supported

Signal Processing

oNot supported. Note that the functions within this palette are in particular useful for the interface between an analog and a digital system.


ono blocks are supported


oTEXT_f annotations are not taken into account for the code generation


ono blocks are supported







oSigbuilder. This block is not supported because it generates events.


ono blocks are supported

Demonstrations Blocks

ono blocks are supported

User-Defined Functions

ono blocks are supported