DE69024072T2 - Verfahren und System zur gegenseitig ausschliessenden Betriebsmittelsteuerung - Google Patents

Verfahren und System zur gegenseitig ausschliessenden Betriebsmittelsteuerung

Info

Publication number
DE69024072T2
DE69024072T2 DE69024072T DE69024072T DE69024072T2 DE 69024072 T2 DE69024072 T2 DE 69024072T2 DE 69024072 T DE69024072 T DE 69024072T DE 69024072 T DE69024072 T DE 69024072T DE 69024072 T2 DE69024072 T2 DE 69024072T2
Authority
DE
Germany
Prior art keywords
task
graph
node
resource
bar
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.)
Expired - Fee Related
Application number
DE69024072T
Other languages
English (en)
Other versions
DE69024072D1 (de
Inventor
Masaki Hasegawa
Takashi Temmyo
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE69024072D1 publication Critical patent/DE69024072D1/de
Publication of DE69024072T2 publication Critical patent/DE69024072T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Programmable Controllers (AREA)

Description

  • Die Erfindung betrifft ein Verfahren und ein System zur gegenseitig ausschließenden Steuerung von Betriebsmitteln, die in einem ereignisgesteuerten Prozeß sequentiell verfügbar sind. Die zu steuernden sequentiell verfügbaren Betriebsmittel sind Betriebsmittel, die von einem Computer, einer programmierbaren logischen Steuerung oder ähnlichem gesteuert werden.
  • Wichtige Themen in der modernen Computertechnologie heißen Multitasking, Multiprocessing und verteilte Verarbeitung. Zur Implementierung dieser Techniken ist es notwendig, daß während der parallelen Ausführung mehrerer Tasks oder Prozesse ein Betriebsmittel von den verschiedenen Tasks oder Prozessen gemeinsam genutzt werden kann. Ein solches Betriebsmittel wird dann als gemeinsam genutztes Betriebsmittel bezeichnet. Dazu zählen zum Beispiel verschiedene Peripheriegeräte, Platten, Speicher, Kommunikationsleitungen, Programme und Daten. Ein gemeinsam genutztes Betriebsmittel, das jeweils nur einem Task oder Prozeß zugeordnet sein kann, wird als kritisches Betriebsmittel bezeichnet.
  • Das Problem bei der gegenseitig ausschließenden Steuerung von Betriebsmitteln in einem ereignisgesteuerten Prozeß entsteht, wenn ereignisgesteuerte Prozesse parallel ausgeführt werden und das gemeinsam genutzte Betriebsmittel verwenden. Die gegenseitig ausschließende Betriebsmittelsteuerung ist ein Mechanismus, der sicherstellt, daß das gemeinsam genutzte Betriebsmittel nicht von mehr als einem Prozeß belegt wird. Ein Bereich in den parallel ausgeführten Prozessen, der ein gemeinsam genutztes Betriebsmittel belegt, wird als kritischer Abschnitt bezeichnet. Es handelt sich um ein Problem der gemeinsamen Betriebsmittelnutzung bei der parallelen Ausführung mehrerer Tasks und wird als Problem der Kommunikation und Synchronisation zwischen Prozessen präsentiert. Um es zu lösen, werden konventionell verschiedene Techniken vorgeschlagen, und es wird durch ein Modell zur Verwendung in einem System analysiert. Das Synchronisierungsproblem umfaßt das Problem der gegenseitigen Ausschließung, das Erzeuger-Verbraucher-Problem, das Problem des speisenden Philosophen oder das Leser/Schreiber-Problem.
  • Es gibt gegenwärtig keine Möglichkeit, ein Problem der gegenseitig ausschließenden Betriebsmittelsteuerung zwischen mehreren Prozessen zu lösen, das bei der Implementierung eines Parallelausführungssystems wichtig ist, doch ein Programmierer schreibt vorsichtig mit Hilfe von Semaphoren. Wenn ein Programmierer somit ein Programm schreibt, das parallel ausgeführt wird, oder wenn ein Bediener ein Programm unter einer solchen Umgebung ausführt, muß immer auf die Betriebsmittelzuweisung geachtet werden. Dies ist für den Programmierer oder den Bediener eine Belastung.
  • Ein Beispiel für die Programmierung mit Hilfe von Semaphoren wird nachstehend erläutert. Es wird jetzt davon ausgegangen, daß es drei Abläufe ereignisgesteuerter Prozesse G&sub1;, G&sub2; und G&sub3; gibt, die in Figur 2 schematisch dargestellt sind. Im ersten Ablauf des Prozesses G&sub1; werden die Tasks p&sub1; und p&sub2; sequentiell verarbeitet. Nachdem der Task p&sub1; bei Verwendung der gemeinsam genutzten Betriebsmittel A und C ausgeführt wurde, wird der Task p&sub2; bei Verwendung der gemeinsam genutzten Betriebsmittel B und C ausgeführt.
  • Im zweiten Ablauf des Prozesses G&sub2; wird ein Task P&sub3; ausgeführt. Der Task P&sub3; wird während der Verwendung der gemeinsam genutzten Betriebsmittel A, B und C ausgeführt. Im dritten Ablauf des Prozesses G&sub3; werden die Tasks P&sub4; und P&sub5; parallel ausgeführt. Der Task P&sub4; wird bei Verwendung der gemeinsam genutzten Betriebsmittel A und C ausgeführt, und gleichzeitig wird der Task PS bei Verwendung der gemeinsam genutzten Betriebsmittel B und C ausgeführt. t&sub1; - t&sub7; bezeichnen die Anfangs- oder Endpunkte der Tasks. Es wird davon ausgegangen, daß unter den in in Figur 2 dargestellten Betriebsmittel A und B kritische Betriebsmittel sind und daß das kritische Betriebsmittel A ein Roboter 2 ist, während das kritische Betriebsmittel B ein Roboter 1 ist.
  • Zur Zeit erfolgt die Programmierung in den meisten Fällen auf den jeweiligen kritischen Betriebsmitteln (eine Steuerung für eine Produktionsvorrichtung in einem Fertigungsprozeß oder ein Computer in einem Netzwerksystem), wozu jeweils ein Programm auf allen kritischen Betriebsmitteln und ein Programm zu deren Steuerung erforderlich ist. Ein Beispiel hierfür ist in Figur 3 dargestellt. Figur 3A ist ein Programm zur Steuerung des gesamten Systems, Figur 3B ein Programm für den Roboter 1 und Figur 3C ein Programm zur Steuerung des Roboters 2.
  • Die Syntax für die Beschreibung der parallelen Ausführung lautet hier wie folgt:
  • cobegin
  • P1;
  • P2
  • coend
  • wobei P1 und P2 Tasks sind, die parallel ausgeführt werden.
  • Darüber hinaus lautet die Syntax zur Beschreibung eines kritischen Abschnitts wie folgt:
  • with R do
  • begin
  • S
  • end
  • wobei R ein eindeutiger Name für ein gegenseitig auszuschließendes kritisches Betriebsmittel und 5 ein gegenseitig auszuschließender kritischer Abschnitt ist. In diesem Fall ist R ein Semaphor.
  • In Figur 3A ist R(p) ein Programm für einen Roboter, der in Figur 3B bzw. 3C angegeben ist. Wenn ein Parameter p an R übergeben wird, führt das Programm für R nur den Task für p aus.
  • Die Syntax zur Beschreibung des kritischen Abschnitts und seines Mechanismus sowie die Syntax zur Beschreibung der parallelen Ausführung und seines Mechanismus werden im allgemeinen nicht an den Programmierer gegeben, so daß es zur Aufgabe des Programmierers wird, die Beschreibung zu schreiben, den Mechanismus zu erstellen und die gegenseitig ausschließende Steuerung von Fehlern zu befreien.
  • Es gibt nun ein Verfahren namens Petrinetz, das zur modellhaften Darstellung von Systemen weit verbreitet ist. Merkmale des Petrinetzes sind Parallelität oder Gleichzeitigkeit und Asynchronität. Seine Ausführung kann als Reihe diskreter Ereignisse gedacht werden, und das Timing beim Eintreten eines Ereignisses ist unendlich. Es wurde versucht, diese Merkmale und die Ausführungsform für die ereignisgesteuerte Steuerung zu nutzen. Wegen seiner guten mathematischen Analyseeigenschaften und der hohen Modellbildungsfähigkeit wird das Petrinetz auch bei der Simulation parallel ausführender Systeme (Computermodelle oder Fertigungsprozesse) verwendet.
  • Die Übersicht über das Petrinetz wird im folgenden erläutert.
  • Das Petrinetz besteht aus vier Komponenten: Stelle, Transition, Pfeil und Balken. Die Stelle zeigt ein Ereignis an, die Transition eine Bedingung, der Pfeil einen Pfad und der Balken einen Zustand. Der Balken bewegt sich je nach der Bedingung der Transition auf dem Pfeil zwischen den Stellen und bewirkt ein Ereignis entsprechend der Stelle.
  • Figur 4 zeigt ein Beispiel für die Ausführung des Petrinetzes. In diesem Beispiel erfolgt die Erläuterung anhand einer Transition T = {ta, tb, tc}, einer Stelle P = {Px, Py, Pz,} und eines Balkens. Wenn sich kein Balken in Px befindet, erzeugt ta zunächst einen Balken und legt es in Px ab (Figur 4A). Wenn Px einen Balken hat und Py und Pz keinen Balken haben, überträgt tb den Balken auf Py und Pz (Figur 4B) Wenn Py und Pz einen Balken haben, nimmt tc den Balken heraus und löscht ihn. Einzelheiten über das Petrinetz finden sich in Peterson, J.L., "Petri Net Theory and the Modelling of Systems," Prentice-Hall Inc., 1981.
  • Vor kurzem wurde ein Programm vorgeschlagen, bei dem ein Programmierer mit Hilfe eines Graphikeditors einen Ablauf von Prozessen beschreibt, wie in Figur 2 oder 4 dargestellt, und ihn in Codes umwandelt, um ein Programm zur Steuerung des gesamten Systems zu erstellen, so daß der Balken bei der Anordnung des Task-Beginns oder beim Empfang eines Beendigungssignals automatisch gemäß diesen Signalen, basierend auf dem in Ausführung befindlichen Programm, automatisch übertragen wird. Zu verweisen ist hier z.B. auf Hasegawa, K. und Takahashi, K., "MFG (Mark Flow Graph)-Based Programmable Controller and its Application to FMS," Proceedings of the International Conference on System Engineering, 5. 306-311, 1984.
  • Ebenfalls zu verweisen ist auf das Dokument von K. Hasegawa et al.: MFG (Mark Flow Graph)-Based Programmable Controller and its Application to FMS," das die Verwendung eines markierten Ablaufgraphen (MFG, Mark Flow Graph) zeigt, der aus dem Petrinetz abgeleitet ist. Ein markierter Ablaufgraph ist in einer programmierbaren Steuerung gespeichert und wird in einem Steuerungssystem verwendet, zu dessen Eigenschaften Asynchronität und Gleichzeitigkeit zählen. In den Knoten des Graphen, die als Kästen bezeichnet werden und die die Bedingung eines Systemelements anzeigen, sind Markierungen oder Balken zur Steuerung des Systemzustands gespeichert. Eine Transition verbindet einen oder mehrere Eingangskästen mit einem oder mehreren Ausgangskästen. Eine Transition zu einem anderen Systemzustand erfolgt nur dann, wenn sich in allen Eingangskästen Markierungen befinden.
  • Keines dieser konventionellen Steuerungssysteme berücksichtigt jedoch die gegenseitig ausschließende Steuerung.
  • Obwohl dies einen Aspekt der Modellbildung und nicht der Programmierung betrifft, erfolgt die Modellbildung der gegenseitig ausschließenden Steuerung durch die Schaffung einer Stelle, die einem Leerzustand des Betriebsmittels (Leerstelle) entspricht und es mit einer Stelle eines Tasks verbindet, wobei es dieses Betriebsmittel nutzt, um einen kritischen Abschnitt einzurichten. In diesem Fall nutzt es die Speicherfähigkeit, die eine wichtige Eigenschaft des Petrinetzes ist. Die Leerstelle enthält einen Balken als Anfangsmarkierung und enthält immer dann einen Balken, wenn ein Betriebsmittel nicht verwendet wird. Wenn sich ein Prozeß in einem kritischen Abschnitt befindet und ein Betriebsmittel verwendet, enthält die Leerstelle keinen Balken. Wenn ein anderer Prozeß versucht, in den kritischen Abschnitt zu gelangen, um dasselbe Betriebsmittel zu verwenden, kann er nicht ausgeführt werden, weil die Leerstelle keinen Balken enthält und eine Feuerbedingung nicht erfüllt ist. Es wird veranlaßt, daß die Ausführung eines anderen Prozesses wartet, bis der Prozeß, der das Betriebsmittel verwendet, beendet ist, das Betriebsmittel freigibt und den Balken an die Leerstelle zurückgibt.
  • Figur 5 zeigt ein Beispiel für eine solche Modellbildung. Die Stelle m zeigt die Autorisierung zum Eintreten in einen kritischen Abschnitt an. Wenn ein Prozeß in den kritischen Abschnitt eintreten will, liefert er einen Balken an p&sub1; oder und gibt damit ein Zeichen, das seinen Wunsch zum Eintreten in den kritischen Abschnitt anzeigt, und wartet dann auf ein Zeichen, das das Eintreten in den kritischen Abschnitt gestattet, oder auf den Balken von m zum Zugang zu dem kritischen Abschnitt. Wenn beide Prozesse in den kritischen Abschnitt eintreten wollen, verursachen die Transitionen t&sub1; und t&sub2; einen Konflikt, und nur einer von ihnen kann gefeuert werden. Das Feuer von t&sub1; deaktiviert das von t&sub2;, und der Prozeß 2 muß warten, bis der Prozeß 1 den kritischen Abschnitt beendet und den Balken an m zurückgibt. Kann dann die gegenseitig ausschließende Steuerung leicht implementiert werden, wenn ein Graph mit Leerstellen für kritische Betriebsmittel angelegt wird und in Codes umgewandelt wird, um unter Berücksichtigung der gegenseitig ausschließenden Steuerung ein Steuerprogramm für das gesamte System zu erstellen, und der Balken automatisch als das im obigen Verweis (2) beschriebene System übertragen wird? Die Antwort heißt leider "Nein." Der Grund hierfür wird nachstehend beschrieben.
  • (1) Zunächst müssen Leerstellen in das Petrinetz integriert werden. Wenn ein Programmierer die Leerstellen an einer geeigneten Stelle im Petrinetz integriert und dabei auf kritische Betriebsmittel achtet, wird seine Anstrengung der Programmierung unter Verwendung von Semaphoren entsprechen. Die Erstellung des Petrinetzes wird in einem etwas komplizierten Fall wie in Figur 6, verglichen mit einem einfachen Fall wie in Figur 5, äußerst schwierig.
  • (2) Bei der Ausführung muß ein Benutzer zunächst die Leerstellen (Betriebsmittelstellen) von Taskstellen unterscheiden und dann an allen Leerstellen Anfangsbalken ablegen. Dies stellt für den Benutzer eine erhebliche Belastung dar.
  • (3) Aus der Repräsentation des Petrinetzes selbst kann eine Blockade entstehen.
  • Dies soll nun am Beispiel von Figur 6 erläutert werden. Es wird davon ausgegangen, daß der aktuelle Zustand der in Figur 6A dargestellte ist. Dies bedeutet, daß die Tasks P&sub1; und P&sub4; gerade ausgeführt werden und die Betriebsmittel Px und Py leer sind. Das Betriebsmittel Px wird von den Tasks P&sub2;, P&sub3; und P&sub6; verwendet. Das Betriebsmittel Pywird von den Tasks P&sub3;, P&sub5; und P&sub6; verwendet. Wenn der Zustand der in Figur 6A dargestellte ist, dann ist klar, daß das Steuerungssystem die Ausführung der Tasks P&sub2; und P&sub5; beginnen kann. So übertragen t&sub1; und t&sub4; die Balken zu P&sub2; bzw. P&sub5;. Hierzu ist folgendes anzumerken: Da die Repräsentation, wie in Figur 5 oder 6 gezeigt, jedes Ende des kritischen Abschnitts mit der Leerstelle des Betriebsmittels verbindet, wird der Balken niemals zu der Leerstelle von Px übertragen, bis die Ausführung des Tasks P&sub3;, der auf den Task P&sub2; folgt, abgeschlossen ist, und ebenso wird der Balken niemals zu der Leerstelle von Py übertragen, bis die Ausführung des Tasks P6, der auf den Task P&sub5; folgt, abgeschlossen ist. Figur 6B zeigt die Positionen der Balken nach Beginn der Ausführung der Tasks P&sub2; und P&sub5;. Das Steuerungssystem kann die Ausführung des Tasks P&sub3; jetzt nicht starten, selbst wenn die Ausführung des Tasks P&sub2; abgeschlossen ist, da sich kein Balken an der Leerstelle von Py befindet. Ein Balken wird niemals zu der Leerstelle von Px zurückgegeben, außer wenn die Ausführung des Tasks P&sub3; gestartet wird. So wird die Ausführung des Tasks ebenfalls nicht gestartet. Auf diese Weise können die Transitionen t&sub2; und t&sub5; nicht feuern, und so entsteht eine Blockade. In dem Petrinetz werden Transitionen, die nicht feuern können, oder ihre Menge als Blockade bezeichnet.
  • In einer mathematischen Repräsentation ist G = (P, T, O), wobei G die Petrinetz-Struktur ist, P = {P&sub1;, P&sub2;, ... PM} eine Menge von Stellen und M > 0 ist und T = {T&sub1;, T&sub2; ... TL} eine Menge von Transitionen und L > 1 ist. Die Menge der Stellen und die Menge der Transitionen sind disjunkt, und P T = Φ 1 : P T T ist eine Eingangsfunktion von einer Stelle zu einer Transition. 0 : T T P ist eine Ausgangsfunktion von einer Transition zu einer Stelle. Eine Petrinetz-Struktur, in die eine Markierung µ für die Zuweisung eines Balkens zu einer Stelle aufgenommen wird, wird als markiertes Petrinetz bezeichnet. Der Balken existiert nur an der Stelle, und das Feuer der Transition steuert die Ausführung. Das Feuer der Transition überträgt einen Balken von einer Eingangsstelle zu einer Ausgangsstelle. Die Petrinetz-Struktur ist in der Graph-Theorie dual. Das Konzept der Dualität eines Graphen wird in dem markierten Petrinetz nicht verwendet, weil die Dualität eines Graphen schwer zu definieren ist.
  • Ein Verfahren zur gegenseitig ausschließenden Betriebsmittelsteuerung gemäß der vorliegenden Erfindung umfaßt folgende Schritte:
  • (a) Erzeugen eines Graphen und Festhalten des Graphen in einer Speichervorrichtung, wobei der Graph Knoten umfaßt, denen Tasks, die in einen Prozeßablauf integriert sind, und ein kritisches Betriebsmittel, das sich mindestens einer der Tasks aneignen kann, zugeordnet sind, die Knoten von sequentiell ausgeführten Tasks in Reihe angeordnet sind, die Knoten von parallel ausgeführten Tasks parallel zueinander angeordnet sind und ein Knoten des kritischen Betriebsmittels parallel zu jedem Knoten des Tasks angeordnet ist, der sich das kritische Betriebsmittel aneignen kann; und
  • (b) bei jeder Übertragung eines Signals für den Beginn der Ausführung eines Tasks Erzeugen eines Balkens in dem Knoten des Tasks und des dazu parallelen Knotens des kritischen Betriebsmittels; und
  • (c) bei der Erkennung des Endes der Ausführung des vorherigen Tasks im Prozeßablauf Zurückgreifen auf den Graph; und Veranlassen, daß die Übertragung eines Signals für den Beginn der Ausführung der unmittelbar nachfolgenden Tasks wartet, während ein Balken mindestens einem der unmittelbar nachfolgenden Taskknoten und dem parallel dazu angeordneten Knoten des kritischen Betriebsmittels zugeordnet ist.
  • Es ist vorzuziehen, in Schritt (a) Knoten der Gatter in dem Graph an einer Stelle vorzusehen, an der Knoten der Tasks, die sequentiell ausgeführt werden, verbunden sind; in Schritt (b) bei jeder Erkennung der Vollendung der Ausführung eines Tasks den Knoten des Tasks und eine Balken- Zuweisung zu einem kritischen Betriebsmittel, das parallel zu dem Knoten angeordnet ist, zu entfernen; und
  • bei der Erkennung der Vollendung der Ausführung von Tasks, die zu jedem Task-Knoten gehören, der unmittelbar vor einem Gatterknoten angeordnet ist, einen Balken im Gatterknoten zu erzeugen und dann, während ein Balken irgendeinem Knoten für einen nachfolgenden Task zugewiesen ist, der unmittelbar nach dem Gatterknoten oder einem Knoten eines parallel dazu angeordneten kritischen Betriebsmittels angeordnet ist, die Übertragung eines Signals zum Beginnen der Ausführung des nachfolgenden Tasks durch Zurückgreifen auf den Graph zum Warten zu veranlassen; und
  • den Balken nach der Übertragung des Signais zum Beginnen der Ausführung des nachfolgenden Tasks von dem Gatterknoten zu entfernen.
  • Ein bevorzugtes System für eine gegenseitig ausschließende Betriebsmittelsteuerung gemäß der Erfindung umfaßt eine Speichervorrichtung, die einen Graph enthält, der Tasks aufweist, die in einem Ablauf von Prozessen und Knoten enthalten sind, die zu einem kritischen Betriebsmittel gehören, das sich jeder der Tasks allein aneignen kann und in dem Knoten von Tasks, die sequentiell ausgeführt werden, in Reihe angeordnet sind, Knoten der Tasks, die parallel ausgeführt werden, parallel zueinander angeordnet sind, ein Knoten eines Gatters an einer Stelle angeordnet ist, die die Knoten der Tasks miteinander verbindet, und ein Knoten eines kritischen Betriebsmittels parallel zu den Knoten aller Tasks angeordnet ist, die das kritische Betriebsmittel ausschließlich belegen können;
  • ein Mittel zur Erzeugung von Balken in einem Knoten des Tasks in dem Graph und in einem Knoten eines kritischen Betriebsmittels, das parallel zu dem Knoten angeordnet ist, bei jeder Übertragung eines Signals zum Beginnen eines Tasks;
  • ein Mittel zum Entfernen der Zuweisung der Balken zu dem Knoten des Tasks und zum dem Knoten des kritischen Betriebsmittels, das parallel zu dem Knoten angeordnet ist, bei jeder Erkennung des Endes der Ausführung des Tasks;
  • bei der Erkennung der Vollendung der Ausführung von Tasks, die zu jedem Task-Knoten gehören, der unmittelbar vor einem Gatterknoten angeordnet ist, Erzeugen eines Balkens im Gatterknoten und dann, während ein Balken irgendeinem Knoten für einen nachfolgenden Task, der unmittelbar nach dem Gatterknoten oder einem Knoten eines parallel dazu angeordneten kritischen Betriebsmittels angeordnet ist, Veranlassen der Übertragung eines Signals zum Beginnen der Ausführung des nachfolgenden Tasks zum Warten durch Zurückgreifen auf den Graph; und
  • ein Mittel zum Entfernen des Balkens von dem Gatterknoten nach der Übertragung des Signals zum Beginnen des nachfolgenden Tasks.
  • Ein Ausführungsbeispiel der Erfindung wird nun ausführlich unter Bezugnahme auf die folgenden Figuren beschrieben.
  • Figur 1 ist eine Systemkonfiguration eines Ausführungsbeispiels gemäß der Erfindung.
  • Figur 2 ist eine schematische Ansicht des Prozeßablaufs.
  • Figur 3A, 3B und 3C sind Diagramme, die die Beschreibung eines Beispiels eines gegenseitig ausschließenden Steuerungsprogramms nach dem Stand der Technik darstellen.
  • Figur 4 ist ein Diagramm, das ein Beispiel für die Ausführung eines Petrinetzes darstellt.
  • Figur 5 ist ein Diagramm, das ein Modell einer gegenseitig ausschließenden Steuerung unter Verwendung des Petrinetzes darstellt.
  • Figur 6A und 6B sind Diagramme, die eine Blockierung darstellen, die einträte, wenn zur Durchführung der gegenseitig ausschließenden Steuerung ein konventionelles Petrinetz ausgeführt würde.
  • Figur 7 ist ein Diagramm, das einen Prozeßablaufgraph darstellt.
  • Figur 8 ist ein Diagramm, das einen Prozeßablaufgraph und ein Taskprogramm darstellt.
  • Figur 9 ist ein Diagramm, das einen Betriebsmittelverwaltungsgraph darstellt.
  • Figur 10 ist ein Ablaufdiagramm von Verarbeitungsverfahren zur Erzeugung eines Betriebsmittelverwaltungsgraphen.
  • Figur 11 ist ein Ablaufdiagramm von Verarbeitungsverfahren zur Erzeugung eines Prozeßbetriebsmittelgraphen.
  • Figur 12 ist ein Diagramm, das einen Prozeßbetriebsmittelgraph darstellt.
  • Figur 13 ist ein Ablaufdiagramm von Verarbeitungsverfahren zur Erzeugung eines Vereinigungsgraphen aus einem Programmablaufgraph und einem Betriebsmittelverwaltungsgraph.
  • Figur 14 ist ein Diagramm, das einen Prozeßablauf darstellt, der zu einer Blockierung führt.
  • Figur 15 ist ein Diagramm, das einen Vereinigungsgraph zeigt, der den Inhalt von Figur 14 darstellt.
  • Figur 16A, 16B, 16C, 16D, 16E und 16F sind Diagramme, die ein Beispiel für die Ausführung des Prozeßbetriebsmittelgraphen in Figur 12 darstellen.
  • Figur 17 ist ein Diagramm, das ein Beispiel für eine Hardwarekonfiguration eines gegenseitig ausschließenden Steuersystems darstellt.
  • Figur 18 ist ein Diagramm, das den Prozeßbetriebsmittelgraph darstellt, der zu Figur 6 gehört.
  • Figur 19A, 19B, 19C und 19D sind Diagramme, die ein Beispiel für die Ausführung des Prozeßbetriebsmittelgraphen in Figur 18 darstellen.
  • Figur 1 ist eine Systemkonfiguration eines Ausführungsbeispiels der Erfindung. Die Schritte S1 - S8 in der Figur werden nun der Reihe nach beschrieben.
  • (a) Erstellung eines Prozeßablaufgraphen (Schritt S1)
  • Ein Benutzer erstellt einen Prozeßablaufgraph, der einen ereignisgesteuerten Prozeß mit einem Task als Prozeßeinheit darstellt. Der erstellte Prozeßablaufgraph entspricht einem beschränkten Petrinetzgraph mit sicherer und aktiver Natur (ohne Mehrfachsprung oder Eigenschleife). Die Definition des Prozeßablaufgraphen ist der "mathematischen Repräsentation" zu entnehmen.
  • Zur Erstellung des Prozeßablaufgraphen gibt es ein Verfahren, bei dem er unter Verwendung eines Graphikeditors mit graphischen Symbolen beschrieben und in eine Textrepräsentation umgewandelt wird, und ein Verfahren, bei dem er unter Verwendung eines Texteditors direkt mit Zeichencodes beschrieben wird. Der erstellte Prozeßablaufgraph wird auch als Prozeßablaufprogramm bezeichnet.
  • In dem Ausführungsbeispiel beschreibt ihn der Benutzer interaktiv mit einem Graphikeditor. Figur 7 zeigt eine graphische Repräsentation des Prozeßablaufprogramms. Eine Steuerungseinheit für den Prozeßablaufgraph wird als Task bezeichnet, was einer Programmdatei entspricht (siehe Figur 8).
  • Ein Beispiel für die Ausführung gemäß der Definition des Prozeßablaufgraphen wird unter Bezugnahme auf Figur 7 erläutert. Ein Balken wird in einem Bedingungsgatter C&sub1; oder C&sub4; erzeugt. In dem Fall, daß der Balken in dem Bedingungsgatter C&sub1; erzeugt wird, wandert es zu den Taskstellen T&sub1; und T&sub2;, wo die Tasks T&sub1; und T&sub2; mit Hilfe der Betriebsmittel RA und RB ausgeführt werden. Wenn die Tasks T&sub1; und T&sub2; beide beendet sind, wandert der Balken entsprechend der Bedingung des Bedingungsgatters C&sub2; zu einer Taskstelle T&sub3;. Der Task T&sub3; wird mit Hilfe des Betriebsmittels RB ausgeführt. Wenn der Task T&sub3; dann beendet ist, wandert der Balken von der Stelle T&sub3; zu dem Bedingungsgatter C&sub3; und wird entfernt. In einem Fall, in dem der Balken in dem Bedingungsgatter C&sub4; erzeugt wird, wandert es zu der Taskstelle T&sub4;, wo der Task T&sub4; mit Hilfe der Betriebsmittel RA ausgeführt wird. Wenn der Task T&sub4; beendet ist&sub1; wandert der Balken entsprechend der Bedingung des Bedingungsgatters C&sub5; zu einer Taskstelle T&sub5;. Der Task T&sub5; wird mit Hilfe des Betriebsmittels RA und RB ausgeführt. Wenn der Task T&sub5; dann beendet ist, wandert der Balken von der Stelle T&sub5; zu dem Bedingungsgatter C&sub3; und wird entfernt. Dieses Beispiel für die Ausführung enthält nicht die gegenseitig ausschließende Betriebsmittelsteuerung. Hier entspricht das Bedingungsgatter der Transition im Petrinetz, unterscheidet sich von der Transition jedoch definitiv in dem Punkt, daß es die Zuweisung eines Balkens zu sich selbst zuläßt. Dies wird später noch ausführlich erläutert.
  • Eine Textrepräsentation des Prozeßablaufdiagramms wird in Form von Zwischencodes des Prozeßablaufgraphen erstellt. Sie ist äquivalent zu der graphischen Repräsentation, und eine Umwandlung zwischen ihnen ist in beiden Richtungen möglich.
  • Im folgenden wird die Textrepräsentation des Graphen auch als Zwischencodes bezeichnet.
  • Das Format der Zwischencodes des Prozeßablaufgraphen sieht folgendermaßen aus:
  • Bedingungsgatter:
  • Eingangsstelle(, Eingangsstelle ...)/ Ausgangsstelle(, Ausgangsstelle ...)
  • Die Zwischencodes des Ausführungsbeispiels in Figur 7 lauten wie folgt:
  • C&sub1; : /T&sub1;, T&sub2;
  • C&sub2; : T&sub1;, T&sub2;/T&sub3;
  • C&sub3; : T&sub3;/
  • C&sub4; : /T&sub4;
  • C&sub5; : T&sub4;/T&sub5;
  • C&sub6; : T&sub5;/
  • (b) Erzeugung eines Betriebsmittelverwaltungsgraphen (Schritt S2 und S3)
  • Ein Betriebsmittelverwaltungsgraph wird aus dem Prozeßablaufgraph und dem Taskprogramm erzeugt. Betriebsmittelnamen kritischer Betriebsmittel, die für die Tasks notwendig sind, werden aus den Taskprogrammen herausgezogen, so daß eine Liste mit ihnen entsteht. Wie in Figur 8 dargestellt, werden bei der Beschreibung des Taskprogramms in einem Text die darin beschriebenen kritischen Betriebsmittel durch logische Betriebsmittelsymbole, logische Betriebsmittelnummern oder logische Betriebsmittelnamen beschrieben. Ein Betriebsmittelverwaltungsgraph wird aus dem Prozeßablaufgraph und der Liste mit herausgezogenen Betriebsmittelnamen erzeugt. Figur 9 zeigt einen Betriebsmittelverwaltungsgraph, der aus dem Prozeßablaufgraph in Figur 7 und der Betriebsmittelnamensliste der kritischen Betriebsmittel, die für die Tasks notwendig sind, erzeugt.
  • Anzumerken ist, daß der Benutzer, wie in Figur 8 gezeigt, bei der Erstellung eines Programms eines Prozeßablaufgraphen, der die Verbindung zwischen Tasks beschreibt, oder eines Taskprogramms, das einen einzelnen Task beschreibt, niemals durch die Verwendung von Semaphoren o.a. auf die Betriebsmittelverwaltung achten muß.
  • In dem Ausführungsbeispiel wird das Programm mit einer objektorientierten Sprache unter Verwendung eines Texteditors in folgendem Format beschrieben.
  • Logischer Betriebsmittelname: Befehl
  • Es wird eine Liste erstellt, die die Namen der kritschen Betriebsmittel, die von dem Task verwendet werden, aus den logischen Namen der kritischen Betriebsmittel in den Taskprogrammen herauszieht. Ein Betriebsmittelverwaltungsgraph wird aus der Liste und dem Prozeßablaufgraph erzeugt.
  • Wenn die Form der Zwischencodes des Betriebsmittelverwaltungsgraphen an die der Zwischencodes des Prozeßablaufgraphen angeglichen wird, lauten die Zwischencodes für das Ausführungsbeispiel in Figur 9 wie folgt:
  • C&sub1; : /RA, RB
  • C&sub2; : RA, RB/RB
  • C&sub3; : RB/
  • C&sub4; : /RA
  • C&sub5; : RA/RA, RB
  • C&sub6; : RA, RB/
  • Figur 10 ist ein Ablaufdiagramm, das einen Algorithmus zur Erzeugung solcher Zwischencodes aus dem Prozeßablaufgraph mit der Betriebsmittelnamensliste darstellt. Wenn alle Betriebsmittel kritisch sind, kann die Betriebsmittelnamensliste erstellt werden, indem alle Betriebsmittelnamen, die in dem Taskprogramm enthalten sind, automatisch herausgezogen werden. Der Benutzer kann die Betriebsmittelnamensliste durch Angabe der kritischen Betriebsmittelnamen erstellen.
  • (c) Erzeugung des Prozeßbetriebsmittelgraphen (Schritt S4, S5 und S6)
  • Der Prozeß zur Erzeugung des Prozeßbetriebsmittelgraphen ist in Figur 11 als Ablaufdiagramm dargestellt. Die Erläuterung erfolgt unter Bezugnahme auf das Ablaufdiagramm. Der Prozeßablaufgraph und der Betriebsmittelverwaltungsgraph werden geladen (Schritt 111 und 112), woraus dann ein Vereinigungsgraph erzeugt wird (Schritt 113).
  • Figur 12 zeigt einen Vereinigungsgraphen, der aus dem Prozeßbetriebsmittelgraph in Figur 7 und dem Betriebsmittelverwaltungsgraph in Figur 9 erzeugt wurde.
  • Wenn die Form der Zwischencodes des Vereinigungsgraphen an die der Zwischencodes des Prozeßablaufgraphen angeglichen wird, lautet die Repräsentation des Vereinigungsgraphen in Figur 12 wie folgt:
  • C&sub1; : 1T&sub1;, T&sub2;, RA, RB
  • C&sub2; : T&sub1;, T&sub2;, RA, RB/T&sub3;, RB
  • C&sub3; : T&sub3;, RB/
  • C&sub4; : /T&sub4;, RA
  • C&sub5; : T&sub4;, RA/T&sub5;, RA, RB
  • C&sub6; : T&sub5;, RA, RB/
  • Figur 13 ist ein Ablaufdiagramm, das einen Algorithmus zur Erzeugung solcher Zwischencodes aus dem Prozeßablaufgraph und dem Betriebsmittelverwaltungsgraph darstellt. Sie zeigt also den Schritt 113 in Figur 11 im Detail.
  • Wenn der so erzeugte Vereinigungsgraph übrigens bedingungslos als Prozeßbetriebsmittelgraph betrachtet wird, wie er ist, kann es zu einer Blockierung kommen.
  • Figur 14 zeigt einen Fall, in dem eine Blockierung ausgelöst wird. Im Anfangszustand befindet sich ein Balken in dem Bedingungsgatter C&sub1;. Die Blockierung entsteht, weil der Task T&sub1; bei Verwendung des Betriebsmittels RA ausgeführt werden soll und der Task T&sub2; bei Verwendung der Betriebsmittel RA und RB ausgeführt werden soll.
  • Das Ausführungsbeispiel verwendet einen Graph, der keine Blockierung eines gängigen Verbindungsgraphen wie des Prozeßbetriebsmittelgraphen auslöst. Wenn die Ausführung ihm entsprechend erfolgt, ist es möglich, gleichzeitig die Steuerung eines ereignisgesteuerten Prozesses und die gegenseitig ausschließende Betriebsmittelsteuerung durchzuführen. Wenn der gemeinsame Verbindungsgraph eine Blockierung auslöst, wird dies dem Benutzer gemeldet.
  • In dem Ausführungsbeispiel wird die Blockierung, die in dem gemeinsamen Verbindungsgraphen ausgelöst wird, angezeigt (Schritt 115), nachdem eine Blockierung zu der Zeit kontrolliert wurde, als der gemeinsame Verbindungsgraph aus dem Prozeßablaufgraph und dem Betriebsmittelverwaltungsgraph erzeugt wurde (Schritt 114).
  • Figur 15 ist eine Darstellung von Figur 14 in Form eines Vereinigungsgraphen. Wie in Figur 15 gezeigt, tritt eine Blockade auf, wenn ein Bedingungsgatter und eine Betriebsmittelstelle doppelt verbunden sind. Es reicht aus zu kontrollieren, ob der erzeugte Vereinigungsgraph über ein Betriebsmittel verfügt, das doppelt mit einem Bedingungsgatter verbunden ist, und es dem Benutzer mitzuteilen, wenn dies der Fall ist. Wenn keine Blockierung eintritt, dient der Vereinigungsgraph wie er ist als Prozeßbetriebsmittelgraph (Schritt 116).
  • Die hier gemeinte Blockierung wird nicht durch die Repräsentierung des Graphen verursacht, die unter Bezugnahme auf Figur 6 beschrieben wurde, und durch die Verantwortung des Systems, das ihm entsprechend die Steuerung vornimmt. Wie später beschrieben wird, wird das Auftreten der Blockierung gemäß der Erfindung vermieden. Die in Schritt 115 von Figur 11 dargestellte Blockierung wird durch die Programmstruktur selbst hervorgerufen, was unter der Verantwortung des Benutzers vermieden werden muß (Schritt 117).
  • Der Prozeßbetriebsmittelgraph ist ein zweiteiliger gerichteter Graph, dessen Knoten Ereignisstellen und Bedingungsgatter sind und dessen Pfeile Eingangsfunktionen und Ausgangsfunktionen sind. Markieren bedeutet, den Taskstellen, den Betriebsmittelstellen oder den Bedingungsgattern des Prozeßbetriebsmittelgraphen Balken zuzuweisen. Darüber hinaus kann höchstens ein Balken an einer Taskstelle, Betriebsmittelstelle oder Bedingungsstelle existieren. In einem konventionellen Petrinetz wird ein Balken nicht einem Bedingungsgatter zugewiesen, während es in dem Prozeßbetriebsmittelgraph zugewiesen ist. Die Definition des Prozeßbetriebsmittelgraphen ist der "mathematischen Repräsentation" zu entnehmen.
  • In dem in Figur 12 dargestellten Vereinigungsgraph oder dem Prozeßbetriebsmittelgraph ist jeder Taskknoten parallel zu einem Betriebsmittelknoten angeordnet. Einige Tasks greifen jedoch niemals auf das kritische Betriebsmittel zu. Zu solchen Taskknoten ist natürlich kein Betriebsmittelknoten parallel angeordnet (siehe Figur 18).
  • (d) Ausführung des Prozeßbetriebsmittelgraphen (Schritt S7 und S8)
  • Der Prozeßbetriebsmittelgraph wird in Codes für eine Steuerungseinheit umgewandelt, die die ereignisgesteuerte Steuerung gemeinsam mit der gegenseitig ausschließenden Steuerung sequentiell verfügbarer Betriebsmittel durchführt, und zur Ausführung in den Speicher oder das ROM einer Steuerungseinheit geladen, (z.B. einen Computer oder eine programmierbare logische Steuerung). Wenn dieser Graph ausgeführt wird, werden die gegenseitig ausschließende Steuerung und die ereignisgesteuerte Prozeßsteuerung gleichzeitig ausgeführt. So wird etwa ein Knoten (eine Ereignisstelle oder ein Bedingungsgatter) eines Prozeßbetriebsmittelgraphen in einem Speicher als Datenstruktur implementiert, und die Verbindung zwischen den Elementen wird durch Zeiger dargestellt. Informationen zur Anwesenheit eines Balkens werden in der Datenstruktur gespeichert. Das Verfahren selbst zum Erzeugen oder Löschen eines Balkens wird ähnlich wie das System des obigen Verweises (2) implementiert und ist hier nicht näher beschrieben.
  • Die Bedingungen zum Übertragen des Balkens, die durch die Erfindung präsentiert werden, werden streng durch die Gleichungen (1) und (2) repräsentiert, die in Worten wie folgt dargestellt werden:
  • (1) Sobald der Beginn der Ausführung eines Tasks angeordnet wird, wird der Stelle (dem Knoten) des Tasks und der parallel zu dieser Stelle angeordneten Betriebsmittelstelle ein Balken zugewiesen. Gemäß der Erfindung und im Unterschied zu dem konventionellen Petrinetz zeigt also der an der Betriebsmittelstelle befindliche Balken an, daß der zur Zeit ausgeführte Task sich das Betriebsmittel angeeignet hat.
  • (II) Wenn Tasks vorhanden sind, die parallel gesteuert werden, werden die Balken zu einem nachfolgenden Bedingungsgatter übertragen, wenn die Ausführung aller Tasks beendet ist.
  • (III) Während ein Balken unmittelbar nach dem Bedingungsgatter und den parallel zu den Taskstellen angeordneten Betriebsmittelstellen mindestens einem der Taskstellen zugewiesen wird, wird veranlaßt, daß mit dem Beginn der Ausführung des nachfolgenden Tasks gewartet wird, indem der Balken im Bedingungsgatter gehalten wird.
  • Figur 16 zeigt die Ausführung gemäß der Definition des Prozeßbetriebsmittelgraphen in Figur 12 als Beispiel für die Ausführungssteuerung. In Figur 12 gibt es einen Fall, in dem ein Balken zuerst im Bedingungsgatter C&sub1; erzeugt wird, und einen Fall, in dem es zuerst im Bedingungsgatter C&sub4; erzeugt wird. Dieses Beispiel für die Ausführung behandelt den Fall, in dem der Balken zuerst im Bedingungsgatter C&sub1; erzeugt wird. Der Balken wird im Bedingungsgatter C&sub1; erzeugt (Figur 16A). Selbst wenn es erforderlich ist, den Task T&sub1; und T&sub2; auszuführen, werden die Balken, wie dargestellt, nicht unmittelbar an die Stellen T&sub1; und T&sub2; gesetzt. Zuerst wird der Balken dem Eedingungsgatter Cl zugewiesen. Der Balken wandert von dem Bedingungsgatter C&sub1; zu den Taskstellen T&sub1; und T&sub2;, und die Detriebsmittelstelle RA und RB gemäß der Übertragungsbedingungsgleichung (1) (Figur 16B). Selbst wenn ein Balken einem anderen Bedingungsgatter zugewiesen ist, ist in diesem Moment die Übertragungsbedingungsgleichung (1) nicht erfüllt, da ein Balken den Betriebsmittelstellen RA und RB zugewiesen ist. Daher wandert der Balken nicht, und es wird kein neuer Task außer T&sub1; und T&sub2; ausgeführt. Wenn die Tasks T&sub1; und T&sub2; beide beendet sind, wandert der Balken von den Taskstellen T&sub1; und T&sub2; und den Betriebsmittelstellen RA und RB gemäß der übertragungsbedingungsgleichung (2) zum Bedingungsgatter C&sub2; (Figur 16C). Darüber hinaus wandert der Balken vom Bedingungsgatter C&sub2; zu der Taskstelle T&sub3; und der Betriebsmittelstelle RB (Figur 16D). In diesem Moment wird angenommen, daß ein Balken im Bedingungsgatter C&sub4; erzeugt wird. Mit der Ausführung des Tasks T&sub4; kann nun begonnen werden. Da es keinen Balken an der Betriebsmittelstelle RA gibt, ist also die Übertragungsbedingungsgleichung (1) erfüllt, so daß der Balken zu der Taskstelle T&sub4; und der Betriebsmittelstelle RA übertragen wird (Figur 16E). Daher erfolgt die Ausführung des Tasks T&sub3; mit Hilfe des Betriebsmittels RB und die Ausführung des Tasks T&sub4; mit Hilfe des Betriebsmittels RA unabhängig voneinander. Wenn T&sub4; beendet ist, wandert der Balken von der Taskstelle T&sub4; und der Betriebsmittelstelle RA zum Bedingungsgatter C&sub5; (Figur 16F). Selbst wenn ein Balken dem Bedingungsgatter C&sub5; zugewiesen ist, wird der Balken nicht von dem Bedingungsgatter C&sub5; zu der Taskstelle T&sub5; und den Betriebsmittelstellen RA und RB übertragen, da ein weiterer Balken bereits der Betriebsmittelstelle RB zugewiesen ist und die Übertragungsbedingungsgleichung (1) nicht erfüllt ist. Der Task T&sub5; wird also nicht ausgeführt. Wenn der Task T&sub3; beendet ist, wandert der Balken von der Taskstelle T&sub3; und der Betriebsmittelstelle RB gemäß der Übertragungsbedingungsgleichung (2) zum Bedingungsgatter C&sub3; und wird entfernt. Daher wird der Task T&sub5; ausführbar.
  • Wie sich aus dem Beispiel in Figur 12 ergibt, wird aus dem Prozeßbetriebsmittelgraph ein Graph mit Eigenschleifen hinsichtlich der Betriebsmittelstellen RA und RB. Wenn es als beschränktes Petrinetz mit sicherer und aktiver Natur betrachtet wird, tritt eine Blockierung ein, falls die Tasks versuchen, dasselbe Betriebsmittel sequentiell und unmittelbar zu verwenden. Wenn z.B. in Figur 12 der Task T&sub5; versucht, die Ausführung unter Verwendung der Betriebsmittel RA und RB vorzunehmen, nachdem der Task T&sub4; die Ausführung unter Verwendung des Betriebsmittels RA abgeschlossen hat, wird ein Graph einer Eigenschleife hinsichtlich des Betriebsmittels RA gebildet, und es entsteht eine Blockierung, weil die Übertragungsbedingungsgleichung (0), die später beschrieben wird, niemals erfüllt ist.
  • Dies wird noch näher beschrieben. Zunächst ist anzumerken, daß die Graphrepräsentation wie Figur 12 selbst neuartig ist. (Die Unterschiede gegenüber einem konventionellen Petrinetz werden später im Vergleich zwischen den Figuren 6 und 18 näher erläutert.) Weiter wird davon ausgegangen, daß ein Balken an einer Stelle eines gehaltenen Betriebsmittels abgelegt wird und nicht in einem Bedingungsgatter in einem Ausführungsbeispiel. In diesem Beispiel wird ein Balken während der Ausführung des Tasks T&sub4; an den Stellen T&sub4; und RA abgelegt. Selbst wenn dann das Steuerungssystem versucht, die Ausführung des Tasks T&sub5; zu beginnen, d.h. selbst wenn es versucht, einen Balken von der Stelle T&sub4; zur Stelle T&sub5; und zu den Stellen RA und RB zu übertragen, ist es unmöglich, den Balken zur Stelle T&sub5; zu übertragen, da der Stelle RA bereits ein Balken zugewiesen ist. Solange der Balken dann nicht zu der Stelle T&sub5; wandern kann, läßt sich der Balken auf der Stelle RA nicht entfernen.
  • Wenn veranlaßt wird, daß ein Balken in einem Bedingungsgatter vorhanden ist, wie für den Prozeßbetriebsmittelgraph definiert, kommt es nie zu einer Blockierung wie in dem beschränkten Petrinetz mit Sicherheit und Aktivität. Beim Abschluß der Ausführung des Tasks T&sub4; tritt also in dem obigen Beispiel ein Zustand ein, in dem der Stelle RA kein Balken zugewiesen ist, indem der Balken von den Stellen T&sub4; und RA entfernt wird und ein Balken in dem Bedingungsgatter C&sub5; erzeugt wird, so daß der Balken von dem Bedingungsgatter C&sub5; zu den Stellen T&sub5;, RA und RB übertragen werden kann. Mit der Ausführung des Tasks T&sub5; kann also begonnen werden. Hierin liegt die Bedeutung der Zuweisung eines Balkens zu einem Bedingungsgatter.
  • Die ausführbaren Codes des Prozeßbetriebsmittelgraphen werden in den Speicher oder das ROM der auszuführenden Steuerung geladen. Hier sind sequentiell verfügbare Betriebsmittel, die gesteuert werden sollen, solche, die von einem Computer oder einer programmierbaren logischen Steuerung (PLC, Programmable Logic Controller) gesteuert werden. Diese Betriebsmittel umfassen nicht nur diejenigen, die tatsächlich in der Steuerung enthalten sind, sondern auch diejenigen, die durch Kommunikation oder ähnliches gesteuert werden können. Die Erfindung führt, basierend auf den ausführbaren Codes des Prozeßbetriebsmittelgraphen, die gegenseitig ausschließende Betriebsmittelsteuerung zusammen mit der ereignisgesteuerten Prozeßsteuerung für die sequentiell verfügbaren Betriebsmittel durch, die Gegenstand der Steuerung sind. Figur 17 zeigt ein Beispiel für eine Hardwarekonfiguration eines Systems, das diese Steuerung durchführt, indem es die ausführbaren Codes des Prozeßbetriebsmittelgraphen lädt. In diesem Beispiel sind die Produktionsvorrichtungen 1, 2, 3, die kritischen Betriebsmittel. Ein Task, der eine solche Vorrichtung verwendet, ist in einem Taskprogramm beschrieben, wie es in Figur 8 gezeigt ist. Ein Signal, das den Beginn der Ausführung des Programms anordnet, und ein Endsignal, das die Vollendung der Ausführung des Programms meldet, werden über eine digitale Eingabe/Ausgabe-Schnittstelle oder Kommunikationsschnittstelle zwischen dem PLC und der Produktionsvorrichtung übertragen. Die Vollendung der Ausführung eines Tasks wird erkannt, indem ein Signal von der Produktionsvorrichtung an den PLC geschickt wird. Ansonsten kann der PLC den Zustand der Produktionsvorrichtung überwachen, um eine Zustandsveränderung zum Vollendungszustand hin zu erkennen.
  • Darüber hinaus kann ein Taskprogramm in der Produktionsvorrichtung gespeichert werden, oder es kann zur sequentiellen Übertragung von Anweisungen vom PLC zu der Produktionsvorrichtung im Speicher des PLC gespeichert werden.
  • Zusammenfassend schließlich ist in Figur 18 ein Prozeßbetriebsmittelgraph dargestellt, der ein Ergebnis der Repräsentation des Prozeßablaufs gemäß der Erfindung ist, wie er in Figur 6 gezeigt ist, und in den Figuren 19A bis 19D ist ein Beispiel für seine Ausführung gezeigt.
  • Der Graph in Figur 18 unterscheidet sich von dem in Figur 6 in folgenden Punkten deutlich. Selbst wenn zwei aufeinanderfolgende Tasks (zum Beispiel P&sub2; und P&sub3;) ein Betriebsmittel (in diesem Fall Px) verwenden, ist die Betriebsmittelstelle parallel mit jedem von ihnen verbunden. Die Beziehungen zwischen Eingang und Ausgang sind umgekehrt. So ist die Stelle Px in Figur 6 mit dem Eingang der Transition t&sub1; verbunden, während er in Figur 18 mit dem Ausgang des Bedingungsgatters C&sub1; verbunden ist.
  • Im folgenden wird nun ein Beispiel für die Ausführung erörtert, bei dem ein Balken gemäß der Erfindung übertragen wird. Zunächst wird davon ausgegangen, daß Balken in den Bedingungsgattern C&sub1; und C&sub4; erzeugt werden (Figur 19A). Wenn sich auf beiden Betriebsmittelstellen Px und Py kein Balken befindet, kann der Balken von dem Bedingungsgatter C&sub1; zu den Stellen P&sub2; und Px sowie von dem Bedingungsgatter C&sub4; zu den Stellen P&sub5; und Py übertragen werden (Figur 19B). Es wird also mit der Ausführung der Tasks P&sub2; und P&sub5; begonnen. Dann wird davon ausgegangen, daß die Ausführung des Tasks P&sub2; beendet ist. Das Steuersystem löscht jetzt die Balken auf den Stellen P&sub2; und Px und erzeugt ein Balken in dem Bedingungsgatter C&sub2; (Figur 19C). Dieser Balken kann zur Zeit nicht zu der Stelle P&sub3; übertragen werden, da der Stelle Py noch immer ein Balken zugewiesen ist. So bleibt im Prozeß A der Balken im Bedingungsgatter C&sub2; und wartet auf die Freigabe des Betriebsmittels Py. Wenn dann das Steuerungssystem ein Endsignal des Tasks P&sub5; empfängt, entfernt es den Balken von den Stellen P&sub5; und Py und erzeugt einen Balken im Bedingungsgatter C&sub5; (Figur 19D). Das Steuerungssystem kann den Balken zu den Stellen P&sub3; sowie Px und Py übertragen oder den Balken zu den Stellen P&sub6; und Px übertragen. Es kann also den Beginn der Ausführung des Tasks P&sub3; oder P&sub6; anordnen. Zu einer Blockierung wie in Figur 6 kommt es nach der Beschreibung niemals.
  • Die Erfindung wird, wie oben, unter Bezugnahme auf das Ausführungsbeispiel erläutert. Andere Modifikationen sind möglich. Obwohl zum Beispiel in dem obigen Ausführungsbeispiel der Prozeßablaufgraph und der Betriebsmittelverwaltungsgraph in Form von Zwischencodes erzeugt werden und der Prozeßbetriebsmittelgraph einmal in Form von Zwischencodes erzeugt wird und dann in ausführbare Codes umgewandelt wird, ist die Form ihrer Repräsentation nicht auf eine spezifische beschränkt, da es ausreicht, wenn diese Graphen in einem Speicher Repräsentationen erzeugen, die äquivalent zu denjenigen sind, die in den Zeichnungen dargestellt sind.
  • Im folgenden wird eine Beschreibung gemäß der Definition der Prozeßablauftheorie gegeben. Der Prozeßablaufgraph GPF ist:
  • GPF = (T, C, IT, OT, µ)
  • wobei gilt:
  • T = {T&sub1;, T&sub2; ... TM}, M > 0 Menge der Taskstellen
  • C = {C&sub1;, C&sub2; ... CL}, L > 1 Menge der Bedingungsgatter
  • T P = Φ Die Menge der Taskstellen und die Menge der Bedingungsgatter sind disjunkt.
  • IT : T T C Eingangsfunktion von einer Taskstelle zu einem Bedingungsgatter
  • OT : C T T Ausgangsfunktion von einem Bedingungsgatter zu einer Taskstelle
  • µ : T T {0, 1} Markierungsfunktion einer Taskstelle
  • Eine Übertragungsbedingungsgleichung eines Balkens von einer Taskstelle Ti nach To hinsichtlich eines beliebigen Bedingungsgatters CK zu einer beliebigen Zeit t ist:
  • wobei m&sub1; > 0, m&sub2; > 0
  • Eine neue Markierung zum Zeitpunkt t+1 ist: an der Taskstelle Ti
  • µ (Ti(t+1)) = µ (Ti(t)) - #(Ti, To) (t) i = 1 ... m&sub1;
  • und an der Taskstelle To
  • µ (To(t+1)) = µ (To(t)) - #(Ti, To) (t) o = 1 ... m&sub2;.
  • Ein Balken wird in dem Fall erzeugt, daß in dem Bedingungsgatter CK keine Eingangsfunktion IT vorliegt und aus den rechten Termen der Übertragungsgleichung folgendes wird:
  • Ein Balken verschwindet in dem Fall, daß in dem Bedingungsgatter CK keine Ausgangsfunktion OT vorliegt und aus den rechten Termen der Übertragungsgleichung folgendes wird:
  • Der Prozeßbetriebsmittelgraph wird gemäß der Definition der Graphtheorie beschrieben. Der Prozeßbetriebsmittelgraph GPR ist:
  • GPR = (T_R, C, IT_IR, OT_OR, µT_µR_µC)
  • wobei gilt:
  • T = {T&sub1;, T&sub2; . .. TM}, M > 0 Menge der Taskstellen
  • R = {R&sub1;, R&sub2; ... RN}, N > 0 Menge der Betriebsmittelstellen
  • C = {C&sub1;, C&sub2; ... CL}, L > 1 Menge der Bedingungsgatter
  • T R C = Φ Die Menge der Taskstellen, die Menge der Betriebsmittelstellen und die Menge der Bedingungsgatter sind disjunkt.
  • IT : T T C Eingangsfunktion von einer Taskstelle zu einem Bedingungsgatter
  • IR : R T C Eingangsfunktion von einer Betriebsmittelstelle zu einem Bedingungsgatter
  • IT IR = Φ Die Eingangsfunktion IT und die Eingangsfunktion IR sind disjunkt.
  • OT C T T Ausgangsfunktion von einem Bedingungsgatter zu einer Taskstelle
  • OR : C T R Ausgangsfunktion von einem Bedingungsgatter zu einer Betriebsmittelstelle
  • OT OR = Φ Die Ausgangsfunktion OT und die Ausgangsfunktion OR sind disjunkt.
  • µT T {0, 1} Markierungsfunktion der Taskstelle
  • µR : R T {0, 1} Markierungsfunktion der Betriebsmittelstelle
  • µC : C T {0, 1} Markierungsfunktion des Bedingungsgatters
  • µT µR µC = Φ Die Markierungsfunktion MT, die Markierungsfunktion MR und die Markierungsfunktion MC sind disjunkt.
  • Eine Übertragungsbedingungsgleichung eines Balkens von einem beliebigen Bedingungsgatter CK zu den Ereignisstellen T und R zu einer beliebigen Zeit t ist:
  • wobei m > 0, n > 0
  • Eine neue Markierung zum Zeitpunkt t+1 ist: im Bedingungsgatter CK
  • µ (CK(t+1)) = µ (CK(t)) - #(c, p) (t),
  • an der Taskstelle T
  • µ (Ti(t+1)) = µ (Ti(t)) + #(c, p) (t) i = 1 ... m
  • und an der Betriebsmittelstelle R
  • µ(Rj(t+1)) = µ (Rj(t)) + #(c, p) (t) j = 1 ... n.
  • Eine Übertragungsbedingungsgleichung eines Balkens zu einem beliebigen Bedingungsgatter CK von den Ereignisstellen T und R zu einer beliebigen Zeit t ist:
  • wobei m > 0, n > 0
  • Eine neue Markierung zum Zeitpunkt t+1 ist: im Bedingungsgatter CK
  • µ (CK(t+1)) = µ (CK(t)) + #(p, c) (t),
  • an der Taskstelle T
  • µ (Ti(t+1)) = µ (Ti(t)) - #(p, c) (t) i = 1 ... m
  • und an der Betriebsmittelstelle R
  • µ (Rj(t+1)) = µ (Rj(t)) - #(p, c) (t) j = 1 ... n.
  • Ein Balken wird in dem Fall erzeugt, daß in dem Bedingungsgatter CK keine Eingangsfunktion IT und IR vorliegt und aus den rechten Termen der Übertragungsbedingungsgleichung (2) folgendes wird:
  • Ein Balken wird in dem Fall entfernt, daß in dem Bedingungsgatter CK keine Ausgangsfunktion OT und OR vorliegt und aus den rechten Termen der Übertragungsbedingungsgleichung (1) folgendes wird:
  • Die Erfindung erlaubt es dem Benutzer, die gegenseitig ausschließende Steuerung für sequentiell verfügbare Betriebsmittel zusammen mit der ereignisgesteuerten Steuerung allein durch Beschreiben einer ereignisgesteuerten Steuerung (Prozeßablaufgraph und Taskprogramm) durchzuführen. Die Erfindung führt die Programmierung und Ausführung zur Verwaltung von Betriebsmitteln in einem Prozeß, für den ein Programmierer verantwortlich war, automatisch durch und entlastet den Programmierer von der Vermeidung von Fehlern in
  • einem Betriebsmittelverwaltungsprogramm und den Bediener von der Ausführung des Programms.
  • Darüber hinaus bietet die Erfindung den Vorteil, daß eine Blockierung, die in einem Petrinetz konventionell entstehen kann, durch die Zuweisung eines Balkens zu einem Bedingungsgatter vermieden wird.

Claims (7)

1. Ein Verfahren zur gegenseitig ausschließenden Betriebsmittelsteuerung, das folgende Schritte umfaßt:
(a) Erzeugen eines Graphen und Festhalten des Graphen in einer Speichervorrichtung, wobei der Graph Knoten umfaßt, denen Tasks, die in einen Prozeßablauf integriert sind, und ein kritisches Betriebsmittel, das sich mindestens einer der Tasks aneignen kann, zugeordnet sind, die Knoten von sequentiell ausgeführten Tasks in Reihe angeordnet sind, die Knoten von parallel ausgeführten Tasks parallel zueinander angeordnet sind und ein Knoten des kritischen Betriebsmittels parallel zu jedem Knoten des Tasks angeordnet ist, der sich das kritische Betriebsmittel aneignen kann; und
(b) bei jeder Übertragung eines Signals für den Beginn der Ausführung eines Tasks Erzeugen eines Balkens in dem Knoten des Tasks und des dazu parallelen Knotens des kritischen Betriebsmittels; und (c) bei der Erkennung des Endes der Ausführung des vorherigen Tasks im Prozeßablauf Zurückgreifen auf den Graph; und Veranlassen, daß die Übertragung eines Signals für den Beginn der Ausführung der unmittelbar nachfolgenden Tasks wartet, während ein Balken mindestens einem der unmittelbar nachfolgenden Taskknoten und dem parallel dazu angeordneten Knoten des kritischen Betriebsmittels zugeordnet ist.
2. Ein Verfahren gemäß Anspruch 1, umfassend in Schritt (a) das Vorsehen eines Gatterknotens an einer Stelle des Graphen, an der Knoten der Tasks, die sequentiell ausgeführt werden, verbunden sind;
in Schritt (b) das Entfernen von Balken von einem Taskknoten und einem parallel dazu angeordneten kritischen Betriebsmittelknoten bei jeder Erkennung der Vollendung der Ausführung des Tasks, das Erzeugen eines Balkens in einem Gatterknoten bei der Erkennung der Vollendung von Tasks, die zu allen Task-Knoten gehören, die unmittelbar vor dem Gatterknoten angeordnet sind, und dann das Zurückgreifen auf den Graph und das Veranlassen der Übertragung eines Signals zum Beginnen der Ausführung eines nachfolgenden Tasks zum Warten, während ein Balken mindestens einem der Taskknoten und dem parallel dazu unmittelbar nach dem Gatterknoten angeordneten kritischen Betriebsmittelknoten zugewiesen wird; und das Entfernen des Balkens von dem Gatterknoten nach der Übertragung des Signals zum Beginnen der Ausführung des nachfolgenden Tasks
3. Ein Verfahren gemäß Anspruch 2, wobei der Schritt (a) umfaßt:
(a 1) das Erstellen eines Prozeßablaufgraphen, bestehend aus Knoten von Tasks, die in dem Prozeßablauf enthalten sind, und aus Knoten von Gattern;
(a 2) das Erstellen eines Betriebsmittelverwaltungsgraphen, bestehend aus Knoten kritischer Betriebsmittel, die sich mindestens einer der Tasks aneignen kann, und aus Knoten der Gatter; und
(a 3) das Erstellen eines Vereinigungsgraphen, in dem der Prozeßablaufgraph und der Betriebsmittelverwaltungsgraph mit Knoten gemeinsamer Gatter überlappt sind, und das Festhalten des Vereinigungsgraphen in einer Speichervorrichtung.
4. Ein Verfahren gemäß Anspruch 3, bei dem nach dem Erstellen des Vereinigungsgraphen aus Prozeßablaufgraph und Betriebsmittelgraph in Schritt (a 3) der Vereinigungsgraph daraufhin überprüft wird, ob es eine Stelle gibt, an der es zu einer Blockierung kommt, und wenn ja, der Vereinigungsgraph einem Benutzer angezeigt wird.
5. Ein Verfahren gemäß Anspruch 4, bei dem
in Schritt (a 1) der Prozeßablaufgraph in Form von Zwischencodes ausgegeben wird;
in Schritt (a 2) der Betriebsmittelverwaltungsgraph in Form von Zwischencodes ausgegeben wird;
in Schritt (a 3) der Vereinigungsgraph einmal in Form von Zwischencodes ausgegeben wird, die in ausführbare Codes umgewandelt und dann in einer Speichervorrichtung festgehalten werden; und
in Schritt (b) die gegenseitig ausschließende Steuerung auf der Grundlage der Ausführungscodes durchgeführt wird.
6. Ein System für eine gegenseitig ausschließende Betr iebsmittelsteuerung, die eine Speichervorrichtung umfaßt, die einen Graph enthält, in dem Tasks, die in einem Prozeßablauf enthalten sind, und kritische Betriebsmittel, die sich mindestens ein Task aneignen kann, zu Knoten gehören, Knoten von Tasks, die sequentiell ausgeführt werden, in Reihe angeordnet sind, Knoten der Tasks, die parallel ausgeführt werden, parallel zueinander angeordnet sind und ein Knoten eines kritischen Betriebsmittels parallel zu jedem Knoten von Tasks angeordnet ist, die sich das kritische Betriebsmittel aneignen können;
ein Mittel zur Erzeugung von Balken in einem Knoten eines Tasks und in einem Knoten eines kritischen Betriebsmittels, der parallel zu dem Taskknoten in dem Graph angeordnet ist, bei jeder Übertragung eines Signals zum Beginnen eines Tasks;
ein Mittel zum Zurückgreifen auf den Graph bei der Erkennung des Endes der Ausführung eines vorhergehenden Tasks in dem Prozeßablauf und Veranlassen der Übertragung eines Signals zum Beginnen der Ausführung der unmittelbar nachfolgenden Tasks zum Warten, während ein Balken mindestens einem der unmittelbar nachfolgenden Taskknoten und dem parallel dazu angeordneten kritischen Betriebsmittelknoten zugewiesen wird.
7. Ein System gemäß Anspruch 6, in dem ein Knoten eines Gatters an einer Stelle des Graphen angeordnet ist, die die Knoten der Tasks miteinander verbindet, wobei das System umfaßt: ein Mittel zum Entfernen der Balken, die dem Knoten des Tasks und dem parallel zu dem Taskknoten angeordneten Knoten des kritischen Betriebsmittels zugewiesen sind, bei jeder Erkennung des Endes der Ausführung des Tasks;
ein Mittel zum Erzeugen eines Balkens in einem Gatterknoten, wenn die Ausführung, die zu allen unmittelbar vor dem Gatterknoten angeordneten Taskknoten gehört, beendet ist; und
ein Mittel zum Löschen des Balkens in dem Gatterknoten nach der Übertragung des Signals zum Beginnen des nachfolgenden Tasks,
DE69024072T 1989-02-13 1990-02-12 Verfahren und System zur gegenseitig ausschliessenden Betriebsmittelsteuerung Expired - Fee Related DE69024072T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1031146A JPH0769842B2 (ja) 1989-02-13 1989-02-13 資源の相互排他制御方法及びシステム

Publications (2)

Publication Number Publication Date
DE69024072D1 DE69024072D1 (de) 1996-01-25
DE69024072T2 true DE69024072T2 (de) 1996-06-13

Family

ID=12323299

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69024072T Expired - Fee Related DE69024072T2 (de) 1989-02-13 1990-02-12 Verfahren und System zur gegenseitig ausschliessenden Betriebsmittelsteuerung

Country Status (4)

Country Link
US (1) US5283896A (de)
EP (1) EP0383506B1 (de)
JP (1) JPH0769842B2 (de)
DE (1) DE69024072T2 (de)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339388A (en) * 1991-12-31 1994-08-16 International Business Machines Corporation Cursor lock region
FR2692055B1 (fr) * 1992-06-09 1996-10-25 Bull Sa Dispositif de conception de reseaux de commande d'informations pour la modelisation de tous processus.
JP2768412B2 (ja) * 1992-07-15 1998-06-25 財団法人ニューメディア開発協会 ユ−ザ適応型システムおよびその適応方法
JPH0756754A (ja) * 1993-08-03 1995-03-03 Internatl Business Mach Corp <Ibm> マルチメディア・グループ資源割当て装置及び方法
FR2718868B1 (fr) * 1994-04-18 1996-05-31 Bull Sa Procédé de détection d'interblocages dans les systèmes multiprocesseurs à mémoire partagée.
US5564049A (en) * 1994-07-29 1996-10-08 Allen-Bradley Company, Inc. Industrial controller programming method using external connection database
US5680530A (en) * 1994-09-19 1997-10-21 Lucent Technologies Inc. Graphical environment for interactively specifying a target system
US5640557A (en) * 1994-11-18 1997-06-17 International Business Machines Corporation Method and system for processing logic blocks in a data processing system
US5812824A (en) * 1996-03-22 1998-09-22 Sun Microsystems, Inc. Method and system for preventing device access collision in a distributed simulation executing in one or more computers including concurrent simulated one or more devices controlled by concurrent one or more tests
FR2752125B1 (fr) * 1996-08-01 1998-09-11 Bull Sa Distribution de tickets dans un systeme informatique multinodal
JP3052908B2 (ja) 1997-09-04 2000-06-19 日本電気株式会社 トランザクションプログラム並列実行方法およびトランザクションプログラム並列実行方式
JP3415009B2 (ja) * 1997-11-14 2003-06-09 沖電気工業株式会社 プログラム開発装置および記録媒体
US6366946B1 (en) * 1998-12-16 2002-04-02 Microsoft Corporation Critical code processing management
US6859927B2 (en) * 1999-12-21 2005-02-22 Lockheed Martin Corporation Apparatus and method for controlling allocation of resources and task execution
US6842899B2 (en) * 1999-12-21 2005-01-11 Lockheed Martin Corporation Apparatus and method for resource negotiations among autonomous agents
US7624089B2 (en) 2000-03-17 2009-11-24 Emperative, Inc. Communications services provisioning method and apparatus and object programming language for developing provisioning models
DE10028140A1 (de) * 2000-06-07 2001-12-20 Siemens Ag Verfahren zur Organisation des Ablaufs elektronisch gesteuerter Schaltvorgänge
DE10038441B4 (de) * 2000-08-07 2005-10-27 Siemens Ag "Flow Chart Programmierung für industrielle Steuerungen, insbesondere Bewegungssteuerungen"
US6981226B2 (en) 2000-08-07 2005-12-27 Siemens Aktiengesellschaft Flowchart programming for industrial controllers, in particular motion controllers
DE10038439B4 (de) * 2000-08-07 2008-04-24 Siemens Ag Vorrichtung, zumindest umfassend ein Computersystem und eine industrielle Steuerung, für das Debuggen von Programmen für industrielle Steuerungen
US20020087483A1 (en) * 2000-12-29 2002-07-04 Shlomi Harif System, method and program for creating and distributing processes in a heterogeneous network
US7133842B2 (en) * 2000-12-29 2006-11-07 International Business Machines Corporation System, method and program for bidding for best solution process execution in a heterogeneous network
US7120699B2 (en) * 2001-09-20 2006-10-10 Ricoh Company, Ltd. Document controlled workflow systems and methods
US7093253B2 (en) 2001-11-06 2006-08-15 International Business Machines Corporation Method, computer program product, and system for a self-throttled computing task
US7146360B2 (en) * 2002-12-18 2006-12-05 International Business Machines Corporation Method and system for improving response time for database query execution
US7065419B2 (en) * 2004-04-14 2006-06-20 Taiwan Semiconductor Manufacturing Company, Ltd. Job flow Petri Net and controlling mechanism for parallel processing
US7698708B1 (en) * 2004-07-30 2010-04-13 Symantec Operating Corporation Method and system for persistent, recoverable user-level locks
US8234647B1 (en) * 2008-01-31 2012-07-31 The Mathworks, Inc. Checking for mutual exclusiveness of a shared resource
US9582768B1 (en) 2008-01-31 2017-02-28 The Mathworks, Inc. Determining conditions associated with accessing data stores
US8280832B1 (en) 2009-03-04 2012-10-02 The Mathworks, Inc. Proving latency associated with references to a data store
US8601457B1 (en) * 2008-01-31 2013-12-03 The Mathworks, Inc. Checking for access problems with data stores
US8769496B2 (en) * 2010-08-13 2014-07-01 Accenture Global Services Limited Systems and methods for handling database deadlocks induced by database-centric applications
US8762781B2 (en) 2010-11-16 2014-06-24 International Business Machines Corporation Method and apparatus useful in manufacturing test case operations
US20150039279A1 (en) * 2013-08-02 2015-02-05 Vitali Volovoi Systems and methods for modeling a complex system using abridged petri nets
CN106569472B (zh) * 2016-11-14 2019-05-07 南京理工大学 基于bdd的企业车间死锁的快速预防方法
CN111444082B (zh) * 2019-01-17 2022-02-11 同济大学 基于Petri网的并发错误检测方法及系统
CN113886053B (zh) * 2021-12-01 2022-03-04 华控清交信息科技(北京)有限公司 一种任务调度方法、装置和用于任务调度的装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4866605A (en) * 1984-11-05 1989-09-12 Hitachi, Ltd. System function simulation method and apparatus therefor using Petri net symbols
US4922413A (en) * 1987-03-24 1990-05-01 Center For Innovative Technology Method for concurrent execution of primitive operations by dynamically assigning operations based upon computational marked graph and availability of data
JP2580592B2 (ja) * 1987-04-17 1997-02-12 株式会社日立製作所 データ構造駆動型処理装置とその制御方法

Also Published As

Publication number Publication date
JPH0769842B2 (ja) 1995-07-31
DE69024072D1 (de) 1996-01-25
EP0383506A3 (de) 1992-07-01
EP0383506B1 (de) 1995-12-13
US5283896A (en) 1994-02-01
JPH02211546A (ja) 1990-08-22
EP0383506A2 (de) 1990-08-22

Similar Documents

Publication Publication Date Title
DE69024072T2 (de) Verfahren und System zur gegenseitig ausschliessenden Betriebsmittelsteuerung
DE3751713T2 (de) Programmierbare Steuerung mit Überwachungsmitteln
DE602004005642T2 (de) Sicherheitssteuerung zur Durchführung von Standard- und Sicherheitssteuerungsprogrammen
DE69022709T2 (de) Synchronisationsbefehl für Mehrprozessornetz.
DE10206902A1 (de) Engineeringverfahren und Engineeringsystem für industrielle Automatisierungssysteme
DE69206917T2 (de) Hilfsverfahren für die Entwicklung einer miteinander kommunizierender Automatengruppe
EP0010194A1 (de) Wartungsschnittstelleneinrichtung für eine datenverarbeitende Anlage mit einer zentralen Verarbeitungseinheit und mit einem Dienstprozessor und Verfahren zu ihrem Betrieb
DE10051645A1 (de) Verfahren und Vorrichtung zur Versionskontrolle und Protokollierung in einem Prozesssteuersystem
DE3416939A1 (de) Verfahren zur steuerung von betriebseinrichtungen
DE3751949T2 (de) Verfahren zum Starten eines Untersystems in einem verteilten Verarbeitungssystem
DE602004013244T2 (de) Hochgeschwindigkeitssynchronisation in einer doppelrechnerbasierten Sicherheitssteuerung
DE19706512A1 (de) Echtzeit-Ereignisanordnung in einem elektronischen Ablaufdiagramm
EP1061422A1 (de) Informationstechnisches System zur Definition, Optimierung und Steuerung von Prozessen
WO2003050727A2 (de) System und verfahren zum testen und/oder debuggen von laufzeitsystemen zur lösung von mes-aufgaben
DE10206903A1 (de) Softwareapplikation, Softwarearchitektur und Verfahren zur Erstellung von Softwareapplikationen, insbesondere für MES-Systeme
EP2648094B1 (de) Verfahren und system zum erzeugen eines quellcodes für ein computerprogramm zur ausführung und simulation eines prozesses
DE112019007400T5 (de) Verfahren zur Verifizierung eines Interrupt-Antriebssystems basierend auf einem Interrupt-Sequenzdiagramm
DE102010004473A1 (de) System aus Entwicklungsumgebungen und Maschinensteuerungen
EP1508093A2 (de) Transformation von objektbäumen, insbesondere in mes-systemen
WO2003050716A2 (de) System und verfahren zur projektierung von transformationen von objektbäumen
EP1092210B1 (de) Vorrichtung und verfahren zur erstellung eines virtuellen anlagenmodells
EP1950635B1 (de) Verfahren zum Betrieb eines Automatisierungssystems
DE68905848T2 (de) Speicherprogrammierbare steuerung mit strukturierter programmiersprache.
DE10017708B4 (de) Verfahren zum Steuern von Mechanismen und technischen Systemen, Einrichtung und Steuerungssoftware
DE1947461A1 (de) Aktiver Kombinationsspeicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee