-
Stand der Technik
-
Die vorliegende Erfindung betrifft
ein Verfahren zur Steuerung des Ablaufs eines multitaskingfähigen Computerprogramms
auf einem Rechengerät, insbesondere
auf einem Mikroprozessor, eines Steuergeräts zur Steuerung und/oder Regelung
eines Systems. Das System kann verschiedene mögliche Systemzustände einnehmen.
-
Die Erfindung betrifft außerdem ein
Steuerprogramm zur Steuerung des Ablaufs eines multitaskingfähigen Computerprogramms
auf einem Rechengerät,
insbesondere auf einem Mikroprozessor, eines Steuergeräts zur Steuerung
und/oder Regelung eines Systems, das verschiedene mögliche Systemzustände einnehmen
kann. Das Steuerprogramm ist auf dem Rechengerät ablauffähig.
-
Die vorliegende Erfindung betrifft
schließlich auch
ein Steuergerät
zur Steuerung und/oder Regelung eines Systems, das verschiedene
mögliche
Systemzustände
einnehmen kann. Das Steuergerät
umfasst ein Rechengerät,
insbesondere einen Mikroprozessor, auf dem ein multitaskingfähigen Computerprogramm
ablauffähig
ist, und Mittel zur Steuerung des Ablaufs des Computerprogramms.
-
Aus dem Stand der Technik ist bspw.
ein Computerprogramm zur Steuerung und/oder Regelung eines Fahrdynamiksystems
(sog. elektronisches Stabilitätsprogramm,
ESP) eines Kraftfahrzeugs bekannt. Das Fahrdynamiksystem kann verschiedene mögliche Systemzustände einnehmen.
Mögliche Systemzustände sind
bspw. ein Normalbetrieb (ESP_normal), ein erster eingeschränkter Betrieb (Backup_ABS),
in dem ein Fahrzeugregler (FZR) des ESP nicht und lediglich ein
Antiblockiersystem (ABS) funktionsfähig ist, ein zweiter eingeschränkter Betrieb
(Backup_EBD), in dem lediglich ein System zur Verteilung der Bremskraft
(Electronic Brake Distribution, EBD) funktionsfähig ist, um zumindest ein Überbremsen
der Räder
an der Hinterachse zu verhindern, und ein fehlerhafter Zustand (FailSafe),
in dem alle wesentlichen Sicherheitsfunktionen des ESP, insbesondere
FZR, ABS und EBD, ausgefallen sind. Um sicherheitskritische Fahrsituationen
zu vermeiden, werden einem Fahrer des Kraftfahrzeugs die verschiedenen
Systemzustände,
zumindest aber die Zustände,
in denen nur noch eine eingeschränkte bzw.
eine fehlerhafte Funktion des Systems gegeben ist, bspw. akustisch
oder optisch mittels Warnlampen mitgeteilt. Das Computerprogramm
ist auf einem Rechengerät,
das insbesondere als ein Prozessor ausgebildet ist, eines Steuergeräts zur Steuerung und/oder
Regelung des Fahrdynamik-Systems ablauffähig.
-
Nach dem Stand der Technik wird das
Computerprogramm zur Steuerung und/oder Regelung des Fahrdynamik-Systems
in einem vorgebbaren Zeitraster, d. h. lediglich in einer einzigen
Zeitscheibe, zyklisch abgearbeitet. Die Funktionsaufrufe innerhalb
des Computerprogramms erfolgen also in einer vorgegebenen Reihenfolge
nacheinander. Die Reihenfolge wird derart vorgegeben, dass die Eingangsgrößen der
Funktionen vor deren Ausführung zur
Verfügung
stehen. Bei Eingangsgrößen, die
von anderen Funktionen berechnet werden, müssen also diese anderen Funktionen
zunächst
ausgeführt
werden, bevor die Funktion ausgeführt werden kann, welche die
in den anderen Funktionen berechneten Eingangsgrößen benötigt.
-
Aus dem Stand der Technik ist es
des Weiteren bekannt, Computerprogramme zur Steuerung und/oder Regelung
eines Systems auf einem multitaskingfähigen Betriebssystem auszuführen, und
das Computerprogramm statt in einem einzigen in verschiedenen Zeitrastern
abzuarbeiten. Das. bedeutet jedoch, dass die Funktionen des Computerprogramms
nicht mehr in einer strikt festgelegten Reihenfolge abgearbeitet
werden und dass nunmehr andere Vorkehrungen getroffen werden müssen, um
sicherzustellen, dass die Eingangsgrößen der Funktionen vor deren
Ausführung
zur Verfügung
stehen.
-
Den Funktionen des Computerprogramms werden
verschiedene Prioritäten
zugeordnet. Sicherheitsrelevanten Funktionen wird eine höhere Priorität zugeordnet
als anderen Funktionen. Höherpriore Funktionen
werden in kürzeren
Zeitrastern ausgeführt,
d. h. in Zeitrastern, die häufiger
wiederholt werden, wohingegen weniger sicherheitsrelevante Funktionen
mit einer niedrigeren Priorität
in längeren
Zeitrastern abgearbeitet werden, die seltener wiederholt werden.
Insbesondere muss sichergestellt werden, dass die Eingangsgrößen der
Funktionen immer zum richtigen Zeitpunkt vorliegen, d. h. eine Funktion,
die bspw. in einem 5ms-Zeitraster
abgearbeitet wird und Eingangsgrößen aus
einem 40ms-Zeitraster benötigt,
darf erst dann ausgeführt
werden, nachdem das 40ms-Zeitraster bereits abgearbeitet wurde und
die erforderlichen Eingangsgrößen berechnet
wurden.
-
Der vorliegenden Erfindung liegt
die Aufgabe zugrunde, den Ablauf eines multitaskingfähigen Computerprogramms
derart zu koordinieren, dass die für die Ausführung einer Funktion des Computerprogramms
erforderlichen Eingangsgrößen zu Beginn
der Ausführung
der Funktion mit Sicherheit vorliegen.
-
Zur Lösung dieser Aufgabe wird ausgehend von
dem Verfahren der eingangs genannten Art vorgeschlagen, dass für jeden
möglichen Übergang
von einem Systemzustand in einen anderen Systemzustand Übergangsbedingungen
definiert werden und der Ablauf des Computerprogramms derart gesteuert wird,
dass das System erst dann von einem ersten Systemzustand in einen
zweiten Systemzustand überführt wird,
wenn alle für
diesen Übergang
definierten Übergangsbedingungen
erfüllt
sind.
-
Vorteile der
Erfindung
-
Durch die erfindungsgemäß definierten Übergangsbedingungen
kann der Ablauf eines multitaskingfähigen Computerprogramms gezielt
beeinflusst werden. Insbesondere kann durch eine geeignete Definition
der Übergangsbedingungen
bei der Abarbeitung eines multitaskingfähigen Computerprogramms sichergestellt
werden, dass zu Beginn der Ausführung
einer Funktion alle zur Ausführung
dieser Funktion erforderlichen Eingangsgrößen oder zumindest geeignete
Ersatzgrößen vorliegen.
-
Gemäß einer vorteilhaften Weiterbildung
der vorliegenden Erfindung wird vorgeschlagen, dass eine Übergangsbedingung mindestens
eine Übergangsabfrage
und mindestens einen entsprechenden Übergangswert als vorgegebene
Antwort auf die Übergangsabfrage
umfasst, wobei eine Übergangsbedingung
dann als erfüllt
angesehen wird, wenn als Antwort auf die oder jede Übergangsabfrage
der vorgegebene Übergangswert
zurückgegeben
wird. Eine Übergangsabfrage
kann bspw. als eine Abfrage nach dem Vorliegen einer bestimmten
Eingangsgröße umfassen,
welche zur Abarbeitung einer Funktion des zweiten Systemzustands
benötigt
wird („Liegt
Eingangsgröße xyz vor?"). Der entsprechende Übergangswert
als Antwort auf die Abfrage ist bspw. ja oder nein bzw. 1 oder 0
(„1": Eingangsgröße liegt vor).
Erst wenn für
diese Übergangsabfrage
und für alle
anderen Übergangsabfragen,
die für
einen gewünschten
Systemübergang
einem ersten zu einem zweiten Systemzustand definiert wurden, die
entsprechenden Übergangswerte
vorliegen, wird das System in den zweiten Systemzustand überführt.
-
Gemäß einer bevorzugten Ausführungsform der
vorliegenden Erfindung wird vorgeschlagen, dass die Übergangswerte
in einer Übergangstabelle
abgelegt werden. In der Übergangstabelle
können
die Übergangswerte
unterteilt nach Systemzuständen abgelegt
werden. D. h. vor einem Wechsel des Systems in einen bestimmten
Systemzustand wird überprüft, ob die
Antworten auf die Übergangsabfragen den
in der Übergangstabelle
für diesen
Systemzustand abgelegten Übergangswerten
entsprechen. Die Übergangsabfragen
können
bspw, als logische IF-THEN-Abfragen realisert sein. Das hat den
Vorteil, dass die Steuerung des Programmablaufs durch das Formulieren
weiterer Übergangsabfragen
und durch Abspeichern weiterer Übergangswerte
in der Übergangstabelle
auf einfache Weise erweitert und an einen erweiterten Funktionsumfang
des Systems angepasst werden kann.
-
Gemäß einer anderen vorteilhaften
Weiterbildung der vorliegenden Erfindung wird vorgeschlagen, dass
das Computerprogramm in mehrere funktional zusammenhängende Funktionalitäten unterteilt wird,
dass die möglichen
Systemzustände
des Systems definiert werden, indem den Funktionalitäten für jeden
Systemzustand vorgebbare Betriebszustände zugeordnet werden und dass
die Übergangsbedingungen
erfüllt
sind, wenn zumindest die den zweiten Systemzustand charakterisierenden
Funktionalitäten die
ihnen für
diesen Systemzustand zugeordneten Betriebszustände aufweisen. Gemäß dieser
Weiterbildung werden also die Systemzustände des Systems durch die Betriebszustände der
Funktionalitäten
definiert. Das System geht erst dann in einen anderen Systemzustand über, wenn
sich sämtliche
den Systemzustand charakterisierenden Funktionalitäten die
geforderten Betriebszustände
aufweisen. Dies wird anhand der Übergangsbedingungen
bzw. anhand der Übergangsabfragen überprüft.
-
Gemäß einer weiteren bevorzugten
Ausführungsform
der vorliegenden Erfindung wird vorgeschlagen, dass ein Betriebszustand
durch eine Betriebszustandsvariable definiert wird, die verschiedene
Betriebszustandswerte annehmen kann und dass die Übergangsbedingungen
erfüllt
sind, wenn die Betriebszustandsvariablen der den zweiten Systemzustand
charakterisierenden Funktionalitäten
die ihnen für
diesen Systemzustand zugeordneten Betriebszustandswerte aufweisen.
Diese Ausführungsform
ermöglicht
eine besonders einfache und übersichtliche Realisierung
der Erfindung. Je nach dem wie viele Betriebszustände eine
Funktionalität
annehmen kann, kann die Betriebszustandsvariable ein Bit (für zwei verschiedene
Betriebszustände)
oder ein Byte (für
2^8 verschiedene Betriebszustände)
umfassen.
-
Vorteilhafterweise nimmt die Betriebszustandsvariable
den Stellungen „volle
Funktionalität", „eingeschränkte Funktionalität" und „keine
Funktionalität" entsprechende Betriebszustandswerte
an.
-
Gemäß noch einer anderen bevorzugten Weiterbildung
der vorliegenden Erfindung wird vorgeschlagen, dass jeder Funktionalität eine Übergangstabelle
zugeordnet wird. Um das System von einem ersten in einen zweiten
Systemzustand umzuschalten, werden also zunächst diejenigen Funktionalitäten des
Computerprogramms ermittelt, durch welche der zweite Systemzustand
charakterisiert ist. Dann werden die den zweiten Systemzustand charakterisierenden
Funktionalitäten
darauf hin überprüft, ob sie
die ihnen für
den zweiten Systemzustand zugeordneten Betriebszustände aufweisen.
Dies geschieht dadurch, dass im Rahmen von Übergangsabfragen Funktionalität für Funktionalität überprüft wird, ob
die Betriebszustandsvariable der Funktionalität den ihr für den zweiten Systemzustand
zugeordneten und in der entsprechenden Übergangstabelle abgelegten
Betriebszustandswert aufweist. Es wird also überprüft, ob die in den Übergangstabelle
für die
jeweilige Funktion definierten Übergangsbedingungen erfüllt sind.
-
Gemäß noch einer weiteren bevorzugten Ausführungsform
der vorliegenden Erfindung wird vorgeschlagen, dass mehrere Funktionalitäten zu einer
Komponente zusammenfasst werden und jeder Komponente eine Übergangstabelle
zugeordnet wird. In einer Übergangstabelle
sind also die Übergangswerte
für mehrere
Funktionalitäten
einer Komponente abgelegt.
-
Erfindungsgemäß werden des Weiteren zwei besonders
vorteilhafte Verwendungen des erfindungsgemäßen Verfahrens zur Steuerung
des Ablaufs eines multitaskingfähigen
Computerprogramms vorgeschlagen. Zum einen wird vorgeschlagen, das Verfahren
zur Steuerung des Ablaufs eines Computerprogramms zur Steuerung
und/oder Regelung eines Systems in einem Fahrzeug, insbesondere
in einem Kraftfahrzeug, zu verwenden. Insbesondere wird vorgeschlagen,
das Verfahren zur Steuerung des Ablaufs eines Computerprogramms
zur Steuerung und/oder Regelung eines Fahrdynamiksystems in einem
Kraftfahrzeug zu verwenden. Zum anderen wird vorgeschlagen, das
Verfahren zur Steuerung des Ablaufs eines Computerprogramms zur
Steuerung und/oder Regelung eines Systems in einem Gebäude zu verwenden.
Insbesondere wird vorgeschlagen, das Verfahren zur Steuerung des
Ablaufs eines Computerprogramms zur Steuerung und/oder Regelung
eines Alarmsystems, eines Heizungs- und Klimatisierungssystems und/oder
eines Zugangskontrollsystems in einem Gebäude zu verwenden.
-
Von besonderer Bedeutung ist die
Realisierung des erfindungsgemäßen Verfahrens
in der Form eines Steuerprogramms, das für ein Steuergerät zur Steuerung
und/oder Regelung eines Systems, das verschiedene mögliche Systemzustände einnehmen kann,
vorgesehen ist. Dabei ist das Steuerprogramm auf einem Rechengerät, insbesondere
auf einem Mikroprozessor, des Steuergeräts ablauffähig und zur Ausführung des
erfindungsgemäßen Verfahrens
geeignet. In diesem Fall wird also die Erfindung durch das Steuerprogramm
realisiert, so dass das Steuerprogramm in gleicher Weise die Erfindung
darstellt wie das Verfahren, zu dessen Ausführung es geeignet ist. Besonders
bevorzugt ist dabei, wenn das Steuerprogramm auf einem Speicherelement,
insbesondere auf einem Read-Only-Memory, auf einem Random-Access-Memory
oder auf einem Flash-Memory abgespeichert ist.
-
Als eine weitere Lösung der
Aufgabe der vorliegenden Erfindung wird ausgehend von dem Steuergerät der eingangs
genannten Art vorgeschlagen, dass das Steuergerät Mittel zur Definition von Übergangsbedingungen
für jeden
möglichen Übergang von
einem Systemzustand in einen anderen Systemzustand und die Mittel
zur Steuerung des Ablaufs des Computerprogramms den Ablauf des Computerprogramms
derart steuern, dass das System erst dann von einem ersten Systemzustand
in einen zweiten Systemzustand wechselt, wenn alle für diesen Übergang
definierten Übergangsbedingungen
erfüllt
sind.
-
Gemäß einer vorteilhaften Weiterbildung
der vorliegenden Erfindung wird vorgeschlagen, dass das Steuergerät Mittel
zur Ausführung
des erfindungsgemäßen Verfahrens
aufweist.
-
Zeichnungen
-
Weitere Merkmale, Anwendungsmöglichkeiten
und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung
von Ausführungsbeispielen
der Erfindung, die in der Zeichnung dargestellt sind. Dabei bilden
alle beschriebenen oder dargestellten Merkmale für sich oder in beliebiger Kombination
den Gegenstand der Erfindung, unabhängig von ihrer Zusammenfassung
in den Patentansprüchen
oder deren Rückbeziehung
sowie unabhängig von
ihrer Formulierung bzw. Darstellung in der Beschreibung bzw. in
der Zeichnung. Es zeigen:
-
1 verschiedene
Systemzustände
eines Systems;
-
2 eine
Funktionalität
eines multitaskingfähigen
Computerprogramms zur Steuerung und/oder Regelung eines Systems;
-
3 ein
Ablaufdiagramm eines Verfahrens zur Steuerung des Ablaufs eines
multitaskingfähigen Computerprogramms;
-
4 ein
Ablaufdiagramm eines erfindungsgemäßen Verfahrens gemäß einer
bevorzugten Ausführungsform;
und
-
5 ein
erfindungsgemäßes Steuergerät gemäß einer
bevorzugten Ausführungsform.
-
Beschreibung
der Ausführungsbeispiele
-
Die vorliegende Erfindung betrifft
ein multitaskingfähiges
Computerprogramm zur Steuerung und/oder Regelung eines Systems.
Das Computerprogramm ist auf einem Rechengerät, insbesondere auf einem Mikroprozessor,
eines Steuergeräts
zur Steuerung und/oder Regelung des Systems ablauffähig. Das
multitaskingfähige
Computerprogramm wird in mehreren unterschiedlichen Zeitrastern
abgearbeitet. Zwar wiederholen sich die einzelnen Zeitraster zyklisch,
insgesamt betrachtet wird das Computerprogramm aber nicht zyklisch
abgearbeitet.
-
Das Computerprogramm ist in mehrere
Aufgabenprogramme (sog. Tasks) unterteilt, denen verschiedene Prioritäten zugeordnet
sind. Tasks mit sicherheitsrelevant Aufgaben werden höhere Prioritäten zugeordnet
als solchen Tasks, die keine sicherheitsrelevanten Aufgaben haben.
Die höher
prioren Tasks werden in kürzeren
Zeitrastern ausgeführt,
d. h. sie werden pro Zeiteinheit häufiger abgearbeitet als die
nieder Prioren Tasks.
-
Die Unterteilung des Computerprogramms
in mehrere Tasks betrifft die softwaretechnische Realisierung des
Computerprogramms. Auf der funktionalen Ebene ist das Computerprogramm
in mehrere funktional zusammenhängende
Einheiten, sog. Funktionalitäten,
unterteilt. Eine Funktionalität
kann eine oder mehrere Tasks umfassen. Bei einem Computerprogramm
zur Steuerung und/oder Regelung eines Fahrdynamiksystems (elektronisches
Stabilitätsprogramm,
ESP) in einem Kraftfahrzeug sind Funktionalitäten bspw. ein Antiblockiersystem
(ABS), durch das ein Blockieren der Räder beim Bremsen verhindert
wird, oder ein Fahrzeugregler (FZR), der auf die einzelnen Räder gezielt
Bremseingriffe vornimmt, um die Fahrdynamik des Kraftfahrzeugs zu
erhalten.
-
Aufgrund der Tatsache, dass bei einem
multitaskingfähigen
Computerprogramm die Funktionsaufrufe nicht einfach nacheinander
erfolgen und somit nicht einfach durch die Reihenfolge der Aufrufe
sichergestellt werden kann, dass die Eingangsgrößen einer Funktionalität von einer
zuvor ausgeführten Funktionalität bereits
ermittelt worden sind, müssen bei
multitaskingfähigen
Computerprogrammen andere Vorkehrungen getroffen werden, um sicherzustellen,
dass den auszuführenden
Funktionalitäten
die erforderlichen Eingangsgrößen immer
richtig vorliegen. So darf bspw. eine Funktionalität, die in
einer 5ms-Task aufgerufen wird und die Eingangsgrößen aus
einer 40ms-Task benötigt,
beim ersten Aufruf erst dann ausgeführt werden, wenn die 40ms-Task bereits berechnet
wurde.
-
Ein wichtiger Aspekt der vorliegenden
Erfindung ist es, dass jedem der Systemzustände bzw. jedem (zulässigen) Übergang
von einem ersten Systemzustand zu einem zweiten Systemzustand Übergangsbedingungen
zugeordnet sind, und der Ablauf des Computerprogramms derart gesteuert
wird, dass das System erst dann in den zweiten Systemzustand überführt wird,
wenn alle dem Übergang
in den zweiten Systemzustand zugeordneten Übergangsbedingungen erfüllt sind.
Wenn die Übergangsbedingung bspw.
darin besteht, dass sämtliche
Eingangsgrößen einer
den zweiten Systemzustand charakterisierenden Funktionalität zur Verfügung stehen,
kann anhand des erfindungsgemäßen Verfahrens
sichergestellt werden, dass das Gesamtsystem tatsächlich erst
dann von dem ersten Systemzustand in den zweiten Systemzustand überführt wird,
wenn alle erforderlichen Eingangsgrößen vorliegen.
-
Die verschiedenen Systemzustände 30 sind in 1 am Beispiel eines Fahrdynamiksystems (ESP)
dargestellt. Es sind u.a. die nachfolgenden Systemzustände 30 möglich:
-
- – „FullSystem": Normalbetrieb,
volle Funktionsfähigkeit
des Fahrdynamiksystems;
- – „Backup_ABS": Nur Antiblockiersystem
(ABS), kein Fahrzeugregler (FZR) aktiv, eingeschränkte Funktionsfähigkeit;
- – „Backup_EBD": Nur elektronische
Bremskraftverteilung (Electronic Brake Distribution, EBD) aktiv,
eingeschränkte
Funktionsfähigkeit;
- – „FailSafe": FZR, ABS, EBD inaktiv,
keinerlei Funktionsfähigkeit
des Systems; und
- – „XYZ": ein beliebig anderer
Systemzustand.
-
Die Übergänge zwischen den Systemzuständen sind
mit dem Bezugszeichen 31 bezeichnet.
-
In 2 ist
eine Funktionalität
X dargestellt, welche die Eingangsgrößen Ein_i und die Ausgangsgrößen Aus_i
aufweist. Zwischen den Eingangsgrößen Ein_i und den Ausgangsgrößen Aus_i
ist ein in horizontaler Richtung verschiebbarer Schieber vorgesehen,
der drei verschiedene Betriebszustände A, B, C der Funktionalität X repräsentiert.
Durch Verschieben des Schiebers kann der Betriebszustand A, B, C
der Funktionalität
X gewechselt werden.
-
Die verschiedenen Systemzustände 30 des Systems
sind dadurch charakterisiert, dass mindestens eine der Funktionalitäten X des
Systems einen vorgebbaren Betriebszustand A, B, C aufweist. Aus der
Summe der Betriebszustände
A, B, C der Funktionalitäten
X ergibt sich somit der entsprechende Systemzustand 30 des
Gesamtsystems. Jeder Funktionalität X des Computerprogramms ist
eine Betriebszustandsvariable zugeordnet, die verschiedene Betriebszustandswerte,
die jeweils einem bestimmten Betriebszustand A, B, C der Funktionalität X entsprechen,
annehmen kann.
-
Das Umschalten einer Funktionalität X in einen
anderen Betriebszustand A, B, C kann bspw. erforderlich sein, wenn
nicht alle zur Ausführung
der Funktionalität
X erforderlichen Eingangsgrößen Ein_i vorliegen.
Zunächst
kann versucht werden, den Ablauf dieser Funktionalität X so weit
hinauszuzögern, bis
alle erforderlichen Eingangsgrößen Ein_i
vorliegen, d. h. bis andere Funktionalitäten X, in denen die erforderlichen
Eingangsgrößen Ein_i
ermittelt wurden, ausgeführt
worden sind. Es sind jedoch Situationen denkbar, in denen ein Hinauszögern der
Ausführung
einer Funktionalität
X, bis alle erforderlichen Eingangsgrößen Ein_i vorliegen, nicht
möglich
ist. In einem solchen Fall können
die fehlenden Eingangsgrößen Ein_i
auch anhand anderer Größen modelliert
oder mittels eines alternativen Algorithmus berechnet werden. Es
ist auch denkbar, statt der fehlenden Eingangsgröße Ein_i eine andere Größe, die
bereits zur Verfügung
steht, zur Ausführung
der Funktionalität
X heranzuziehen. Alle diese Maßnahmen, die
ergriffen werden können,
falls eine erforderliche Eingangsgröße Ein_i nicht zur Verfügung steht,
führen
letzten Endes jedoch mehr oder weniger zu einer Einschränkung der
Funktionsfähigkeit
der Funktionalität,
was durch einen Wechsel des Betriebszustandes A, B, C ausgedrückt wird.
-
In 3 wird
ein Verfahren zur Steuerung des Ablaufs eines multitaskingfähigen Computerprogramms
beispielhaft anhand eines Fahrdynamiksystems in einem Kraftfahrzeug
beschrieben. Dieses Verfahren und insbesondere die vorliegende Erfindung
kann jedoch für
beliebige Systeme eingesetzt werden, die durch ein multitaskingfähiges Computerprogramm
gesteuert und/oder geregelt werden. Eine weitere Einsatzmöglichkeit,
die hier ausdrücklich
angesprochen wird, ist der Einsatz des erfindungsgemäßen Verfahrens
zur Steuerung des Ablaufs eines Computerprogramms zur Steuerung
und/oder Regelung eines Alarmsystems, eines Heizungs- und Klimatisierungssystems
und/oder eines Zugangskontrollsystems in einem Gebäude, also
an den Einsatz des erfindungsgemäßen Verfahrens
im Bereich des Gebäudemanagements.
-
In einem Funktionsblock 1 wird
die sog. Plattform-Software (PSW) überwacht. Unter Plattform-Software
wird der hardwarenahe Teil des Computerprogramms zur Steuerung und/oder
Regelung des Fahrdynamiksystems verstanden. In einem Funktionsblock 2 wird
die Anwender-Software (ASW) überwacht.
Unter Anwender-Software wird bei einem Fahrdynamiksystem bspw. der
ABS-Regler oder der Fahrzeugregler (FZR) verstanden. Die Funktionsblöcke 1 und 2 dienen
zur Erkennung von Fehlern 11, 12 in den entsprechenden
Softwareteilen. Ein möglicher Fehler 11, 12,
der in den Funktionsblöcken 1 und 2 erkannt
werden könnte,
wäre bspw.
ein Sensorfehler, der es verhindert, dass eine bestimmte Eingangsgröße Ein_i,
die zur Berechnung einer Funktionalität X erforderlich ist, zur Verfügung steht.
-
Die in den Funktionsblöcken 1 und 2 erkannten
Fehler 11, 12 werden an einen Funktionsblock 3 übermittelt,
der als ein Makro realisiert ist. In dem Funktionsblock 3 wird
anhand der in den Funktionsblöcken 1 und 2 ermittelten
Fehler 11, 12 ein entsprechender Fehlerzustand 13 des
Systems ermittelt. Dieser Fehlerzustand 13 wird von dem
Funktionsblock 3 an einen weiteren Funktionsblock 4 übertragen,
der als Failure Processing System (FPS) bezeichnet wird. In dem
Funktionsblock 4 wird unter Berücksichtigung der ermittelten
Fehlerzustände 13 eine
entsprechende Strategie zum Übergang
in den zweiten Systemzustand, genauer gesagt, eine Strategie zum
gezielten Wechseln der Betriebszustände A, B, C der den zweiten
Systemzustand charakterisierenden Funktionalitäten, ermittelt. Die in dem Funktionsblock 4 ermittelte
Strategie 14 zum Umschalten der Betriebszustände A, B,
C der Funktionalitäten
X zum Übergang
in den zweiten Systemzustand, wird an einen Funktionsblock 5 übermittelt. Genauer
gesagt, werden von dem Funktionsblock 4 an den Funktionsblock 5 gemäß der ermittelten
Strategie 14 nacheinander verschiedene Soll-Betriebszustände derjenigen Funktionalitäten übermittelt,
die den zweiten Systemzustand charakterisieren. Die ermittelte Strategie 14 repräsentiert
also einem Soll-Systemzustand, in dem vorliegenden Ausführungsbeispiel
den zweiten Systemzustand.
-
Die in dem Funktionsblock 3 ermittelten
Fehlerzustände 13 werden
außerdem
an einen Funktionsblock 6 übertragen, in welchem der Status
der Eingangsgrößen Ein_i
der Funktionalitäten
X durch Setzen eines sog. Invalid Bit gekennzeichnet wird. Für jede Eingangsgröße Ein_i
der Funktionalitäten
X des Computerprogramms ist ein eigenes Statussignal in Form des
Invalid Bit vorgesehen. Wenn also in den Funktionsblöcken 1 oder 2 ein
Sensorfehler 11, 12 detektiert wurde, werden diejenigen
Eingangsgrößen Ein_i,
die von dem Sensorfehler 11, 12 beeinträchtigt werden,
durch Setzen oder Löschen
des Invalid Bit entsprechend gekennzeichnet. Das Statussignal 15 wird
ebenfalls an den Funktionsblock 5 übertragen.
-
In einem Funktionsblock 7 wird
der Ist-Systemzustand 16 ermittelt und ebenfalls an den
Funktionsblock 5 übertragen.
Am Beispiel eines Fahrdynamiksystems umfasst der Ist-Systemzustand 16 den Zustand
des Fahrdynamiksystems an sich, aber auch den Fahrzustand des Kraftfahrzeugs.
In einem Funktionsblock 8 werden die Abhängigkeiten 17 der Betriebszustände A, B,
C bzw. der Funktionalitäten
X untereinander ermittelt. Die ermittelten Abhängigkeiten 17 werden
ebenfalls an den Funktionsblock 5 übermittelt.
-
In dem Funktionsblock 5 werden
Soll-Betriebszustände 18 in
Abhängigkeit
der von den Funktionsblöcken 4, 6, 7, 8 erhaltenen
Größen 14, 15, 16, 17 aufbereitet.
Insbesondere wird in dem Funktionsblock 5 überprüft, ob die
Betriebszustandsvariablen der Funktionalitäten X die für den zweiten Systemzustand
geforderten Betriebszustandswerte aufweisen, d. h. ob sich die den
zweiten Systemzustand charakterisierenden Funktionalitäten in den
geforderten Betriebszuständen
befinden. Die Funktionsblöcke 4 bis 8 sind
in einem übergeordneten
Funktionsblock 9 zusammengefasst, der als Controller Release
System (CRS) bezeichnet wird.
-
Falls in dem Funktionsblock 5 festgestellt wird,
dass die Betriebszustandsvariablen die geforderten Betriebszustandswerte
aufweisen, d. h. sich die Funktionalitäten, welche den zweiten Systemzustand
charakterisieren, in den geforderten Betriebszuständen befinden,
gibt der Funktionsblock 5 einen oder mehrere Soll-Betriebszustände 18 vor
und übermittelt
diese an einen Funktionsblock 10. In dem Funktionsblock 10 ist
die Anwendersoftware (ASW) und eine Sicherheitssoftware (SIS) sowie
eine Offsetaufbereitung enthalten. Die ASW entspricht dem Reglerteil
der Software (z. B. zur ABS-, ASR- oder Motormomentenregler). Die
entsprechenden Funktionalitäten
in dem Funktionsblock 10 werden dann in den Soll-Betriebszustand 18 geschaltet.
Der Ist-Betriebszustand 19 wird von dem Funktionsblock 10 an die
Funktionsblöcke 7 und 8 übermittelt.
Dort werden sie zur Ermittlung des Ist-Systemzustandes in Funktionsblock 7 und
zur Ermittlung der Abhängigkeiten der
Funktionalitäten
X untereinander in Funktionsblock 8 herangezogen.
-
Beim Übergang von einem Betriebszustand A,
B, C in einen anderen können
prinzipiell zwei unterschiedliche Arten von Übergängen unterschieden werden:
- – Der Übergang
von einem Betriebszustand niedriger Priorität zu einem Betriebszustand
höherer Priorität wie bspw.
der Übergang
von ABS_Vollsystem zu ABS_Off. Dieser Übergang erfolgt unmittelbar,
damit es zu keinen weiteren eventuell fehlerhaften Ansteuerungen
kommen kann.
- – Der Übergang
von einem Betriebszustand höherer
Priorität
zu einem Betriebszustand niedrigerer Priorität, wie bspw. von ABS_Off zu ABS_Vollsystem.
In diesem Fall wird der Übergang
von dem Soll- zu dem Ist-Betriebszustand durch die Funktionalität selbst
bestimmt. Dabei muss der Ist-Betriebszustand solange voll funktionsfähig bleiben,
bis der Soll-Betriebszustand
erreicht ist. Während
der Umschaltphase von dem Ist-Betriebszustand in den Soll-Betriebszustand werden
beide Betriebszustände
parallel berechnet. Somit bestimmt die Funktionalität selbst, wann
der Übergang
erfolgen soll. Zu beachten ist, dass während der Übergangsphase akustische oder
optische Warnhinweise weiterhin ausgegeben werden müssen. Seitens
des FPS (Failure Processing System) in Funktionsblock 4 werden keine
Warnhinweise mehr ausgegeben, da durch einen Reset der in den Funktionsblöcken 1 oder 2 erkannte
Fehler 11, 12 bereits zurückgesetzt wurde.
-
In 4 ist
ein Ablaufdiagramm zur Verdeutlichung des erfindungsgemäßen Verfahrens
dargestellt. Bei dem dargestellten Verfahren umfassen die Übergangsbedingungen Übergangsabfragen 40 und entsprechende Übergangswerte 41 als
vorgegebene Antworten auf die Übergangsabfragen 40.
Eine Übergangsbedingung
wird dann als erfüllt
angesehen, wenn als Antwort auf die oder jede Übergangsabfrage 40 der
vorgegebene Übergangswert 41 zurückgegeben
wird.
-
Das Computerprogramm 22 (vgl. 5) ist in mehrere funktional
zusammenhängende
Funktionalitäten
X unterteilt. Die möglichen
Systemzustände 30 des
Systems werden definiert, indem den Funktionalitäten X für jeden Systemzustand 30 vorgebbare Betriebszustände A, B,
C zugeordnet werden. Die Übergangsbedingungen
sind erfüllt,
wenn zumindest die den Soll-Systemzustand 14 charakterisierenden Funktionalitäten X die
ihnen für
diesen Systemzustand 14 zugeordneten Betriebszustände A, B,
C aufweisen.
-
Die Übergangswerte 41 sind
in Übergangstabellen 42 (sog.
Transition Tables) abgelegt. Die Übergangstabellen 42 sind
als eine Wissensdatenbank ausgebildet, die auf einem Speicherelement
abgespeichert sind, insbesondere auf einem Read-Only-Memory (ROM)
eines Steuergeräts 20 zur
Steuerung und/oder Regelung des Systems (vgl. 5). Es ist denkbar, jeder Funktionalität X eine Übergangstabelle 42 zuzuordnen.
In der Ausführungsform
aus 4 ist sind jedoch
mehrere Funktionalitäten
X zu einer Komponente 43 zusammengefasst, wobei jeder Komponente 43 eine Übergangstabelle 42 zugeordnet
wird. In einer Komponente 43 sind nach außen in Erscheinung
tretende Funktionen, bspw. grundlegende Funktionalitäten X (Basic
Operation Modes; BasicOMs), ABS-Funktionalitäten X, ASR-Funktionalitäten, FZR-Funktionalitäten X und Funktionalitäten X zur
Koordination von Bremsmomentansprüchen (COR) zusammengefasst.
-
Anhand einer ausgewählten Übergangstabelle 42 einer
FZR-Komponente 43 (Transition
FZR, TraFZR) wird der Aufbau der Übergangstabellen 42 näher erläutert. Für zwei Komponenten-Zustände 44 (Off)
und 45 (Normal) sind die entsprechenden Betriebszustände A, B,
C derjenigen Funktionalitäten
X angegeben, die zu der FZR-Komponente 43 zusammengefasst
sind. Ein Betriebszustand A, B, C wird durch eine Betriebszustandsvariable
OMFZREst, OMFZRCbc (CBC: Corner Branke Control zur Verhinderung
des Überbremsens
eines kurveninneren Rades in einer Kurve) definiert, die verschiedene
Betriebszustandswerte (Off, Normal) annehmen kann. Die Übergangsbedingungen
sind erfüllt,
wenn die Betriebszustandsvariablen OMFZREst, OMFZRCbc der den System-Zustand 14, 16 charakterisierenden Funktionalitäten X die
ihnen für
diesen System-Zustand zugeordneten Betriebszustandswerte (Off, Normal)
aufweisen.
-
Die Übergangsabfragen 40 sind
in einer Programmschleife des Computerprogramms 22 (vgl. 5) enthalten. Die Programmschleife
wird rekursiv, bspw. alle 20ms, durchlaufen. Zunächst wird in einem Funktionsblock 46 überprüft, ob ein
neuer Systemzustand 14 angefordert wurde. Das entsprechende
Signal 14 kommt von dem FPS-Funktionsblock 4 (vgl. 3). Falls kein neuer Systemzustand 14 des Systems
angefordert wurde, wird das System in dem bisherigen Ist-Systemzustand 16 weiter
betrieben (Funktionsblock 47). Falls ein neuer Systemzustand 14 angefordert
wurde, werden in einem Funktionsblock 48 Steuerbits der Übergangsabfragen 40 zurückgesetzt.
Danach werden die Übergangsabfragen 40 nacheinander
abgearbeitet. Die Übergangsabfragen 40 stellen
Steuerfunktionen der Komponentenzustände dar, durch welche das System
abgebildet wird.
-
Eine Übergangsabfrage 40 (TraFZROff_V()) ist
beispielhaft herausgegriffen und im Detail dargestellt. Zunächst wird
der Zustand von Steuerbits (z.B. CompFZRFAOffOnce = TRUE && TraBasicOMsSettled
= TRUE ...) und werden weitere Bedingungen abgefragt. Anhand der
abgefragten Steuerbits kann der aktuelle Zustand der Komponente
bzw. der einzelnen Funktionalitäten
ermittelt werden. Falls das Ergebnis dieser Abfragen „JA" ist, bedeutet dies,
dass alle für die
Ausführung
der Funktionalitäten
der Komponente 43 erforderlichen Eingangsgrößen zur
Verfügung
stehen und der entsprechende Eintrag 44 (TraFZR_Off) in
der Übergangstabelle 42 für die Komponente 43 (TraFZR)
wird abgearbeitet. Dabei wird überprüft, ob die
Funktionalitäten
der Komponente 43 die in der Tabelle 42 angegebenen Betriebszustände aufweisen bzw.
werden die Funktionalitäten
in die entsprechenden Betriebszustände geschaltet. Sobald der
Eintrag 44 in der Übergangstabelle 42 erfolgreich
abgearbeitet worden ist, werden weitere Statusbits auf TRUE gesetzt.
-
In 5 ist
ein erfindungsgemäßes Steuergerät in seiner
Gesamtheit mit dem Bezugszeichen 20 bezeichnet. Das Steuergerät 20 dient
zur Steuerung und/oder Regelung eines Systems, das verschiedene
mögliche
Systemzustände
einnehmen kann, insbesondere eines Fahrdynamiksystems in einem Kraftfahrzeug.
Das Steuergerät 20 umfasst
ein Rechengerät 21,
das als ein Mikroprozessor ausgebildet ist. Auf dem Rechengerät 21 ist
ein in mehrere funktional zusammenhängende Funktionalitäten unterteiltes
multitaskingfähiges
Computerprogramm 22 ablauffähig. Das Computerprogramm 22 dient
zur Steuerung und/oder Regelung des Systems nach dem erfindungsgemäßen Verfahren,
wenn es auf dem Rechengerät 21 abläuft. Des
Weiteren sind in dem Steuergerät 20 Mittel 23 zur
Koordination des Ablaufs des Computerprogramms 22 vorgesehen. Die
Mittel 23 sind als ein Steuerprogramm ausgebildet, das
ebenfalls auf dem Rechengerät 21 ablauffähig ist.
Das Computerprogramm 22 und das Steuerprogramm 23 sind
auf einem Speicherelement 24 abgespeichert, das bspw. als
ein Flash-Memory ausgebildet ist. Zur Abarbeitung des Computerprogramms 22 und
des Steuerprogramms 23 werden diese entweder als Ganzes
oder abschnittsweise über
eine Datenverbindung 25 an das Rechengerät 21 übermittelt.
Ebenso können
in der Gegenrichtung über
die Datenverbindung 25 Ergebnisse von Berechnungen, die
in dem Rechengerät 21 ausgeführt wurden,
oder andere Daten an das Speicherelement 24 übermittelt und
dort abgespeichert werden. Das Steuerprogramm 23 dient
zur Ausführung
des erfindungsgemäßen Verfahrens,
wenn es auf dem Rechengerät 21 ausgeführt wird.