TargetLink generiert hocheffizienten C-Code direkt aus MathWorks® Simulink®/Stateflow®. Automatische Code-Generierung bedeutet auch, dass TargetLink bei Änderungen, die sich auf mehr als eine Code-Zeile auswirken, alle diese Zeilen automatisch aktualisiert. So können Sie sich nun auf die eigentliche Anwendung konzentrieren. Die frühzeitige Verifizierung durch die integrierten Simulations- und Testfunktionen führt zu schnelleren Durchlaufzeiten und geringeren Kosten.
Weshalb es auf Code-Qualität ankommt
Im Vergleich zu Code für Rapid Control Prototyping, wo Entwickler viel Freiraum beim Testen neuer Konzepte brauchen, muss Seriencode für Steuerungen in Fahrzeugen, Flugzeugen und vielen weiteren industriellen Anwendungen höchste Qualitätsanforderungen erfüllen. So müssen Entwickler zum Beispiel sicherstellen, dass der Code hochgradig optimiert ist, dass er sich leicht mit anderer Software integrieren lässt, dass er sowohl heute als auch in Zukunft lesbar ist, um seine Wartbarkeit zu garantieren, dass alle Verbindungen zwischen Anforderungen, Modell und Code klar und verständlich sind und dass er relevante Standards erfüllt. Kurz gesagt: Der Code muss maximal zuverlässig, effizient, sicher, wartbar, nachverfolgbar und in Bezug auf den Generierungsprozess reproduzierbar sein, so dass dasselbe Modell stets zum selben Code führt.
TargetLink für hochwertigen Seriencode
Der Seriencode-Generator dSPACE TargetLink ist ein äußerst leistungsstarkes Software-System, das sicherstellt, dass Ihr Code immer höchste Qualität erreicht – unter Berücksichtigung Ihrer individuellen Anforderungen und relevanter Standards. Trotz der umfassenden TargetLink-Funktionalitäten sind die typischen Schritte bei der Generierung von Seriencode leicht durchzuführen. Zudem bietet TargetLink auch viele Optionen, um den Prozess an Ihre individuelle Umgebung anzupassen. Zu den typischen Schritten gehören der Reglerentwurf, die interative Absicherung und Verifikation (simulationsbasiert) und die Code-Integration auf dem Steuergerät. Des Weiteren arbeitet TargetLink reibungslos mit Werkzeugen von dSPACE und von Drittanbietern zusammen, die gemeinsam das TargetLink Ecosystem bilden.
Entwerfen von Reglermodellen direkt mit TargetLink
Die Simulink®-Blockbibliothek ist sehr leistungsstark bei der Simulation und stellt alle notwendigen Spezifikationsfunktionen zur Verfügung. Geht es um die Seriencode-Generierung, benötigt jeder Block weitergehende Informationen. Zum Beispiel brauchen die Blöcke zusätzliche Funktionen für die Festkommasimulation. Daher bietet TargetLink die TargetLink Block Library mit einem Block für jeden unterstützten Simulink-Block.
Die TargetLink-Blöcke reichern die Funktionalität der unterstützten Simulink-Blöcke an und verfügen über einen erweiterten Dialog, mit dem Sie die implementierungsspezifischen Informationen, die für die Code-Generierung notwendig sind, eingeben können. Jeder Block bietet zudem Möglichkeiten zur Datenaufzeichnung und Überlauferkennung. Durch Erweitern der Simulink-Blöcke bereitet eine spezielle Routine die Simulink-Modelle automatisch auf die Code-Generierung mit TargetLink vor. So ist das Modell bereit für die Seriencode-Generierung und das On-Target Bypassing.
Wenn Sie die Eigenschaften eines größeren Modells ändern möchten, geht dies mit dem grafisch orientierten Property Manager in TargetLink schneller als die Eigenschaften in den Blockdialogen manuell zu ändern. Der Property Manager zeigt die Eigenschaften von TargetLink-Blöcken und Stateflow-Objekten in Ihrem Modell an und erlaubt das Anzeigen, Filtern und Ändern mehrerer Eigenschaften gleichzeitig.
Drei Simulationsmodi für Tests
Obwohl automatische Code-Generatoren im Vergleich zu manueller Programmierung quasi fehlerlose Ergebnisse liefern, müssen sowohl der generierte Code als auch die zugrunde liegende Spezifikation getestet werden. Um den generierten Code abzusichern, bietet TargetLink leistungsstarke und intuitive Funktionen. Die Code-Tests werden in derselben Simulationsumgebung durchgeführt, die auch für die Spezifikation der zugrunde liegenden Simulationsmodelle eingesetzt wurde. Wenn die Simulationsergebnisse übereinstimmen, ist die Funktionsweise identisch. TargetLink bietet einen dreistufigen Absicherungsprozess, der auf Knopfdruck zeigt, ob die Spezifikation (das Modell) und die Implementierung (der generierte Code) funktional identisch sind.
Model-in-the-Loop-Simulation |
Daten werden für Referenzplots aus dem Simulationsmodell aufgezeichnet. TargetLink protokolliert Signale ausgewählter Blöcke und Zustandsgrößen automatisch.
Die Model-in-the-Loop-Simulation erfasst das spezifische Verhalten des Modells, das später in C-Code implementiert werden soll. Die aufgezeichneten Signalplots dienen als Referenz für die nächsten Absicherungsschritte. Die Model-in-the-Loop-Simulation kann auch für die Überlauferkennung von Integer-Variablen verwendet werden und die Ergebnisse kommen für die simulationsbasierte Autoskalierung zum Einsatz. |
Software-in-the-Loop-Simulation |
Der Code wird generiert und ersetzt die Regelblöcke im Simulationsmodell (zum Beispiel dieselbe Regelstrecke und Stimulussignale). Diese Aufgabe wird von TargetLink automatisch im Hintergrund durchgeführt.
Obwohl Ihnen noch die Regelblöcke angezeigt werden, ist es der Code, der stattdessen auf dem Host-PC ausgeführt wird. Die Signaplots sollten weitestgehend identisch sein, wenn sie mit den Ergebnissen der Model-in-the-Loop-Simulation verglichen werden. Wenn sie nicht identisch sind, können die Plots analysiert werden, um den Grund für die Abweichung herauszufinden und die Festkommaeinstellungen zu justieren. |
Processor-in-the-Loop-Simulation |
Der generierte Code wird auf einem Embedded-Prozessor ausgeführt; aber da Code, der auf dem Host-PC korrekt ausgeführt wird, trotzdem Fehler verursachen kann, muss er näher betrachtet werden.
Eine Standard-Evaluierungskarte wird mit dem Host-PC verbunden, der generierte Code wird mit dem Target-Compiler kompiliert und auf die Evaluierungskarte heruntergeladen. TargetLink verwaltet die Kommunikation zwischen dem Host-PC und der Evaluierungskarte. All diese Vorgänge sind automatisiert und gehen ohne Eingriffe des Benutzers von statten. Für die Simulation auf einer Evaluierungskarte sind nur zwei Mausklicks notwendig. |
Funktionen und Vorteile des Simulationskonzepts
Leistungsmerkmale | Beschreibung | Vorteil |
---|---|---|
MIL/SIL/PIL-Simulation auf Knopfdruck | Wechsel von MIL- zu SIL- oder PIL-Simulation mit nur einem Klick |
Leistungsstarke Simulationsumgebung
Kein Bedarf an separaten Testmodellen, Generierung von S-Funktionen oder manuellem Einfügen in Testumgebungsmodelle |
Integrierte Datenaufzeichnung | Integrierte Datenaufzeichnung und Ergebnisdarstellung für alle Simulationsmodi |
Keine Modelländerungen erforderlich
Verfügbar für alle Simulationsmodi |
Direkter Vergleich der MIL/SIL/PIL-Ergebnisse | Automatisches Plotten aller Simulationsergebnisse im gleichen Plotfenster |
Ergebnisse von Simulationen in verschiedenen Modi direkt anzeigen und Abweichungen analysieren
Direkte Rückmeldung, ob der Code mit der Modellsimulation übereinstimmt |
Detaillierte Signalanalyse und Abweichungsdiagramme | Signale zoomen, um Abweichungen visuell zu prüfen, Einschränkungen anzeigen (z. B. definierte Bereiche), mit dem Cursor durch Signalverläufe blättern, Signalwerte numerisch anzeigen oder Signalabweichungen darstellen |
Verschaffen Sie sich ein klares Bild über das Signalverhalten
Besonders nützlich für die Umwandlung von Gleitkomma- in Festkommawerte |
Integrierte Datenaufzeichnung und -plotting | Eingebaute TargetLink-Blöcke verfügen über eine integrierte Datenaufzeichnungsfunktion. In den Blockdialogen können Sie angeben, ob die Ausgangssignale des Blocks aufgezeichnet werden sollen. | |
Laufzeitanalyse zur Profilerstellung des Codes | Mit der Processor-in-the-Loop (PIL)-Simulation kann zudem ein Profil des generierten Codes erstellt werden. Während der PIL-Simulation misst TargetLink automatisch die Ausführungszeit und den Stack-Bedarf direkt auf dem Zielprozessor. | |
Code-Abdeckungsanalyse | Wie umfassend die Tests sind, können Sie mit Hilfe der Codeabdeckungsanalyse beurteilen. TargetLink unterstützt die C0- und C1-Abdeckungsanalyse, auch Statement Coverage und Decision Coverage genannt. | |
Rückverfolgbarkeit des Modellcodes | Zur besseren Rückverfolgbarkeit und zur Vereinfachung von Code-Reviews können Code-Dateien optional im HTML-Format generiert werden, mit Hyperlinks für die Navigation vom Modell zum Code und umgekehrt. |
High Code Efficiency
Regardless of the application type (fixed-point or floating point), TargetLink generates highly efficient production code for your embedded system. Multiple scaling properties give ample choices to fine-tune fixed-point code to the conflicting requirements of low execution time, high computational precision, and overflow avoidance. If an overflow occurs, TargetLink’s overflow detection shows the exact location in the block diagram. The problem can be corrected right away.
Scaling Variables
To shorten the time-consuming and error-prone manual scaling process, TargetLink provides an Autoscaling Tool. It supports you in finding suitable ranges and calculating appropriate scaling parameters. A scaling task that took days and weeks in the past can now be done in minutes and hours.
As a scaling method, TargetLink offers the two-coefficient linear scaling, which is widely used in embedded control applications. The properties for specifying fixed-point scalings in TargetLink are:
- Data type
- Power-of-two scaling factor or arbitrary scaling factor
- Offset value
- Constraint values
- Bit safety margins
- Saturation options
While fixed-point scaling can be done manually by a software engineer, in most instances it is left to TargetLink’s autoscaling tools. Two autoscaling procedures are available:
- Simulation-based autoscaling – benefit from maximum computational precision
- Worst-case autoscaling – no plant model required and overflows automatically prevented
Moreover, TargetLink also supports scaling with scaling formulas and type definitions.
Powerful Code Optimization
TargetLink generates highly optimized ANSI C code that is just as efficient as optimized handwritten code. This is achieved by various optimization techniques, such as standard optimization techniques that are also used by modern C compilers. TargetLink’s interblock optimization gives the generated code a human touch, because it combines code in a very similar way to what a skilled software engineer would do. For more complex blocks, TargetLink uses code from an internal code pattern library during the code generation process, ensuring that the code for complex blocks is also highly efficient.
Weitere Abischerungsfunktionen in TargetLink
Feature | Description |
---|---|
|
|
|
|
|
|
|
|