EP-4738100-A1 - COMPUTER-IMPLEMENTED METHOD FOR GENERATING A CONTROL PROGRAM FOR A TARGET PLATFORM, METHOD FOR CONFIGURING A TARGET PLATFORM EQUIPPED AS A CONTROLLER, DEVICE FOR DATA PROCESSING
Abstract
Die Erfindung betrifft ein computerimplementiertes Verfahren zum Generieren eines Steuerungsprogrammes (14) für eine Zielplattform (ES) aus einem graphischen Steuerungsmodell (12) einer Entwicklungsplattform, wobei das graphische Steuerungsmodell (12) ein Blockdiagramm mit einer Mehrzahl von Blöcken (16, 18, 20, 22) umfasst, wobei das graphische Steuerungsmodell (12) auf eine Definitionsdatenbank (DDT) referenziert, in der Informationen zum graphischen Steuerungsmodell (12) gespeichert sind, wobei die Definitionsdatenbank (DDT) wenigstens ein Zielspezifizierungsobjekt (26) umfasst, wobei das Zielspezifizierungsobjekt (26) zielplattformspezifische Generierungsregeln für das Steuerungsprogramm (14) umfasst, das Zielspezifizierungsobjekt (26) von einem oder mehreren Blöcken (20) des graphischen Steuerungsmodells (12) referenziert wird, und beim Erzeugen des Steuerungsprogrammes (14) die zielplattformspezifischen Generierungsregeln für Steuerungsprogrammanteile, die zu denjenigen Blöcken (20) korrespondieren, die auf das Zielspezifizierungsobjekt (26) referenzieren, berücksichtigt werden. Weiterhin betrifft die Erfindung eine Vorrichtung zur Datenverarbeitung (10) umfassend Mittel zur Ausführung des obigen Verfahrens, ein Computerprogrammprodukt und einen entsprechenden computerlesbaren Datenträger.
Inventors
- MAIR, MICHAEL
- Hillebrand, Sebastian
- HEIN, RENATE
Assignees
- dSPACE SE & Co. KG
Dates
- Publication Date
- 20260506
- Application Date
- 20250731
Claims (15)
- Computerimplementiertes Verfahren zum Generieren eines Steuerungsprogrammes (14) für eine Zielplattform (ES) aus einem graphischen Steuerungsmodell (12) einer Entwicklungsplattform, wobei das graphische Steuerungsmodell (12) ein Blockdiagramm mit einer Mehrzahl von Blöcken (16, 18, 20, 22) umfasst, wobei das graphische Steuerungsmodell (12) auf eine Definitionsdatenbank (DDT) referenziert, in der Informationen zum graphischen Steuerungsmodell (12) gespeichert sind, wobei die Definitionsdatenbank (DDT) wenigstens ein Zielspezifizierungsobjekt (26) umfasst, dadurch gekennzeichnet, dass das Zielspezifizierungsobjekt (26) zielplattformspezifische Generierungsregeln für das Steuerungsprogramm (14) umfasst, das Zielspezifizierungsobjekt (26) von einem oder mehreren Blöcken (20) des graphischen Steuerungsmodells (12) referenziert wird, und beim Erzeugen des Steuerungsprogrammes (14) die zielplattformspezifischen Generierungsregeln für Steuerungsprogrammanteile, die zu denjenigen Blöcken (20) korrespondieren, die auf das Zielspezifizierungsobjekt (26) referenzieren, berücksichtigt werden.
- Verfahren nach dem vorhergehenden Anspruch, wobei die zielplattformspezifischen Generierungsregeln für das Steuerungsprogramm (14) Eigenheiten einer Steuerungsprogrammsprache, einer Hardware (MCR) der Zielplattform (ES), einer Hardwareeinstellung der Zielplattform (ES), einer Laufzeitumgebung der Zielplattform (ES), eines Compilers (COM) zum Erzeugen eines für eine Recheneinheit (38, 40) der Zielplattform ausführbaren Codes aus dem Steuerungsprogramm (14), einer Compilerversion, und/oder einer Compilereinstellung berücksichtigen.
- Verfahren nach dem vorhergehenden Anspruch, wobei der auf das Zielspezifizierungsobjekt (26) referenzierende Block (20) des graphischen Steuerungsmodells (12) eine Signalverarbeitung durchführt, dessen Ergebnis von wenigstens einem anderen Block (22) im graphischen Steuerungsmodell (12) verwendet wird, und wobei beim Erzeugen des Steuerungsprogrammes (14) das Steuerungsprogramm (14) in der Form generiert wird, dass ein zur Ergebnisweitergabe korrespondierender Funktionsprototyp unabhängig von der zielplattformspezifischen Ausprägung desjenigen Anteils des Steuerungsprogrammes (14) ist, der zu dem auf das Zielspezifizierungsobjekt (26) referenzierenden Block (20) korrespondiert.
- Verfahren nach Anspruch 3, wobei der auf das Zielspezifizierungsobjekt (26) referenzierende Block (20) des graphischen Steuerungsmodells (12) ein Signal wenigstens an einen andere Block (22) weiterleitet, und wobei beim Erzeugen des Steuerungsprogrammes (14) das Steuerungsprogramm (14) in der Form generiert wird, dass eine Angabe über einen Rückgabewert der Funktion im Funktionsprototyp unabhängig von der zielplattformspezifischen Ausprägung desjenigen Anteils des Steuerungsprogrammes (14) ist, der zu dem auf das Zielspezifizierungsobjekt (26) referenzierenden Block (20) korrespondiert.
- Verfahren nach Anspruch 3 oder 4, wobei der auf das Zielspezifizierungsobjekt (26) referenzierende Block (20) des graphischen Steuerungsmodells (12) wenigstens ein Signal empfängt, und wobei beim Erzeugen des Steuerungsprogrammes (14) das Steuerungsprogramm (14) in der Form generiert wird, dass eine Angabe über Funktionsparameter im Funktionsprototyp unabhängig von der zielplattformspezifischen Ausprägung desjenigen Anteils des Steuerungsprogrammes (14) ist, der zu dem auf das Zielspezifizierungsobjekt (26) referenzierenden Block (20) korrespondiert.
- Verfahren nach einem der vorhergehenden Ansprüche, wobei das Blockdiagramm (12) hierarchisch aufgebaut ist und mindestens ein erstes Subsystem und ein zweites Subsystem umfasst, wobei das erste Subsystem ein äußeres Subsystem ist, derart dass das zweite Subsystem von dem ersten Subsystem umfasst wird, wobei das zweite Subsystem wenigstens einen Block (20) umfasst, der auf das Zielspezifizierungsobjekt (26) referenziert, und wobei beim Erzeugen des Steuerungsprogrammes (14) für die Zielplattform (ES) das Steuerungsprogramm (14) in der Form generiert wird, dass das Referenzieren hierarchisch von dem zum zweiten Subsystem korrespondierenden Anteil des Steuerungsprogrammes (14) an den zum ersten Subsystem korrespondierenden Anteil des Steuerungsprogrammes (14) weitergegeben wird.
- Verfahren nach einem der vorhergehenden Ansprüche, wobei bei der Generierung des Steuerungsprogrammes (14) das Zielspezifizierungsobjekt (26) für den Anteil des Steuerungsprogrammes (14), der zu demjenigen Block (20) korrespondiert, der auf das Zielspezifizierungsobjekt (26) referenziert, als Verknüpfung mitgeführt wird.
- Verfahren nach einem der vorhergehenden Ansprüche, wobei der auf das Zielspezifizierungsobjekt (26) referenzierende Block (20) des graphischen Steuerungsmodells (12) als Funktions-Block mit einer externen Funktion ausgestaltet ist.
- Verfahren nach einem der vorhergehenden Ansprüche, wobei das Erzeugen des Steuerungsprogrammes (14) für die Zielplattform (ES) aus dem graphischen Steuerungsmodell (12) der Entwicklungsplattform die Schritte - Erzeugen einer Zwischendarstellung aus dem graphischen Steuerungsmodell (12), - Optimieren der erzeugten Zwischendarstellung, und - Erzeugen des Steuerungsprogrammes (14) für die Zielplattform (ES) durch Übersetzen der optimierten Zwischendarstellung, umfasst, und wenigstens einer der Schritte, ein Berücksichtigen der zielplattformspezifischen Generierungsregeln für Steuerungsprogrammanteile umfasst, die zu denjenigen Blöcken (20) korrespondieren, die auf das Zielspezifizierungsobjekt (26) referenzieren.
- Verfahren nach einem der vorhergehenden Ansprüche, wobei das Steuerungsprogramm (14) derart erzeugt wird, dass Steuerungsprogrammanteile, die zu denjenigen Blöcken (20) korrespondieren, die auf das Zielspezifizierungsobjekt (26) referenzieren, Informationen zum Erzeugen des ausführbaren Codes umfassen.
- Verfahren nach einem der Ansprüche 1 bis 10, wobei die Zielplattform (ES) eine heterogene Hardware (MCR) mit mehreren Komponenten (38, 40) umfasst und wobei das Steuerungsprogramm (14) derart erzeugt wird, dass Steuerungsprogrammanteile, die zu denjenigen Blöcken (20) korrespondieren, die auf das Zielspezifizierungsobjekt (26) referenzieren, an die Komponenten (38, 40) angepasste Anweisungen zur Ausführung umfassen.
- Verfahren zum Konfigurieren einer als Steuergerät (ES) ausgestalteten Zielplattform (ES), wobei die Zielplattform (ES) wenigstens eine Recheneinheit (38, 40) umfasst und bevorzugt wenigstens einen Sensor und/oder Aktor aufweist, um Daten eines physikalischen Prozesses zu erfassen und/oder auf einen physikalischen Prozess einzuwirken, umfassend die Schritte: - Einlesen eines graphischen Steuerungsmodell (12) einer Entwicklungsplattform, - Erzeugen eines Steuerungsprogrammes (14) für die Zielplattform aus dem eingelesenen graphischen Steuerungsmodell (12) nach dem Verfahren nach einem der vorhergehenden Ansprüche, - Erzeugen eines für die Recheneinheit (38, 40) der Zielplattform (ES) ausführbaren Codes durch Kompilieren des erzeugten Steuerungsprogrammes (14), - Übertragen des erzeugten ausführbaren Codes auf die Zielplattform (ES) und/oder Hinterlegen des erzeugten ausführbaren Codes auf einem nicht-flüchtigen Speicher der Zielplattform (ES) und/oder Ausführen des erzeugten ausführbaren Codes durch die Recheneinheit (38, 40) der Zielplattform (ES).
- Verfahren nach dem vorherigen Anspruch, wobei der Schritt Erzeugen des Steuerungsprogrammes (14) für die Zielplattform (ES) nach dem Verfahren nach Anspruch 10 durchgeführt wird und bei dem Schritt des Erzeugens des für die Recheneinheit (38, 40) der Zielplattform (ES) ausführbaren Codes durch Kompilieren des erzeugten Steuerungsprogrammes (14), die Informationen zum Erzeugen des ausführbaren Codes berücksichtigt werden.
- Vorrichtung zur Datenverarbeitung (10) umfassend Mittel zur Ausführung des Verfahrens nach einem der Ansprüche 1 bis 11.
- Computerprogrammprodukt umfassend Befehle, die bei der Ausführung des Programms durch einen Computer diesen veranlassen, das Verfahren nach einem der Ansprüche 1 bis 11 auszuführen.
Description
Die Erfindung betrifft ein computerimplementiertes Verfahren zum Generieren eines Steuerungsprogrammes für eine Zielplattform aus einem graphischen Steuerungsmodell einer Entwicklungsplattform. Zudem betrifft die Erfindung ein Verfahren zum Konfigurieren einer als Steuergerät ausgestalteten Zielplattform, bei dem ein Steuerungsprogramm für die Zielplattform aus einem eingelesenen graphischen Steuerungsmodell nach dem obigen Verfahren erzeugt wird. Zudem betrifft die Erfindung eine Vorrichtung zur Datenverarbeitung umfassend Mittel zur Ausführung des obigen Verfahrens. Weiterhin betrifft die Erfindung ein Computerprogrammprodukt, umfassend Befehle, die bei der Ausführung des Programms durch einen Computer diesen veranlassen, das obige Verfahren auszuführen. Ferner betrifft die Erfindung einen computerlesbaren Datenträger, auf dem das obige Computerprogrammprodukt gespeichert ist. Verfahren zur computergestützten Erzeugung eines Steuerungsprogramms aus einem graphischen Steuerungsmodell sind seit längerem bekannt und gehören zu den grundlegenden Funktionalitäten von Entwicklungsumgebungen. Insbesondere lassen sich derart Programmen für Steuerungssysteme wie beispielsweise Steuergeräte erstellen. Das graphische Steuerungsmodell liegt oft in Form eines Blockschaltbildes vor, mit dessen Hilfe beispielsweise die mathematische Funktionalität eines Regelungsalgorithmus modelliert und dargestellt werden. Mittels des graphischen Steuerungsmodelles können Prozesse, Regler und/oder allgemein das Verhalten des Steuergeräts zunächst simuliert und das Vorliegen von gewünschten Eigenschaften überprüft werden. Das das Modell bildende Blockdiagramm umfasst in der Regel mehrere über Signallinien verbundene Blöcke, die Operationen wie Berechnungen ausführen, wobei ein Block beispielsweise aus mehreren Eingangssignalen ein Ausgangssignal berechnen kann. Über die Signallinien oder auch mittels für das graphische Steuermodell global erreichbaren Speicherbereichen lassen sich Signale unterschiedlicher Signalarten zwischen den Blöcken übertragen. In der Regel werden Blockdiagramme zyklisch ausgeführt, wobei alle Blöcke dauerhaft im Speicher gehalten werden und jeder Block einmal pro Zeitschritt ausgeführt wird. Insbesondere kann ein Block auf Eingangssignale aus dem letzten Zeitschritt eine oder mehrere Operationen anwenden, um Ausgangssignale des aktuellen Zeitschrittes zu erzeugen. Entsprechend sind übliche Annahmen in Bezug zu Steuerungsprogrammen, wie beispielsweise einer Lebensdauer von Variablen des Steuerungsprogramms nicht ohne weiteres auf das graphische Steuerungsmodell übertragbar. Graphische Steuerungsmodell können neben einem zyklisch ausgeführten Teilmodell zur Beschreibung näherungsweise zeitkontinuierlichen Verhaltens des Steuergerätes auch ein Teilmodell zur Beschreibung eines diskreten Verhaltens umfassen, in dem eine Anzahl von Zuständen und Übergangsbedingungen definiert sind. Verfahren zum Erzeugen von Steuerungsprogrammen aus graphischen Steuerungsmodellen werden auch als Codegeneratoren bezeichnet. Dabei handelt es sich um ein Computerprogramm, das das graphische Steuerungsmodell in Quellcode der gewählten Zielplattform - sprich in das Steuerungsprogramm - übersetzt. Das Steuerungsprogramm liegt im Gegensatz zum graphischen Steuerungsmodell in vollständig textueller Form vor und umfasst Instruktionen zur Ausführung auf der Zielplattform. Codegeneratoren gewährleisten somit eine sichere und fehlerfreie Implementierung einer abstrakten Funktionsbeschreibung (graphisches Steuerungsmodell) in ein Programm für die Zielplattform (Steuerungssystem). Ein übliches Vorgehen der Codeerzeugung besteht darin, dass für jeden Ausgang eines Blocks eine Variable im Quellcode erzeugt wird. Allerdings hat dies den Nachteil, dass in der Regel dabei zunächst mehr Variablen entstehen, als wirklich erforderlich sind. Durch eine anschließende Optimierung kann die Anzahl von Variablen bzw. allgemein die Codegröße verringert werden. So ist es aus der EP 2 418 577 A1 bekannt, ein Blockdiagramm in eine Zwischendarstellung zu transformieren und auf diese Zwischendarstellung mindestens eine Optimierung anzuwenden, um eine optimierte Zwischendarstellung zu erzeugen. Eine Vielzahl an weiteren Optimierungen, die an sich aus dem Compilerbau bekannt sind, kann nacheinander angewandt werden, um weiter optimierte Zwischendarstellungen zu erzeugen. Anschließend wird aus der optimierten Zwischendarstellung das Steuerungsprogramm, bevorzugt in C-Code erzeugt. Ein Verfahren zum Erzeugen eines Steuerungsprogrammes ist beispielsweise in der Druckschrift DE 10 2020 124 080 A1 oder der Druckschrift EP 2 916 183 B1 beschrieben. Komplexe Steuerungsprogramme oder Bestandteile davon, wie etwa Quellcode, der künstliche neuronale Netze verwendet, greifen in der Regel auf Programmbibliotheken zurück, um Berechnungen durchzuführen. Programmbibliotheken sind im Gegensatz zum Steuerungsprogramm keine eigenständig lauffähigen Einheiten, sondern sie enthalten Hilfs