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. |
Hohe Code-Effizienz
Unabhängig vom Anwendungstyp (Festkomma oder Fließkomma) generiert TargetLink hocheffizienten Seriencode für Ihre eingebetteten Systeme. Die Skalierungseigenschaften bieten umfassende Möglichkeiten, den Festkomma-Code an Anforderungen wie niedrige Ausführungszeiten, hohe rechnerische Präzision und das Vermeiden von Überläufen anzupassen. Wenn es zu einem Überlauf kommt, zeigt die Überlauferkennung von TargetLink die genaue Position im Blockdiagramm an. So kann das Problem sofort behoben werden.
Skalieren von Variablen
Um den fehleranfälligen und zeitraubenden manuellen Skalierungsprozess zu verkürzen, bietet TargetLink das Autoscaling Tool. Es unterstützt Sie beim Definieren geeigneter Bereiche und beim Berechnen entsprechender Skalierungsparameter. Was früher Tage und Wochen in Anspruch nahm, ist jetzt nur noch eine Frage von Minuten oder Stunden.
TargetLink bietet die doppelt-koeffiziente lineare Skalierung, die auf dem Gebiet der eingebetteten Regelanwendung weitverbreitet ist. Die Eigenschaften für das Spezifizieren der Festkommaskalierung in TargetLink sind Folgende:
- Datentyp
- Faktor für Zweierpotenzskalierung oder freie Skalierung
- Offset-Wert
- Randbedingungswerte
- Große Sicherheitsspannen
- Sättigungsoptionen
Die Festkommaskalierung kann zwar manuell durch den Software-Programmierer erfolgen, allerdings übernimmt das in den meisten Fällen das automatische Skalierungswerkzeug in TargetLink. Für die Autoskalierung stehen zwei Möglichkeiten zur Verfügung:
- Simulationsbasierte Autoskalierung – maximale Rechengenauigkeit
-
Worst-Case-Autoskalierung – kein Streckenmodell erforderlich und Überlauf wird automatisch verhindert
Zudem unterstützt TargetLink die Skalierung mit Skalierungsformeln und Typdefinitionen.
Leistungsstarke Code-Optimierung
TargetLink generiert hochoptimierten ANSI-C-Code, der genauso effizient ist wie optimierter handgeschriebener Code. Erreicht wird das durch verschiedene Optimierungstechniken, zum Beispiel Standard-Optimierungstechniken, die auch von modernen C-Compilern genutzt werden. Die Interblock-Optimierung von TargetLink verleiht dem generierten Code eine menschliche Note, denn sie kombiniert den Code auf ähnliche Weise, wie es ein erfahrener Software-Ingenieur tun würde. Bei komplexeren Blöcken verwendet TargetLink während der Code-Generierung einen Code aus einer internen Code-Pattern-Bibliothek und stellt damit sicher, dass auch der Code für komplexe Blöcke hocheffizient ist.
Weitere Abischerungsfunktionen in TargetLink
Feature | Description |
---|---|
|
|
|
|
|
|
|
|