-
Die Erfindung betrifft ein Verfahren zum Betreiben einer Steuervorrichtung eines Benutzergeräts. Als Benutzergerät kann beispielsweise ein Kraftfahrzeug vorgesehen sein, bei welchem als Steuervorrichtung ein Steuergerät betrieben werden kann. In der Steuervorrichtung führt eine Prozessoreinrichtung Programmprozesse (Threads oder Tasks) aus, wobei jeder Programmprozess in Abhängigkeit von zumindest einem Eingangssignal zumindest ein Steuersignal erzeugt. Damit alle Programmprozesse ausgeführt werden können, wird Multitasking verwendet. Die Erfindung betrifft auch ein Konfigurationssystem für eine solche Steuervorrichtung eines Benutzergeräts.
-
In einem Kraftfahrzeug kann eine Steuerregel als so genannter Programmprozess realisiert sein, der auf einer Prozessoreinrichtung einer Steuervorrichtung ausgeführt werden kann. Ein solcher Programmprozess kann zumindest ein Eingangssignal in dem Kraftfahrzeug empfangen, beispielsweise ein Temperatursignal und/oder ein Statussignal einer Fahrzeugkomponente, und in Abhängigkeit von dem zumindest einen Eingangssignal ein jeweiliges Steuersignal für zumindest eine Fahrzeugkomponente erzeugen, beispielsweise für einen Aktor des Kraftfahrzeugs. Liegt also das zumindest eine Eingangssignal vor, so reagiert der Programmprozess mit dem Erzeugen eines Steuersignals. So kann beispielsweise auf das Signal eines Regensensors hin, welches Regen signalisiert, durch einen Programmprozess ein Scheibenwischer gestartet werden. Als Funktion ergibt sich somit das automatische Aktivieren eines Scheibenwischers bei einsetzendem Regen.
-
Bei einem heutigen Kraftfahrzeug ist dieser Funktionsumfang oder der Umfang an Steuerregeln, das heißt die Menge der bereitgestellten Programmprozesse, auf die herstellergenerierten Programmprozesse beschränkt. Einen solchen herstellergenerierten Programmprozess kann man aber nur bei der Herstellung des Kraftfahrzeugs in einer Steuervorrichtung implementieren. Nur beschränkt und/oder mit entsprechendem Aufwand unter Aufsicht in einer Werkstatt kann der Funktionsumfang erweitert werden, indem herstellergenerierte Software nachinstalliert wird. Aber auch hierdurch bleibt der Funktionsumfang auf die vom Hersteller gesetzten Grenzen beschränkt.
-
Ein Benutzer eines Kraftfahrzeugs, also ein so genannter Endnutzer, kein Entwickler für ein Kraftfahrzeug, kann aber unter Umständen den Funktionsumfang seines Kraftfahrzeugs anders anpassen oder einstellen wollen, als dies vom Hersteller mittels der herstellergenerierten Programmprozesse vorgesehen ist.
-
Ein Beispiel dafür kann sein, dass man in einem Kraftfahrzeug mittels eines Regensensors zwar ein Eingangssignal für einen Programmprozess erzeugen kann, der daraufhin mittels eines Steuersignals den Scheibenwischer der Frontscheibe einschaltet, falls Regen detektiert wird. Möchte ein Benutzer nun aber zum Beispiel auch den Scheibenwischer der Heckscheibe in Abhängigkeit von dem Eingangssignal des Regensensors mittels eines Programmprozesses einschalten, so ist er darauf angewiesen, dass ein entsprechend herstellergenerierter Programmprozess bereitgestellt wird. Dies ist bei vielen Fahrzeugmodellen aber nicht der Fall.
-
Der Wunsch eines Benutzers nach der Erweiterung eines Funktionsumfangs ist nicht nur für Kraftfahrzeuge relevant. Allgemein kann irgendein Benutzergerät in seinem Funktionsumfang auf die herstellergenerierten Programmprozesse beschränkt sein. Ein solches Benutzergerät kann z.B. ein Kraftfahrzeug oder ein Smartphone oder eine Smartwatch oder ein Tablet-Computer sein.
-
Im Zusammenhang mit einer benutzerseitigen Einführung von Steuerregeln ist aus dem Stand der Technik das System „AUTOMATE“ (TM) von dem Unternehmen LlamaLab (TM) bekannt, wie es beispielsweise auf der Internetseite http://llamalab.com/automate/ beschrieben ist. Eine AUTOMATE-Steuerregel stellt den beschriebenen Zusammenhang zwischen zumindest einem Eingangssignal und dem in Abhängigkeit von dem zumindest einen Eingangssignal erzeugten Steuersignal dar. Das AUTOMATE-System stellt einen in sich geschlossenen Programmprozess in einem Benutzergerät dar. Wird dieser Programmprozess gestartet, der das System AUTOMATE umsetzt, so kann der Benutzer AUTOMATE-Steuerregeln definieren, die jeweils als Wenn-Dann-Bedingung gemäß dem Standard AUTOMATE formuliert sein können. Hierdurch kann also definiert werden: WENN das zumindest eine Eingangssignal vorliegt, DANN erzeuge das Steuersignal.
-
Der AUTOMATE-Programmprozess, der das System AUTOMATE umsetzt und hier auch als AUTOMATE-Interpreter bezeichnet ist, kann per Multitasking zusammen mit den herstellergenerierten Programmprozessen in einer Steuervorrichtung eines Benutzergeräts ausgeführt werden. Dies bedeutet aber, dass unabhängig davon, wie wichtig dem Benutzer seine Steuerregel ist, diese im Multitasking-Betrieb der Prozessoreinrichtung der Steuervorrichtung stets nur denjenigen Prioritätswert erhalten kann, der dem AUTOMATE-Programmprozess zugeordnet ist. Mit anderen Worten sind alle AUTOMATE-Steuerregeln, die ein Benutzer mittels AUTOMATE eingibt, auf der Prozessebene mit dem gleichen Prioritätswert, nämlich dem Prioritätswert des AUTOMATE-Programmprozesses selbst, versehen. Bei der Festlegung der zeitlichen Reihenfolge der Ausführung der Programmprozesse wird also kein Unterschied dahingehend gemacht, für wie wichtig ein Benutzer seine einzelnen benutzergenerierten Steuerregeln einstuft. Alle benutzergenerierten Steuerregeln können nur mit dem Prioritätswert des AUTOMATE-Programmprozesses in der Steuervorrichtung implementiert werden. Eine benutzergenerierte AUTOMATE-Steuerregel zum Erzeugen einer Warnung kann somit nicht bevorzugt gegenüber einer benutzergenerierten AUTOMATE-Steuerregel für das Abspielen eines Musiktitels ausgeführt werden.
-
Die Implementierung eines Entscheidungsbaumes für Wenn-Dann-Regeln ist beispielsweise auch aus der
DE 197 07 065 A1 bekannt, worin beschrieben ist, dass ein solcher Entscheidungsbaum auch automatisiert erzeugt werden kann, wenn es um eine Fehleranalyse in einem Kraftfahrzeug geht.
-
Aus der
DE 10 2014 010 294 A1 ist bekannt, dass ein Nutzer eine Programmierung für eine Brennstoffzelle vorgeben kann, wobei sich diese Programmierung auf das Einprogrammieren einer Startzeit oder eines anderen Parameterwerts beschränkt. Wenn-Dann-Bedingungen können nicht vorgegeben werden.
-
Aus der
DE 103 44 007 A1 ist bekannt, dass bei einem Sprachbediensystem ein Benutzer einem frei wählbaren Eingabebegriff eine Funktion zuordnen kann, die immer dann ausgeführt wird, wenn der Benutzer den Begriff ausspricht. Bei dem Sprachbediensystem werden die vom Benutzer ausgesprochenen Begriffe stets mit der gleichen Priorität erkannt. Eine konkurrierende Situation wie beim Multitasking in einer Prozessoreinrichtung innerhalb einer Steuervorrichtung ergibt sich dort nicht.
-
Aus einem Fachvortrag von G. Drenkhahn et al. (G. Drenkhahn, T. Schütz, A. Kempf, „Architekturmodellierung und Source Code Generierung für Steuergeräte-Software“, ASQF Fachgruppentreffen, https://www.tecmata.com/aktuelles-2013.html, Feb. 2013) ist bekannt, Binärcode für Steuergeräte von Kraftfahrzeugen automatisch zu generieren.
-
Aus dem Wikipedia-Artikel „Fixed-priority pre-emptive scheduling“ (en.wikipedia.org/w/index.php?title=Fixed-priority_pre-emptive_scheduling, 2018) ist ein prioritätsorientiertes Scheduling bekannt.
-
Aus einer Informationsbroschüre von AGCO® zum Vorgewendemanagement „Fendt VariotronicTI“ für Landmaschinen (https://www.fendt.com/de/genevaassets/article/3903/26580_fendt_variotronic_02-2017_de.pdf, Feb. 2017) ist ein Definieren und ein Speichern wiederkehrende Arbeitsschritte im Stand oder während einer Fahrt zum Erzeugen einer Sequenz bekannt, die bei einem Wendemanöver manuell oder automatisch abgerufen und abgearbeitet werden kann.
-
Der Erfindung liegt die Aufgabe zugrunde, für eine Steuervorrichtung eines Benutzergeräts benutzergenerierte Steuerregeln einführen zu können, die von der Steuervorrichtung mit unterschiedlichen Prioritätswerten ausgeführt werden.
-
Die Aufgabe wird durch die Gegenstände der unabhängigen Patentansprüche gelöst. Vorteilhafte Ausführungsformen der Erfindung sind durch die abhängigen Patentansprüche, die folgende Beschreibung sowie die Figur beschrieben.
-
Durch die Erfindung ist ein Verfahren zum Betreiben einer Steuervorrichtung eines Benutzergeräts bereitgestellt. Als Benutzergerät kann beispielsweise ein Kraftfahrzeug angesehen werden, in welchem als Steuervorrichtung ein Steuergerät vorgesehen sein kann. Durch die Steuervorrichtung werden Eingangssignale empfangen, beispielsweise ein jeweiliges Eingangssignal aus zumindest einer Gerätekomponente, z.B. jeweils einem Sensor und/oder einem Steuergerät und/oder einem Aktor. In Abhängigkeit von dem zumindest einen empfangenen Eingangssignal wird zumindest ein Steuersignal durch die Steuervorrichtung ausgegeben. Ein solches Steuersignal kann jeweils beispielsweise eine andere Fahrzeugkomponente, beispielsweise einen Aktor, des Benutzergeräts steuern. Um aus den Eingangssignalen die Steuersignale zu erzeugen, werden herstellererzeugte oder herstellergenerierte Programmprozesse auf einer Prozessoreinrichtung der Steuervorrichtung ausgeführt. Da mehrere Programmprozesse laufen und diese aber alle die jeweils von ihnen umgesetzte Steuerregel (d.h. die Zuordnung von zumindest einem Eingangssignal zu zumindest einem jeweiligen Steuersignal) ausführen oder überwachen können sollen, werden die Programmprozesse auf der Prozessoreinrichtung per Multitasking ausgeführt. Mit anderen Worten findet zum Ausführung der Programmprozesse ein Mehrprozess-Betrieb statt, wofür ein entsprechend ausgestaltetes Betriebssystem und/oder eine entsprechend ausgestaltete Laufzeitumgebung in der Steuervorrichtung vorgesehen sein kann. Für das Multitasking kann ein so genannter Scheduler vorgesehen sein. Ein Beispiel für einen solchen Scheduler ist ein Round-Robin-Scheduler. Bei einem Multitasking kann zwischen den Programmprozessen in Bezug auf ihre Wichtigkeit oder Priorität unterschieden werden. Es wird jedem Programmprozess jeweils ein vorbestimmter Prioritätswert zugeordnet und bei einer Festlegung einer zeitlichen Reihenfolge der Ausführung der Programmprozesse wird der jeweilige Prioritätswert jedes ausgeführten Programmprozesses berücksichtigt. Mit anderen Worten wird bei dem besagten Scheduling in dem Fall, dass von einem Programmprozess auf einen nächsten Programmprozess umgeschaltet werden soll, der nächste Programmprozess in Abhängigkeit von den Prioritätswerten der Programmprozesse ausgewählt. Ein Programmprozess, der beispielsweise sicherheitsrelevant sein kann für den Betrieb des Benutzergeräts, kann somit bevorzugt vor einem Programmprozess ausgeführt werden, der einen geringeren Prioritätswert als der sicherheitsrelevante Programmprozess aufweist. Durch den jeweiligen Prioritätswert jedes Programmprozesses ergibt sich somit eine Hierarchie der Programmprozesse.
-
Damit nun ein Benutzer eine selbstgenerierte oder benutzergenerierte Steuerregel vorgeben und diese in diese Hierarchie der Programmprozesse einfügen kann, ist erfindungsgemäß folgendes vorgesehen. Durch eine Regelkonfigurationseinrichtung wird über eine Endbenutzerschnittstelle zumindest eine benutzergenerierte Steuerregel eines Benutzers empfangen, wodurch für den Endbenutzer die Option geschaffen wird, die Einstellungen und Funktionen seines Kraftfahrzeugs zu erweitern und anzupassen. Jede Steuerregel gibt jeweils an, welches zumindest eine zusätzliche Steuersignal in Abhängigkeit von welchem Eingangssignal erzeugt werden soll. Der Benutzer kann also mit jeder Steuerregel eine Bedingung angeben, die in Bezug auf das zumindest eine Eingangssignal vorliegen muss, damit das zumindest eine zusätzliche Steuersignal erzeugt oder ausgegeben wird.
-
Um nun jede benutzergenerierte Steuerregel einzeln und unabhängig von jeder anderen benutzergenerierten Steuerregel in die Hierarchie der Programmprozesse einfügen zu können, also jeder Steuerregel einen eigenen spezifischen Prioritätswert zuordnen zu können, wird durch eine Generatoreinrichtung die zumindest eine benutzergenerierte Steuerregel mittels eines vorbestimmten Prüfkriteriums auf Zulässigkeit geprüft. Der Benutzer kann also nicht jede beliebige Steuerregel vorgeben. Das Prüfkriterium definiert, welche Verknüpfung von Eingangssignal und Steuersignal in dem Benutzergerät zulässig ist. Somit ist verhindert, dass der Benutzer durch Vorgeben einer Steuerregel einen Sicherheitsstandard und/oder die Funktionstüchtigkeit des Benutzergeräts gefährdet. Aus jeder zulässigen Steuerregel, also jeder Steuerregel, die das Prüfkriterium erfüllt, wird durch die Generatoreinrichtung ein jeweiliger eigenständiger, benutzergenerierter Programmprozess für die Prozessoreinrichtung erzeugt. Dies kann geschehen, indem für die jeweilige Steuerregel eine jeweilige Binärdatei mit Binärcode oder sogenanntem Bytecode erzeugt wird. Ein benutzergenerierter Programmprozess kann also durch einen eigenständig aufführbaren Binärcode repräsentiert sein. Die Generatoreinrichtung behandelt also jede benutzergenerierte Steuerregel individuell oder unabhängig von jeder anderen benutzergenerierten Steuerregel, indem zu jeder benutzergenerierten Steuerregel ein entsprechender benutzergenerierter Programmprozess für die Prozessoreinrichtung erzeugt wird. Es wird also ein eigenes Programmmodul oder Softwaremodul hergestellt oder erzeugt, welches die benutzergenerierte Steuerregel umsetzt oder realisiert.
-
Durch die Steuervorrichtung wird dann mittels der Prozessoreinrichtung der jeweilige benutzergenerierte Programmprozess ausgeführt. Der benutzergenerierte Programmprozess wird also jeweils in derselben Weise behandelt wie jeder herstellergenerierte Programmprozess. Beim Ausführen der Programmprozesse auf der Prozessoreinrichtung und damit beim Festlegen der zeitlichen Reihenfolge der Ausführung wird also durch die Prozessoreinrichtung der jeweilige Prioritätswert sowohl der herstellergenerierten Programmprozesse als auch des zumindest einen benutzergenerierten Programmprozesses individuell berücksichtig. Ein Benutzer kann somit auch zwei Steuerregeln vorgeben, die unterschiedliche Prioritätswerte aufweisen können.
-
Durch die Erfindung ergibt sich der Vorteil, dass in einer Prozessoreinrichtung auf der Ebene des Multitasking ein Benutzer zumindest einen zusätzlichen, benutzergenerierten Programmprozess einführen oder einfügen kann. Ein Benutzer ist nicht darauf angewiesen, dass ein AUTOMATE-Interpreter beispielsweise für eine AUTOMATE-Steuerregel in der Steuervorrichtung betrieben wird. Stattdessen kann ein Benutzer eine benutzergenerierte Steuerregel vorgeben, aus der dann ein einzelner benutzergenerierter Programmprozess generiert werden kann, der auf der Prozessoreinrichtung der Steuervorrichtung ausgeführt werden kann. Ein solcher Programmprozess stellt also einen eigenen Thread oder Task im Betriebssystem der Steuervorrichtung dar. Mit anderen Worten stellt jeder benutzergenerierte Programmprozess eine eigene Softwarekomponente dar, die zusammen mit herstellergenierten Softwarekomponenten per Multitasking auf der Prozessoreinrichtung ausgeführt werden können.
-
Die beschriebene Regelkonfigurationseinrichtung und die beschriebene Generatoreinrichtung können beispielsweise jeweils als ein Programmmodul oder als eine Applikation ausgestaltet sein. Sie können in dem Benutzergerät bereitgestellt sein oder auch außerhalb des Benutzergeräts vorgesehen oder betrieben werden.
-
Die Erfindung sieht vor, dass durch die Regelkonfigurationseinrichtung dem Benutzer vorgefertigte, miteinander kombinierbar ausgestaltete Regelblöcke zur Auswahl und/oder Kombination präsentiert werden, wobei jeder Regelblock nur zulässige Steuerregel-Teile enthält. Mit anderen Worten entspricht jeder Regelblock für sich dem besagten Prüfkriterium. Ein Benutzer kann dann einen einzelnen Regelblock oder mehrere Regelblöcke verwenden, um daraus eine Steuerregel zu formulieren. Die Regelblöcke können beispielsweise auf einer grafischen Benutzeroberfläche jeweils als grafisches Element dargestellt werden, welches von den Benutzern ausgewählt und/oder arrangiert werden kann. Beispielsweise kann vorgesehen sein, dass der Benutzer eine grafische Repräsentation eines Eingangssignals mittels eines Regelblocks oder mehrere Regelblöcke mit einer grafischen Repräsentation eines vorbestimmten Steuersignals verbindet. Beispielsweise können mehrere mögliche oder verfügbare Eingangssignale grafisch repräsentiert sein und entsprechend auch mehrere, potentiell erzeugbare Steuersignale grafisch repräsentiert sein. Durch Verbinden zumindest eines Eingangssignals mit zumindest einem Steuersignal mittels eines Regelblocks oder mehrere Regelblöcke kann dann die Steuerregel festgelegt oder definiert werden. Indem hierbei die Regelblöcke nur zulässige Steuerregel-Teile enthalten, also zum Beispiel zulässige Bedingungen und/oder zulässige logische Verknüpfungen, ist vermieden, dass der Benutzer einen Eingabefehler macht. Das Prüfkriterium kann dann nur noch dadurch verletzt werden, dass eine unzulässige Kombination von Regelblöcken verwendet wird, was aber einfacher zu prüfen ist als die Details, wie sie in den Steuerregel-Teilen definiert sind. Wie bei den besagten Wenn-Dann-Regeln verringern Regelblöcke das Risiko einer Fehleingabe durch einen Benutzer. Zudem kann jeder Regeblock einem Programmblock oder Programmcode oder Softwaremodul für einen Programmprozess zugeordnet sein. Die einzelnen Programmblöcke können dann in der Weise kombiniert werden, wie sie durch die Anordnung der Regelblöcke durch den Benutzer festgelegt wurde. Somit kann aus einer Kombination aus Regelblöcken oder einem Arrangement aus zumindest einem Regelblock unmittelbar ein Programmprozess aus zumindest einem vorgefertigten Programmblock oder Programmcode oder Softwaremodul generiert werden. Dies ermöglicht eine automatisierte Erzeugung eines Programmprozesses.
-
Die Erfindung sieht vor, dass durch das Prüfkriterium definiert wird, welcher Prioritätswert der Steuerregel im Falle der Zulässigkeit zugeordnet wird. Das Prüfkriterium entscheidet also auch darüber, mit welchem Prioritätswert oder Zeitrang der Programmprozess ausgeführt wird, der die Steuerregel verwirklicht. Mit anderen Worten wird der Prioritätswert automatisiert festgelegt. Hierdurch wird verhindert, dass ein Benutzer den falschen Prioritätswert oder einen unerwünschte Prioritätswert setzt. Es kann somit beispielsweise verhindert werden, dass der Benutzer einen Prioritätswert einstellt, der größer und/oder gleich einem Prioritätswert eines vorbestimmten herstellergenerierten Programmprozesses ist, beispielsweise eines sicherheitsrelevanten Programmprozesses, wie beispielsweise einer Überwachung eines Airbag-Auslösesignals. Der Prioritätswert kann in Abhängigkeit davon festgelegt werden, welche Gerätekomponente den benutzergenerierten Programmprozess gesteuert wird und/oder welches Eingangssignal er verarbeitet oder empfängt.
-
Die Erfindung sieht vor, dass als das Benutzergerät ein Kraftfahrzeug gesteuert wird. Mit anderen Worten handelt es sich bei der Steuervorrichtung um eine Steuervorrichtung für ein Kraftfahrzeug. Als Kraftfahrzeug ist insbesondere ein Kraftwagen, bevorzugt ein Personenkraftwagen oder Lastkraftwagen, vorgesehen. Alternativ zu einem Kraftfahrzeug kann als Benutzergerät aber auch beispielsweise ein mobiles Endgerät, also beispielsweise ein Smartphone oder ein Tablet-PC oder eine Smartwatch, gesteuert werden. Zusätzlich oder alternativ dazu kann als Benutzergerät eine Heim-Automatisierungsanlage zum Steuern von Installationen eines Gebäudes, beispielsweise zum Steuern einer motorisierten Jalousie und/oder einer schaltbaren Beleuchtung, vorgesehen sein. In einem Kraftfahrzeug ergibt sich der besondere Vorteil, dass durch das Implementieren benutzergenerierter Steuerregeln als jeweiliger eigenständiger Programmprozess und das vorherige Prüfen mittels Prüfkriterium sichergestellt ist, dass ein Benutzer eine Steuerregel vorgeben kann, die unabhängig von anderen Steuerregeln einen eigenen Prioritätswert erhalten kann. So kann eine Steuerregel auch eine Verknüpfung zwischen zumindest einem Eingangssignal und einem Ausgangssignal vorsehen, die einen Prioritätswert aufweisen muss, der größer als ein vorbestimmter Mindestwert ist, während zumindest eine andere Steuerregel durch einen Programmprozess umgesetzt werden kann, der einen niedrigeren Prioritätswert als der Mindestwert aufweist.
-
Die Erfindung umfasst auch Ausführungsformen, durch die sich zusätzliche Vorteile ergeben.
-
Eine Ausführungsform sieht vor, dass durch das Prüfkriterium jedem der Eingangssignale und jedem der Steuersignale ein Zuverlässigkeitsrang (integrity level) zugeordnet ist und das Prüfkriterium festlegt, dass jedes Steuersignal nur von einem solchen Eingangssignal abhängig sein darf, dass denselben oder einen höheren Zuverlässigkeitsrang aufweist. Hierdurch kann verhindert werden, dass eine Gerätekomponente des Benutzergeräts, die durch eine Steuerregel mittels eines Steuersignals gesteuert werden soll, von einem Eingangssignal einer Signalquelle abhängig gemacht wird, deren Zuverlässigkeitsrang niedriger als der Zuverlässigkeitsrang der zu steuernden Gerätekomponente ist. Jedem Eingangssignal kann also der Zuverlässigkeitsrang seiner Signalquelle, jedem Steuersignal der Zuverlässigkeitsrang der von ihm zu steuernden Gerätekomponente zugeordnet werden. Eine Signalquelle für ein Eingangssignal muss also denselben oder einen höheren Zuverlässigkeitsrang aufweisen als eine Gerätekomponente, die mittels des Steuersignal gesteuert werden soll. Eine Gerätekomponente, die zuverlässig funktionieren soll, darf also nicht von einer unzuverlässigen Signalquelle abhängig gemacht werden. In Zusammenhang mit einem Kraftfahrzeug kann ein solcher Zuverlässigkeitsrang beispielsweise der ASIL (automotive safetey integrity level) sein
-
Eine Ausführungsform sieht vor, dass durch die Prozessoreinrichtung die herstellergenerierten und der zumindest eine benutzergenerierte Programmprozess mittels eines Betriebssystems und/oder einer Laufzeitumgebung zeitscheibenweise zeitlich ineinander verschränkt ausgeführt werden. Mit anderen Worten wird in der Prozessoreinrichtung für einzelne, aufeinanderfolgende Zeitscheiben oder Zeitintervalle jeweils einer der Programmprozesse abschnittsweise ausgeführt oder weitergeführt. Am Ende der Zeitscheibe kann auf einen anderen Programmprozess umgeschaltet werden. So werden nacheinander alle Programmprozesse abschnittsweise oder zeitlich begrenzt weiter ausgeführt. Für jede Zeitscheibe oder jedes Zeitintervall wird dabei anhand der Prioritätswerte der Programmprozesse festgelegt, welcher Programmprozess während der jeweiligen Zeitscheibe ausgeführt wird. Es kann vorkommen, dass innerhalb eines vorbestimmten Zeitintervalls mit mehreren Zeitscheiben ein Programmprozess zwei oder mehr als zwei Zeitscheiben zugeteilt bekommt, wenn er einen höheren Prioritätswert als ein anderer Programmprozess aufweist, der dann nur eine Zeitscheibe zugeteilt bekommt. Dies ist eine konkrete Implementierung des beschriebenen Multitasking. Durch das zeitlich ineinander verschränkte Ausführen der Programmprozesse ergibt sich die so genannte quasi-parallele oder quasi-zeitgleiche Ausführung der Programmprozesse. Die Prioritätswerte legen dabei fest, welcher Programmprozess für die jeweils nächste Zeitscheibe ausgewählt wird.
-
Eine Ausführungsform sieht vor, dass die zumindest eine benutzergenerierte Steuerregel, wie sie jeweils von dem Benutzer mittels der Regelkonfigurationseinrichtung eingegeben oder vorgegeben werden kann, jeweils als Wenn-Dann-Regel beschrieben ist. Der Benutzer kann also festlegen, welches zumindest eine Eingangssignal in welchem Zustand vorliegen muss (Wenn-Teil der Steuerregel), damit dann ein Steuersignal oder mehrere Steuersignale erzeugt wird (Dann-Teil der Steuerregel). Innerhalb des Wenn-Teils können auch mehrere Bedingungen für den Zustand desselben und/oder unterschiedlicher Eingangssignale jeweils verknüpft werden, beispielsweise mit einer logischen UND-Verknüpfung oder einer ODER-Verknüpfung. Wenn-Dann-Regeln weisen somit den Vorteil auf, dass sie modular zusammengesetzt oder aufgebaut werden können.
-
Entsprechend sieht eine Ausführungsform vor, dass der jeweilige benutzergenerierte Programmprozess aus vorgefertigten Softwaremodulen zusammengestellt wird. Ein solches Softwaremodul kann jeweils, wie beschrieben, ein Programmblock sein, der jeweils einem Regelblock zugeordnet sein kann. Allgemein kann vorgesehen sein, dass vorgefertigte Softwaremodule oder Programmmodule bereitgestellt werden, wobei jedes Softwaremodul einen möglichen Steuerregel-Teil, beispielsweise eine logische Verknüpfung (wie zum Beispiel UND, ODER) oder einen Vergleich eines Eingangssignals mit einem vorbestimmten oder parametrierbaren Schwellenwert oder Zahlenintervall beschreibt. Auch die Erzeugung eines Steuersignals kann durch ein vorgefertigtes Softwaremodul vorbereitet sein. Definiert ein Benutzer eine Steuerregel, so kann die Benutzereingabe an vorbestimmten Trennstellen getrennt werden, und die sich hierdurch ergebenden Segmente der Benutzereingabe können dann jeweils einem aus mehreren vorgefertigten Softwaremodulen zugeordnet werden. Hierdurch ergibt sich eine Anordnung von Softwaremodulen gemäß der Benutzereingabe. Die so zueinander angeordneten Softwaremodule können dann zu einem Binärcode zusammengefasst oder kombiniert werden. Wird ein solcher Binärcode dann durch eine Prozessoreinrichtung ausgeführt, ergibt sich ein laufender oder ausgeführter Programmprozess.
-
Eine Ausführungsform sieht vor, dass jeder benutzergenerierte Programmprozess als Binärdatei mit Binärcode und/oder Bytecode und/oder einer direkt maschinenlesbaren Zwischenrepräsentation compiliert oder vorcompiliert ist. Es ist somit keine Interpretation der Binärdatei zur Laufzeit in der Prozessoreinrichtung notwendig. Binärcode enthält sogenannte Maschinenbefehle, also von einem Prozessor direkt ausführbare Befehle. Bei dem Programmprozess handelt es sich also um einen lauffähigen Prozessorcode. Ein Bytecode (z.B. Java-Bytecode) kann von einer virtuellen Maschine direkt ausgeführt werden. Eine solche virtuelle Maschine kann durch die Prozessoreinrichtung ausgeführt werden, z.B. die Java-Virtual-Machine (TM). Es gibt auch vorcompilierte Zwischenrepräsentationen, die von einem Prozessor ohne einen Interpreter ausgeführt werden können, wobei mit „maschinenlesbar“ eine Ausführbarkeit für eine Prozessorhardware der Prozessoreinrichtung und/oder eine Ausführbarkeit für einen virtuellen, in der Prozessoreinrichtung betriebenen virtuellen Prozessor (virtuelle Maschine) gemeint ist. Mit anderen Worten wird keine Skriptsprache oder Interpretersprache verwendet, um eine Steuerregel für die Prozessoreinrichtung zu definieren. Hierdurch ergibt sich der Vorteil, dass die Ausführungsdauer des Programmprozesses oder von Teilen des Programmprozesses (beispielsweise einer Überwachungsschleife für zumindest ein Eingangssignal) bekannt ist. Sie ergibt sich aus der Zahl der im Binärcode vorhandenen Prozessorbefehle. Bei einer Interpretersprache oder Skriptsprache ist dagegen die Ausführungsdauer zunächst unbekannt, da während der Ausführung des Programmprozesses zunächst eine Interpretation des Skript-Codes oder Interpreter-Codes durchgeführt werden muss, was dann je nach zu interpretierenden logischen Ausdruck unterschiedlich lang dauern kann, was im Voraus nicht absehbar ist. Durch die Verwendung eines vorcompilierten Binärcodes ist also der Zeitaufwand zum Durchführen eines Programmprozesses in vorteilhafter Weise bekannt, sodass es nicht zu einer unerwarteten oder unvorhersehbaren Verzögerung kommen kann. Binärcode ist anders als eine Programmiersprache für Menschen nicht lesbar.
-
Eine Ausführungsform sieht vor, dass die besagte Regelkonfigurationseinrichtung und/oder die besagte Generatoreinrichtung geräteextern betrieben werden. Mit anderen Worten müssen die Regelkonfigurationseinrichtung und/oder die Generatoreinrichtung nicht als Bestandteil des Benutzergeräts bereitgestellt sein. Eine Regelkonfigurationseinrichtung und/oder eine Generatoreinrichtung kann jeweils beispielsweise mittels eines Server des Internets als Internetdienst bereitgestellt werden. Die Regelkonfigurationseinrichtung und/oder die Generatoreinrichtung kann auch beispielsweise als eine so genannte Applikation für ein mobiles Endgerät, beispielsweise ein Smartphone oder ein Tablet-PC oder eine Smartwatch, realisiert sein. Ein Benutzer kann dann die zumindest eine Steuerregel an der Regelkonfigurationseinrichtung eingeben, die dann von der Generatoreinrichtung in einen Programmprozess umgewandelt wird, der dann an das Benutzergerät übertragen werden kann wo dann der Programmprozess ausgeführt wird. Die geräteexterne Bereitstellung weist den Vorteil auf, dass das Benutzergerät selbst keine Prozessorressourcen zum Betreiben der Regelkonfigurationseinrichtung und/oder der Generatoreinrichtung bereitstellen muss.
-
Eine Ausführungsform sieht vor, dass für zumindest eine Steuerregel eine Rückmeldung, das heißt ein Feedback vorgesehen wird, durch welche für den Fall, dass der die Steuerregel verwirklichende Programmprozess sein Steuersignal erzeugt, dies mittels einer Ausgabeeinrichtung dem Benutzer signalisiert wird. Mit anderen Worten erhält der Benutzer immer dann von der Ausgabeeinrichtung ein Hinweissignal, falls die Steuerregel aktiv ist, das heißt auf Grund der gemäß der Steuerregel vorgesehenen Bedingung für das zumindest eine Eingangssignal das Steuersignal erzeugt. Hierdurch ergibt sich der Vorteil, dass der Benutzer erkennt, ob die von ihm vorgegebene Steuerregel aktuelle aktiv ist und/oder aktuelle ein Steuersignal erzeugt. Bei einer Fehlersuche kann dies behilflich sein. Die Ausgabeeinrichtung kann Bestandteils des Benutzergeräts sein oder z.B. auch durch eine geräteexterne Applikation, z.B. eine sogenannte App auf einem Smartphone, realisiert werden.
-
Eine Ausführungsform sieht vor, dass mittels der Steuersignale zumindest eine Komponente des Benutzergeräts selbst gesteuert wird. Mit anderen Worten kann der Benutzer mittels seiner zumindest einen benutzergenerierten Steuerregel das Betriebsverhalten des Benutzergeräts beeinflussen. Zusätzlich oder alternativ dazu kann vorgesehen sein, dass mittels der Steuersignale zumindest eine geräteexterne Komponente gesteuert wird. Mit anderen Worten kann der Benutzer auch zumindest eine solche benutzergenerierte Steuerregel vorgeben, mittels welcher ein jeweiliges Steuersignal für eine geräteexterne Komponente erzeugt wird. Somit kann also auch eine Fernsteuerung zumindest einer geräteexternen Komponente von dem Benutzergerät erfolgen. Dies kann beispielsweise vorgesehen sein, wenn von einem Kraftfahrzeug als Benutzergerät ausgehend zumindest ein Steuersignal für ein Gebäude vorgesehen sein soll, um eine Hausautomation des Gebäudes fernzusteuern.
-
Bei der Umsetzung des erfindungsgemäßen Verfahrens ergibt sich ein Zusammenspiel aus der Regelkonfigurationseinrichtung, welche die zumindest eine benutzergenerierte Steuerregel empfängt, und der Generatoreinrichtung, die zu jeder Steuerregel einen eigenständigen Programmprozess für eine Prozessoreinrichtung eines Benutzergeräts erzeugt. Diese Kombination wird durch die Erfindung durch ein Konfigurationssystem für die Steuervorrichtung des Benutzergeräts umgesetzt. Dieses Konfigurationssystem umfasst die Regelkonfigurationseinrichtung und die Generatoreinrichtung. Die Regelkonfigurationseinrichtung ist dazu eingerichtet, von einem Benutzer eine jeweilige Regeleingabe für zumindest eine benutzergenerierte Steuerregel zu empfangen, wobei jede Steuerregel jeweils angibt, welches Steuersignal in dem Benutzergerät in Abhängigkeit von welchem Eingangssignal erzeugt werden soll. Mittels einer Regeleingabe kann der Benutzer also eine Verknüpfung von zumindest einem Eingangssignal mit einem bei Vorliegen des Eingangssignal zu erzeugenden Steuersignal als Steuerregel vorgeben. Die Regelkonfigurationseinrichtung kann beispielsweise eine grafische Bedienoberfläche zum Empfangen der Regeleingabe aufweisen. Die Regeleingabe kann beispielsweise mittels der beschriebenen grafischen Repräsentationen der möglichen Eingangssignale, der möglichen Steuersignale und der beschriebenen Regelblöcke erfolgen. Es kann zusätzlich oder alternativ dazu vorgesehen sein, dass der Benutzer auch eine Steuerregel durch eine getippte oder geschrieben Regeleingabe festlegt, beispielsweise durch Definieren einer logischen Verknüpfung.
-
Die besagte Generatoreinrichtung ist dazu eingerichtet, die zumindest eine Steuerregel, wie sie der Benutzer mittels der Regeleingabe eingegeben hat, dann mittels eines vorbestimmten Prüfkriteriums auf Zulässigkeit zu prüfen, wobei das Prüfkriterium definiert, welche Verknüpfung von Eingangssignal und Steuersignal in dem Benutzergerät zulässig ist. Eine Steuerregel wird also nur dann als zulässig akzeptiert, wenn die durch das Prüfkriterium vorgegebene zumindest eine Zulässigkeitsbedingung erfüllt ist. Ein Fachmann kann somit all diejenigen Zulässigkeitsbedingungen als Voraussetzung vorgeben, die in dem Benutzergerät für einen zulässigen und/oder sicheren Betrieb notwendig sind. Hierdurch wird verhindert, dass ein Benutzer mittels einer Steuerregel das Benutzergerät funktionsuntüchtig und/oder gefährlich macht. Die Generatoreinrichtung ist dazu eingerichtet, aus jeder zulässigen Steuerregel einen jeweiligen eigenständigen, benutzergenerierten Programmprozess für die Prozessoreinrichtung des Benutzergeräts zu erzeugen. Beispielsweise kann als ein jeweiliger eigenständiger oder unabhängiger Binärcode in einer Binärdatei erzeugt werden, wobei der Binärcode bezüglich jedes übrigen Binärcodes jeder anderen Steuerregel unabhängig ist und somit als eigenständiger Programmprozess durch die Prozessoreinrichtung in dem beschriebenen Multitasking ausgeführt werden kann.
-
Die Regelkonfigurationseinrichtung und die Generatoreinrichtung können jeweils beispielsweise auf der Grundlage eines Programmes oder einer Software oder einer Applikation realisiert sein. Sie können in dem Benutzergerät vorgesehen sein oder eine Regelkonfigurationseinrichtung und/oder eine Generatoreinrichtung kann geräteextern beispielsweise in einem Server oder als Applikation auf einem mobilen Endgerät bereitgestellt sein.
-
Die Erfindung umfasst auch die Kombinationen der Merkmale der beschriebenen Ausführungsformen.
-
Im Folgenden ist ein Ausführungsbeispiel der Erfindung beschrieben. Hierzu zeigt:
- 1 eine schematische Darstellung einer Ausführungsform des erfindungsgemäßen Konfigurationssystems; und
- 2 ein Flussschaudiagramm zu einer Ausführungsform des erfindungsgemäßen Verfahrens.
-
Bei den im Folgenden erläuterten Ausführungsbeispielen handelt es sich um bevorzugte Ausführungsformen der Erfindung. Bei den Ausführungsbeispielen stellen die beschriebenen Komponenten der Ausführungsformen jeweils einzelne, unabhängig voneinander zu betrachtende Merkmale der Erfindung dar, welche die Erfindung jeweils auch unabhängig voneinander weiterbilden. Daher soll die Offenbarung auch andere als die dargestellten Kombinationen der Merkmale der Ausführungsformen umfassen. Des Weiteren sind die beschriebenen Ausführungsformen auch durch weitere der bereits beschriebenen Merkmale der Erfindung ergänzbar.
-
In den Figuren bezeichnen gleiche Bezugszeichen jeweils funktionsgleiche Elemente.
-
1 zeigt ein Benutzergerät 10 und ein Konfigurationssystem 11. Bei dem Benutzergerät 10 kann es sich beispielsweise um ein Kraftfahrzeug oder ein mobiles Endgerät handeln. In dem Benutzergerät 10 kann eine Steuervorrichtung 12 für zumindest eine Komponente 13 des Benutzergeräts 10 und/oder für zumindest eine geräteexterne Komponente 14 vorgesehen sein. Falls es sich bei dem Benutzergerät 10 um ein Kraftfahrzeug handelt, kann als fahrzeugeigene Komponente 13 beispielsweise ein Infotainmentsystem (Informations- und Unterhaltungssystem) und/oder eine Klimaanlage und/oder ein Medienwiedergabesystem vorgesehen sein. Als geräteexterne Komponente 14 kann beispielsweise eine Hausautomation eines Gebäudes vorgesehen sein. Die Komponenten 13, 14 können jeweils beispielsweise durch ein Steuersignal 15 gesteuert werden, dass von der Steuervorrichtung 12 erzeugt werden kann. Wann das jeweilige Steuersignal 15 erzeugt wird oder unter welcher Bedingung, hängt von zumindest einem Eingangssignal 16 ab, bei dem es sich beispielsweise um ein Temperaturmesssignal und/oder ein Signal eines Regensensors handeln kann. Als Eingangssignal 16 kann beispielsweise signalisiert werden, dass eine Temperatur über einem Schwellenwert liegt oder das Regen eingesetzt hat. Um aus dem zumindest einen Eingangssignal 16 das zumindest eine Steuersignal 15 für zumindest eine Komponente 13, 14 zu erzeugen, kann die Steuervorrichtung 12 eine Prozessoreinrichtung 17 aufweisen, die zumindest einen Mikrocontroller und/oder zumindest einen Mikroprozessor aufweisen kann. Durch die Prozessoreinrichtung 17 kann beispielsweise ein Betriebssystem 18 und/oder eine Laufzeitumgebung betrieben werden. Hierdurch ist es möglich, in der Prozessoreinrichtung 17 per Multitasking Programmprozesse 19, 20 auszuführen. Hierbei können mehrere Programmprozesse 19 vorgesehen sein, die herstellergeneriert sind, das heißt vom Hersteller der Steuervorrichtung 12 und/oder des Benutzergeräts 10 implementiert oder bereitgestellt werden.
-
Bei dem Benutzergerät 10 kann aber auch vorgesehen sein, dass ein Benutzer zusätzlich zumindest einen Programmprozess 20 vorgibt, damit zumindest ein weiteres Steuersignal 15 gemäß einer Benutzereingabe 21 in Abhängigkeit von zumindest einem Eingangssignal 16 erzeugt wird.
-
Zum Festlegen eines solchen benutzergenerierten Programmprozesses 20 kann das Konfigurationssystem 11 vorgesehen sein. Das Konfigurationssystem 11 kann hierzu einen Regelkonfigurationseinrichtung 22 und eine Generatoreinrichtung 23 umfassen. Die Regelkonfigurationseinrichtung 22 kann beispielsweise über eine grafische Benutzerschnittstelle oder ein Benutzerinterface 24 (z.B. ein GUI - graphical user interface) oder eine andere Benutzerschnittstelle die Benutzereingabe 21 empfangen. Durch die Benutzereingabe 21 definiert der Benutzer zumindest eine Steuerregel 25, 26, von denen jede einen Zusammenhang oder eine Verknüpfung zwischen zumindest einem Eingangssignal und einem bei Vorliegen des jeweiligen Eingangssignals zu erzeugenden Steuersignal 15 vorgibt. Die Steuerregel 25, 26 kann jeweils durch die Generatoreinrichtung 23 empfangen werden. In Abhängigkeit von der jeweils definierten Steuerregel 25, 26 kann die Generatoreinrichtung 23 dann jeweils eine Binärdatei mit einem Binärcode 27 erzeugen, der als eigenständig ausführbarer Programmprozess 20 durch die Prozessoreinrichtung 17 ausgeführt werden kann. Somit fügen sich also die benutzergenierten Programmprozesse 20 oder zumindest ein benutzergenierter Programmprozess 20 in das Multitasking der Prozessoreinrichtung 17 ein. Ein jeweiliger Prioritätswert 28, der für jeden Programmprozess 19, 20 festgelegt sein kann, entscheidet dabei über eine Rangfolge oder eine Reihenfolge der Ausführung der einzelnen Programmprozesse 19, 20. Da für jede Steuerregel 25, 26 ein eigener zugehöriger oder entsprechender Programmprozess 20 definiert ist, können also unterschiedliche Steuerregeln 25, 26 unterschiedle Prioritätswerte 28 aufweisen. Es kann zudem vorgesehen sein, dass für jeden benutzergenerierten Programmprozess 20 eine Rückmeldung 29, das heißt ein Feedback, vorgesehen ist um dem Benutzer zu signalisieren, wann der Programmprozess 20 jeweils sein Steuersignal 15 erzeugt. Die Rückmeldung 29 kann auf einer oder über eine Ausgabeeinrichtung 30 des Benutzergeräts 10 ausgegeben werden, beispielsweise auf einer Anzeigeeinrichtung oder einem Bildschirm.
-
2 veranschaulicht ein Verfahren, dass durch das Konfigurationssystem 11 und das Benutzergerät 10 durchgeführt werden kann.
-
In einem Schritt S10 kann durch die Regelkonfigurationseinrichtung 22 zumindest einen benutzergenierte Steuerregel 25, 26 des Benutzers empfangen werden, wobei jede Steuerregel 25, 26 jeweils angibt, welche zusätzliche Steuersignal 15 in Abhängigkeit von welchem Eingangssignal 16 erzeugt werden soll. In einem Schritt S11 kann durch die Generatoreinrichtung 23 die zumindest eine benutzergenierte Steuerregel 25, 26 mittels eines vorbestimmten Prüfkriteriums 31 auf eine Zulässigkeit geprüft werden. Das Prüfkriterium 31 definiert, welche Verknüpfung von Eingangssignal 16 und Steuersignal 15 in dem Benutzergerät 10 zulässig ist. Das Prüfkriterium 31 kann z.B. auf der Grundlage eines jeweiligen Zuverlässigkeitsrangs 32 für Eingangssignale und Steuersignal in der beschriebenen Weise gebildet sein. In einem Schritt S12 kann aus jeder zulässigen Steuerregel ein jeweiliger eigenständiger, benutzergenierter Programmprozess 20 für die Prozessoreinrichtung 17 erzeugt werden. Dies kann in der beschriebenen Weise durch Erzeugen oder Ausgeben einer entsprechenden Binärdatei mit einem Binärcode 27 erfolgen. Der Binärcode 27 enthält also Programmbefehle, die unmittelbar durch die Prozessoreinrichtung 17 ausgeführt werden können. Es ist kein Interpreter für eine Skriptsprache oder eine Interpretersprache notwendig. In einem Schritt S13 kann durch die Steuervorrichtung 12 mittels der Prozessoreinrichtung 17 der jeweilige benutzergenierte Programmprozess 20 ausgeführt werden.
-
Im Folgenden ist ein besonders bevorzugtes Ausführungsbeispiel beschrieben:
- Ein Kraftfahrzeug (als Benutzergerät 10) enthält eine Komponente (Software und/oder Hardware) als Regelkonfigurationseinrichtung 22 (z.B. mittels eines Infotainmentsystems), welche dem Benutzer ein Benutzerinterface 24 zur Verfügung stellt, um als Steuerregeln 25, 26 jeweils Entscheidungsbäume auf Basis von Eingangssignals 16 und Steuersignalen 15 des Kraftfahrzeugs zu erstellen. Beispielsweise kann der Benutzer einen Entscheidungsbaum erstellen, welcher den Status eines Regensensors (vereinfachtes Eingangssignal: kein Regen/wenig Regen/starker Regen) konsumiert und auf Basis dieses Eingangssignals 16 den Heckscheibenwischer als Aktuator oder Komponente 13 (einstellbarer Status z.B.: aus/Intervall/kontinuierlich) ansteuert. Beispielsweise kann die folgende Steuerregel 25 für unterschiedliche Signalzustände eines Eingangssignals 16 aus dem Regensensor vorgesehen sein:
Wenn | kein Regen | dann | schalte Heckscheibenwischer ab |
Wenn | Regen und Regenmenge kleiner als Schwellenwert | dann | schalte Heckscheibenwischer auf Intervall |
Wenn | Regen und Regenmenge kleiner als Schwellenwert | dann | schalte Heckscheibenwischer auf kontinuierlich |
-
Dieser Entscheidungsbaum kann dann als Binärcode 27 in ein eigenständiges Stück Software übersetzt werden, welche im Kraftfahrzeug installiert wird und diese Steuerung gemäß der Steuerregel 25 übernimmt.
-
Prinzipiell können auch mehrere Steuerregeln in einem einzigen Stück Software ausgeführt werden. Dies könnte jedoch die Sicherheit (Safety - Sicherheit im Sinne von Schutz) des Kraftfahrzeugs beeinträchtigen, wenn sicherheits-relevante Parameter bei der Ansteuerung sicherheits-relevanter Aktoren nicht eingehalten werden. Deshalb ist hier für jede Steuerregel 25, 26 jeweils ein eigener Programmprozess 20 vorgesehen.
-
Weiterhin lassen sich fahrzeugexterne Komponenten 14 einbinden. So kann z.B. bei detektiertem Regen und gleichzeitigem Anschluss der Heimladestation eine Aktion ausgelöst werden, welche die automatischen Dachfenster schließt oder eine Meldung an den Kraftfahrzeug- und Hausbesitzer sendet, dass die Fenster geschlossen werden sollten.
-
Als Benutzerinterface 24 kann eine grafische Darstellung der Tabelle oben vorgesehen sein.
-
Der Benutzer hat mittels des Konfigurationssystems 11 die Option, die Einstellungen und Funktionen seines Kraftfahrzeugs zu erweitern. Dies erlaubt die benutzergenerierte Anpassung des Kraftfahrzeugs und/oder erhöht die Identifikation des Benutzers mit seinem Kraftfahrzeug. Im Unterschied zu existierenden Applikationen dieser Art, z.B. das System AUTOMATE, wird eine separate Applikation oder ein separater Programmprozess 20 in Form einer Binärdatei (sowie ggf. Source Code) generiert, welcher z.B. auf seine Eigenschaften bezüglich Sicherheit (Safety & Security; Security = Sicherheit im Sinne von manipulationssicher) im Voraus geprüft werden kann, z.B. in Bezug auf den Zeitbedarf und/oder Prozessorbedarf für die Ausführung. Zusätzlich ist es durch den Binärcode 27 dieser separat gesteuerten oder ausgeführten Binärdatei möglich, die Ausführung der einzelnen Steuerregeln 25, 26 genauer mittels der Prioritätswerte 28 zu steuern (Scheduling beim Multitasking).
-
Während sich diese Funktionalität mit Einschränkungen auch mit heute im Kraftfahrzeug existenter Signalkommunikation umsetzen ließe, ist es zielführender, diese Funktionalität mit einer serviceorientierten Architektur und/oder einem Betriebssystem 18 umzusetzen. Weiterhin ist eine sinnvolle Voraussetzung der Einsatz einer Architektur mit modularen Softwarekomponenten. Auf diese Weise kann eine von einem Benutzer erstellte Steuerregel 25, 26 als eigene Softwarekomponente (Binärcode 27 für einen Programmprozess 20) generiert werden, d.h. sie kann jeweils einzeln und/oder unabhängig den gleichen Richtlinien (Prioritätswerte 28) und/oder Überprüfungen wie andere Softwarekomponenten (Programmprozesse 19) in der Prozessoreinrichtung 17 unterliegen. So kann die Sicherheit (Safety & Security) der Steuerregeln 25, 26 überprüft werden.
-
Insgesamt können mehrere Systemkomponenten vorgesehen sein:
- 1. Benutzerinterface 24: Hier kann der Benutzer des Kraftfahrzeugs neue Steuerregeln 25, 26 definieren. Während grundsätzlich auch komplexere Steuerregeln 25, 26 möglich wären, ist für ein graphisches User Interface die Beschränkung auf „Conditional-Statements“ (If/Else, Wenn-Dann-Regeln) zweckmäßig. Das Benutzerinterface 24 kann, aber muss nicht, im Kraftfahrzeug verortet werden. Die Bedienung über Smartphone oder Webbrowser ist vorstellbar.
- 2. Generatoreinrichtung oder kurz Generator: Dieser übersetzt die Steuerregeln 25, 26 des Benutzers, ggf. in mehreren Schritten (z.B. über vorgefertigte Softwaremodule oder Programmcode) in eine von der Prozessoreinrichtung 17 ohne Interpreter ausführbare Komponente (z.B. Binärdatei mit Binärcode 27), welche im Kraftfahrzeug ausgeführt werden kann. Anschließend oder während des Generierungsprozesses können Überprüfungen zur Safety und Security erfolgen. Der Generator sollte in der Cloud (d.h. durch einen Server des Internets) verortet sein. Das Benutzerinterface 24 kann so unabhängig von der eigenen Verortung (Fahrzeug, Smartphone, ...) den Generator nutzen.
- 3. (Betriebssystem 18 & Laufzeitumgebung): Dies ist streng genommen keine Komponente des Konfigurationssystems 11, sondern die Grundlage derselben. Das Betriebssystem 18, beziehungsweise eine ggf. darüber liegende Laufzeitumgebung, übernimmt die Ausführung der vom Generator erstellten Binärdateien. Damit ergibt sich jeweils ein Programmprozess 20. Auch das Management der Binärdatei (z.B. Download in einen Datenspeicher der Prozessoreinrichtung 17) vom Cloud-basierten Generator kann der Kombination aus Laufzeitumgebung und Betriebssystem 18 obliegen.
-
Eine neue Steuerregel 25, 26 kann wie folgt erstellt und implementiert werden:
- 1. Benutzer erstellt Steuerregel 25, 26 via Benutzerinterface 24 (z.B. auf Smartphone, im Kraftfahrzeug, in der Cloud). Beispiel: Schalte Heckscheibenwischer auf Basis von Regensensor (s. oben).
- 2. Benutzer speichert Steuerregel 25, 26 , Benutzerinterface 24 triggert Generator um Steuerregel 25, 26 zu prüfen und zu bauen.
- 3. Generator prüft Gültigkeit der Steuerregel gegen vordefinierte, nicht erlaubte Steuerregelkonstrukte (Prüfkriterium 31 beschreibt vorbestimmte gültige und/oder ungültige Steuerregelkonstrukte). Diese Steuerregelkonstrukte sind vom Fachmann für das jeweilige Benutzergerät 10 zu definieren und können abhängig vom Benutzergerät 10 (Kraftfahrzeug) sein. Beispiel: Safety-relevante Funktionen dürfen nicht auf Basis von nicht-safetyrelevanten Daten angesteuert werden, was in der beschriebenen Weise an einem Zuverlässigkeitsrang 32 erkannt werden kann.
- 4. Generator generiert Binärdatei, welche als Programmprozess im Kraftfahrzeug ausgeführt werden soll.
- 5. Binärdatei wird im Kraftfahrzeug installiert und gestartet.
- 6. Generator hat Binärdatei automatisiert mit Feedback-Funktionalität (Rückmeldung 29) für die Schritte der Steuerregel 25, 26 ausgestattet. Dieses Feedback zum aktuellen Status kann z.B. im Benutzerinterface 24 oder einer Ausgabeeinrichtung 30 des Benutzergeräts 10 angezeigt werden.
-
Steuerregeln 25, 26 können somit in einzelne Applikationen und Betriebssystemprozesse (Programmprozesse 20) gekapselt werden. Auf diese Weise können auch safety-relevante Steuerregeln 25, 26 umgesetzt werden, da eine gezielte Bewertung der Safety einer Steuerregel 25, 26 erfolgen kann (Überprüfung des Zuverlässigkeitsrangs 32). Dies kann auf die gleiche Weise durchgeführt werden, wie für andere Applikationen, welche dem konventionellen Entwicklungspfad entstammen. Auch das Scheduling (für Multitasking) einer Steuerregel 25, 26 kann entsprechend safety-relevant erfolgen. Gleiches gilt für die Security dieser Steuerregeln. Existierende Systeme können eine solche Bewertung und Steuerung nicht umsetzen, da diese die Steuerregeln meist erst zur Laufzeit interpretieren (Interpreter-orientiert) und keine Umsetzung in separate Programmprozesse erfolgt. Auf diese Weise könnte die Sicherheit (Safety & Security) einer Steuerregel gefährdet werden, da diese identisch zu nicht-sicheren Steuerregeln behandelt wird.
-
Insgesamt zeigen die Beispiele, wie durch die Erfindung für ein Kraftfahrzeug eine sichere und dennoch anpassbare Steuervorrichtung auf der Grundlage von bedingten Steuersignalen bereitgestellt werden kann.