Simulink Coder

Ausführen von Code in Echtzeitumgebungen

Der Simulink Coder bietet Ihnen ein umfassendes Framework, mit dem Sie generierten Code in Echtzeit ausführen und in Ihre Ausführungsumgebung integrieren können. Je nach den im Modell definierten periodischen Abtastzeiten erzeugt er entweder Singleraten- oder Multiratencode.

Ausführungsmodi

Der Code kann mit oder ohne RTOS sowie im Singletasking-, Multitasking- oder asynchronen Modus eingesetzt werden.

Singletasking-Modus

Im Singletasking-Modus ruft ein einfacher Scheduler den generierten Code als einzelnen Ausführungsthread auf und verhindert damit die Task Preemption zwischen verschiedenen Abtastraten.

Multitasking-Modus

Im Multitasking-Modus ruft ein deterministischer, ratenmonotoner Scheduler den generierten Code auf und ermöglicht damit die Task Preemption zwischen verschiedenen Abtastraten. In Bareboard-Umgebungen geschieht die Preemption durch verschachtelte Interrupts. In RTOS-Umgebungen werden dazu unterschiedliche Prioritäten und die systeminterne Task Preemption genutzt.

Asynchroner Modus

Im asynchronen Modus werden nichtperiodische oder asynchrone Raten mithilfe von Simulink S-Functions definiert. Der Simulink Coder übersetzt diese Raten in auf die jeweilige Ausführungsumgebung zugeschnittenen Code. Programmcode für Trigger-Subsysteme und für Ereignisse wie etwa Hardware-Interrupts wird dabei jeweils als einzelner, unabhängiger Task modelliert. Simulink Coder verfügt außerdem über eine integrierte Blockbibliothek für asynchrone Systeme, die als Vorlage zur Erzeugung von Bibliotheken für andere individuelle Umgebungen eingesetzt werden kann.

Echtzeit-Implementierung

Simulink und Simulink Coder verfügen über eine umfassende Auswahl Target-unabhängiger Fähigkeiten für die Echtzeit-Implementierung. Hierzu gehören:

  • Die Festlegung individueller Prioritäten für jede einzelne Abtastrate eines Modells
  • Counter und Timer in Produktionsqualität, die sowohl die absolute als auch die verstrichene Zeit exakt berechnen
  • Ein Rate Transition-Block zur Implementierung optimaler Datenübertragungsmechanismen zwischen unterschiedlichen Abtastraten (z. B. Semaphor, Mutex und Double Buffering), die den jeweils besten Trade-Off zwischen Datenintegrität, Determinismus und Performance bieten
  • Eine Überlauferkennung, mit deren Hilfe sich für jede Abtastrate eine eigene Fehlerbehandlungslogik erzeugen lässt

Integration von Legacy-Code

Der generierte Code und seine Laufzeitumgebung können durch Integration von vorhandenem C-, Fortran-, Ada- und C++-Code umfassend für die Simulation und Codegenerierung angepasst werden. Der Simulink Coder enthält dazu Tools wie einen Target Language Compiler (TLC), Custom Code Blocks, Vorlagen-Makefiles, APIs für Build-Prozesse und einen S-Function Builder. Mit dem Legacy Code Tool lassen sich außerdem vorhandene C- und C++-Funktionen schnell und einfach in Simulink-Modelle integrieren, was vor allem bei der Integration von zeitdiskretem Code von Vorteil ist, wie er typischerweise in Embedded Systemen verwendet wird.

Weiter: Parameter-Optimierung und Protokollieren von Daten

Probieren Sie Simulink Coder

Testsoftware anfordern

KOSTENLOSES Praktisches Tutorial Mit Eclipse

Tutorial anfordern