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 hierzu

Info

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
Application number
DE10034869A
Other languages
English (en)
Inventor
Lutz Berentroth
Stefan Hoelzl
Helmut Wellnhofer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE10034869A priority Critical patent/DE10034869A1/de
Priority to PCT/DE2001/002612 priority patent/WO2002006950A2/de
Priority to EP01960118A priority patent/EP1402362A2/de
Priority to JP2002512797A priority patent/JP2004521402A/ja
Publication of DE10034869A1 publication Critical patent/DE10034869A1/de
Priority to US10/345,627 priority patent/US7231261B2/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23293Automated 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:
1. Schritt
Bestimmung eines Prozesses, der keinen Eingang mit dem Attribut "Eingangswert des selben Be­ rechnungszyklus" hat (bezogen auf die aktuelle Menge der Prozesse).
2. Schritt
Entfernen dieses Prozesses aus der Menge der Prozesse.
3. Schritt
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
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
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.
DE10034869A 2000-07-18 2000-07-18 Verfahren zum automatischen Gewinnen einer funktionsfähigen Reihenfolge von Prozessen und Werkzeug hierzu Withdrawn DE10034869A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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