-
Die
vorliegende Erfindung betrifft ein Verfahren zur Steuerung von technischen
Vorgängen,
bei dem ein Steuerprogramm von einem Rechengerät abgearbeitet wird. Das Steuerprogramm
ist in mehrere Tasks unterteilt und jede Task umfasst mindestens einen
Prozess. Die Tasks werden in einem kooperativen oder in einem preemptiven
Modus abgearbeitet. Während
der Abarbeitung des Steuerprogramms wird der Prozessablauf gespeichert.
-
Die
Erfindung betrifft außerdem
ein Steuergerät
zur Steuerung von technischen Vorgängen. Das Steuergerät weist
ein Rechengerät
auf, auf dem ein Steuerprogramm ablauffähig ist, das in mehrere Tasks
unterteilt ist. Jede Task umfasst mindestens einen Prozess. Die
Abarbeitung der Tasks erfolgt in einem kooperativen oder in einem
preemptiven Modus. Das Steuergerät
weist Mittel zur Speicherung des Prozessablaufs während der
Abarbeitung des Steuerprogramms auf.
-
Die
Erfindung betrifft des Weiteren ein Speicherelement für ein Steuergerät insbesondere
eines Kraftfahrzeugs. Auf dem Speicherelement ist ein Steuerprogramm
gespeichert, das auf einem Rechengerät, das beispielsweise als ein
Mikroprozessor ausgebildet ist, ablauffähig ist.
-
Schließlich betrifft
die vorliegende Erfindung ein Steuerprogramm, das auf einem Rechengerät, das beispielsweise
als ein Mikroprozessor ausgebildet ist, ablauffähig ist.
-
Die
Abarbeitung einzelner Tasks eines Steuerprogramms in einem kooperativen
Modus bedeutet, dass bei unterschiedlich priorisierten Tasks eine auszuführende höherpriorisierte
Task zu einer Unterbrechung einer aktuell ausgeführten niederpriorisierten Task
führt.
Anders als in einem preemptiven Modus, bei dem eine auszuführende höherpriorisierte Task
einen aktuell ausgeführten
Prozess einer niederprioristierten Task unterbricht, wartet bei
dem kooperativen Modus die höherpriorisierte
Task das Ende des aktuell ausgeführten
Prozesses der niederpriorisierten Task ab. Erst danach wird die
niederpriorisierte Task unterbrochen und die höherpriorisierte Task ausgeführt. Wenn
die höherpriorisierte
Task fertig ist, wird die niederpriorisierte Task bei dem Prozess
fortgesetzt, vor dem sie unterbrochen wurde.
-
Die
Abarbeitung der Tasks eines Steuerprogramms im kooperativen Modus
ist aus der
DE 195 00
957 A1 bekannt. Die Unterbrechung einer niederpriorisierten
Task durch eine höherpriorisierte
Task gehört
zu den Aufgaben eines Multi-Tasking Betriebssystems. Ein solches
Multi-Tasking Betriebssystem, das sowohl den kooperativen Modus
als auch den preemptiven Modus bei der Abarbeitung von Steuerprogrammen
unterstützt,
ist bspw. das Echtzeitbetriebssystem ERCOS
EK von
der Firma ETAS Entwicklungs- und Applikationswerkzeuge für elektronische
Systeme GmbH & Co.
KG, Stuttgart, Deutschland (vgl. ETAS GmbH & Co. KG: ERCOS
EK V2.0.0
Manual, Stuttgart, 1998). Auf die
DE 195 00 957 A1 und das ERCOS
EK-Handbuch
wird ausdrücklich
Bezug genommen.
-
Ein
Verfahren und ein Steuergerät
der eingangs genannten Art ist beispielsweise aus der
US 5,872,909 bekannt. Das beschriebene
Verfahren ist jedoch sehr aufwendig und relativ ressourcenintensiv.
-
Die
Laufzeit der Prozesse schwankt je nach Belastung des Rechengeräts. Aus
diesem Grund und aufgrund der möglichen,
von anderen höherpriorisierten
Tasks verursachten Unterbrechungen kann die Reihenfolge der Prozessaufrufe
ein und desselben Steuerprogramms bei mehrmaliger Abarbeitung unterschiedlich
sein. Das heißt,
dass nach der Abarbeitung des Steuerprogramms die genaue Reihenfolge
der Prozessaufrufe nicht bekannt ist und auch nicht bspw. für Simulationszwecke
rekonstruiert werden kann.
-
Zur
Simulation eines Steuerprogramms oder von Teilen davon (Algorithmus)
sind verschiedene Verfahren bekannt. Eine nachträgliche Simulation eines Algorithmus
oder des Steuerprogramms mit gemessenen Daten wird als Offline Open
Loop Simulation (OOL) bezeichnet. Bei der sogenannten Offline Closed
Loop Simulation (OCL) handelt es sich um eine Simulation eines Algorithmus
oder des Steuerprogramms mit einem Simulationsmodell in einem geschlossenen
Simulationskreis. Die mangelnde Reproduzierbarkeit der Reihenfolge
der abgearbeiteten Prozesse führt
insbesondere bei einer nachträglichen
Simulation des Algorithmus mit gemessenen Daten (OOL) zu erheblichen
Schwierigkeiten.
-
Nach
dem Stand der Technik werden Algorithmen, die mit einem Multi-Tasking
Betriebssystem gesteuert werden, üblicherweise in einem optimalen Zustand
simuliert. Das bedeutet, dass die einzelnen Tasks des Steuerprogramms
so aufgerufen werden, dass keine Unterbrechung stattfindet.
-
In
der
DE 195 00 957
A1 wird erwähnt,
dass die Simulation eines im kooperativen Modus abzuarbeitenden
Steuerprogramms Vorteile gegenüber
der Simulation eines im preemptiven Modus abzuarbeitenden Steuerprogramms
hat, da der zeitliche Ablauf der Programmabarbeitung und insbesondere
die Auswirkungen von Unterbrechungen simuliert werden können. Das
ist deshalb ohne weiteres möglich, da
die einzelnen Prozesse im kooperativen Modus nicht unterbrochen
werden und die Anzahl der Größen, die
den Programmzustand beschreiben und in einem Stapelspeicher gespeichert
werden, konstant ist. Dadurch können
die Unterbrechungen zwischen den Prozessen in der Entwicklungsphase
recht gut simuliert werden, da die Anzahl der Möglichkeiten einer Unterbrechung
begrenzt ist und die Unterbrechungen unabhängig von dem Programmablauf
sind.
-
Aufgrund
einer fehlenden Reproduzierbarkeit des Prozessablaufs im Anschluss
an eine reale Abarbeitung eines Steuerprogramms, haben sämtliche
aus dem Stand der Technik bekannten Simulationen von Algorithmen
eines im kooperativen oder im preemptiven Modus abzuarbeitenden
Steuerprogramms den Nachteil, dass eine Simulation unter realen
Bedingungen nicht möglich
ist.
-
Der
vorliegenden Erfindung liegt deshalb die Aufgabe zugrunde, eine
Simulation von Algorithmen eines im kooperativen oder im preemptiven
Modus auszuführenden
Steuerprogramms mit gemessenen Daten (OOL) unter möglichst
realitätsnahen
Bedingungen zu ermöglichen.
-
Zur
Lösung
dieser Aufgabe schlägt
die Erfindung ausgehend von dem Verfahren zur Steuerung von technischen
Vorgängen
der eingangs genannten Art vor, dass vor der Abarbeitung des Steuerprogramms
jedem Prozess eine eindeutige Kennung zugeordnet wird und während der
Abarbeitung des Steuerprogramms der Prozessablauf anhand der Kennungen
der Prozesse gespeichert wird, wobei während der Abarbeitung des Steuerprogramms
lediglich jeweils für
eine neue Task die Kennung eines vor Beginn der neuen Task zuletzt
abgearbeiteten Prozesses gespeichert wird.
-
Als
eine weitere Lösung
der Aufgabe wird erfindungsgemäß vorgeschlagen,
dass vor der Abarbeitung des Steuerprogramms jedem Prozess eine eindeutige
Kennung zugeordnet wird und während der
Abarbeitung des Steuerprogramms der Prozessablauf anhand der Kennungen
der Prozesse gespeichert wird, wobei während der Abarbeitung des Steuerprogramms
lediglich jeweils für
eine beendete Task die Kennung eines vor Beginn der beendeten Task zuletzt
abgearbeiteten Prozesses gespeichert wird.
-
Vorteile der
Erfindung
-
Mit
dem erfindungsgemäßen Verfahren
kann nach der Abarbeitung des Steuerprogramms der Prozessablauf
anhand der gespeicherten Informationen reproduziert werden. Dieser
reproduzierte Prozessablauf kann dann einer Simulation der Algorithmen des
Steuerprogramms zugrundegelegt werden. Dadurch ist eine besonders
realitätsnahe
Simulation der Algorithmen, insbesondere mit gemessenen Daten nach
einer OOL-Simulation, möglich.
Die Messungen und die Simulationsergebnisse können miteinander verglichen
werden und eine effektive Fehlersuche in dem Steuerprogramm ist
möglich.
Das erfindungsgemäße Verfahren
schafft die Grundlage dafür,
dass erstmals ein realer Prozessablauf eines Steuerprogramms simuliert
werden kann. Zur Realisierung des erfindungsgemäßen Verfahrens werden bspw.
in jedem Prozess und/oder in jeder Task geeignete Befehle hinzugefügt.
-
Vor
der Abarbeitung des Steuerprogramms wird jedem Prozess eine eindeutige
Kennung (Identifier) zugeordnet und während der Abarbeitung des Steuerprogramms
wird der Prozessablauf anhand der Kennungen der Prozesse gespeichert.
Im Rahmen der Abarbeitung eines Prozesses wird also sein Identifier
in einem bestimmten Speicherbereich abgelegt. Anhand der in dem
Speicherbereich abgelegten Identifier kann der Prozessablauf nach
der Ausführung
des Steuerprogramms reproduziert werden. Der Identifier ist bspw.
als eine mehrstellige Zahl ausgebildet.
-
Während der
Abarbeitung des Steuerprogramms wird lediglich jeweils für eine neue
Task die Kennung eines vor Beginn der neuen Task zuletzt abgearbeiteten
Prozesses gespeichert. Die Erfindung macht sich die Tatsache zunutze,
dass jede Task eines Steuerprogramms mit einer sogenannten Prozessliste
definiert ist, in der die einzelnen Prozesse der Task in der Reihenfolge
ihrer Abarbeitung nacheinander aufgelistet sind. Anhand der Prozesslisten der
Tasks eines Steuerprogramms lässt
sich also zusammen mit der gespeicherten Kennung des letzten vor
Beginn einer neuen Task abgearbeiteten Prozesses nach der Abarbeitung
des Steuerprogramms der Prozessablauf vollständig reproduzieren.
-
Gemäß der alternativen
Lösung
der Erfindung wird während
der Abarbeitung des Steuerprogramms lediglich jeweils für eine beendete
Task die Kennung eines vor Beginn der beendeten Task zuletzt abgearbeiteten
Prozesses gespeichert. Anhand der Prozesslisten der Tasks lässt sich
zusammen mit der gespeicherten Kennung des letzten vor Beginn einer
beendeten Task abgearbeiteten Prozesses nach der Abarbeitung des
Steuerprogramms der Prozessablauf vollständig reproduzieren.
-
Diese
beiden Lösungen
haben den Vorteil, dass die abzuspeichernde Datenmenge, die für eine vollständige Reproduzierbarkeit
des Prozessablaufs erforderlich ist, erheblich reduziert werden
kann.
-
Es
wird des Weiteren vorgeschlagen, dass während der Abarbeitung des Steuerprogramms
die Kennung eines jeden abgearbeiteten Prozesses in einer Variablen
und während
der Abarbeitung einer jeden Task der Inhalt der Variablen in eine
Prozessablaufdatei gespeichert wird. Die Variable, in der die Kennung
eines jeden abgearbeiteten Prozesses gespeichert wird, ist vorzugsweise
als eine globale Variable ausgebildet. Zur Reproduktion des Prozessablaufs
nach der Abarbeitung des Steuerprogramms werden die Prozesslisten
der Tasks und die Prozessablaufdatei ausgewertet.
-
Vorteilhafterweise
wird am Anfang einer jeden Task der Inhalt der Variablen in eine
Task-spezifische Variable und während
der weiteren Abarbeitung der Task der Inhalt der Task-spezifischen Variablen
in die Prozessablaufdatei gespeichert. Der Inhalt der Variablen
wird also während
der Abarbeitung des Steuerprogramms ständig mit der Kennung des aktuell
abgearbeiteten Prozesses überschrieben,
so dass beim Aufruf einer neuen Task in der Variablen die Kennung
des vor dem Aufruf der Task zuletzt abgearbeiteten Prozesses abgelegt
ist. Am Anfang einer Task wird der Inhalt dieser Variablen in eine Task-spezifische
Variable geschrieben. In der Task-spezifischen Variablen steht also immer
die Kennung des unmittelbar vor Beginn der aktuellen Task abgearbeiteten
Prozesses. Während
der weiteren Abarbeitung der Task wird der Inhalt der Task-spezifischen
Variablen in die Prozessablaufdatei gespeichert. Es ist denkbar,
dass der Inhalt der Task-spezifischen Variablen während der
weiteren Abarbeitung der Task von der Messtechnik zusammen mit allen
anderen Messgrößen dieser
Task in einer Messdatei gespeichert wird. Die Prozessablaufdatei
wäre also
Bestandteil dieser Messdatei.
-
Von
besonderer Bedeutung ist die Realisierung des erfindungsgemäßen Verfahrens
in der Form eines Speicherelements, das für ein Steuergerät insbesondere
eines Kraftfahrzeugs vorgesehen ist. Dabei ist auf dem Speicherelement
ein Steuerprogramm abgespeichert, das auf einem Rechengerät, insbesondere
auf einem Mikroprozessor, ablauffähig zur Ausführung des
erfindungsgemäßen Verfahrens programmiert
ist. Das Steuerprogramm führt
das erfindungsgemäße Verfahren
aus, wenn es auf dem Rechengerät
abgearbeitet wird. In diesem Fall wird also die Erfindung durch
ein auf dem Speicherelement abgespeichertes Steuerprogramm realisiert,
so dass dieses mit dem Steuerprogramm versehene Speicherelement
in gleicher Weise die Erfindung darstellt wie das Verfahren, zu
dessen Ausführung
das Steuerprogramm geeignet ist. Als Speicherelement kann insbesondere
ein elektrisches Speichermedium zur Anwendung kommen, bspw. ein
Read-Only-Memory, ein Random-Access-Memory oder ein Flash-Memory.
-
Die
Erfindung betrifft auch ein Steuerprogramm, das zur Ausführung des
erfindungsgemäßen Verfahrens
programmiert ist, wenn es auf einem Rechengerät, insbesondere auf einem Mikroprozessor, abläuft. Wenn
das Steuerprogramm auf dem Rechengerät abläuft, führt es das erfindungsgemäße Verfahren
aus. Als Steuerprogramm wird ein Computerprogramm bezeichnet, das
zur Steuerung von technischen Vorgängen insbesondere in einem
Kraftfahrzeug dient. Besonders bevorzugt ist dabei, wenn das Steuerprogramm
auf einem Speicherelement, insbesondere auf einem Flash-Memory,
abgespeichert ist.
-
Als
eine weitere Lösung
der Aufgabe der vorliegenden Erfindung wird ausgehend von dem Steuergerät zur Steuerung
von technischen Vorgängen der
eingangs genannten Art vorgeschlagen, dass das Steuergerät Zuordnungsmittel,
welche jedem Prozess vor der Abarbeitung des Steuerprogramms eine
eindeutige Kennung zuordnen, und Speichermittel aufweist, welche
während
der Abarbeitung des Steuerprogramms den Prozessablauf anhand der Kennungen
der Prozesse speichern, wobei die Speichermittel während der
Abarbeitung des Steuerprogramms lediglich jeweils für eine neue
Task die Kennung eines vor Beginn der neuen Task zuletzt abgearbeiteten
Prozesses speichern.
-
Als
eine weitere Lösung
der Aufgabe wird vorgeschlagen, dass das Steuergerät Zuordnungsmittel,
welche jedem Prozess vor der Abarbeitung des Steuerprogramms eine
eindeutige Kennung zuordnen, und Speichermittel aufweist, welche
während
der Abarbeitung des Steuerprogramms den Prozessablauf anhand der
Kennungen der Prozesse speichern, wobei die Speichermittel während der
Abarbeitung des Steuerprogramms lediglich jeweils für eine beendete
Task die Kennung eines vor Beginn der beendeten Task zuletzt abgearbeiteten
Prozesses speichern.
-
Gemäß einer
vorteilhaften Weiterbildung der vorliegenden Erfindung wird vorgeschlagen,
dass das Steuergerät
Mittel zur Ausführung
eines 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. Es zeigen:
-
1 ein
Prozessablauf in zwei Zyklen während
der Abarbeitung eines Steuerprogramms;
-
2 eine
Tabelle mit der Reihenfolge der Prozesse während der beiden Zyklen aus 1;
-
3 eine
Tabelle mit der Belegung verschiedener Variablen während der
Ausführung
des erfindungsgemäßen Verfahrens
während
der beiden Zyklen aus 1;
-
4 ein
Ablaufdiagramm des erfindungsgemäßen Verfahrens
für die
Abarbeitung einer Task A;
-
5 ein
Ablaufdiagramm des erfindungsgemäßen Verfahrens
für die
Abarbeitung einer Task B;
-
6 ein
erfindungsgemäßes Steuergerät;
-
7 ein
Prozessablauf während
der Abarbeitung eines weiteren Steuerprogramms;
-
8 eine
Tabelle mit den jeweils letzten vor Beginn einer beendeten Task
während
des Prozessablaufs aus 7 abgearbeiteten Prozessen;
-
9 Prozesslisten
für die
Task A und die Task B; und
-
10 eine
Tabelle mit der Reihenfolge der Prozesse während der Simulation eines
Steuerprogramms anhand eines aus dem Stand der Technik bekannten
Simulationsverfahrens.
-
Beschreibung
der Ausführungsbeispiele
-
Auf
einem Rechengerät,
insbesondere auf einem Mikroprozessor, eines Steuergeräts können Steuerprogramme
zur Steuerung von technischen Vorgängen insbesondere in einem
Kraftfahrzeug abgearbeitet werden. Die Steuerprogramme können in mehrere
Tasks und jede Task wiederum in mehrere Prozesse unterteilt sein.
Eine Task wird zu einem bestimmten Zeitpunkt oder regelmäßig mit
einer bestimmten Abtastzeit aufgerufen und abgearbeitet. Jeder Task
ist eine bestimmte Priorität
zugeordnet. Wenn während
der Abarbeitung des Steuerprogramms zwei Tasks gleichzeitig ausgeführt werden sollen,
werden die Prioritäten
der beiden Tasks verglichen und die Task mit der höheren Priorität als erste abgearbeitet.
-
Wenn
bspw. eine Task A abgearbeitet wird und ein Task B ausgeführt werden
soll, können
je nach der von einem Programmierer gewählten Konfiguration der Tasks
verschiedene Fälle
auftreten:
Falls die Task A eine höhere Priorität als die
Task B hat, wird mit der Ausführung
der Task B gewartet bis die Task A beendet ist.
-
Falls
die Task B eine höhere
Priorität
als die Task A hat, wird die Abarbeitung der Task A unterbrochen
und die Task B ausgeführt.
Falls der Programmierer die Ausführung
der Tasks in einem sogenannten kooperativen Modus gewählt hat,
wird mit der Ausführung
der Task B auf das Ende des aktuellen Prozesses der Task A gewartet.
Sobald dieser Prozess beendet ist, wird die Task A unterbrochen
und die Task B ausgeführt.
Wenn die Task B beendet ist, wird die Task A zu Beginn des Prozesses,
vor dem Sie zur Ausführung
der Task B unterbrochen wurde, weiter abgearbeitet.
-
Falls
der Programmierer die Abarbeitung der Tasks in einem preemptiven
Modus gewählt
hat, unterbricht die Task B den aktuellen Prozess der Task A und
die Task B wird unmittelbar ausgeführt. Anschließend wird
die Task A bei dem unterbrochenen Prozess weiter abgearbeitet.
-
Die
Unterbrechung einer Task durch eine andere Task mit einer höheren Priorität gehört zu den Aufgaben
eines Multi-Tasking Betriebsystems. Die Laufzeit der Prozesse schwankt
je nach der Belastung des Rechengeräts, auf dem das Steuerprogramm
abgearbeitet wird. Aus diesem Grund und aufgrund der möglichen,
von anderen Tasks verursachten Unterbrechungen kann die Reihenfolge
der Prozessaufrufe bei einer mehrmaligen Ausführung ein und desselben Steuerprogramms
unterschiedlich sein (vgl. ersten und zweiten Zyklus in 1).
Nach der Abarbeitung des Steuerprogramms ist also die Reihenfolge,
in der die einzelnen Prozesse der Tasks aufgerufen wurden, nicht
bekannt.
-
In 1 ist
beispielhaft die Abarbeitung von zwei Tasks in einem ersten Zyklus
und einem zweiten Zyklus dargestellt. Den einzelnen Prozessen der Tasks
ist jeweils eine eindeutige Kennung in Form einer dreistelligen
Zahl zugeordnet. Die einzelnen Prozesse einer Task sind in der Reihenfolge
der Ausführung
während
der Abarbeitung des Steuerprogramms in einer Prozessliste gespeichert
(vgl. 9). Die Prozesslisten werden von dem Betriebssystem
ausgewertet, um Online den Prozessablauf zu bestimmen. Die Task
A umfasst die Prozesse 345 bis 384 und die Task
B umfasst die Prozesse 121 bis 129. Die Task A
wird alle zwanzig Millisekunden aufgerufen. Die Task B wird alle
zehn Millisekunden mit einer höheren
Priorität
als die Task A aufgerufen. Beide Tasks arbeiten im kooperativen
Modus, d.h. die Task A kann von der höherpriorisierten Task B zwischen
zwei Prozessen unterbrochen werden.
-
In 2 ist
die Reihenfolge der Abarbeitung der Prozesse in dem ersten Zyklus
und in dem zweiten Zyklus dargestellt. In dem ersten Zyklus werden die
Prozesse 121 bis 129 der Task B abgearbeitet. Anschließend werden
beginnend mit dem Prozess 345 die Prozesse der Task A abgearbeitet.
Die Abarbeitung der Prozesse der Task A wird jedoch durch die Task
B unterbrochen. In dem ersten Zyklus tritt die Unterbrechung der
Task A nach der Abarbeitung des Prozesses 372 und in dem
zweiten Zyklus erst nach der Abarbeitung des Prozesses 383 auf.
Dem gemäß müssen nach
der zweiten Abarbeitung der Task B in dem ersten Zyklus die Prozesse 373 bis 384 der
Task A und in dem zweiten Zyklus lediglich der Prozess 384 der
Task A ausgeführt
werden.
-
Die
Tatsache, dass die Reihenfolge der Prozesse unterschiedlich sein
kann bedeutet, dass ein bestimmter Prozessablauf nach der Abarbeitung
des Steuerprogramms nicht mehr reproduzierbar ist. Das führt insbesondere
bei einer nachträglichen
Simulation der Algorithmen des Steuerprogramms mit gemessenen Daten
(sogenannte Offline-Open-Loop (OOL)-Simulation) zu erheblichen Schwierigkeiten.
-
Deshalb
werden nach dem Stand der Technik Algorithmen, die mit einem Multi-Tasking
Betriebssystem gesteuert werden, in der Regel in einem optimalen
Zustand simuliert, d.h. die Tasks A, B werden so aufgerufen, dass
keine Unterbrechung stattfindet. Die entsprechende Reihenfolge der
Prozesse in dem ersten Zyklus und in dem zweiten Zyklus bei einer
Simulation anhand eines aus dem Stand der Technik bekannten Simulationsverfahrens
ist in 10 dargestellt. Es ist deutlich
zu erkennen, dass ein Unterschied zwischen dem simulierten Prozessablauf
(10) und dem tatsächlichen Prozessablauf (2)
besteht.
-
Um
eine möglichst
realitätsnahe
Simulation der Algorithmen eines Steuerprogramms, insbesondere eine
realitätsnahe
OOL-Simulation, zu ermöglichen,
wird erfindungsgemäß vorgeschlagen,
während
der Abarbeitung des Steuerprogramms den Prozessablauf zu speichern.
Um die zu speichernde Datenmenge zu reduzieren, werden nicht alle
abgearbeiteten Prozesse gespeichert, sondern nur der letzte vor
dem Beginn einer neuen oder einer beendeten Task A, B abgearbeitete
Prozess.
-
Jedem
Prozess wird eine eindeutige Kennung (Identifier) zugeordnet, die
in dem vorliegenden Ausführungsbeispiel
aus einer dreistelligen Zahl (Prozesse 345 bis 384 für Task A
und Prozesse 121 bis 129 für Task B) besteht. In jeden
Prozess und in jede Task des Steuerprogramms werden geeignete Programmbefehle
hinzugefügt,
die für
eine Realisierung des erfindungsgemäßen Verfahrens erforderlich sind.
-
Während der
Abarbeitung des Steuerprogramms wird am Ende eines jeden Prozesses
der Identifier des soeben abgearbeiteten Prozesses in einer globalen
Variablen FinishedProcessNumber (FPN) fortgeschrieben. In der Variablen
FPN steht also immer der Identifier des zuletzt abgearbeiteten Prozesses.
Am Anfang einer jeden Task A, B wird die Variable FPN auf eine Task-spezifische Variable (TaskA_PredecessorPRC,
TaskB_PredecessorPRC) kopiert. In dieser Task-spezifischen Variablen
steht also immer der Identifier des Prozesses, der unmittelbar vor
Beginn der aktuellen Task A, B abgearbeitet wurde. Während der
weiteren Abarbeitung einer jeden Task wird der Inhalt der jeweiligen
Task-spezifische Variablen (TaskA_PredecessorPRC, TaskB_PredecessorPRC)
in einer Prozessablaufdatei (PAD) gespeichert. Insbesondere wird
die jeweilige Task-spezifische Variable von der Messtechnik zusammen
mit allen anderen Messgrößen dieser Task
A, B in einer Messdatei gespeichert, wobei die Prozessablaufdatei
Bestandteil der Messdatei ist.
-
In 7 ist
ein Prozessablauf eines weiteren Steuerprogramms dargestellt. Das
Steuerprogramm umfasst vier Tasks C, D, E und F mit unterschiedlichen
Prioritäten.
Jede Task C, D, E, F umfasst eine oder mehrere Prozesse. Die Task
C umfasst den Prozess 111, die Task D die Prozesse 212 und 222,
die Task E die Prozesse 313, 323 und 333 und
die Task F die Prozesse 413, 423 und 433.
Jeder Prozess ist in 7 durch einen Balken dargestellt.
Die Höhe der
Balken gibt die Priorität
der Tasks C, D, E, F wieder. Wenn während der Abarbeitung des Steuerprogramms
der Prozessablauf anhand der Identifier sämtlicher Prozesse in der Prozessablaufdatei
gespeichert wird, hat die Tabelle den nachfolgenden Inhalt: 111, 313, 212, 111, 222, 323, 111, 212, 222, 333, 413, 423, 433, 111, 313, 111, 323, 333, 413, 423, 433, 111.
-
Um
die in der Prozessablaufdatei abzuspeichernde Datenmenge, die für eine vollständige Reproduzierbarkeit
des Prozessablaufs erforderlich ist, zu reduzieren wird während der
Abarbeitung des Steuerprogramms lediglich der Identifier des letzten vor
Beginn einer beendeten Task abgearbeiteten Prozesses gespeichert.
Der sich daraus ergebende Inhalt einer Prozessablaufdatei ist in 8 dargestellt.
Statt der oben aufgeführten
22 Elemente umfasst die Prozessablaufdatei aus 8 nur
12 Elemente.
-
Die
erste beendete Task ist die Task C. Der vor Beginn der Task C abgearbeitete
Prozess ist nicht bekannt. Deshalb wird "xxx" in
die Prozessablaufdatei eingetragen.
-
Danach
wird die Task E begonnen, jedoch nicht beendet, und danach die Task
D, jedoch ebenfalls nicht beendet. Die nächste beendete Task ist wieder
die Task C. Der vor Beginn der Task C abgearbeitete Prozess ist 212.
Deshalb wird "212" in die Prozessablaufdatei
eingetragen.
-
Danach
wird die Task D fortgesetzt und beendet. Der vor Beginn der Task
D abgearbeitete Prozess ist 313. Deshalb wird "313" in die Prozessablaufdatei
eingetragen.
-
Danach
wird die Task E fortgesetzt, jedoch nicht beendet. Die nächste beendete
Task ist wieder die Task C. Der vor Beginn der Task C abgearbeitete Prozess
ist 323. Deshalb wird "323" in die Prozessablaufdatei
eingetragen.
-
Danach
wird die Task D begonnen und auch beendet. Der vor Beginn der Task
D abgearbeitete Prozess ist 111. Deshalb wird "111" in die Prozessablaufdatei
eingetragen.
-
Danach
wird die Task E fortgesetzt und beendet. Der vor Beginn der Task
E abgearbeitete Prozess ist 111. Deshalb wird wieder "111" in die Prozessablaufdatei
eingetragen.
-
Danach
wird die Task F begonnen und auch beendet. Der vor Beginn der Task
F abgearbeitete Prozess ist 333. Deshalb wird "333" in die Prozessablaufdatei
eingetragen. Das Verfahren wird so lange fortgesetzt, bis das Steuerprogramm
beendet ist. Es ergibt sich der nachfolgende Inhalt der Prozessablaufdatei:
xxx, 212, 313, 323, 111, 111, 333, 433, 313, 111, 333, 433.
-
Nach
der Abarbeitung des Steuerprogramms wird zu Simulationszwecken zunächst die
Messdatei eingelesen. Der Prozessablauf wird mittels der Prozesslisten
(vgl. 9) und der in der Messdatei gespeicherten Informationen
rekonstruiert. Das erfindungsgemäße Verfahren
schafft die Grundlage, mit bei einem Steuerprogramm erstmals ein
realer Prozessablauf simuliert werden kann. Die Messungen und die
Simulationsergebnisse sind miteinander vergleichbar und ermöglichen
eine effektive Fehlersuche in der Software des Steuerprogramms.
-
In 3 ist
für den
Prozessablauf aus 1 der Inhalt der globalen Variablen
FinishedProcessNumber (FPN) und der Task-spezifischen Variablen (TaskA_PredecessorPRC,
TaskB_PredecessorPRC) dargestellt. Diese Informationen werden in
der Messdatei gespeichert.
-
In 4 ist
ein Ablaufdiagramm zur Abarbeitung der Task A des Ausführungsbeispiels
aus 1 dargestellt. Das Ablaufdiagramm beginnt in einem Funktionsblock 10 mit
dem Start. In einem Funktionsblock 11 wird die Task A ausgewählt. In
einem Funktionsblock 12 wird der Inhalt der globalen Variablen (FinishedProcessNumber,
FPN) auf die Task-spezifische
Variable (TaskA_PredecessorPRC) kopiert. In einem Funktionsblock 13 wird
dann der Inhalt der Task-spezifischen Variablen in der Programmablaufdatei
(PAD) gespeichert. Im Weiteren wird dann in einem Funktionsblock 14 ein
anhand der Prozessliste der Task A (vgl. 9) ausgewählter Prozess
(PRC) ausgeführt.
Die Kennung (Identifier) dieses Prozesses wird in einem Funktionsblock 15 in
der globalen Variablen (FinishedProcessNumber) abgespeichert. Anschließend wird
in einem Abfrageblock 16 überprüft, ob die Task A beendet ist.
Falls nein, wird zu dem Funktionsblock 14 verzweigt, wo
gemäß der Prozessliste
der nächste
Prozess der Task A ausgewählt
wird. Falls die Task A beendet ist, ist das Ablaufdiagramm im Funktionsblock 17 beendet.
-
In 5 ist
ein Ablaufdiagramm zur Abarbeitung der Task B des beschriebenen
Ausführungsbeispiels
dargestellt. Für
die den Funktionsblöcken 10 bis 17 aus 4 entsprechenden
Funktionsblöcke aus 5 wurden
die Bezugszeichen 20 bis 27 gewählt. Die
Ausführung
der Task B erfolgt entsprechend der beschriebenen Ausführung der
Task A.
-
Die
Ausführung
der Task A und der Task B kann selbstverständlich jederzeit, bzw. in dem
kooperativen Modus nach Beendigung des aktuellen Prozesses, durch
eine höherpriorisierte
Task unterbrochen werden. Dies geschieht bspw. mittels eines Interrupt-Aufrufs.
-
In 6 ist
ein erfindungsgemäßes Steuergerät zur Steuerung
von technischen Vorgängen
insbesondere in einem Kraftfahrzeug in seiner Gesamtheit mit dem
Bezugszeichen 30 bezeichnet. Das Steuergerät 30 weist
ein Rechengerät,
insbesondere einen Mikroprozessor 31 auf, auf dem ein Steuerprogramm
ablauffähig
ist. Das Steuergerät 30 umfasst des
Weiteren ein Speicherelement 32, auf dem das Steuerprogramm
gespeichert ist. Über
eine Datenverbindung 33, die bspw. als eine Bus-Leitung ausgebildet
ist, wird das von dem Mikroprozessor 31 auszuführende Steuerprogramm
oder Teile davon zu dem Mikroprozessor 31 übertragen
und dort abgearbeitet. Über
geeignete Schnittstellen werden dem Mikroprozessor 31 Messgrößen 34 zugeführt und
in dem Mikroprozessor 31 verarbeitet. Die Messgrößen 34 werden
bspw. in dem Speicherelement 32 in einer Messdatei gespeichert.
In dieser Messdatei können erfindungsgemäß auch Informationen über den Prozessablauf,
insbesondere die Reihenfolge der Abarbeitung der Prozesse, während der
Abarbeitung des Steuerprogramms gespeichert werden. Diese Informationen
und die Messgrößen 34 können nach
der Abarbeitung des Steuerprogramms zu Simulationszwecken herangezogen
werden.