mil-sil-hil
Real-time export based on the Functional Mock-up Interface (FMI)
Introduction
As an alternative to the usual Simulink based export, an Simcenter Amesim model can be exported to a compatible real-time target by means of an FMU (Functional Mock-up Unit).
This type of FMU is called a “Source code FMU”. Note that the generation of a real-time binary from a source code FMU depends on the third-party tool’s capability to properly import an FMU complying with either version 1.0 or 2.0 of the “FMI for co-simulation” standard.
Any source code FMU generated by Simcenter Amesim contains:
the necessary source code to compile
a real-time target-specific pre-compiled library to be linked during the build phase
a text file containing information about what needs to be compiled
The currently supported real-time targets are as follows:
- dSPACE SCALEXIO (QNX and Linux-based):
QNX version tested on version 2018-B
Linux version tested on version 2020-B
Concurrent SIMulation Workbench 32-bit and 64-bit, tested on version 2021.2-1 (*)
ETAS LABCAR 32-bit and 64-bit, 64-bit variant tested on ETAS LABCAR-OPERATOR 5.4.8
Linux-based target x64 ("generic" little endian target, no prefixing of entry points is done based on model names for FMI 2.0, standard C libraries available)
Linux-based target x32 ("generic" little endian target, no prefixing of entry points is done based on model names for FMI 2.0, standard C libraries available)
FEV xMOD, tested on version 2021
SIMATIC LiveTwin (Industrial Edge Computing platform by Siemens), tested on version 2.1
AVL Testbed.CONNECT, tested on version 1R7
NI Linux Real-Time (Intel x64 based) systems
Simcenter Testlab RT. Compatibility is ensured at least with the most recent release following that of Simcenter Amesim. For example, Simcenter Testlab RT 2412 is compatible with Simcenter Amesim 2410.
Workflow
The overall workflow is described hereafter.
Generate an FMU for real-time by choosing the desired real-time target (see the Functional Mock-up Interface manual for more details on how to generate such an FMU).
If necessary, add any required user submodels’ C code manually in the FMU (e.g. in its “sources” folder).
Import the FMU on the real-time platform (see third-party tool’s documentation).
Management of model table files
By default, the generated FMU embeds all the tables used by the Simcenter Amesimmodel, which is the regular use case when exporting models for real-time. However, depending on whether or not the third-party tool can access a file system, an updated table file can optionally be provided to replace the versions that have been embedded in the FMU. For example, on Concurrent SIMulation Workbench, copying data files into the $SIMWB_ROOT/bin folder results in using the tables described in these new data files in priority over the previously-embedded ones. With no such data files provided, the embedded versions of the tables are always (and silently) used.
Handling of user submodels and their export capabilities
The source code of user submodels or of other kinds of submodel that are not part of the Simcenter Amesim standard libraries will be automatically included in the FMU provided that the Source code available for compilation export capability is declared to be true. Moreover, if the capability No external dependencies required at runtime is also declared to be true, no additional action is required to ensure that the runtime conditions will be met on the target (typically this means there is no need to manually provide additional binaries pre-compiled for the selected target).
See section Setting the submodel requirements of the Submodel Editor manual for more detail on these submodel export capabilities.
Figure 28: Submodel Editor Export capabilities
Limitations
As with every real-time export, you can only use a fixed-step solver in an exported FMU for co-simulation. An FMU can be imported only once into the same real-time application (i.e. multiple instances of the same FMU are not supported). Multiple FMUs can be imported into a single real-time application only if each of them is executed in an independent process (multi-threading is not supported).
Source: https://docs.sw.siemens.com/en-US/doc/254352342/PL20250521841123434.amesim_collection.Real_Time/xid1216326 · retrieved 2026-07-17