Um die Modellberechnung besser zu verstehen, ist das Verständnis des Ablaufmodells in CANoe von Bedeutung. CANoe rechnet grundsätzlich ereignisgesteuert. Ereignisse sind hierbei eintreffende Netzwerkbotschaften oder Timer. Bei jedem eintreffenden Ereignis wird die Simulationszeit in CANoe auf den Zeitstempel des jeweiligen Ereignisses gesetzt. Dabei wird die Zeitbasis abgeleitet von hochauflösenden Nicht-Windows-Timern auf den Netzwerkschnittstellen.
Somit wird eine hohe Genauigkeit der Zeitstempel erreicht, obwohl CANoe unter Windows läuft. Wird nun der Konfiguration ein generiertes Matlab/Simulink-Modell in Form einer DLL hinzugefügt, muss dieses zyklisch gerechnet werden. Wie oben erwähnt, sind auch Timer Ereignisse, welche die Simulationszeit von CANoe setzen können. In dem Modell wird also ein Timer mit genau der Zeit gesetzt, die in den Solver-Einstellungen des Simulink-Modells spezifiziert ist.
Parametrieren des Modells
Eine häufige Anforderung der Anwender ist es, das Modell nachträglich zu verändern, ohne es erneut compilieren zu müssen. Die Anwendungsfälle lassen sich folgendermaßen einteilen:
In solchen Fällen ist es sinnvoll, das Parametrieren nicht über einzeln generierte DLLs zu realisieren – ständiges, zeitaufwendiges Umkonfigurieren der Komponenten an den Knoten im Simulationsaufbau wäre die Folge. Um diesen Anwendungsfällen gerecht zu werden, lassen sich die für CANoe erzeugten Komponenten auch nach dem Compilieren noch parametrieren. Bei der Code-Generierung werden hierbei für jeden Parameter im Modell Systemvariablen generiert, die CANoe anschließend liest und schreibt. Modellparameter sind typischerweise die Eigenschaften der einzelnen Simulink-Blöcke. Das kann bei einem Integratorblock sein Anfangszustand sein oder bei einem Sinus- Block dessen Frequenz, Phase, Offset oder Amplitude. Eine Systemvariable, die beispielsweise den Verstärkungsfaktor eines Simulink-Gain- Blocks repräsentiert, lässt sich dann in den Analysefenstern (Grafik, Daten, Trace) sowie Panels, CAPL-Programmen und Tests verwenden. Ein weiterer Vorteil ist die Möglichkeit zur Feinabstimmung des Modells, da interne Parameter iterativ leicht zu variieren sind.