-
Die vorliegende Erfindung betrifft die Entwicklung von Steuergeräten, wie sie z. B. in der Automobilindustrie oder in der Luftfahrtindustrie zur Steuerung von technischen Systemen, wie z. B. Motoren oder Bremsen, verwendet werden. Insbesondere betrifft die vorliegende Erfindung Testgeräte, die im Entwicklungsprozess des Steuergeräts verwendet werden.
-
Die Entwicklung von Steuergeräten ist zu einem hochkomplexen Prozess geworden. So sollen neue Steuergeräte bzw. neue Steuerfunktionen so früh wie möglich im Entwicklungsprozess getestet werden, um die generelle Funktionalität zu überprüfen und die weitere Entwicklungsrichtung vorzugeben. Gegen Ende des Entwicklungsprozesses ist es wichtig, das schon weit entwickelte Steuergerät möglichst umfassend zu testen, um aufgrund der Testergebnisse notwendige Modifikationen vorzunehmen, bevor das Steuergerät in Benutzung bzw. in Serienfertigung geht und im späteren Betrieb unter allen Umständen wie gewünscht arbeitet.
-
Zum Test von Steuergeräten sind die Methoden Hardware-in-the-Loop Simulation (HIL-Simulation) und Rapid-Control-Prototyping (RCP) bekannt. Bei der HIL-Simulation wird ein elektronisches Steuergerät an ein Testgerät (HIL-Simulator) angeschlossen, auf dem beispielsweise ein Softwaremodell des von dem Steuergerät zu steuernden oder zu regelnden Systems ausgeführt wird. Das Softwaremodell wird auch als Umgebungsmodell bezeichnet. Das Testgerät simuliert dem Steuergerät damit die physikalische Umgebung des späteren Einsatzes. Beim RCP wird dagegen auf dem Testgerät ein Softwaremodell eines zu entwickelnden oder zu verbessernden Steuergeräts ausgeführt. Über das Testgerät wird dann im Falle von RCP ein extern an das Testgerät angeschlossenes technisches System mittels des auf dem Testgerät ausgeführten Modells geregelt oder gesteuert.
-
Der Test eines im Endprodukt zum Einsatz kommende (Serien-)Steuergeräts ist der Endpunkt einer Mehrzahl vorgelagerter Entwicklungsschritte einer auf dem Steuergerät zu implementierenden Regelung oder Steuerung, wobei diese Entwicklungsschritte üblicherweise mit dem sogenannten V-Modell oder auch V-Zyklus beschrieben werden.
-
Am Anfang der für die Funktion vieler technischer Anlagen essenziellen Reglerentwicklung steht die mathematische Modellierung des Regelungsalgorithmus auf einem Rechner mit einer mathematisch-graphischen Modellierungsumgebung, auch Modellierungssystem genannt, wobei der Regler als Bestandteil des Steuergeräts aufzufassen ist. Zusätzlich wird auch die Umgebung des Steuergeräts mathematisch modelliert, da die Interaktion des Reglers auf dem Steuergerät mit dem zu steuernden Prozess von Interesse ist. Bei diesen funktionalen mathematischen Betrachtungen ist eine Simulation in Echtzeit meist nicht erforderlich (Offline-Simulation).
-
Im nächsten Schritt wird der zuvor entworfene Regelungsalgorithmus mit Hilfe des Rapid-Control-Prototyping auf eine leistungsfähige, meist echtzeit-fähige Hardware übertragen, die über geeignete I/O-Schnittstellen mit dem tatsächlichen physikalischen Prozess verbunden ist, also beispielsweise mit einem Kraftfahrzeug-Motor. Diese echtzeitfähige Hardware hat mit dem später zum Einsatz kommenden Serien-Steuergerät im Regelfall nichts zu tun, es geht hier um den Nachweis der prinzipiellen Funktionsfähigkeit der zuvor entworfenen Regelung in der Praxis.
-
In einem weiteren Schritt wird im Rahmen der automatischen Seriencodegenerierung die Regelung auf dem später im Serien-Steuergerät wahrscheinlich tatsächlich zum Einsatz kommenden Zielprozessor implementiert. Die Zielhardware nähert sich demnach in diesem Schritt dem Serien-Steuergerät an, ist mit dem Serien-Steuergerät aber nicht identisch.
-
In einem weiteren Schritt wird das üblicherweise erst in einem späten Entwicklungsstadium vorhandene Serien-Steuergerät im Rahmen eines Hardware-in-the-Loop (HIL) Tests überprüft. Das in diesem Schritt physikalisch vorhandene (Serien)Steuergerät wird hier mittels seiner physikalischen Steuergeräteschnittstelle mit einem leistungsfähigen Simulationsrechner, oft einfach als Simulator oder Testgerät bezeichnet, verbunden. Der Simulator simuliert die benötigten Größen des zu testenden realen Steuergeräts und tauscht Ein- und Ausgangsgrößen mit dem Steuergerät aus. Die Pins der physikalischen Steuergeräte-Schnittstelle des Steuergeräts sind über einen Kabelbaum mit dem Simulator verbunden. So ist es möglich, in der Simulationsumgebung alle benötigten Größen, beispielsweise eines Kraftfahrzeug-Motors - gegebenenfalls das gesamte Kraftfahrzeug mit Motor, Antriebstrang, Fahrwerk und Fahrstrecke -, zu simulieren und das Verhalten des Steuergeräts im Zusammenspiel mit der Simulationsumgebung gefahrlos zu überprüfen.
-
Zur Konfiguration von Testgeräten wie beispielsweise HIL- oder RCP-Systemen werden häufig Konfigurationssysteme eingesetzt, die beispielsweise auch Konfigurationsdiagramme enthalten können. Durch die Konfiguration wird das Testgerät derart eingestellt, dass Softwaremodelle von technischen Systemen auf dem Testgerät ausgeführt werden können und über die Eingabe-/Ausgabe-Schnittstelle des Testgeräts mit an dem Testgerät angeschlossenen Geräten (zu testenden Systemen) elektronisch kommunizieren. Die Erstellung der Softwaremodelle erfolgt in dedizierten Modellierungsumgebungen, die speziell auf die Anforderungen der Modellierung zugeschnitten sind.
-
Die bekannten Konfigurationssysteme bzw. Konfigurationsdiagramme haben den Nachteil, dass die Konfiguration der Eigenschaften des Testgeräts in bestimmten Anwendungsszenarien zeitaufwendig, unübersichtlich und kompliziert ist.
-
Insbesondere ist es ein Nachteil, dass die Konfigurationssysteme eine sehr hohe Zahl an Konfigurationselementen aufweist, die in einer anderen Struktur angeordnet als es aus der Modellierungsumgebung bekannt ist, wodurch sich eine nicht-intuitive und langsame Konfiguration ergibt.
-
Die technische Aufgabe der Erfindung ist es daher, den Konfigurationsprozess von HIL- und RCP-Simulationen weiterzuentwickeln und insbesondere zu vereinfachen, zu flexibilisieren, intuitiver zu gestalten und zu beschleunigen.
-
Gelöst wird die zuvor hergeleitete und aufgezeigte Aufgabe durch ein Konfigurationssystem für ein zum Testen eines elektronischen Steuergeräts eingerichteten Testgeräts, wobei das Testgerät ein Hardware-In-The-Loop-Simulator oder Rapid-Control-Prototyping-Simulator ist, wobei auf dem Testgerät ein Softwaremodell eines technischen Systems ausgeführt wird und das Softwaremodell über eine Eingabe/Ausgabe-Schnittstelle des Testgeräts mit einem an das Testgerät angeschlossenen zu testenden System elektronisch kommuniziert, wobei durch die Kommunikation eine elektronische Übertragung von Simulationsdaten erfolgt, und das Konfigurationssystem an ein Modellierungssystem gekoppelt ist und in dem Modellierungssystem ein durch miteinander transversal und longitudinal verbundene Funktionsblöcke charakterisiertes Softwaremodell vorliegt, und das Konfigurationssystem das Testgerät durch miteinander verbundene Konfigurationselemente derart konfiguriert, dass die Konfigurationselemente die physikalischen Eigenschaften der Eingabe/Ausgabe-Schnittstelle und/oder die Verbindung der Eingabe/Ausgabe-Schnittstelle mit dem Softwaremodell festlegen, und das Konfigurationssystem eine Kopplungsschnittstelle zur Kopplung an das Modellierungssystem aufweist, wobei durch die Kopplung das Softwaremodell zur Laufzeit des Modellierungssystems dem Konfigurationssystem bereitgestellt wird, dadurch gekennzeichnet, dass das Konfigurationssystem das Modell analysiert und damit eine Modellstruktur ermittelt, wobei die Modellstruktur zumindest beschreibt, mit welchen anderen Blöcken jeder Block longitudinal verbunden ist, das Konfigurationssystem eine Übertragung der Modellstruktur zu dem Konfigurationssystem initiiert, und im Konfigurationssystem ein Aufbau der Konfigurationselemente entsprechend der übertragenen Modellstruktur derart erfolgt, dass für den ersten Funktionsblock und einem damit longitudinal unter- oder übergeordneten zweiten Funktionsblock ein jeweils dazu assoziiertes erstes und zweites Konfigurationselement erzeugt werden, die longitudinal miteinander verbunden werden.
-
Ein derartiges erfindungsgemäßes Konfigurationssystem bietet viele technische Vorteile.
-
Dadurch, dass die Modellstruktur auch im Konfigurationssystem berücksichtigt wird, wird eine vollständige Modell-Topologie mit allen dazugehörigen Eingabe-Ausgabe-Schnittstellen außerhalb der Modellierungsumgebung dargestellt, was das Einfügen, Löschen, Verschieben und Tauschen von Eingabe/Ausgabe-Funktionen modellorientiert ermöglicht. Signal-Ketten, also die Verbindungen zwischen Funktionsblöcken und Eingabe/Ausgabe-Zugriffspunkten bzw. sogenannten Model-Port-Blöcken können nun unabhängig von der Modellierungsumgebung erzeugt werden. Durch die Erfindung wird weiterhin ermöglicht, dass die die Signal-Kette direkt einer bestimmten Ebene eines Modells zugeordnet wird und dort erzeugt wird. Damit ergibt sich insgesamt eine übersichtlichere und weniger aufwändige Konfiguration im Vergleich zu den Konfigurationsmethoden aus dem Stand der Technik.
-
Transversal verbunden bedeutet hier, dass die Funktionsblöcke entsprechend des Signalflusses verbunden sind. Ein Signal wird also zwischen zwei miteinander transversal verbundenen Blöcken versendet. Longitudinale Verbindungen ergeben sich z.B. dann, wenn mehrere transversal verbundene Funktionsblöcke zu einen übergreifenden Funktionsblock bzw. Subsystem zusammengefasst werden. Dadurch ergeben sich zwei Teilmodelle bzw. Modelldiagramme, die miteinander longitudinal verbunden sind.
-
Miteinander assoziierte Funktionsblöcke und Konfigurationselemente sind dabei solche, die auf gleicher longitudinaler Ebene liegen, in anderen Worten auf der gleichen Hierarchieebene liegen.
-
Die Übertragung der Modellstruktur kann beispielsweise durch geeignete Automatisierungsschnittstellen erfolgen.
-
Die Modellstruktur kann z.B. eine Datenstruktur sein, in der die Bezeichnungen der Bestandteile des Modells und ihrer hierarchische Ordnung sowie ggf. weitere Parameter und Beschreibungen gespeichert sind.
-
Unter den Begriff der elektronischen Übertragung bzw. elektronischen Kommunikation fallen alle Möglichkeiten der digitalen und analogen elektronischen Datenübertragung, wie z.B. über Kabel, elektrische Leiter, Leiterbahnen, Funkwellen bzw. anderer Form Kabelloser Übertragung durch elektromagnetische Wellen, optische bzw. optoelektronische Übertragungen über Lichtwellenleitungen, die Verwendung von Netzwerken und Bus-Systemen sowie die Übertragung von Bits und Bytes z.B. in einem Computersystem und dergleichen.
-
In einer vorteilhaften Ausführungsform erfolgt im Konfigurationssystem durch das Konfigurationselement ein Zugriff auf das Modellierungssystem, und durch den Zugriff wird ein IO-Zugriffspunkt als neuer Funktionsblock im Modellierungssystem erzeugt, wobei die longitudinale Ebene des IO-Zugriffspunkts der longitudinalen Ebene des Konfigurationselements entspricht, aus welcher der Zugriff initiiert wurde.
-
Der Zugriff kann z.B. durch einen Tatstatur oder Mausbefehl initiiert werden. Insbesondere kann der Zugriff dadurch initiiert werden, dass eine Eingabe-Ausgabe-Funktion oder eine grafische Repräsentierung eines Kanal des Testgeräts mit der Maus auf ein Konfigurationselement gezogen wird. Erfolgt die Initiierung des Zugriffs durch das Ziehen eines Kanals, dann findet anschließend eine Auswahl einer geeigneten Eingabe-Ausgabe-Funktion statt.
-
IO-Zugriffspunkt ist gleichbedeutend zu dem Ausdruck Eingabe-/Ausgabe-Zugriffspunkt oder Modell-Port-Block. Ein IO-Zugriffspunkt stellt die Verbindung zwischen dem auszuführenden Modell und der Eingabe-Ausgabe-Schnittstelle des Testgeräts dar.
-
Hierdurch wird es ermöglicht, dass die Konfiguration vollständig im Konfigurationssystem stattfinden kann und nicht mehr, wie im Stand der Technik üblich, zwischen dem Konfigurationssystem und dem Modellierungssystem gewechselt werden muss. Damit wird auch verhindert, dass ungewollte Editierungen im Modell stattfinden.
-
Durch den Zugriff kann also eine Signalkette bestehend aus einer Eingabe-Ausgabe-Funktion und/oder einem Kanal des Testgeräts automatisch einem Modell zugewiesen werden. Wenn in der Modellierungsumgebung gleichzeitig mehrere Modelle aktiv sind, dann kann weiterhin eine automatische Auswahl eines für die Eingabe-Ausgabe-Funktion oder den Kanal des Testgeräts geeignetes Modell erfolgen. Die Auswahl wird dabei anhand von Hardware- bzw. Topologie-Informationen getroffen, die der Eingabe-Ausgabe-Funktion oder dem Kanal des Testgeräts zugeordnet sind. Es wird also das Modell ausgewählt, das in einem Applikationsprozess läuft, der auch auf die gewählte Eingabe-Ausgabe-Schnittstelle bzw. Hardware zugreifen kann. Das ist insbesondere bei Multiprozessor-Anwendungen sehr vorteilhaft.
-
In einer weiteren vorteilhaften Ausführungsform ist das Konfigurationssystem so ausgestaltet, dass eine Änderung an einem Konfigurationselement im Konfigurationssystem automatisch an den damit assoziiertem Funktionsblock im Modellierungssystem übertragen wird. Dies ergibt den Vorteil, dass für den Anwender ein Konfigurationsschritt entfällt, da die Änderung im Modellierungssystem nicht mehr manuell vorgenommen werden muss.
-
Dies erfolgt vorteilhafterweise nur dann, wenn eine Änderung relevant für den jeweiligen IO-Zugriffspunkt ist, was durch das Konfigurationssystem festgestellt wird. Ergeben sich Änderungen an Ports (Eingänge und Ausgänge) der Eingabe-Ausgabe-Funktionen, insbesondere bei der Zuordnung der Eingabe-Ausgabe-Funktion zum assoziierten IO-Zugriffspunkt, dann werden diese Änderungen der Funktionen automatisch in die Modellierungsumgebung propagiert.
-
Das Übertragen der Änderungen kann im Rahmen der Erfindung auch selektiv erfolgen. Damit ist gemeint, dass Änderungen in einem ausgewählten Modell, Block, oder Subsystem übertragen werden.
-
In einer vorteilhaften Weiterentwicklung kann das Konfigurationssystem auch so ausgestaltet sein, dass es das Modellierungssystem modifizieren kann in der Art, dass eine Änderung an einem Funktionsblock im Modellierungssystem automatisch an das damit assoziierte Konfigurationselement im Konfigurationssystem übertragen wird. Die Übertragung der Änderung kann dabei optional nach Initiierung durch einen Anwender erfolgen.
-
In einer speziellen Ausführungsform weist das Konfigurationssystem weiterhin ein Konfigurationselement zur Anzeige von Bestandteilen der Eingabe/Ausgabe-Schnittstelle, die nicht zur Kommunikation mit dem Softwaremodell konfiguriert sind, auf. Damit ist insbesondere gemeint, dass diejenigen Eingabe-Ausgabe-Funktionen angezeigt werden, die nicht mit einem Modell aus einer Modellierungsumgebung verbunden sind. Das Konfigurationselement zur Anzeige von Bestandteilen der Eingabe/Ausgabe-Schnittstelle, die nicht zur Kommunikation mit dem Softwaremodell konfiguriert sind, kann weiterhin auch für ein Auflösen von Signalketten bzw. Verbindungen verwendet werden. Damit ist gemeint, dass z.B. Eingabe-/Ausgabe-Funktionen in dieses Konfigurationselement verschoben werden können. Dadurch wird die Eingabe-/Ausgabe-Funktion vom Modell gelöst (die Signalkette wird aufgelöst). Dabei bleiben jedoch die Eingabe-/Ausgabe-Funktion und der Model-Port-block erhalten. Das war in früheren Konfigurationssystemen nicht möglich.
-
Im Rahmen der Erfindung ist es auch möglich, das vollständige Signalketten entfernt werden und dabei auch aus dem Modellierungssystem gelöscht werden.
-
Das Konfigurationssystem kann weiterhin derart ausgeprägt sein, dass es ein Markierungssystem beinhaltet, wobei das Markierungssystem ausgebildet ist zum Markieren von Konfigurationselementen, die Inkonsistenzen mit den jeweils assoziierten Funktionsblöcken aufweisen. Unter einer Inkonsistenz fällt dabei z.B. der Fall, dass ein Konfigurationselement, insbesondere eine Eingabe-Ausgabe-Funktion, keinem IO-Zugriffspunkt zugeordnet ist. Im Rahmen dieser Ausbaustufe kann das Konfigurationssystem auch ein Hinweissystem aufweisen, mit dem ein Anwender darüber informiert wird, dass eine Propagation bzw. Übertragung der Änderungen notwendig ist, weil beispielsweise bestimmte Parameter geändert wurden. Die Markierungen könne dabei z.B. über farbliche Hervorhebungen erfolgen, z.B. wenn die Schnittstellen zwischen Model-Port-Block und Eingabe-/Ausgabe-Funktion Inkonsistenzen bezüglich der Anzahl an Ports, Port-Breiten oder Port-Datentypen aufweist. Die Markierungen können beispielsweise auch durch ein Piktogramm im Stil eines Update-Pfeils am Model-Port-Block erfolgen, wenn der Model-Port-Block beispielsweise im Konfigurationssystem geändert wurde aber die Änderung noch nicht ins Modellierungssystem übertragen wurde.
-
In einer weiteren Ausbaustufe kann im Konfigurationssystem der Aufbau der Konfigurationselemente entsprechend der übertragenen Modellstruktur in einem speziellen Ausführungsmodus erfolgen, in dem es nicht möglich ist, eine gesamte Port-Konfiguration zu justieren. Dadurch können sich Anwender fokussiert einem Teilsegment der Konfiguration widmen. Unter gesamter Port-Konfiguration wird dabei die Zuordnung aller IO-zugriffspunkten zu Eingabe-Ausgabe-Funktionen verstanden.
-
In einer vorteilhaften Weiterentwicklung kann das Konfigurationssystem durch das Konfigurationselement ein Eingabe-/Ausgabe-Ereignis konfigurieren und das konfigurierte Ereignis an das Modellierungssystem übertragen. Dabei werden z.B. Task-Konfigurationen automatisch erzeugt bzw. bestehende Task-Konfigurationen dem Ereignis zugeordnet.
-
Unter Task versteht man dabei einen Teil eines Programmcodes, dessen Ausführung von einem Echtzeit-Betriebssystem kontrolliert wird. Ein Task wird üblicherweise von einem oder mehreren Events bzw. Ereignissen angetriggert bzw. ausgelöst. In einem erfindungsgemäßen Konfigurationssystem können verschiedene vordefinierte Tasks angelegt werden. Es ist auch möglich, anwendungsspezifische Tasks neu zu erstellen, z.B. Eingabe/Ausgabe-Ereignisse. Eingabe/Ausgabe-Ereignisse sind dabei asynchrone Ereignisse, die von einer Eingabe/Ausgabe-Funktion asynchron ausgelöst werden. In Abhängigkeit vom Typ des Tasks können verschiedenen Parameter wie beispielsweise die Priorität oder ein Datenerfassungs-Rastername (DAQ-Rastername) konfiguriert werden.
-
Das Konfigurationssystem kann auch derart ausgestaltet sein, dass es durch die Kopplung einen Zugriff vom Modellierungssystem auf das Konfigurationssystem ermöglicht. Durch diesen Zugriff kann beispielsweise eine Aktivierung des Konfigurationssystems und Sprung zum mit dem jeweiligen Zugriffspunkt assoziierten Konfigurationselement bzw. Eingabe-Ausgabe-Funktion erfolgen. Dabei kann auch eine initiale Bedatung bzw. Justierung oder eine Projektanlage aus dem Modellierungssystem erfolgen. Weiterhin kann durch diesen Zugriff ein Löschen der Signalkette initiiert werden und Funktionalitäten des Konfigurationssystems im Modellierungssystem wie z.B. das Erzeugen eines ausführbaren Applikationsprozesses bereitgestellt werden. Zudem könne dadurch die mit einem Zugriffspunkt verknüpfte IO-Funktion und/oder die Zuordnung des Zugriffspunkts zur Eingabe-/Ausgabe-Hardware des Testgeräts im Modellierungssystem angezeigt werden. Dadurch wird es einem Anwender ermöglicht, in der Modellierungsumgebung erkennen kann, welche Kanäle der Eingabe-/Ausgabe-Schnittstelle den Zugriffspunkten zugeordnet sind. Dies erleichtert den Anschluss von externen Geräten an das Testgerät bzw. die Kontrolle der Verkabelung des Testgeräts mit den externen Geräten. In einer weiteren Ausgestaltung kann auch die Belegung der einzelnen Anschlüsse (Pins) an die Modellierungsumgebung übertragen werden, was das sogenannte Durchklingeln beim Anschluss der externen Geräte, z.B. zu testende Steuergeräte, vereinfacht. Eine Besonderheit beim Zugriff vom Modellierungssystem auf das Konfigurationssystem liegt auch darin, dass die im Modellierungssystem angezeigten Informationen nicht im Modell enthalten sind, sondern nur im Konfigurationssystem.
-
Erfindungsgemäß ist ebenfalls ein Verfahren zum Konfigurieren eines zum Testen eines elektronischen Steuergeräts eingerichteten Testgeräts mittels eines Konfigurationssystems umfasst, wobei das Testgerät ein Hardware-In-The-Loop-Simulator oder Rapid-Control-Prototyping-Simulator ist, wobei auf dem Testgerät ein Softwaremodell eines technischen Systems ausgeführt wird und das Softwaremodell über eine Eingabe/Ausgabe-Schnittstelle des Testgeräts mit einem an das Testgerät angeschlossenen zu testenden System elektronisch kommuniziert, wobei durch die Kommunikation eine elektronische Übertragung von Simulationsdaten erfolgt, wobei das Konfigurationssystem an ein Modellierungssystem gekoppelt wird und in dem Modellierungssystem ein durch miteinander transversal und longitudinal verbundene Funktionsblöcke charakterisiertes Softwaremodell vorliegt, und das Testgerät mittels des Konfigurationssystems durch miteinander verbundene Konfigurationselemente derart konfiguriert wird, dass die physikalischen Eigenschaften der Eingabe/Ausgabe-Schnittstelle und/oder die Verbindung der Eingabe/Ausgabe-Schnittstelle mit dem Softwaremodell mittels der Konfigurationselemente festgelegt werden, wobei das Konfigurationssystem derart an das Modellierungssystem gekoppelt wird, dass das Softwaremodell zur Laufzeit des Modellierungssystems mittels einer Kopplungsschnittstelle dem Konfigurationssystem bereitgestellt wird, dadurch gekennzeichnet, dass das Konfigurationssystem das Modell analysiert und damit eine Modellstruktur ermittelt, wobei die Modellstruktur beschreibt, mit welchen anderen Blöcken jeder Block longitudinal verbunden ist, durch das Konfigurationssystem eine Übertragung der Modellstruktur zu dem Konfigurationssystem initiiert wird und im Konfigurationssystem ein Aufbau der Konfigurationselemente entsprechend der übertragenen Modellstruktur derart erfolgt, dass für den ersten Funktionsblock und einem damit longitudinal unter- oder übergeordneten zweiten Funktionsblock ein jeweils dazu assoziiertes erstes und zweites Konfigurationselement erzeugt werden, die longitudinal miteinander verbunden werden.
-
Die Modifikationen, weiteren Merkmale und Effekte, die oben bezüglich des Konfigurationssystem eines zum Testen eines elektronischen Steuergeräts eingerichteten Testgeräts beschrieben sind, gelten für das genannte Verfahren in analoger Weise.
-
Im Einzelnen gibt es nun eine Vielzahl von Möglichkeiten, das erfindungsgemäße Verfahren auszugestalten und weiterzubilden. Dazu wird verwiesen einerseits auf die dem Patentanspruch 1 nachgeordneten Patentansprüche, andererseits auf die folgende Beschreibung von Ausführungsbeispielen in Verbindung mit der Zeichnung.
-
Die Erfindung wird nachfolgend unter Bezugnahme auf die Zeichnungen näher erläutert. Hierbei werden gleichartige Teile mit identischen Bezeichnungen beschriftet. Die dargestellten Ausführungsformen sind stark schematisiert, d.h. die Abstände und die laterale und die vertikale Erstreckungen sind nicht maßstäblich und weisen, sofern nicht anders angegeben, auch keine ableitbare geometrische Relationen zueinander auf.
-
In der Zeichnung zeigen
- 1 eine schematische Darstellung eines Testgeräts,
- 2 zwei schematische Darstellungen von Konfigurationssystemen,
- 3 eine schematische Darstellung von Konfigurationselementen,
- 4 eine beispielhafte Modellierungsumgebung,
- 5 eine beispielhafte Form eines Konfigurationssystems, das über eine Kopplungsschnittstelle mit einer Modellierungsumgebung verbunden ist,
- 6 ein Modellierungssystem, das miteinander transversal und longitudinal verbundene Funktionsblöcke aufweist und
- 7 einen Teil eines Konfigurationssystems mit longitudinal verbundenen Konfigurationselementen.
-
In 1 ist ein Testgerät 100 dargestellt, auf dem ein Softwaremodell 103 eines technischen Systems auf einer Berechnungseinheit 105 ausgeführt wird, wobei das Softwaremodell bzw. die Berechnungseinheit über eine Eingabe/Ausgabe-Schnittstelle 102 des Testgeräts und eine interne Datenverbindung 107 mit einem an das Testgerät angeschlossenen Gerät 110 kommuniziert. Eine Berechnungseinheit kann z.B. ein Prozessor, ein FPGA oder ein eingebetteter PC sein. Die Kommunikation mit dem Testgerät kann über die Übertragung analoger oder digitaler elektrischer Signale stattfinden. Das Testgerät kann verschiedene Hardware-Einheiten umfassen (z.B. Steckkarten), welche die Eingabe/Ausgabe-Schnittstelle 102 bilden. Die Eingabe-Ausgabe-Schnittstelle und die Berechnungseinheit 105 bilden ein zusammenhängendes System, können aber auch räumlich voneinander getrennt sein und über elektronische Verbindungen miteinander verbunden sein.
-
Das Testgerät 100 kann z.B. ein „Hardware in the Loop“ (HIL) Simulator sein. Das Testgerät 100 kann auch ein „Rapid-Control-Prototyping“ (RCP) System sein. Das Testgerät kann aber auch ein Gerät sein, dass sich zur Ausführung von HIL-Tests oder RCP-Tests dadurch eignet, dass in dem Testgerät ein Modell eines technisches Systems ausgeführt werden kann und dieses Modell über Eingabe-/Ausgabe-Schnittstellen mit einen an das Testgerät angeschlossenen zu testende Gerät, z.B. ein Steuergerät, Daten austauschen kann, wobei mit diesem Datenaustausch insbesondere die Reaktion des Testgeräts auf von dem Modell resultierenden Daten, die z.B. in der Form von elektrischen Signalen an das Steuergerät übertragen werden, analysiert wird.
-
Ein Softwaremodell 103, also z.B. ein Modell eines technischen Systems, kann beispielhaft in der Form eines Softwaremodells vorliegen, das durch einen Quellcode, z.B. in einer Hochsprache wie C, C++, oder in einer Maschinensprache wie z. B. Assembler oder ausführbarer Maschinencode, spezifiziert wird. Durch ein technisches Modell können beliebige Systeme modelliert werden, um diese virtuell zu simulieren. So kann z.B. ein Modell eines Motors als Software vorliegen, wobei die Software derart programmiert ist, dass während einer Simulation, hier also eine Ausführung des Modells auf einer CPU oder einem FPGA, Eingabeparameter durch die Software verarbeitet werden und in Abhängigkeit der Eingabeparameter und der Ausprägung des Modells Ausgabewerte erzeugt werden. Ein Eingabeparameter kann dabei z.B. eine an einer Drosselklappe eines Benzinmotors anliegende Spannung sein und Ausgabewerte könnten diesbezüglich ein resultierender Öffnungswinkel der Drosselklappe, Kraftstoff-Verbrauch und/oder ein an der Kurbelwelle resultierendes Drehmoment sein. Das Modell kann allerdings auch ein Modell eines zu testenden oder zu entwickelnden Steuergeräts sein. Allgemein kann unter dem Softwaremodell ein Algorithmus zur Steuerung, Regelung oder Simulation des Verhaltens eines technischen Systems verstanden werden.
-
2 a stellt schematisch ein Konfigurationssystem 200 bzw. Konfigurationsdiagramm dar, das mehrere Konfigurationselemente (310, 320, 330, 340) enthält, die mit Verbindungslinien 201 zur Konfiguration des Testgeräts 100 verbindbar sind.
-
Mit den Konfigurationselementen können z.B. Eigenschaften und Funktionalitäten des Testgeräts, insbesondere der Eingabe/Ausgabe-Schnittstellen und/oder der Modellschnittstellen bzw. internen Datenverbindungen 107, konfiguriert werden. Beispielhafte Eigenschaften sind u.a. Schnittstellentypen, Spannungs-/Strom-Bereiche, Einheiten, Einheitenskalierungen, Datentypen, Duty-Cycles, Frequenzen und/oder Fehlerinjektionen. Diese Eigenschaften können durch Parameter spezifiziert werden, z.B. durch vorgegebene Auswahlmöglichkeiten mehrerer Parameter oder durch eine freie Eingabemöglichkeit der Parameter. Diese Eigenschaften können mittels des Konfigurationssystems an das Testgerät übertragen werden, wo sie gespeichert werden können und somit zu einer Konfiguration des Testgeräts entsprechend der Eigenschaften führen können. Dieser Konfigurationsvorgang kann auch indirekt erfolgen, z. B. über eine Codegenerierung entsprechend der Eigenschaften, und/oder eine anschließende Kompilierung des generierten Codes, Überragung des Codes oder des kompilierten Codes an das Testgerät und Ausführung des kompilierten Codes auf dem Testgerät. Die Speicherung der Eigenschaften auf dem Testgerät kann also auch mittels eines Quellcodes oder Binärcodes erfolgen.
-
Den Konfigurationselementen können physikalische Eigenschaften des Testgeräts mit dazugehörigen Parametern der Eigenschaften zugeordnet sind und mittels der Parameter kann die Kommunikation, also insbesondere die Funktionalität der zwischen dem angeschlossenen Gerät (zu testenden System) und dem Softwaremodell, konfiguriert werden. In einer grafischen Konfigurationsumgebung können die einzelnen Konfigurationselemente auch miteinander verbunden werden, um so eine Konfiguration des Testgeräts vorzunehmen. Mit den Verbindungslinien 201 können verschiedene Konfigurationselemente miteinander verbunden, in anderen Worten assoziiert oder zugeordnet, werden. Durch diese Zuordnungen kann konfiguriert werden, dass verschiedene Hardwarebestandteile des Testgeräts, wie z.B. Prozessoren, FPGAs, Eingabe-Ausgabe-Boards, Speichermedien und dergleichen miteinander Daten austauschen, also elektrische Signale empfangen und senden.
-
2 b zeigt eine speziellere Form eines Konfigurationssystems 200. Hier ist das Konfigurationssystem in 3 Untereinheiten bzw. Spalten aufgeteilt, wodurch die Konfiguration für einen Anwender deutlich effizienter und intuitiver gestaltet wird. In der hier dargestellten Ausführungsform werden in der linken Spalte die an das Testgerät 100 angeschlossenen Geräte mit den Konfigurationselementen 1100 und 1200 konfiguriert. Die Eingabe-/Ausgabe-Schnittstelle des Testgeräts wird mit den in der mittleren Spalte gegebenen Konfigurationselementen 310, 320 und 350 konfiguriert. Die Eigenschaften der mit den zu testenden Geräten verbundenen Modelle werden mit den Konfigurationselementen 330, 340 und 360 in der rechten Spalte konfiguriert. Die Konfigurationselemente können mit einem oder mehreren anderen Konfigurationselementen grafisch verbunden werden, um die Übertragungswege physikalischer oder logischer Signale einzustellen.
-
Ein Konfigurationssystem unterscheidet sich derart von einer Modellierungsumgebung, dass dieses speziell auf die Anforderungen der Konfiguration eines Testgeräts zugeschnitten ist. Insbesondere ist es damit auch möglich, eine Dokumentation des Testgeräts zu erstellen, Konfigurationsbestandteile oder Softwaremodelle in verschiedenen Testszenarien wiederzuverwenden, Softwaremodelle aus unterschiedlichen Entwicklungs-/Modellierungs-Umgebungen auf dem Testgerät auszuführen, Multi-Core und Multi-Prozessor Verwendungen zu optimieren.
-
In 3 sind besondere Formen der Konfigurationselemente 310 und 320 dargestellt, in der die Konfigurationselemente eine hierarchische Struktur aufweisen. Die verschiedenen hierarchischen Ebenen (311, 312, 313, 314, 315, 316) des Konfigurationselements können wiederum als Konfigurationselemente (311, 312, 313, 314, 315, 316) aufgefasst werden. Die Konfigurationselemente sind jeweils von einem bestimmten Elementtyp. Unter einem Elementtyp bzw. einer Rolle eines Elements wird im Hinblick auf diese Erfindung eine technische Typisierung eines Elements verstanden. Beispielhafte Elementtypen sind Eingabe-/Ausgabe-Einheiten, Eingabe-/Ausgabe-Kanäle, Eingabe-/Ausgabe-Karten, Router, Potentiale, SlotPins, Funktionsports, Funktionsblöcke, Signalkonditionierungen und/oder logische Signale. Im konkreten Beispiel in 3 kann das Konfigurationselement 310 auf der höchsten Hierarchiestufe beispielsweise vom Typ „Eingabe-Ausgabe-Funktion“ bzw. „IOfunction“, „Function-Block“ oder spezieller „Voltage in/out“, „Current in/out“, „Analog/Digital in/out“ oder „PWM in/out“ sein. Die Konfigurationselemente 311 und 315 der nächst niedrigeren Hierarchiestufe können beispielsweise vom Typ „Electrical Interface“ oder „Model Interface“ sein. Die Konfigurationselemente 312 der nächst niedrigeren Hierarchiestufe können beispielsweise vom Typ „Logical Signal“ sein. Die Konfigurationselemente der niedrigsten Hierarchiestufe können z.B. vom Typ „Function Port“, „Signal Port“ oder „Modell-Port“ sein und auch allgemein als Port bezeichnet werden. Bei einer hierarchischen Struktur der Konfigurationselemente kann es auch der Fall sein, dass eine Eigenschaft zusätzlich auch mit den Konfigurationselementen assoziiert ist, die dem in erster Linie mit der jeweiligen Eigenschaft assoziierten Konfigurationselement hierarchisch übergeordnet und/oder untergeordnet sind.
-
Den Konfigurationselementen können auf allen Hierarchieebenen Eigenschaften des Testgeräts zugeordnet sein. Im hier dargestellten Ausführungsbeispiel sind den Konfigurationselementen 313 und 314 die Eigenschaften 413 und 414 zugeordnet. Da die Konfigurationselemente 313 und 314 dem Konfigurationselement 310 hierarchisch untergeordnet sind, können die Eigenschaften 413 und 414 ebenfalls dem Konfigurationselement 310 zugeordnet sein und/oder den zwischen den Konfigurationselementen 310 und 314 liegenden Konfigurationselementen zugeordnet sein.
-
Dementsprechend sind in diesem Ausführungsbeispiel den Konfigurationselementen 323, 324, 326 und 327, welche dem Konfigurationselement 320 hierarchisch untergeordnet sind, die Eigenschaften 423, 424, 426 und 427 zugeordnet. Da die Konfigurationselemente 323 , 324, 326 und 327 dem Konfigurationselement 320 hierarchisch untergeordnet sind, können die Eigenschaften 423, 424, 246 und 427 ebenfalls dem Konfigurationselement 320 zugeordnet sein und/oder den zwischen den Konfigurationselementen 320 und 323, 324, 326 bzw. 327 liegenden Konfigurationselementen zugeordnet sein.
-
Die Eigenschaften können im Testgerät physikalisch gespeichert werden, z.B. als Datenstrukturen, Dateistruktur, Funktionsstruktur, Programmstruktur, Variable, Parameter oder ähnliches.
-
Die Konfigurationselemente auf unterster Hierarchieebene (z. B. 313 und 314) können auch als Ports bezeichnet werden. Diese können mit Ports anderer Konfigurationselemente verbunden werden, um so einen Datenaustausch bzw. eine Kommunikation oder Signalaustausch zwischen den verbunden Konfigurationselementen bzw. der damit assoziierten Hardware-Einheiten zu ermöglichen. Diese Verbindung kann auch unter Berücksichtigung der Eigenschaften und/oder Rollen automatisch erfolgen.
-
Ein Konfigurationselement kann z.B. auch ein grafisches Elements (Block, UML-Knoten etc.) in einem grafischen Benutzerinterface wie z.B. einem Konfigurationsdiagramm sein. Ein Konfigurationselement kann auch ein kleinerer Teil eines größeren grafischen Elements in einem grafischen Benutzerinterface sein.
-
4 zeigt eine beispielhafte Modellierungsumgebung 400 in der ein (grafisches) Programm bzw. ein beliebiger Algorithmus grafisch modelliert wird. Hierbei werden Programm- bzw. Modell-Bestandteile und deren funktionellen Zusammenhänge durch grafische Elemente, wie beispielsweise Blöcke und Linien, konfiguriert. Das in der Modellierungsumgebung entworfene grafische Programm 400 in 4 kann z.B. derart ausgeprägt sein, dass dieses grafische Programm einen ersten Eingabewert mit dem Funktionsblock 401 und einen zweiten Eingabewert mit dem Funktionsblock 402 einliest, die eingelesen Daten dann entsprechend der im Block 403 spezifizierten Funktionalität weiter verarbeitet, um mittels des Ausgabeblocks 404 einen mittels des grafischen Programms berechneten Ausgabewert auszugeben. Die Funktionalität des Blocks 403 könnte beispielsweise darin bestehen, die Eingabewerte zu addieren oder zu multiplizieren, sie zu differenzieren oder zu integrieren oder ähnliches. Die grafischen Blöcke können durch Verbindungslinien miteinander verbunden werden, um somit einen Datenaustausch zwischen Blöcken zu etablieren. Ein grafisches Programm 400 ist natürlich nicht auf die hier dargestellte Ausführungsform beschränkt sondern kann auch deutlich komplexer ausgeprägt sein, was sich in der Anzahl der Blöcke und Verknüpfungen der Blöcke niederschlagen kann. Das grafische Programm 400 kann bei zur Modellierung eines technischen Systems verwendet werden. Somit kann ein grafisches Programm 400 auch ein Modell eines technischen Systems 103 und/oder 104 sein. Die Programmierung von Modellen technischer Systeme geschieht häufig mit grafischen Programmiersprachen, bei denen grafische Blöcke in einem Blockdiagramm miteinander verbunden werden. Jedem grafischen Block ist dabei eine bestimmte Funktionalität zugeordnet. Das können einfache mathematische Operationen sein. Andererseits können die Funktionalitäten grafischer Blöcke auch weitaus komplexer sein und komplette Programmfunktionen oder Programme darstellen. Ein Beispiel derartiger grafischer Programmiersprachen bzw. Modellierungsumgebungen ist z.B. Simulink von The Mathworks. Unter bestimmten Umständen, z.B. wenn die Funktionsblöcke auch zur Konfiguration eines Testgeräts geeignet sind, können die Funktionsblöcke auch als Konfigurationselemente bezeichnet werden.
-
5 zeigt eine beispielhafte Form eines Konfigurationssystems 200, das über eine Kopplungsschnittstelle 5 mit einer Modellierungsumgebung 400 verbunden ist. Über die Kopplungsschnittstelle werden Informationen über das Softwaremodell an die Konfigurationsumgebung übertragen.
-
Erfolgt eine Initiierung einer Übertragung aus dem Konfigurationssystem, so kann das Konfigurationssystem mittels der Kopplungsschnittstelle erkennen, welche Softwaremodelle sich aktuell in der Modellierungsumgebung befinden bzw. bearbeitet werden. Von diesen Softwaremodellen kann eines oder mehrere z.B. über eine Listendarstellung in dem Konfigurationssystem ausgewählt werden, um es der Konfigurationsumgebung bereitzustellen, ohne manuell einen Dateipfad zu dem Softwaremodell angeben zu müssen. Dabei kann das Softwaremodell auch analysiert werden, um z.B. seine Subsystem-Struktur und/oder Model Port Blöcke bzw. Eingabe-/Ausgabe-Schnittstellen des Softwaremodells zu ermitteln und in dem Konfigurationssystem zu verwenden. Die Erkennung der Softwaremodelle über proprietäre Verbindungsmechanismen oder allgemeine Automatisierungsschnittstellen erfolgen. Darüber können Softwarekommandos abgesetzt werden, mit denen sich offenen Softwaremodelle oder Dateipfade abfragen lassen. Die nötigen Kommandos können innerhalb des Konfigurationssystems gekapselt sein.
-
Erfolgt die Initiierung der Übertragung aus der Modellierungsumgebung, dann kann - sofern es notwendig ist - das Konfigurationssystem aus der Modellierungsumgebung gestartet werden. Aus einem geöffneten Softwaremodell kann durch einen Anwender initiiert werden, dass das Softwaremodell einer bestehenden Instanz des Konfigurationssystems hinzugefügt wird oder eine neue Instanz erstellt wird, der das Softwaremodell hinzugefügt wird. Um diesen Weg zu ermöglichen, werden im Prozessraum der Modellierungsumgebung Quellcode-Bestandteile eingefügt, mit denen beispielsweise Automatisierungs-Schnittstellen des Konfigurationssystems angesprochen werden können. Damit kann dann z.B. der Name und/oder der Dateipfad oder andere Eigenschaften des Softwaremodells übertragen werden.
-
6 stellt ein Modellierungssystem dar, das miteinander transversal und longitudinal verbundene Funktionsblöcke aufweist. In anderen Worten stellt das Diagramm 403 ein Subsystem dar. Zur Bewältigung der Komplexität von Modellen mit vielen Funktionsblöcken ist es möglich, dass mehrere Funktionsblöcke zu einem neuem Funktionsblock, das dann als Subsystem bezeichnet wird, zusammengefasst bzw. gruppiert werden. In diesem Ausführungsbeispiel wurden die Funktionsblöcke 4001 - 4004 zu dem Subsystem 403 zusammengefasst. Daher werden diese 4 Funktionsblöcke 4001 - 4004 im Modell 400 statt durch 4 Blöcke nur durch einen Funktionsblock bzw. Subsystem-Block 403 repräsentiert. Dadurch wird das Modell 400 übersichtlicher. Da sich auch die Funktionsblöcke 401 bis 404 zu einem gemeinsamen Subsystem-Block zusammenfassen lassen, kann das Modell 400 auch als Funktionsblock bezeichnet werden. In diesem Ausführungsbeispiel sind also die Modelle bzw. Subsysteme bzw. Funktionsblöcke 400 und 403 longitudinal miteinander verbunden. Dahingegen sind die Funktionsblöcke 401 bis 404 miteinander transversal verbunden. Auch die Funktionsblöcke 4001 bis 4004 sind miteinander transversal verbunden. Der Funktionsblock 400 ist dem Funktionsblock 403 longitudinal untergeordnet.
-
In anderen Worten sind die Blöcke 4001 -4004 durch die Subsystem-Bildung indirekt mit den Funktionsblöcken 401, 402 und 404 longitudinal verbunden.
-
7 zeigt einen Teil eines Konfigurationssystems, in dem die Konfigurationselemente 500, 503 und 5003 entsprechend der übertragenen Modellstruktur derart aufgebaut sind, dass für den Funktionsblock 403 und den damit longitudinal unter- und übergeordneten Funktionsblöcken 400 und 4003 jeweils die dazu assoziierten Konfigurationselemente 503, 500 und 5003 erzeugt wurden, die longitudinal miteinander verbunden wurden. Die longitudinale Verbindung zeigt sich hier auch durch die hierarchische Anordnung.
-
Hier ist ebenfalls ein zum Funktionsblock 4003 assoziiertes Konfigurationselement 5003 dargestellt, da der Funktionsblock 4003 ebenfalls ein Subsystem darstellt und weitere Funktionsblöcke enthält, die jedoch in 7 nicht dargestellt sind. Dem Konfigurationselement 5003 kann ein weiteres Konfigurationselement untergeordnet sein, dass zu einer Eingabe-/Ausgabe-Funktion assoziiert ist.
-
Die longitudinal Darstellung in 7 kann erfindungsgemäß auch in eine transversale Darstellung überführt werden. Damit können die Konfigurationselemente in unterschiedlichen Darstellungen bearbeitet und angezeigt werden, ohne dass ein Verlassen des Konfigurationssystems notwendig ist.
-
Es ist weiterhin auch möglich, dass ein Konfigurationselement mehreren Konfigurationselementen untergeordnet ist.
-
Obwohl die Erfindung mit Bezug auf beispielhafte Ausführungsformen beschrieben worden ist, ist es für einen Fachmann ersichtlich, dass verschiedene Änderungen vorgenommen und Äquivalente verwendet werden können, ohne den Bereich der Erfindung zu verlassen. Die Erfindung soll nicht durch die beschriebenen spezifischen Ausführungsformen beschränkt sein. Vielmehr enthält sie alle Ausführungsformen, die unter die angehängten Patentansprüche fallen.