DE10034869A1 - Verfahren zum automatischen Gewinnen einer funktionsfähigen Reihenfolge von Prozessen und Werkzeug hierzu - Google Patents
Verfahren zum automatischen Gewinnen einer funktionsfähigen Reihenfolge von Prozessen und Werkzeug hierzuInfo
- Publication number
- DE10034869A1 DE10034869A1 DE10034869A DE10034869A DE10034869A1 DE 10034869 A1 DE10034869 A1 DE 10034869A1 DE 10034869 A DE10034869 A DE 10034869A DE 10034869 A DE10034869 A DE 10034869A DE 10034869 A1 DE10034869 A1 DE 10034869A1
- Authority
- DE
- Germany
- Prior art keywords
- processes
- calculation cycle
- input value
- input
- attribute
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23293—Automated assembly of machine control software, reusable software components
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
- Control By Computers (AREA)
- Numerical Control (AREA)
Abstract
Zum automatischen Berechnen einer funktionsfähigen Reihenfolge von Prozessen, die aus wenigstens einem Eingabewert einen Ausgabewert bestimmen, werden eine Vielzahl von Prozessen (P1-P8), deren Eingänge mit wenigstens einem der Attribute DOLLAR A - "Eingangswert desselben Berechnungszyklus" (PRE), DOLLAR A - "Eingangswert des vorhergehenden Berechnungszyklus" (POST), DOLLAR A - "Eingangswert aus beliebigem Berechnungszyklus " (ANY) versehen sind, so angeordnet, dass als erster Prozess eines Berechnungszyklus ein Prozess bestimmt wird, der keinen Eingang mit dem Attribut "Eingangswerts desselben Berechnungszyklus" (PRE) aufweist, und in nachfolgenden analogen Schritten eine Menge von möglichen Reihenfolgen bestimmt.
Description
Die Erfindung betrifft ein Verfahren zum automatischen Gewin
nen einer funktionsfähigen Reihenfolge von Prozessen, ein
Verfahren zum Überprüfen einer Reihenfolge von abzuarbeiten
den Prozessen auf Inkonsistenzen im Datenfluß und ein Werk
zeug zum Anordnen oder Prüfen einer Reihenfolge von abzuar
beitenden Prozessen, insbesondere einer Sequenz von Berech
nungsfunktionen einer Betriebssystemsoftware, beispielsweise
einer Betriebssystemsoftware eines elektronischen Steuerge
räts für ein Kraftfahrzeug.
Aus der Veröffentlichung "Kürzere Entwicklungszeiten mit au
tomatischer Codegenerierung" in Automotive Engineering Part
ners 5/99, Vieweg GmbH, Verlag Friedrich & Sohn Verlagsge
sellschaft mbH in den GWV Fachverlagen GmbH, ist ein Werkzeug
zur automatischen Code-Generierung für Betriebssystemsoftware
von Kraftfahrzeug-Steuergeräten bekannt sowie ein Testwerk
zeug zum Überprüfen der Funktionen eines Steuergeräts. Das
Werkzeug zur automatischen Codegenerierung übersetzt automa
tisch die technischen Vorgaben von Entwicklungsingenieuren,
die in Form einer physikalischen Beschreibung einer Regelung
vorliegen, in den für ein Steuergerät eines Kraftfahrzeugs
lesbaren Code. Das Testwerkzeug spricht das Steuergerät über
eine Schnittstelle an und erzeugt physikalisch korrekte Sig
nale, die im realen Betrieb eines Kraftfahrzeugs erzeugt wür
den. Es kann daher das Systemverhalten des Steuergeräts, und
genauer dessen Betriebssystemsoftware, in einer Simulation
des geschlossenen Regelkreises frühzeitig im Labor untersucht
werden.
Das Werkzeug ist aber nicht in der Lage, selbständig die Rei
henfolge von Prozessen einer Regelung zu bestimmen, sondern
dient im wesentlichen nur zur Übersetzung von menschlichen
Vorgaben in Softwarecode. Ferner ist es häufig wünschenswert,
aus vorhandenen Bibliotheken bereits getestete Reihenfolgen
von Prozessen oder einzelne Prozesse für eine Neuentwicklung
zu übernehmen und neue Prozesse an einer geeigneten Stelle
der vorhandenen Reihenfolge einzufügen beziehungsweise be
kannte, geprüfte Prozesse mit neu zu erstellenden Prozessen
zu einer lauffähigen Sequenz zu verbinden.
Es ist ein Ziel der Erfindung, ein Verfahren zum automati
schen Berechnen einer funktionsfähigen Reihenfolge von Pro
zessen, ein Verfahren zum Überprüfen einer Reihenfolge von
abzuarbeitenden Prozessen und ein Werkzeug bereitzustellen,
die in der Lage sind eine Vielzahl von Prozessen so zu ord
nen, dass eine zielgerichtete Abarbeitung aller Prozesse er
folgen kann, die dem gewünschten Datenfluß genügt.
Dieses Ziel wird mit den Verfahren und einem Werkzeug er
reicht, wie sie in den unabhängigen Ansprüchen definiert
sind. Vorteilhafte Ausführungsformen der Erfindung sind Ge
genstand der Unteransprüche.
Durch die Zuordnung eines der Attribute "Eingangswert des
selben Berechnungszyklus", "Eingangswert des vorhergehenden
Berechnungszyklus " oder "Eingangswert aus beliebigem Berech
nungszyklus " zu jedem Dateneingang der zu ordnenden Prozesse
ist es möglich, maschinell eine funktionsfähige, gültige Rei
henfolge oder Sequenz zu schaffen, die keine Inkonsistenzen
im Datenfluß aufweist. Eine Inkonsistenz bedeutet, dass die
den Eingängen der Prozesse zugeordneten Attribute logisch
nicht erfüllt werden können, da sie sich gegenseitig aus
schließen. Beispielsweise können die Eingänge zweier Prozes
se, die gegenseitig voneinander abhängen, nicht jeweils mit
dem Attribut "PRE" versehen sein, da sonst die widersprüchli
che Bedingung erfüllt sein müsste, dass jeder der beiden Pro
zesse vor dem anderen Prozess berechnet werden müsste. In der
Regel gibt es aber eine Vielzahl von "lauffähigen" Reihenfol
gen.
Aus der Menge von lauffähigen Reihenfolgen von Prozessen kann
diejenige bestimmt werden, die die geringste Laufzeit auf
weist oder diejenige, bei der die Prozesse, deren Ausgangs
werte in nachfolgenden Prozessen als Eingangswerte verwendet
werden, am dichtesten aufeinander folgen (Optimierung).
Außerdem können innerhalb eines Berechnungszyklus Prozesse
identifiziert werden, die keine Abhängigkeiten voneinander
aufweisen. Solche voneinander unabhängigen Prozesse können in
Recheneinheiten mit Multitasking-Betriebssystemen, insbeson
dere in Mehrprozessorsystemen, parallel abgearbeitet werden.
Eine Inkonsistenz in einer Reihenfolge von Prozessen kann
beispielsweise folgendermaßen ermittelt werden:
Bestimmung eines Prozesses, der keinen Eingang
mit dem Attribut "Eingangswert des selben Be
rechnungszyklus" hat (bezogen auf die aktuelle
Menge der Prozesse).
Entfernen dieses Prozesses aus der Menge der
Prozesse.
Wiederholen der Schritte 1 und 2 bezüglich der
restlichen Menge von Prozessen.
Lässt sich die Menge der Prozesse durch obigen Vorgang nicht
reduzieren, bis kein Prozess übrig ist, ist eine Inkonsistenz
gefunden.
Es ist daher möglich, die Reihenfolge der Prozesse als lauf
fähig zu bestätigen, ohne sie in einem realen System mit ei
ner aufwendigen Simulation des gesamten Systemverhaltens tes
ten zu müssen.
Die vorliegende Erfindung kann beispielsweise zum Entwerfen
von Betriebssystemsoftware für Computer, von komplexen Anwen
dungsprogrammen, von Ablaufsteuerungen für eine industriellen
Fertigung und insbesondere zum Bestimmen von Steuerungen für
Steuergeräte in der Kraftfahrzeugtechnik eingesetzt werden,
beispielsweise von Motor- und Getriebesteuergeräten.
Weitere Merkmale, Vorteile und Anwendungsmöglichkeiten der
Erfindung ergeben sich aus der nachfolgenden Beschreibung von
Ausführungsbeispielen in Verbindung mit den Zeichnungen. Es
zeigen:
Fig. 1 ein Werkzeug zum Anordnen oder Prüfen,
Fig. 2 die Verknüpfung von Prozessen innerhalb einer
Task,
Fig. 3 die Prozesse einer Drehmoment-Regelung einer Mo
torsteuerung,
Fig. 4 die Darstellung der Verknüpfung der Prozesse von
Fig. 3 in Form eines Graphen,
Fig. 5-8 die Auflösung des Graphen von Fig. 4,
Fig. 9 die Zuordnung der Prozesse der Fig. 3 zu sequen
ziell aufeinander folgenden Prozessgruppen, und
Fig. 10-13 die Überprüfung einer Reihenfolge von Prozessen,
die eine Inkonsistenz aufweisen.
Fig. 1 zeigt ein Werkzeug zum Anordnen und/oder Prüfen einer
Reihenfolge von abzuarbeitenden Prozessen. Dieses weist eine
Recheneinheit 1 mit einem Mikroprozessor MP und einem Ar
beitsspeicher RAM auf. Mit der Recheneinheit 1 sind als Ein
gabemittel ein Laufwerk 2 für ein Speichermedium 21, bei dem
es sich um eine beschreibbare CD (Compact Disk) handelt, und
eine Tastatur 3 vorgesehen.
Auf dem Speichermedium 21 sind Reihenfolgen von Prozessen für
die Ausführung von Aufgaben (Tasks) einer Betriebssystem-
Software oder einer Anwendungssoftware und einzelne Prozesse
gespeichert. Es handelt sich also um eine Bibliothek mit be
reits vorhandenen Prozessen, die für die Erstellung von neuen
Programmen benutzt werden kann.
Mit der Tastatur 3 können ebenfalls Prozesse in die Rechen
einheit 1 eingegeben werden.
Zur Darstellung von Berechnungsergebnissen der Recheneinheit
1 dient ein Ausgabemittel, bei dem es sich um eine Anzeige
einrichtung 4 handelt.
Fig. 2 veranschaulicht die miteinander verknüpften Prozesse
P1-P3 eines Berechnungszyklus n, die eine Task oder Aufgabe
eines Betriebssystems einer Recheneinheit oder eines Anwen
dungsprogramms abarbeiten. Die Prozesse P1-P3 sind Prozesse,
die regelmäßig wiederkehrend abgearbeitet werden. Der Prozess
4 ist ein asynchroner Prozess, der bei bestimmten Ereignissen
aufgerufen wird, Daten für Prozesse innerhalb des Berech
nungszyklus liefert aber nicht zum betrachteten Berechnungs
zyklus gehört.
Eine Task ist eine geordnete Reihenfolge oder Sequenz von
Prozessen, die vom Betriebssystem oder einem Programm aufge
rufen wird. Der Aufruf kann zyklisch in regelmäßigen Inter
vallen oder asynchron aufgrund von bestimmten Ereignissen er
folgen. Ein Prozess ist eine Gruppe von Anweisungen, die als
Einheit eine bestimmte Aufgabe erfüllen. Prozesse konsumieren
Eingangsdaten und erzeugen Ausgabedaten. Ein Prozess ist eine
Einheit von Anweisungen, die durch Interrupts unterbrochen
werden kann, davon abgesehen aber als Einheit abgearbeitet
wird. Aufgrund der Abhängigkeit der erzeugten von den konsu
mierten Daten ist die Sequenz oder Reihenfolge der Prozesse
für das Berechnungsergebnis entscheidend.
Die Sequenz der Prozesse P1-P3 ist implizit durch die Verwen
dung von zusätzlichen Attributen für den Typ eines Eingangs
oder Eingangsports I definiert. Das Attribut bzw. die Attri
bute eines Eingangs I legt bzw. legen die relative Reihenfol
ge eines Prozesses zu den anderen Prozessen des selben Be
rechnungszyklus n fest. Es gibt drei verschiedene Typen von
Eingangsports:
- - Eingangswert des selben Berechnungszyklus: PRE,
- - Eingangswert des vorherigen Berechnungszyklus: POST,
- - Eingangswert aus beliebigem Berechnungszyklus: ANY.
Im folgenden werden die Typen der Eingänge oder Eingangsports
regelmäßig durch ihre Bezugszeichen PRE, POST und ANY be
zeichnet.
Ein Eingang I des Typs PRE benötigt einen Eingangswert, der
innerhalb des selben Berechnungszyklus bereits zur Verfügung
gestellt worden ist, also vorhergehend erzeugt worden ist.
Der Prozess, dessen Ausgang beziehungsweise Ausgabeport O den
Wert für den mit dem Attribut PRE versehenen Eingang I lie
fert, muss also in der Reihenfolge vorher berechnet worden
sein.
Prozess P3 weist einen Eingang I des Typs PRE auf. Dieser
Eingang I konsumiert einen Wert, der vom Ausgang O des Pro
zesses P2 zur Verfügung gestellt wird. Das Werkzeug zum An
ordnen oder Prüfen einer Reihenfolge von Prozessen erkennt
daher, dass Prozess P2 vor Prozess P3 in die Sequenz einge
reiht werden muss.
Bei einem Eingang I des Typs POST muß der bereitgestellte
Wert erst später in der Sequenz erzeugt werden, so dass beim
Abarbeiten des Berechnungszyklus n ein alter, im vorhergehen
den Berechnungszyklus n - 1 berechneter Eingabewert zur Verfü
gung steht (dies entspricht einem z-1-Glied in der Regelungs
technik). Das Werkzeug zum Anordnen oder Prüfen wird daher
Prozess P3, dessen Ausgabewert von einem Eingang I des Typs
POST vom Prozess P1 benötigt wird, nach Prozess P1 im selben
Berechnungszyklus n anordnen.
Bei einem Eingang vom Typ ANY spielt es keine Rolle, ob der
konsumierte Wert im selben Berechnungszyklus n berechnet wur
de oder im vorhergehenden Berechnungszyklus n - 1 berechnet
wurde. Die Belegung eines Eingangs I mit dem Attribut ANY ist
daher lediglich optional. Häufig erhält ein Eingang vom Typ
ANY seinen Eingangswert von außerhalb der Task. In Fig. 2
ist der Prozess P4 solch ein externer Prozess. Eingangsports,
die ihre Daten von externen Prozessen erhalten, haben grund
sätzlich das Attribut ANY.
Aufgrund der vergebenen Attribute für die Eingänge I der Pro
zesse P1-P3 können Ungleichungen aufgestellt werden. Auf die
se Weise wird jeweils eine Beziehung zwischen einem Prozess
hergestellt, dessen Ausgangsport O einen Wert bereitstellt,
und einem Prozess, dessen Eingangsport I, diesen bereitge
stellten Wert konsumiert.
Liefert ein Prozess einen Eingangswert für einen Eingang I
vom Typ PRE, so wird dieser Prozess kleiner als der Prozess
mit diesem Eingang vom Typ PRE gesetzt. Der Prozess der in
einer Relation als "kleiner" gesetzt ist, muss vor dem ande
ren Prozess der Relation ausgeführt werden. Ist der Eingang I
dagegen vom Typ POST, so wird der Prozess, der den Eingangs
wert liefert, größer als der Prozess mit diesem Eingang vom
Typ POST gesetzt. Ist der Eingang vom Typ ANY, so kann der
den Eingangswert liefernde Prozess größer oder kleiner als
der den Eingangswert empfangende Prozess gesetzt werden. Der
Eingang vom Typ ANY kann schließlich von einem im selben oder
nachfolgenden Berechnungszyklus angeordneten Prozess bedient
werden. Die Anordnung der beiden Prozesse zueinander ist also
beliebig. Hierdurch ergeben sich so viele Ungleichungen, wie
es im Berechnungszyklus Eingänge mit dem Attribut PRE oder
POST gibt.
Für dieses Beispiel ergeben sich daher folgende Ungleichun
gen:
P3 < P1 oder P1 < P3, und
P2 < P3
P3 < P1 oder P1 < P3, und
P2 < P3
Als erster Prozess einer Berechnungsreihenfolge oder Sequenz
kommt nur ein Prozess in Frage, der keinen Eingang vom Typ
PRE aufweist. Als letzter Prozess einer Sequenz kommt nur ein
Prozess in Frage, der keinen Eingang vom Typ POST aufweist.
Danach kommen die Prozesse P1 und P2 als erste Prozesse der
Sequenz in Frage. Prozess P3 darf erst nach den Prozessen P1
und P2 berechnet werden. Die Prozesse P1 und P2 können in be
liebiger Reihenfolge oder parallel abgearbeitet werden.
Fig. 3 zeigt zur Veranschaulichung eine vereinfachte Task
mit einer Berechnungsreihenfolge oder Sequenz von Prozessen
P1-P8 einer Drehmoment-Regelung eines Betriebssystems eines
Motorsteuergeräts eines Kraftfahrzeugs. Typischerweise weist
eine derartige Task allerdings eine Sequenz von 100 bis 200
Prozessen auf.
Die Prozesse sind zum Teil aus einer Bibliothek entnommen.
Einige Prozesse wurden neu für die Drehmoment-Regelung ent
worfen. Die Grafik von Fig. 3 steht einem Entwickler, der
eine gültige Sequenz von Prozessen finden will, zur Verfü
gung, sie bestimmt jedoch noch keine Prozessreihenfolge.
Prozess P1 berechnet für eine Benutzereinstellung einer Ge
schwindigkeitsregelanlage (Tempomat) die Differenz zwischen
der tatsächlichen Geschwindigkeit und der von einem Fahrer
eingestellten Geschwindigkeit und gibt diese Differenz an
Prozess P3 aus. Prozess P2 berechnet eine durch eine Gaspe
dalstellung mitgeteilte Leistungsanforderung und gibt diese
ebenfalls an Prozess P3 aus. Prozess P3 koordiniert eventuell
vorliegende Anforderungen der Prozesse P1 und P2 und berech
net hierfür eine Drehmomentanforderung für die Prozesse P4
und P6.
Prozess P4 bestimmt eine langsame Drehmomentänderung und gibt
eine entsprechende Anforderung an Prozess PS aus. Prozess PS
berechnet einen Sollwert für eine Drosselklappenstellung und
gibt diesen an ein Stellglied aus.
Prozess P6 berechnet eine schnelle Drehmomentänderung und
gibt eine entsprechende Anforderung an Prozess P7 aus, der
einen Sollwert für einen Zündzeitpunkt bestimmt und an die
Zündung ausgibt.
Prozess P8 enthält ein Referenzsystem für die Effektivität
einer Drehmomentänderung durch eine Zündzeitpunktverschie
bung. Die Prozesse P4 und P6 entscheiden anhand ihrer Kopp
lung und der Effektivität, wie der Aufbau eines bestimmten
Drehmoments auf die zwei möglichen Stellgrößen, Drosselklappe
und Zündwinkel, verteilt werden muss.
Die Task wird zyklisch, z. B. alle 10 ms, vollständig berech
net. Alle Eingangswerte der Prozesse P3 bis P8, mit Ausnahme
der mit "eff" gekennzeichneten Eingangswerte beziehungsweise
Eingänge, müssen im selben Berechnungszyklus vorher berechnet
worden sein. Sie müssen also das Attribut "Eingangswert des
selben Berechnungszyklus" PRE erhalten. Die mit "eff" be
zeichneten Einganswerte müssen im vorhergehenden Berechnungs
zyklus berechnet worden sein, das heißt, bei der vorangegan
genen Ausführung der Task. Dementsprechend erhalten diese
Eingangswerte beziehungsweise die entsprechenden Eingänge das
Attribut "Eingangswert des vorhergehenden Berechnungszyklus"
POST.
Für jeden Eingang der Prozesse P1-P8 kann also angegeben wer
den, ob ein aktuell im selben Berechnungszyklus berechneter
Wert oder ein im vorhergehenden Berechnungszyklus bei der vo
rangehenden Abarbeitung der Task ermittelter Wert benutzt
werden muss. Letzteres entspricht einem z-1-Glied aus der Re
gelungstechnik. Die Eingangswerte der Prozesse P1 und P2 sind
nicht definiert. Sie können also das Attribut "Eingangswert
aus beliebigem Berechnungszyklus" ANY erhalten.
Aufgrund dieser Prämissen ergeben sich für die Prozesse P1-P8
folgende Relationen:
P1 < P3
P2 < P3
P3 < P4
P3 < P6
P4 < P5
P6 < P4
P4 < P8
P6 < P7
P6 < P8
P7 < P8
P1 < P3
P2 < P3
P3 < P4
P3 < P6
P4 < P5
P6 < P4
P4 < P8
P6 < P7
P6 < P8
P7 < P8
Als erste Prozesse der Sequenz kommen lediglich Prozesse in
Frage, die keinen im selben Berechnungszyklus berechneten
Eingangswert benötigen. Der erste Prozess darf also keinen
mit dem Attribut PRE belegten Eingang aufweisen. Der letzte
Prozess der Sequenz darf keinen mit dem Attribut POST beleg
ten Eingang aufweisen. Alle Berechnungsreihenfolgen die die
sen Bedingungen und den aufgestellten Ungleichungen genügen,
sind gültige oder lauffähige Sequenzen.
Das Ungleichungssystem kann beispielsweise durch Anwendung
der Graphentheorie computergestützt gelöst werden. Ein Graph
wird aufgebaut, indem die Prozesse als Knoten und jede Un
gleichung als gerichtete Kante des Graphen eingesetzt werden.
Eine gerichtete Kante ist ein Verweis von einem Prozess auf
einen anderen Prozess. Die gerichtete Kante wird jeweils von
dem Prozess bzw. Knoten, der in der entsprechenden Unglei
chung als kleiner bestimmt wurde, auf den Prozess bzw. Knoten
gerichtet, der in der selben Ungleichung als größer bestimmt
wurde.
Anders ausgedrückt wird jeweils zu einem Prozess, dessen Ein
gang mit dem Attribut PRE versehen ist, ein Verweis von dem
Prozess gesetzt, der den Eingangswert liefert. Von einem Pro
zess, dessen Eingangswert mit dem Attribut POST versehen ist,
wird ein Verweis auf den Prozess gesetzt, der den Eingangs
wert liefert.
In Fig. 4 ist die Umsetzung der oben aufgestellten Unglei
chungen in einen Graphen dargestellt. In einem ersten Bear
beitungsschritt oder einer ersten Iteration werden alle Kno
ten (Prozesse) aus der Menge der zu überprüfenden Knoten
(Prozessen) entfernt, einschließlich der zugehörigen Verweise
E (Kanten), zu denen keine Verweise E (Kanten) des Graphen
zeigen. Dies gilt für die Prozesse P1 und P2, die keinen Ein
gang mit dem Attribut PRE aufweisen. Diese Prozesse werden
einer ersten Gruppe von Prozessen des Berechnungszyklus zuge
ordnet.
Die Prozesse innerhalb einer Gruppe von Prozessen können in
beliebiger Reihenfolge oder parallel abgearbeitet werden.
Durch rekursive Abarbeitung des Algorithmus wird jeweils eine
neue Gruppe von Prozessen gebildet, die bei der Programmaus
führung nach der vorhergehenden Gruppe von Prozessen abgear
beitet werden muss. Es werden also die nach jedem Schritt
verbleibenden Prozesse in weiteren aufeinanderfolgenden
Schritten jeweils auf Prozesse untersucht, auf die kein Ver
weis E gesetzt ist. Die in jedem Schritt gefundenen Prozesse
werden entfernt und aufeinander folgenden Gruppen von Prozes
sen zugeordnet. Diese Gruppen können einen oder mehrere Pro
zesse beinhalten. Die Reihenfolge der Prozesse innerhalb ei
ner Gruppe ist beliebig, da diese Prozesse voneinander unab
hängig sind. Es müssen jedoch alle Prozesse einer Gruppe ab
gearbeitet sein, bevor ein Prozess der nächsten Gruppe ausge
führt wird.
In Fig. 5 ist der um die Prozesse P1 und P2 verminderte
Graph gezeigt. Auch in diesem Teilgraphen muss mindestens ein
Knoten (Prozess) existieren, zu dem keine Kante zeigt. Alle
Knoten, zu denen keine Kante zeigt, müssen wiederum entfernt
werden. Existiert kein Knoten (Prozess) der diese Bedingung
erfüllt, ist eine nicht auflösbare Schleife und damit eine
Inkonsistenz im Datenfluss entdeckt.
In einem zweiten Schritt wird folglich der Prozess P3 ent
fernt und einer zweiten Gruppe von Prozessen zugeordnet.
Das Resultat ist in Fig. 6 dargestellt.
In einem dritten Schritt wird nun Prozess 6 entfernt, zu dem
keine Kante zeigt.
Der so entstandene restliche Graph ist in Fig. 7 darge
stellt. Prozess 6 wird einer dritten Gruppe von Prozessen zu
geordnet.
In einem vierten Schritt werden die Prozesse P4 und P7 ent
fernt und einer vierten Gruppe von Prozessen zugeordnet.
Damit verbleiben lediglich die Prozesse P5 und P8, die in
Fig. 8 dargestellt sind. Auf diese verbliebene Prozesse zeigt
keine Kante, so dass beide Prozesse einer fünften und letzten
Gruppe von Prozessen zugeordnet werden.
In der Reihenfolge der Schritte oder der Gruppen von Prozes
sen ist die Reihenfolge gefunden, in der die Prozesse abgear
beitet werden müssen. Die in einem Schritt abgetrennten Pro
zesse müssen vor den Prozessen ausgeführt werden, die im
nächsten Schritt abgetrennt wurden.
Die Zuordnung der einzelnen Prozesse P1-P8 zu Gruppen von
Prozessen G1-G5 ist in Fig. 9 veranschaulicht.
Da in den Gruppen jeweils mehr als ein Prozess vorhanden sein
kann, kann eine Vielzahl von unterschiedlichen, ausführbaren
Sequenzen gebildet werden. Aus dieser Vielzahl von gültigen
Sequenzen kann beispielsweise diejenige bestimmt werden, die
die kürzeste Laufzeit beansprucht oder diejenige, bei der je
weils die Berechnung eines Ausgabewerts und dessen Verwendung
als Eingangswert zeitlich am dichtesten aufeinander folgen
(Optimierung).
Fig. 10 zeigt einen Graphen, der eine nicht auflösbare
Schleife enthält. Der Graph repräsentiert nicht die Drehmo
ment-Regelung von Fig. 3.
Gemäß den oben aufgestellten Berechnungsschritten wurde ver
sucht den Graphen mit dem Werkzeug zum Anordnen oder Prüfen
in einzelne Gruppen von Prozessen zu zerlegen. Das Ergebnis
der Bearbeitungsschritte 1 bis 3 ist in den Fig. 11 bis 13
dargestellt.
In Fig. 13, die das Ergebnis des dritten Schritts darstellt,
konnte schließlich kein Prozess oder Knoten gefunden werden,
zu dem keine Kante des Graphen zeigt. Es gibt also keinen
Prozess, der keinen Eingang mit dem Attribut PRE hat. Die
verbleibenden Prozesse können somit keiner Gruppe zugeordnet
werden. Es liegt eine Schleife vor, die aufgelöst werden
muss, um eine ausführbare Task zu erhalten. Die verbleibenden
Prozesse werden auf eine Anzeigeeinrichtung oder einen Dru
cker ausgegeben.
Claims (8)
1. Verfahren zum automatischen Gewinnen einer funktionsfähi
gen Reihenfolge von Prozessen, die aus wenigstens einem Ein
gabewert einen Ausgabewert bestimmen, mit den Schritten:
- - eine Vielzahl von Prozessen (P1-P8), deren Eingänge mit wenigstens einem der Attribute
- - "Eingangswert des selben. Berechnungszyklus" (PRE),
- - "Eingangswert des vorhergehenden Berechnungszyklus" (POST),
- - "Eingangswert aus beliebigem Berechnungszyklus" (ANY) versehen sind, werden so angeordnet, dass als erster Pro zess eines Berechnungszyklus (n) ein Prozess bestimmt wird, der keinen Eingang mit dem Attribut "Eingangswert des sel ben Berechnungszyklus" (PRE) aufweist,
- - die gefundene Reihenfolge der Prozesse (P1-P8) wird aus gegeben.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass
die einzelnen Prozesse (P1-P8) derart miteinander in Bezie
hung gesetzt werden, dass zu einem Prozess, dessen Eingang
mit dem Attribut "Eingangswerts des selben Berechnungszyklus"
(PRE) versehen ist, ein Verweis (E) von dem Prozess gesetzt
wird, der den Eingangswert liefert, und dass von einem Pro
zess, dessen Eingang mit dem Attribut "Eingangswert des vor
hergehenden Berechnungszyklus" (POST) versehen ist, ein Ver
weis auf den Prozess gesetzt wird, der den Eingangswert lie
fert.
3. Verfahren nach dem vorhergehenden Anspruch, dadurch ge
kennzeichnet, dass für die Berechnung der Reihenfolge der
Prozesse (P1-P8) in einem ersten Schritt diejenigen Prozes
se entfernt und einer ersten Gruppe von Prozessen (G1) zuge
ordnet werden, auf die kein Verweis (E) gesetzt ist.
4. Verfahren nach dem vorhergehenden Anspruch, dadurch ge
kennzeichnet, dass die verbleibenden Prozesse in weiteren
Schritten jeweils auf Prozesse untersucht werden, auf die
kein Verweis (E) gesetzt ist, und dass die in jedem Schritt
gefundenen Prozesse aus der Menge der zu untersuchenden Pro
zesse jeweils entfernt und aufeinanderfolgenden Gruppen von
Prozessen (G1-G5) zugeordnet werden.
5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, dass aus einer Lösungsmenge mit berechneten
gültigen Reihenfolgen, diejenige Reihenfolge ausgewählt wird,
bei der jeweils die Berechnung eines Ausgabewerts und dessen
Verwendung als Eingangswert zeitlich am dichtesten aufeinan
der folgen.
6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, dass als letzter Prozess (P1-P8) eines Be
rechnungszyklus (n) ein Prozess ausgewählt wird, der keinen
Eingang mit dem Attribut "Eingangswert des vorhergehenden Be
rechnungszyklus" (POST) aufweist.
7. Verfahren zum Überprüfen einer Reihenfolge von abzuarbei
tenden Prozessen auf Schleifen im Datenfluß, mit den Schrit
ten:
- - eine Vielzahl von Prozessen (P1-P8), deren Eingänge mit wenigstens einem der Attribute
- - "Eingangswert des selben Berechnungszyklus" (PRE),
- - "Eingangswert des vorhergehenden Berechnungszyklus" (POST),
- - "Eingangswert aus beliebigem Berechnungszyklus" (ANY) versehen sind, werden so angeordnet, dass in einem ersten Schritt als erster Prozess ein Prozess (P1; P2) bestimmt wird, der keinen Eingang mit dem Attribut "Eingangswert des selben Berechnungszyklus" (PRE) aufweist,
- - der erste Prozess (P1; P2) wird einer ersten Gruppe von Prozessen (G1) zugeordnet und aus der Menge der zu untersu chenden Prozesse (P3-P8) entfernt,
- - die verbleibenden Prozesse werden in weiteren Schritten je weils auf Prozesse untersucht, auf die kein Verweis (E) ge setzt ist,
- - die in jedem Schritt gefundenen Prozesse werden jeweils aus der Menge der zu untersuchenden Prozesse entfernt und auf einanderfolgenden Gruppen (G1-G5) zugeordnet, bis in einem Schritt kein Prozess (P1-P8) identifiziert werden kann, der keinen Eingang mit dem Attribut "Eingangswert des selben Berechnungszyklus" (PRE) hat,
- - die verbleibenden Prozesse (P1-P8) werden identifiziert und ausgegeben.
8. Werkzeug zum Anordnen oder Prüfen einer Reihenfolge von
abzuarbeitenden Prozessen (P1-P8), das aufweist:
- - Eingabemittel (2, 21, 3) zur Eingabe einer Vielzahl von Prozessen (P1-P8), deren Eingänge jeweils mit wenigstens einem der Attribute
- - "Eingangswerts des selben Berechnungszyklus" (PRE),
- - "Eingangswert des vorhergehenden Berechnungszyklus" (POST),
- - "Eingangswert aus beliebigem Berechnungszyklus" (ANY) versehen sind,
- - wenigstens einen Mikroprozessor (MP) zur Berechnung einer lauffähigen Reihenfolge von Prozesse (P1-P8) nach einem Verfahren gemäß einem der vorhergehenden Verfahrensansprü che,
- - ein Ausgabemittel (4) zum Ausgeben der gefundenen Reihen folge.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10034869A DE10034869A1 (de) | 2000-07-18 | 2000-07-18 | Verfahren zum automatischen Gewinnen einer funktionsfähigen Reihenfolge von Prozessen und Werkzeug hierzu |
PCT/DE2001/002612 WO2002006950A2 (de) | 2000-07-18 | 2001-07-12 | Verfahren zum automatischen gewinnen einer funktionsfähigen reihenfolge von prozessen und werkzeug hierzu |
EP01960118A EP1402362A2 (de) | 2000-07-18 | 2001-07-12 | Verfahren zum automatischen gewinnen einer funktionsfähigen reihenfolge von prozessen und werkzeug hierzu |
JP2002512797A JP2004521402A (ja) | 2000-07-18 | 2001-07-12 | プロセスの機能可能な順序を自動的に得る方法およびこのためのツール |
US10/345,627 US7231261B2 (en) | 2000-07-18 | 2003-01-16 | Method for automatically obtaining an operational sequence of processes and a tool for performing such method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10034869A DE10034869A1 (de) | 2000-07-18 | 2000-07-18 | Verfahren zum automatischen Gewinnen einer funktionsfähigen Reihenfolge von Prozessen und Werkzeug hierzu |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10034869A1 true DE10034869A1 (de) | 2002-02-07 |
Family
ID=7649299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10034869A Withdrawn DE10034869A1 (de) | 2000-07-18 | 2000-07-18 | Verfahren zum automatischen Gewinnen einer funktionsfähigen Reihenfolge von Prozessen und Werkzeug hierzu |
Country Status (5)
Country | Link |
---|---|
US (1) | US7231261B2 (de) |
EP (1) | EP1402362A2 (de) |
JP (1) | JP2004521402A (de) |
DE (1) | DE10034869A1 (de) |
WO (1) | WO2002006950A2 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10310422A1 (de) * | 2003-03-11 | 2004-09-23 | Zf Friedrichshafen Ag | Verfahren zur Vernetzung von Regelungs- und/oder Steuerungsfunktionen für ein Kraftfahrzeug |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10034869A1 (de) * | 2000-07-18 | 2002-02-07 | Siemens Ag | Verfahren zum automatischen Gewinnen einer funktionsfähigen Reihenfolge von Prozessen und Werkzeug hierzu |
JP7054033B2 (ja) * | 2020-03-31 | 2022-04-13 | ダイキン工業株式会社 | プロセス実行順序決定プログラム及びプロセス実行順序決定方法 |
US11346538B1 (en) * | 2021-05-17 | 2022-05-31 | Sikai Chen | LED lighting module with electrical power and data connections |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4977529A (en) * | 1973-02-23 | 1990-12-11 | Westinghouse Electric Corp. | Training simulator for a nuclear power plant |
JPS5621242A (en) * | 1979-07-28 | 1981-02-27 | Fujitsu Ltd | Pipeline control method for computer operation |
EP0347162A3 (de) * | 1988-06-14 | 1990-09-12 | Tektronix, Inc. | Einrichtung und Verfahren zum Steuern von Datenflussprozessen durch erzeugte Befehlsfolgen |
US4975947A (en) * | 1989-02-22 | 1990-12-04 | Texas Instruments Incorporated | System to share the DSP computation resources |
US5077677A (en) * | 1989-06-12 | 1991-12-31 | Westinghouse Electric Corp. | Probabilistic inference gate |
US5182794A (en) * | 1990-07-12 | 1993-01-26 | Allen-Bradley Company, Inc. | Recurrent neural networks teaching system |
EP0746078B1 (de) * | 1995-05-31 | 2002-09-18 | Kabushiki Kaisha Meidensha | Verfahren und Vorrichtung zum Detektieren des Islanding-Betriebes eines verteilten Generators |
EP0770964A1 (de) * | 1995-10-26 | 1997-05-02 | Matsushita Electric Industrial Co., Ltd. | Dateiensystem |
US6453446B1 (en) * | 1997-12-24 | 2002-09-17 | Magma Design Automation, Inc. | Timing closure methodology |
EP0953898A3 (de) * | 1998-04-28 | 2003-03-26 | Matsushita Electric Industrial Co., Ltd. | Prozessor zur Ausführung von Befehlen aus dem Speicher mittels eines Programmzählers und Kompiler, Assembler, Programmverbinder und Fehlerbeseitiger für einen solchen Prozessor |
US7036106B1 (en) * | 2000-02-17 | 2006-04-25 | Tensilica, Inc. | Automated processor generation system for designing a configurable processor and method for the same |
DE10011890C2 (de) * | 2000-03-03 | 2003-04-24 | Jena Optronik Gmbh | Verfahren zur Bestimmung der Zustandsgrössen eines sich bewegenden starren Körpers im Raum |
DE10034869A1 (de) * | 2000-07-18 | 2002-02-07 | Siemens Ag | Verfahren zum automatischen Gewinnen einer funktionsfähigen Reihenfolge von Prozessen und Werkzeug hierzu |
US6757445B1 (en) * | 2000-10-04 | 2004-06-29 | Pixxures, Inc. | Method and apparatus for producing digital orthophotos using sparse stereo configurations and external models |
-
2000
- 2000-07-18 DE DE10034869A patent/DE10034869A1/de not_active Withdrawn
-
2001
- 2001-07-12 EP EP01960118A patent/EP1402362A2/de not_active Withdrawn
- 2001-07-12 JP JP2002512797A patent/JP2004521402A/ja not_active Withdrawn
- 2001-07-12 WO PCT/DE2001/002612 patent/WO2002006950A2/de active Application Filing
-
2003
- 2003-01-16 US US10/345,627 patent/US7231261B2/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10310422A1 (de) * | 2003-03-11 | 2004-09-23 | Zf Friedrichshafen Ag | Verfahren zur Vernetzung von Regelungs- und/oder Steuerungsfunktionen für ein Kraftfahrzeug |
US7188013B2 (en) | 2003-03-11 | 2007-03-06 | Zf Friedrichshafen Ag | Method for cross-linking of regulation-and/or control functions for a motor vehicle |
Also Published As
Publication number | Publication date |
---|---|
US20040205756A1 (en) | 2004-10-14 |
US7231261B2 (en) | 2007-06-12 |
WO2002006950A3 (de) | 2003-12-31 |
JP2004521402A (ja) | 2004-07-15 |
EP1402362A2 (de) | 2004-03-31 |
WO2002006950A2 (de) | 2002-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1989601B1 (de) | System und verfahren zur analyse eines fertigungsprozesses | |
DE19717716C5 (de) | Verfahren zur automatischen Diagnose technischer Systeme | |
EP0852759B1 (de) | Entwurfsverfahren für die anlagentechnik und rechnergestütztes projektierungssystem zur verwendung bei diesem verfahren | |
EP2999998B1 (de) | Methode zur ermittlung eines modells einer ausgangsgrösse eines technischen systems | |
WO2007020231A2 (de) | System für den maschinengestützten entwurf technischer vorrichtungen | |
EP3446185B1 (de) | Verfahren und vorrichtung zur gestaltung eines produktionsprozesses zum produzieren eines aus mehreren teilprodukten zusammengesetzten produkts | |
WO2021058223A1 (de) | Verfahren zur effizienten, simulativen applikation automatisierter fahrfunktionen | |
DE102020104952A1 (de) | Verwaltungsvorrichtung und verwaltungssystem | |
DE69224764T2 (de) | Verfahren und Vorrichtung zur Beurteilung von automatischen Herstellungsmöglichkeiten | |
DE102019134053A1 (de) | Verfahren zur kontinuierlichen Absicherung im Fahrversuch applizierter automatisierter Fahrfunktionen | |
EP1830235A2 (de) | Auslegung von Werkzeugen und Prozessen für die Umformtechnik | |
DE69936182T2 (de) | Verfahren zur Wahl pneumatischer Vorrichtungen | |
EP2088486B1 (de) | Verfahren zur Vermessung eines nichtlinearen dynamischen realen Systems mittels Versuchsplanung | |
EP1055180B1 (de) | Verfahren und anordnung zum entwurf eines technischen systems | |
DE69903461T2 (de) | Verfahren und system für die planung von betriebsmittel-anforderungen und zum erzeugen eines produktionsplans mit hilfe eines uniformen datenmodells | |
DE10034869A1 (de) | Verfahren zum automatischen Gewinnen einer funktionsfähigen Reihenfolge von Prozessen und Werkzeug hierzu | |
DE102020111206A1 (de) | Verfahren zum Betreiben eines Steuergeräts für ein Kraftfahrzeug sowie entsprechendes Steuergerät | |
DE102020111204A1 (de) | Verfahren zum Betreiben eines Steuergeräts für ein Kraftfahrzeug sowie entsprechendes Steuergerät | |
EP2592504B1 (de) | Verfahren zur Abschätzung eines Ressourcenverbrauchs bei der Erzeugung eines Steuergeräteprogrammcodes | |
EP3661694B1 (de) | Verfahren und vorrichtung zur rechnergestützten optimierung einer belegung von magazinplätzen mit werkzeugen innerhalb mindestens eines werkzeugmagazins für eine werkzeugmaschine | |
DE10222699B4 (de) | Computergestütztes Verfahren und Vorrichtung zur Optimierung von Fahrzeugstrukturen und -komponenten | |
EP2191338B1 (de) | System zur erstellung eines simulationsprogramms | |
EP3928033B1 (de) | Verfahren zum steuern einer gasturbine | |
DE69329007T2 (de) | Kompilierungsmechanismus für Simulationsmodelle | |
DE102019132624A1 (de) | Verfahren, Vorrichtung, Computerprogramm und computerlesbares Speichermedium zum Erstellen eines Motion Cueing Algorithmus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8130 | Withdrawal |