-
TECHNOLOGISCHES
GEBIET
-
Die
vorliegenden Erfindung bezieht sich allgemein auf Prozesssteuerungsnetze
und im Spezielleren auf eine Stapelausführungsmaschine, die in einer
Prozessanlage unabhängige
Stapelprozesse ablaufen lässt.
-
BESCHREIBUNG
DES VERWANDTEN STANDS DER TECHNIK
-
Prozesssteuerungsnetze
wie diejenigen, die in Chemie-, Erdöl- und anderen Prozessen eingesetzt
werden, umfassen im Allgemeinen einen zentralisierten Prozessrechner,
der kommunikativ mit einem oder mehreren Feldgerät/en gekoppelt ist, bei denen
es sich beispielsweise um Ventilstellglieder, Schalter, Sensoren
(wie Temperatur-, Druck- und Fließgeschwindigkeitssensoren)
etc. handeln kann. Diese Feldgeräte
können
innerhalb der Prozessanlage physikalische Funktionen erfüllen (wie Öffnen und Schließen eines
Ventils), können
innerhalb der Prozessanlage Messwerte zur Steuerung des Betriebs der
Prozessanlage ermitteln, oder können
irgendwelche anderen gewünschten
Funktionen innerhalb der Prozessanlage erfüllen. Prozessrechner wurden
in der Vergangenheit an Feldgeräte über eine/n
oder mehrere analoge/n Signalleitung/en oder Bus/se angeschlossen,
welche/r beispielsweise Signale mit 4–20 mA (Milliampere) an die
und aus den Feldgeräten übertragen
kann/können.
In jüngster
Zeit hat die Prozesssteuerungsindustrie jedoch eine Anzahl von standardmäßigen, offenen,
digitalen oder kombinierten digitalen und analogen Kommunikationsprotokollen
entwickelt, wie den FOUNDATIONTMFieldbus
(im Folgenden „Fieldbus"), HART®, PROFIBUS®, WORLDFIP®,
Device-Net® und
CAN-Protokolle, welche eingesetzt werden können, um Kommunikation zwischen
einem Rechner und Feldgeräten
zu bewerkstelligen. Allgemein ausgedrückt, empfängt der Prozessrechner Signale,
die für
Messungen stehen, die von einem Feldgerät oder mehreren Feldgeräten gemacht
wurden, und/oder andere, die Feldgeräte betreffende Daten, verwendet
diese Daten, um ein typischerweise komplexes Steuerprogramm ablaufen zu
lassen, und erzeugt Steuersignale, die über die Signalleitungen oder
-busse an die Feldgeräte
geschickt werden, um dadurch den Betrieb der Prozessanlage zu steuern.
-
Bestimmte
Arten von Prozesssteuerungsnetzen wie diejenigen, die in Stapelprozessen
eingesetzt werden, umfassen typischerweise mehrere Gruppen von sich
wiederholenden Einrichtungen, wobei jede Gruppe so ausgelegt ist,
dass sie dieselben oder entsprechende Einrichtungen aufweist, die innerhalb
der Prozessanlagen dieselben Funktionen erfüllt. Auf diese Weise kann beispielsweise
eine Keksherstellungsanlage mehrere Gruppen von Mischeinrichtungen,
mehrere Gruppen von Backeinrichtungen und mehrere Gruppen von Verpackungseinrichtungen
aufweisen, wobei einige oder alle der einzelnen Mischeinrichtungen
parallel laufen und so geschaltet sein können, dass sie mit einigen
oder allen Backeinrichtungen bzw. Verpackungseinrichtungen in Reihe
laufen. In einem solchen System ist es wünschenswert, denselben allgemeinen
Steueralgorithmus oder dasselbe allgemeine Steuerprogramm verwenden
zu können,
um den Betrieb irgendeiner besonderen Gruppe von sich wiederholendem
Einrichtungen zu steuern, um dadurch die Anzahl von Steuerprogrammen
zu reduzieren, die erstellt und im Rechner gespeichert werden müssen. Diese
Steueralgorithmen müssen
aber so geschrieben sein, dass sie, wenn sie ausgeführt werden,
die Einrichtungen einer bestimmten Einheit, die gleichzeitig verwendet werden,
spezifizieren. Typischerweise vollzieht eine Stapelsteuerungsprozedur
eine aufeinanderfolgende Anzahl von Schritten oder Stufen, indem
sie die erste Stufe beendet, bevor sie mit der zweiten Stufe beginnt,
usw. Somit lässt
in der vorstehend beschriebenen Keksherstellungsanlage die Stapelprozedur
einen ersten Teil prozess oder Schritt ablaufen, um die Mischeinrichtungen
zu steuern, lässt
dann einen zweiten Teilprozess ablaufen, um die Backeinrichtungen
am von den Mischeinrichtungen hergestellten Produkt ablaufen zu
lassen, und lässt
dann einen dritten Teilprozess ablaufen, der die Verpackungseinrichtungen
so steuert, dass sie das von den Backeinrichtungen hergestellte
Produkt verpacken, wovon jeder Schritt einen endlichen Zeitbetrag
in Anspruch nimmt.
-
In
Prozesssteuerungssystemen aus dem Stand der Technik ist es bekannt,
ein Stapelausführungsprogramm
oder eine Stapelausführungsanwendung
bereitzustellen, um einen Benutzer in die Lage zu versetzen, eine
Anzahl unterschiedlicher Stapelabläufe („batch runs") gleichzeitig in
der Prozessanlage ablaufen zu lassen, indem verschiedene Einrichtungen
verwendet werden, oder aber auch einige derselben Einrichtungen
zu unterschiedlichen Zeiten zu verwenden. Diese Stapelausführungsanwendung speichert
ein ProzessGerätschaftenmodell,
das eine Liste der und Zusammenschaltungen zwischen den verschiedenen
Einrichtungen in der Anlage enthält, die
die Stapelausführungsanwendung
verwendet, um die aktuelle Einrichtung auszuwählen, die von jedem Schritt
der einzelnen Stapel verwendet werden soll, der zu einer bestimmten
Zeit über
den ganzen Stapelbetrieb durchgeführt werden soll. Ein Verfahren
zum dynamischen Auswählen
von Einrichtungen während
des Betriebs unterschiedlicher Stapelabläufe ist im US-Patent Nr. 6,522,934
beschrieben, welches hiermit ausdrücklich durch Bezugnahme mitaufgenommen
wird. Wie klar wird, kann die Stapelausführungsanwendung je nach der
Größe der Anlage dazu
verwendet werden, viele gleichzeitige Stapelabläufe unter Verwendung der unterschiedlichen
Ausrüstungsteile
in der Anlage auszuführen.
-
In
einigen größeren Prozessanlagen
werden Stapelausführungsanwendungen
verwendet, um die Ausführung
von etwa einem Stapel bzw. Batch bis zu potentiell mehreren hundert
Stapel gleichzeitig zu koordinieren. Unglücklicherweise sind einige Stapelausführungsanwendungen
derart programmiert, dass ein Softwareausfall, der während einem
Stapelablauf auftritt, die Stapelausführungsanwendung zum „Absturz" oder Abbruch bringen
kann, was im Allgemeinen dazu führt,
dass alle Stapel, die gegenwärtig
unter der Steuerung der Stapelausführungsanwendung laufen, anhalten
oder abbrechen. Ein Absturz der Stapelausführungsanwendung kann zum Abbruch
des Durchsatzes der Prozessanlage und dem Bedarf nach einem Be diener
führen,
der alle Stapelabläufe
manuell wieder neu startet. Solche Neustartvorgänge können einen übermäßigen Betrag an Zeit in Anspruch
nehmen, die aufzuwenden ist, während
der Angestellte jeden Stapel wieder in den Zustand vor der Zeit
des Absturzes zurückversetzt
und wieder auf das zugrundeliegende Steuersystem synchronisiert.
Es erübrigt
sich, zu erwähnen, dass
dieser Vorgang einen großen
Betrag an Ausfallzeit in der Prozessanlage und eine Menge zusätzlicher
Arbeit für
den Bediener hervorruft. Ein Absturz der Stapelausführungsanwendung
kann auch dazu führen,
dass eine oder mehrere der Stapel, die sich zur Zeit des Absturzes
in der Prozessanlage befinden, zu Ausschuss werden, was zu einem
erheblichen finanziellen Verlust führen kann, sowohl was vergeudete
Materialien als auch verlorengegangene Anlagenbetriebszeit betrifft.
-
Noch
darüber
hinaus ist es schwierig, wenn nicht gar unmöglich, die Konfiguration des
ProzessGerätschaftenmodells,
das von bekannten Stapelausführungsanwendungen
verwendet wird, während die
Anwendung in Betrieb ist oder in der Prozessanlage abläuft, zu ändern, weil
jede der unterschiedlichen Stapel, die von der Stapelausführungsanwendung
ablaufen gelassen wird, auf dieses Gerätschaftenmodell zurückgreift
oder es verwendet, um Entscheidungen hinsichtlich der zu verwendenden
Einrichtungen zu treffen. Somit ist es bei bekannten Stapelausführungsanwendungen
notwendig, die Stapelausführungsanwendung
zu schließen
(entweder abzuwarten, bis die gegenwärtig ausgeführten Stapel fertig sind, oder
den Arbeitsablauf dieser Stapel anzuhalten), die Konfiguration des
ProzessGerätschaftenmodells
in der Stapelausführungsanwendung
zu aktualisieren, und dann die Stapelausführungsanwendung mit dem neuen
ProzessGerätschaftenmodell
neu zu starten. Wie klar wird, hat dieser Vorgang möglicherweise
negative Auswirkungen auf all diejenige Stapel, die gerade von der
Stapelausführungsanwendung
gesteuert werden.
-
Zusätzlich beschränkt die
meiste Betriebssoftware wie die Betriebssoftware Microsoft Windows,
den Umfang des physikalischen und virtuellen Speichers, der von
irgendeiner bestimmten (Einzel-)Anwendung adressiert oder verwendet
werden kann. In einem Fall ermöglicht
die Betriebssoftware ein Speicherlimit von ca. 2 Gigabytes, bevor
der Anwendung Speicherplatz ausgeht und sie vom Betriebssystem abgebrochen
wird. Dieses Merkmal beschränkt
die Anzahl von Stapeln, speziell großen oder komplexen Stapeln
mit komplizierten Rezepten, die gleichzeitig von der Stapelausführungsanwendung
ablaufen gelassen oder durchgeführt
werden können,
weil jeder neue Stapel, der ablaufen gelassen wird, den Speicherbedarf
der Stapelausführungsanwendung
erhöht.
Gegenwärtig
beginnt eine Stapelausführungsanwendung,
die an die hundert gleichzeitige Stapel ablaufen lässt, gegen
diese Speicherbeschränkung
anzulaufen. Während
diese Speicherbeschränkung
in den meisten kleiner dimensionierten Prozessanlagen für gewöhnlich kein
Problem darstellt, zwingt diese Beschränkung Stapelausführungsanwendungen
in sehr großen
Prozessanlagen dazu, die Anzahl gleichzeitiger Stapel, die sie ausführen können, einzuschränken. Aufgrund dieser
Beschränkung
implementieren Stapelprozessentwickler manchmal mehrere Stapelausführungsanwendungen
innerhalb ein- und derselben Prozessanlage, um die gewünschte Anzahl
gleichzeitig ablaufender Stapel abwickeln oder implementieren zu
können.
Der Einsatz einer solchen Behelfslösung bedeutet aber, dass die
verschiedenen Stapelausführungsprogramme
(die als separate Anwendungen ablaufen) die Prozesseinrichtungen
bzw. Prozessgerätschaften
nicht auf die ökonomischste
oder optimalste Weise gemeinsam nutzen oder koordinieren.
-
ZUSAMMENFASSUNG
DER OFFENBARUNG
-
Ein
Prozesssteuerungssystem für
eine Prozessanlage umfasst eine Stapelausführungsmaschine, die für jeden
Stapel, der in der Prozessanlage ablaufen soll, einen individuellen
Stapelausführungsprozess
hervorbringt oder erstellt. Die Stapelausführungsmaschine umfasst eine
Kommunikationssoftware zur Kommunikation mit den Stapel-Bedienerschnittstellen
oder anderen Schnittstellen, die dazu verwendet werden, einen Stapelablauf
aufzubauen, wobei ein Hauptprozessgerätschaftenmodell den gegenwärtigen Zustand
der Einrichtungen in der Prozessanlage wiederspiegelt, und einen
Stapelausführungsmanager,
der individuelle Stapelprozesse erstellt und diese individuellen
Stapelprozesse abkoppelt, um sie in separaten Anwendungsprozessräumen ablaufen
zu lassen. Jeder dieser erstellten Stapelprozesse umfasst eine Stapellogik,
die eine bestimmte Stapel implementiert, wie sie etwa durch das Stapelrezept
definiert ist, welche Stapellogik eine Prozedur mit einer oder mehreren
Einheitsprozeduren umfasst, wobei jede Einheitsprozedur eine Einheitsoperation
oder mehrere Einheitsoperationen, wobei jede Operation eine Phase
oder mehrere Phasen aufweist, eine Kopie des ProzessGerätschaftenmodells
und eine Kommunikationsschnittstelle zur Kommunikation mit dem Stapelausführungsmanager aufweist,
um Benutzern spezielle Stapeldaten zur Verfügung zu stellen, eine Koordination
mit anderen Stapeln in der Prozessanlage abzurufen oder bereitzustellen,
etc.
-
Jeder
der einmal erstellten Stapelprozesse läuft in einem von der Stapelausführungsmaschine unabhängigen Raum
ab, um den Betrieb einer bestimmten Stapel zu bewerkstelligen oder überwachen.
Weil die erstellten Stapelprozesse in von der Stapelausführungsmaschine
und untereinander abgetrennten Anwendungsprozessräumen ausgeführt werden,
bringt ein Softwareausfall in einem Stapelprozess die Stapelausführungsmaschine
oder irgendeinen der anderen Stapelprozesse nicht zum Absturz, was
die Auswirkung eines Softwareausfalls in einem bestimmten Stapelprozess
reduziert. Gleichermaßen
kann das ProzessGerätschaftenmodell, das
mit dem Stapelausführungsmanager
zusammenhängt,
verändert
werden, ohne sich auf den gegenwärtigen
Betrieb bestehender Stapelprozesse auszuwirken, weil jeder der im
Ablauf befindlichen Stapelprozesse eine Kopie des ProzessGerätschaftenmodells
umfasst, wie es beim Erstellen des Stapelprozesses war, und der
Stapelprozess die Gerätschaftenmodellkopie
in dem Maße,
als die darin befindlichen Daten noch stimmen, jederzeit während des Betriebs
des Stapelprozesses verwenden kann, selbst wenn der Stapelausführungsmanager
nicht läuft.
Noch weiter darüber
hinaus wird kein Stapelprozess durch Grenzen beeinträchtigt,
die Einzelprozessen vom Betriebssystem auferlegt werden, weil jeder
Stapelprozess als separate Anwendung in einem separaten Anwendungsraum
abläuft.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist ein Teilblockschema
eines Abschnitts einer Prozesssteuerungsnetzes, in dem eine Stapelausführungsmaschine
gleichzeitige Stapelprozesse bewerkstelligen kann;
-
2 ist ein Blockschema eines
Netzes von Computern, die eine Stapelausführungsanwendung aus dem Stand
der Technik umfassen, die dazu verwendet wird, mehrere Stapel in
einer Prozessanlage, ohne separate Stapelprozesse einzusetzen, zu
implementieren;
-
3 ist ein Blockschema eines
Netzes von Computern, die eine Stapelausführungsmaschine mit einem Stapelausführungsmanager
umfassen, der separate Stapelprozesse erstellt, wovon jeder dazu verwendet
wird, eine andere Stapel in einer Prozessanlage zu implementieren;
und
-
4 ist ein Blockschema der
Stapelausführungsmaschine
von 3, die unanhängige Stapelprozesse
in unterschiedlichem Anwendungsprozessräumen erstellt oder hervorbringt,
um dadurch gleichzeitige Stapel in einer Prozessanlage zu implementieren.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
Nunmehr
umfasst mit Bezug auf 1 ein Prozessanlagensteuernetz 10 einen
Prozessrechner 12, der beispielsweise über eine Ethernet-Kommunikationsverbindung 15 mit
zahlreichen Arbeitsplatzrechnern 14 verbunden ist. Der
Rechner 12 ist auch mit Geräten oder Einrichtungen in der
Prozessanlage (die allgemein mit dem Bezugszeichen 16 bezeichnet ist) über eine
(nicht gezeigte) Eingabe-/Ausgabevorrichtung (E-/A-Vorrichtung)
und eine Gruppe von Kommunikationsleitungen oder einen Bus 18 verbunden.
Der Rechner 12, der nur beispielhaft der Rechner DeltaVTM sein kann, der von Fisher-Rosemount Systems,
Inc. vertrieben wird, kann mit Steuerelementen wie Feldgeräten und
Funktionsblöcken
in den Feldgeräten
kommunizieren, die über
die Prozessanlage 16 verteilt sind, um ein oder mehrere
Prozesssteuerungsprogramm/e durchzuführen, um dadurch eine gewünschte Steuerung
der Prozessanlage 16 zu bewerkstelligen. Diese Prozesssteuerungsprogramme
können
Steuerungsprogramme oder -prozeduren für kontinuierliche oder Stapelprozesse sein.
Die Arbeitsplatzrechner 14 (bei denen es sich beispielsweise
um PCs, Server, etc. handeln kann) können von einem oder mehreren
Techniker/n oder Bediener/n verwendet werden, um Prozesssteuerungsprogramme
zu entwickeln, die vom Rechner 12 ausgeführt werden
sollen, um mit dem Rechner 12 so zu kommunizieren, dass
solche Prozesssteuerungsprogramme heruntergeladen werden, um während des
Betriebs der Prozessanlage 16 Daten, die die Prozessanlage 16 betreffen,
zu empfangen und anzuzeigen und auf andere Art mit den Prozesssteuerungsprogrammen
zu interagieren, die vom Rechner 12 ausgeführt werden.
-
Jeder
der Arbeitsplatzrechner 14 umfasst einen Speicher 20 zum
Speichern von Anwendungen wie Konfigurationsentwicklungsanwendungen,
und zum Speichern von Daten, die die Konfiguration der Prozessanlage 16 betreffen.
Jeder der Arbeitsplatzrechner 14 umfasst auch einen Prozessor 21,
der die Anwendungen ausführt,
um einen Benutzer unter anderem in die Lage zu versetzen, Prozesssteuerungsprogramme
zu entwickeln und diese Prozesssteuerungsprogramme auf den Rechner 12 herunterzuladen.
Gleichermaßen
umfasst der Rechner 12 einen Speicher 22 zum Speichern
von Konfigurationsdaten und Prozesssteuerungsprogrammen, die dazu
verwendet werden sollen, die Prozessanlage 16 zu steuern,
und umfasst einen Prozessor 24, der die Prozesssteuerungsprogramme
ausführt,
um eine Prozesssteuerungsstrategie zu implementieren. Ist der Rechner 12 ein
DeltaV-Rechner, kann er, zusammen mit einer oder mehreren Anwendung/en
auf einem der Arbeitsplatzrechner 14 einem Benutzer eine
graphische Darstellung der Prozesssteuerungsprogramme im Rechner 12 bereitstellen,
die die Steuerelemente im Prozesssteuerungsprogramm und die Art und
Weise veranschaulicht, in der diese Steuerelemente konfiguriert
sind, um die Steuerung der Prozessanlage 16 zu bewerkstelligen.
-
In
dem Beispiel des in 1 dargestellten Prozessanlagensteuernetzes 10 ist
der Rechner 12 über
den Bus 18 kommunikativ mit zwei Gruppen von ähnlich konfigurierten
Einrichtungen verbunden, wobei jede Ausrüstungsgruppe eine Reaktoreinheit,
die hier als Reaktor_01 (R1) oder Reaktor_02 (R2) bezeichnet wird,
eine Filtereinheit, die hier als Filter_01 (F1) oder Filter_02 (F2)
bezeichnet wird, und eine Trocknereinheit aufweist, die hier als
Trockner_01 (D1) oder Trockner_02 (D2) bezeichnet wird. Der Reaktor_01
umfasst einen Reaktorbehälter 100,
zwei Einlassventile 101 und 102, die so angeschlossen sind,
dass sie Fluideinlassleitungen steuern, die Fluid beispielsweise
aus einem (nicht gezeigten) Kopftank in den Reaktorbehälter 100 leiten,
und ein Auslassventil 103, das so angeschlossen ist, dass
es einen Fluidstrom aus dem Reaktorbehälter 100 heraus über eine
Fluidauslassleitung steuert. Ein Gerät 105, bei dem es
sich um einen Sensor wie einen Temperatursensor, einen Drucksensor,
einen Fluidfüllstandsmesser,
etc. oder irgendeine andere Einrichtung wie einen Elektroheizer
oder Dampfheizer handeln kann, ist im oder nahe am Reaktorbehälter 100 angeordnet.
Der Reaktor_01 ist über
das Ventil 103 mit dem Filter_01 mit der Filtereinrichtung 110 verbunden,
die wiederum mit dem Trockner_01 mit der Trocknereinrichtung 120 verbunden
ist. Entsprechend umfasst die zweite Ausrüstungsgruppe den Reaktor_02,
der einen Reaktorbehälter 200,
zwei Einlassventile 201 und 202, ein Auslassventil 203 und
ein Gerät 205 umfasst.
Der Reaktor_02 ist mit dem Filter_02 mit der Filtereinrichtung 210 verbunden,
die wiederum mit dem Trockner_02 verbunden ist, der die Trocknereinrichtung 220 aufweist.
Die Filtereinrichtung 110 und 210 und die Trocknereinrichtung 120 und 220 können zusätzliche,
damit verbundene Steuerelemente (wie Heizgeräte, Förderbänder u. dgl.), Sensoren, etc.
aufweisen. Obwohl nicht gezeigt, können, falls gewünscht, jede
der Filtereinheiten Filter_01 bzw. Filter_02 physikalisch mit jeder
der Reaktoreinheiten Reaktor_01 bzw. Reaktor_02 verbunden werden,
während
jede der Trocknereinheiten Trockner_01 und Trockner_02 mit den Filtereinheiten Filter_01
bzw. Filter_02 verbunden werden kann, so dass ein Stapelablauf,
der jeweils einen Reaktor, einen Filter und einen Trockner verwendet,
jede Kombination der in 1 gezeigten
Einrichtungen einsetzen kann.
-
Wie
in 1 dargestellt ist,
ist der Rechner 12 kommunikativ mit den Ventilen 101–103, 201–203,
den Geräten 105, 205,
den Filtern 110, 210 und den Trocknern 120 und 220 (und
anderen damit zusammenhängenden
Einrichtungen) über
den Bus 18 verbunden, um den Betrieb dieser Elemente (welche
Einheiten, Feldgeräte,
etc. sein können)
so zu steuern, dass ein Arbeitsgang oder mehrere Arbeitsgänge im Hinblick
auf diese Elemente durchgeführt werden.
Solche Arbeitsgänge
können
beispielsweise umfassen, die Reaktorbehälter oder Trockner zu befüllen, das
Material in den Reaktorbehältern
oder Trocknern zu erwärmen,
die Reaktorbehälter
oder Trockner zu leeren, die Reaktorbehälter oder Trockner zu reinigen,
die Filter zu aktivieren, etc. Selbstverständlich könnte der Rechner 12 über zusätzliche Busse, über zweckgebundene
Leitungen wie 4–20 ma-Leitungen,
HART-Kommunikationsleitungen,
etc. mit den Elementen in der Prozessanlage 16 verbunden
werden.
-
Die
Ventile, Sensoren und andere in 1 dargestellte
Einrichtungen können
von jeder beliebigen Art oder jedem beliebigen Typ sein, einschließlich, beispielsweise,
Fieldbus-Feldgeräte,
standardmäßige 4–20 ma-Feldgeräte, HART-Feldgeräte, etc., und
können
mit dem Rechner 12 unter Verwendung irgendeines bekannten
oder gewünschten
Kommunikationsprotokolls kommunizieren, wie dem Fieldbus-Protokoll,
dem HART-Protokoll, dem analogen 4–20 ma-Protokoll, etc. Noch
darüber
hinaus können andere
Gerätetypen
auf jede gewünschte
Weise an den Rechner 12 angeschlossen und von diesem gesteuert
werden. Es können
auch andere Rechner an den Rechner 12 und die Arbeitsplatzrechner 14 beispielsweise über die
Ethernet-Kommunikationsleitung 15 angeschlossen werden,
um andere Geräte oder
Bereiche zu steuern, die mit der Prozessanlage 16 zusammenhängen, und
der Betrieb solcher zusätzlicher
Rechner könnte
auf jede gewünschte
oder bekannte Weise mit dem Betrieb des in 1 dargestellten Rechners 12 koordiniert
werden.
-
Allgemein
ausgedrückt,
kann das Prozesssteuerungssystem von 1 dazu
verwendet werden, Stapelprozesse zu implementieren, bei denen beispielsweise
einer der Arbeitsplatzrechner 14 ein Stapelausführungssystem
ausführt,
das unterschiedliche Stapelabläufe
in der Prozessanlage 16 bewerkstelligt und koordiniert.
Solch ein Stapelausführungssystem 30 ist
als im Arbeitsplatzrechner 14a von 1 gespeichert dargestellt, wobei klar
ist, dass das Stapelausführungssystem 30 auch
in anderen Arbeitsplatzrechnern 14 oder anderen Computern gespeichert
und ausgeführt
werden könnte,
die kommunikativ in jeder gewünschten
Weise, einschließlich jeder
drahtlosen Weise, mit dem Bus 15 oder dem Bus 18 verbunden
sind. Gleichermaßen
kann das Stapelausführungssystem 30,
wie zuvor ausführlicher
im Hinblick auf 3 erörtert, in
verschiedene Komponenten aufgeteilt oder mit verschiedenen Komponenten
assoziiert werden, die in unterschiedlichen Computern oder Arbeitsplatzrechnern
in der Prozessanlage 16 gespeichert sind und von diesen ausgeführt werden.
-
Anders
ausgedrückt
ist das Stapelausführungssystem 30 ein
Steuerprogramm auf hoher Ebene, das es einem Benutzer ermöglicht,
eine Anzahl von Stapelabläufen
zu spezifizieren, die in der Prozessanlage abgewickelt werden sollen,
und das eine Anzahl von verschiedenen Stapelabläufen oder Stapelprozessen aufbaut,
die im Prozessanlagensteuernetz 10 im Wesentlichen unabhängig ablaufen,
um die unterschiedlichen Stapelabläufe zu implementieren. Jeder
solcher Stapelprozess leitet den Betrieb einer oder mehrerer Einheitsprozeduren,
die Unterprogramme oder -prozesse sind, die auf einer einzelnen
Einheit ablaufen, wie einer der Reaktoreinheiten, Filtereinheiten,
Trocknereinheiten oder einer anderen Einrichtung in der Prozessanlage.
Jede Einheitsprozedur (welche ein Teil eines Stapelablaufs ist,
der im Allgemeinen auf einem der Arbeitsplatzrechner 14 abläuft), kann
eine Reihe von Operationen durchführen, wovon jede eine oder
mehr Phasen in einer Einheit durchführen kann. Für diese
Erörterung
ist eine Phase eine Aktion oder ein Schritt auf der untersten Ebene,
die/der an einer Einheit vorgenommen und typischerweise in einem
der Rechner 12 implementiert oder ausgeführt wird.
Eine Operation ist eine Gruppe von Phasen, die eine bestimmte Funktion
an der Einheit erfüllt,
und wird typischerweise auf einem der Arbeitsplatzrechner 14 implementiert
oder ausgeführt, indem
eine Reihe von Phasen im Rechner 12 abgerufen wird, während eine
Einheitsprozedur eine Reihe von einer oder mehreren Operationen
ist, die auf einer einzelnen Einheit durchgeführt werden, und typischerweise
als ein Satz von Operationsabrufen auf einem der Arbeitsplatzrechner 14 implementiert
wird. Im Ergebnis kann irgendeine Einheitsprozedur eine oder mehrere
Phasen und/oder eine oder mehrere Operationen umfassen. Auf diese
Weise vollzieht jeder Stapelprozess verschiedene Schritte oder Stufen (d.h.
Einheitsprozeduren), die zur Herstellung eines Produkts wie eines
Nahrungsmittelprodukts, eines Medikaments, etc. benötigt werden.
-
Um
verschiedene Einheitsprozeduren, Operationen und Phasen für eine einzelne
Stapel zu implementieren, verwendet ein Stapelprozess etwas, was
gemeinhin als Rezept bezeichnet wird, welches die auszuführenden
Schritte spezifiziert, den Umfang und die Zeit, die mit den Schritten
verbunden sind, und die Reihenfolge der Schritte. Schritte für ein Rezept
könnten
beispielsweise umfassen, einen Reaktorbehälter mit den geeigneten Materialien
oder Zutaten zu befüllen,
die Materialien im Reaktorbehälter
zu mischen, die Materialien im Reaktorbehälter eine bestimmte Zeit lang
auf eine bestimmte Temperatur zu erwärmen, den Reaktorbehälter zu
leeren und ihn dann zu reinigen, um ihn für die nächste Stapel herzurichten,
einen Filter zu betätigen,
um die Abgabe des Reaktors zu filtern, und dann einen Trockner laufen
zu lassen, um das im Reaktorbehälter
entstandene Produkt zu trocknen. Jeder dieser Reihe von Schritten,
die mit einer anderen Einheit zusammenhängen, definiert eine Einheitsprozedur
der Stapel, und der Stapelprozess führt für jede einzelne dieser Einheitsprozeduren
einen anderen Steueralgorithmus durch. Natürlich können die speziellen Materialien,
Materialmengen, Erwärmungstemperaturen
und Zeiten, etc. für
verschiedene Rezepte unterschiedlich sein, und folglich können sich
diese Parameter, je nach dem Produkt, das hergestellt oder erzeugt
wird, und dem Rezept, das verwendet wird, von Stapelablauf zu Stapelablauf ändern. Dem
Fach mann wird klar sein, dass, während
die in 1 dargestellten Steuerprogramme
und -konfigurationen hier für
Stapel beschrieben sind, die Reaktor-, Filter- und Trocknereinheiten
verwenden, auch Steuerprogramme zur Steuerung anderer beliebiger
Geräte
verwendet werden können,
um andere beliebige Stapelweise Prozessläufe durchzuführen, oder
um kontinuierliche Prozessanlagenläufe durchzuführen, falls
das so gewünscht
wird.
-
Wie
dem Fachmann klar sein wird, können dieselben
Phasen, Operationen oder Einheitsprozeduren einer Stapelprozessgattung
auf jeder der unterschiedlichen Reaktoreinheiten von 1 gleichzeitig oder zu unterschiedlichen
Zeiten als Teil von unterschiedlichen, aktuellen Stapelprozessen
implementiert werden. Da darüber
hinaus die Reaktoreinheiten von 1 im
Allgemeinen dieselbe Anzahl und dieselben Arten von Einrichtungen
umfassen (d.h., sie zur selben Einheitsklasse gehören), kann dieselbe
Phasensteuerungsprogrammgattung für eine bestimmte Phase verwendet
werden, um jede der verschiedenen Reaktoreinheiten zu steuern, mit der
Ausnahme, dass diese Phasensteuerungsprogrammgattung modifiziert
werden muss, um die unterschiedliche Hardware und Ausrüstung zu
steuern, die mit den unterschiedlichen Reaktoreinheiten zusammenhängt. Um
beispielsweise eine Befüllungsphase
für den
Reaktor_01 zu implementieren (bei der die Reaktoreinheit befüllt wird), öffnet ein
Befüllungssteuerprogramm
eines oder mehrere der Einlassventile 101 oder 102 eine
bestimmte Zeit lang, bis beispielsweise der Fluidfüllstandsmesser
erfasst, dass der Behälter 100 voll
ist. Dasselbe Steuerprogramm kann jedoch verwendet werden, um eine
Befüllungsphase
für den
Reaktor_02 zu implementieren, indem einfach nur die Bezeichnung
des Einlassventils (der Einlassventile) auf 201 oder 201 anstatt
der Ventile 101 oder 102 geändert wird, und, indem die
Bezeichnung des Fluidfüllstandsmessers
auf Fluidfüllstandsmesser 205 anstatt
des Fluidfüllstandsmessers 105 geändert wird.
Selbstverständlich
ist die mit dem allgemeinen Betrieb von Stapelabläufen zusammenhängende Logik
bekannt und wird hier nicht weiter beschrieben.
-
2 ist ein Blockschema eines
bekannten Client/Server-Netzes 40, also eines hierarchischen Netzes,
mit einer Gruppe von Client-Computern oder -Knoten 42 und
einer Gruppe von Server-Computern oder -Knoten 44, die über einen
Bus oder eine andere Kommunikationsleitung 46 angeschlossen
sind, die dazu verwen det wurde, eine oder mehrere Stapelausführungsprogramme
aus dem Stand der Technik in einer Prozessanlage freizugeben und
zu implementieren. Im Allgemeinen nimmt die Stapelnetzwerkarchitektur
von 2 die Form einer
klassischen zweireihigen, auf Client/Server beruhenden Auslegung
an, bei der die Client-Knoten 42 den Server-Knoten 44 Befehle
oder Nachrichten zukommen lassen, die dann die aktuellen Stapel
in einer Prozessanlage (nicht gezeigt in 2) anfertigen. Die Client-Knoten 42 umfassen
im Allgemeinen Bedienerschnittstellenanwendungen, die es einem Benutzer
ermöglichen,
in einer Prozessanlage unter Verwendung irgendeiner gewünschten
Strategie, die sich auf die Anlage anwenden lässt, mehrfache Stapelabläufe aufzubauen
und zu konfigurieren. Im Schema von 2 sind
drei der Client-Knoten 42a, 42c und 42d so
dargestellt, dass sie eine BOI-Anwendung oder Batch-Bedienerschnittstellenanwendung 48 (BOI – Batch
Operator Interface) umfassen, welche ein Programm ist, das mit einem
Bediener interagiert, um es ihm zu ermöglichen, eine einzelne Stapel,
die abgewickelt werden soll, aufzustellen und zu spezifizieren,
d.h. einen oder mehrere Stapelabläufe einzuleiten. Auf ähnliche
Weise sind die Client-Knoten 42b und 42c so dargestellt,
dass sie eine CMOI-Anwendung oder Aktionsmanager-Bedienerschnittstellenanwendung 50 (CMOI – Campaign
Manager Operator Interface) umfassen, welche es einem Benutzer ermöglichen,
eine Stapelablaufaktion aufzustellen (die im Allgemeinen mehrere
aufeinanderfolgende Stapelabläufe
umfasst), die in einer bestimmten Reihenfolge oder zu bestimmten
zukünftigen
Zeiten in der Prozessanlage ablaufen oder ausgeführt werden soll. Eine solche
Aktionsmanageranwendung ist ausführlich
in der US-Patentanmeldung Seriennummer 09/609,091 mit dem Titel „Campaign Management
for Batch Processes" beschrieben,
welche am 30. Juni 2000 eingereicht wurde, und deren Offenbarung
hiermit durch Bezugnahme ausdrücklich
mitaufgenommen wird. Es ist klar, dass andere BOI- und CMOI-Anwendungen
bekannt sind und ebenfalls eingesetzt werden können.
-
Jeder
der Server-Knoten 44a, 44b und 44c ist
ein Batch- bzw. Stapelserver mit einem bekannten Stapelausführungsprogramm
oder einer bekannten Stapelausführungsanwendung 52,
welche eine bidirektionale Verbindung mit einer oder mehreren BOI-Anwendungen 48 in
den Knoten 42a, 42c und 42d herstellt,
und welche eine oder mehrere separate Stapel in der Prozessanlage
gleichzeitig implementiert und überwacht.
Auf ähnliche
Weise umfasst der Client-Knoten 44d eine Aktions manager-Serveranwendung 54,
welche eine bidirektionale Verbindung mit den CMOI-Anwendungen 50 herstellt
und die Stapelaktionen implementiert, die unter Verwendung der CMOI-Anwendungen 50 erstellt
werden, indem eine Interaktion oder Kommunikation mit den Stapelausführungsanwendungen 52 (unter
Verwendung einer Stapelinitialisierungsanforderung) in den Stapelserver-Knoten 44a, 44b und 44c stattfindet.
Die Client/Server-Architektur von 2 wird
traditionell dazu verwendet, die Client-Anwendungen von den Server-Anwendungen
zu entkoppeln, um eine größere Fehlertoleranz
bereitzustellen.
-
Wie
für die
Stapelausführungsanwendung 52 im
Stapelserver-Knoten 44b dargestellt, spricht die Stapelausführungsanwendung 52 auf
die vom Aktionsmanager-Server 54 geschickten Stapelinitialisierungsanforderung
und die BOI-Anwendungen 48 an,
um einen oder mehrere gleichzeitige Stapelabläufe in der Prozessanlage 16 zu
implementieren. Es wird klar, dass der Stapel-Server 44b kommunikativ mit
einem oder mehreren Rechnern 12 verbunden ist, die wiederum
mit einem oder mehreren Geräten,
Einheiten, etc. in der Prozessanlage verbunden sind, wie zum Beispiel
in 1 veranschaulicht
ist.
-
Im
Hinblick auf das verbreiterte Schema des Server-Knotens 44b von 2 umfasst das bekannte Stapelausführungsprogramm 52 eine
Stapelausführungslogik 56 und
ein ProzessGerätschaftenmodell 58,
das von der Stapelausführungslogik 56 dazu verwendet
wird, eine endliche Anzahl von verschiedenen gleichzeitigen Stapelabläufen 60 zu
implementieren (die als Stapel 1, Stapel 2, ..., Stapel N bezeichnet
sind). Insbesondere erstellt oder initiiert die Stapelausführungslogik 56 einen
Stapelablauf 60, wenn ein Benutzer über eine der BOI-Anwendungen 48,
oder der Aktionsmanager-Server 54, der das darin gespeichert
ProzessGerätschaftenmodell 58 verwendet,
dazu die Anweisung gibt. Wie in 2 dargestellt
ist, erstellt die Stapelausführungslogik 56 die verschiedenen
Stapel 60 im selben Anwendungsprozessraum wie die Stapelausführungslogik 56 und lässt sie
dort ablaufen, und überwacht
die Abwicklung dieser verschiedenen Stapelabläufe 60 unter Verwendung
einer gemeinsamen Verarbeitungstechnik. Über den gesamten Ablauf des
Stapelablaufs 60 hinweg greift die Stapelausführungslogik 56 häufig auf
das ProzessGerätschaftenmodell 58 zu,
um zu bestimmen, welche Einrichtung zur Verwendung in der Stapel
zur Verfügung
steht, etc., und kommuniziert mit einer oder mehreren Rechnerlauf zeitanwendungen 62,
um den Zustand jedes Stapelablaufs zu überwachen, verschiedene Phasen
der Stapelabläufe
zu implementieren, mit den Benutzeroberflächen oder anderen Anwendungen
in den Client-Knoten 42 (oder anderen Arbeitsplatzrechnern)
zu kommunizieren, um einem Benutzer oder Bediener Daten über den
Zustand eines Stapelablaufs zur Verfügung zu stellen.
-
Wie
zuvor festgestellt, kann ein Fehler oder Ausfall eines der Stapelabläufe 60,
welcher als Ergebnis einer fehlerbehafteten Einrichtung, einer Kommunikationsunterbrechung
mit dem Rechner oder einzelnen Ausrüstungsteilen, Speicher- oder Stromausfall,
etc., auftreten kann, die Stapelausführungslogik 56 zum
Ausfall oder „Absturz" bringen, was in
der Folge zum Abbruch des Ablaufs jeder der anderen Stapelabläufe 60 führt, weil
alle Stapelabläufe 60 von
der Stapelausführungslogik 56 als
Teil derselben Anwendung im selben Anwendungsprozessraum implementiert
werden. Wie vorstehend erörtert,
kann dies zu einer erheblichen Ausfallzeit führen und einen erheblichen
Bedienereinsatz notwendig machen, um die Stapelabläufe 60 wieder
zum Laufen zu bringen, oder können
zum Verlust von Prozessanlagenmaterialien und Prozessanlagenbetriebszeit
führen.
Gleichermaßen
ist die Stapelausführungslogik
aufgrund der Speicherbeschränkungen,
die ihr von der Betriebssoftware des Stapelservers 44b auferlegt
werden, bei der Zahl N von Stapelabläufen 60, die sie auf
einmal (d.h. gleichzeitig) bewerkstelligen kann, praktisch eingeschränkt. Diese Einschränkung kann
in großen
Prozessanlagen ein Problem darstellen, die potentiell physikalisch
Hunderte von Stapelabläufen
zu jeder bestimmten Zeit unterstützen
könnten.
-
3 stellt ein Client/Server-Netz 68 ähnlich demjenigen
von 2 dar (wobei gleiche
Komponenten dieselben Bezugszahlen aufweisen), mit der Ausnahme,
dass der Stapelserver 44 eine Stapelausführungsmaschine 70 speichern
und ausführen, welche
so konfiguriert ist, dass sie einige oder alle der zuvor im Hinblick
auf Stapelausführungsanwendungen 52 aus
dem Stand der Technik erörterten Probleme
aus der Welt schafft. Wie insbesondere für den Stapelserver 44b in 3 dargestellt ist, umfasst jeder
der Stapelserver 44 einen Speicher 72, der die Stapelausführungsmaschine 70 speichert,
und einen Prozessor 74, der die Stapelausführungsmaschine 70 während des
Betriebs der Prozessanlage ausführt,
um mehrere verschiedene Stapelabläufe zu erstellen und zur selben
Zeit ablaufen zu lassen.
-
Allgemein
ausgedrückt
erstellt und koppelt die Stapelausführungsmaschine 70,
die in 4 ausführlicher
dargestellt ist, einen separaten Stapelprozess ab, der in einem
separaten Anwendungsprozessraum (APS – Application Process Space)
für jeden
neuen, zu koordinierenden Stapel ablaufen soll. Jeder solche Stapelprozess
wirkt unabhängig
als separate Anwendung, um eine spezielle Stapel zu implementieren,
kann aber mit der Stapelausführungsmaschine 70 kommunizieren,
um den Einsatz von Prozesseinrichtungen bzw. -gerätschaften
mit anderen Stapeln zu koordinieren, Status-, Alarm- und andere
Nachrichten an einen Bediener oder sonstigen Benutzer zu schicken,
etc. Insbesondere umfasst die Stapelausführungsmaschine 70,
wie in 4 dargestellt,
eine erste Kommunikationsschicht 80, einen Stapelausführungsmanager 82,
ein Hauptgerätschaftenmodell 84 und
eine zweite Kommunikationsschicht 86. Die erste Kommunikationsschicht 80 kann
irgendein standardmäßiges Kommunikationsprogramm
oder irgendeine standardmäßige Kommunikationsroutine
sein, das/die eine Kommunikation mit den BOI-Anwendungen 48,
dem CM-Server 50 und/oder anderen gewünschten Anwendungen wie Sichtungs-
und Anzeigeanwendungen in einem der Client-Knoten 42 ermöglicht,
und Benutzer oder Bediener in die Lage versetzt, Stapel zu spezifizieren, die
erstellt werden und in der Prozessanlage 16 ablaufen sollen.
Der Stapelausführungsmanager 82 ist ein
Programm, eine Routine oder eine andere Logik, die einen anderen
Stapelprozess 90 in einem anderen Anwendungsprozessraum,
d.h. als separates Programm oder als separate Anwendung für jeden anderen
Stapel erstellt und abkoppelt, der ablaufen soll, während das
Hauptgerätschaftenmodell 84 die jüngste Version
des Gerätschaftenmodells
für die
Anlage abspeichert, die von den Stapeln verwendet werden soll, um
beispielsweise die Einrichtungen auszuwählen, die in verschiedenen
Phasen und Arbeitsabläufen
der Stapel verwendet werden sollen. Die zweite Kommunikationsschicht 86,
die dieselbe wie die erste Kommunikationsschicht 80 sein
kann, stellt Verbindungen zwischen der Stapelausführungsmaschine 70 und
den verschiedenen, gegenwärtig
ablaufenden Stapelprozessen 90 bereit. Natürlich kann
die Kommunikationsschicht 80 auf jede gewünschte oder
bekannte Weise implementiert werden, um eine Verbindung zwischen
zwei verschiedenen Anwendungen herzustellen, die auf demselben Prozessor
ausgeführt
werden.
-
4 stellt eine Gruppe von
N Stapelprozessen 90 dar (die als Stapel 1, Stapel 2, ...;
Stapel N bezeichnet sind), wovon sich jeder in einem anderen Anwendungsprozessraum
(APS) befindet und die deshalb vom Prozessor 74 von 3 als Programm oder Anwendung
behandelt werden, das/die vom Stapelausführungsmanager 82 und
voneinander getrennt sind. Der Stapelausführungsmanager 82 erstellt
jeden der Stapelprozesse 90 so, dass er eine Kommunikationsschicht 92,
eine Stapelausführungslogik 94 und
ein Gerätschaftenmodell 96 umfasst.
Die Kommunikationsschicht 92 stellt eine Verbindung zum
Stapelausführungsmanager 82 der
Stapelausführungsmaschine 70 bereit,
um zu ermöglichen, dass
der bestimmte Stapelprozess 90 Nachrichten an den Stapelausführungsmanager 82 schicken
und von diesem empfangen kann, um beispielsweise Status- oder Alarmnachrichten
bezüglich
der Stapel bereitzustellen, die gerade vom Stapelprozess 90 implementiert
wird, um den Stapelausführungsmanager 82 aufzufordern,
eine Prozessausrüstungsfrage
zu lösen
oder darüber
zu befinden, oder um den Stapelausführungsmanager 82 anderweitig
in die Lage zu versetzen, verschiedene Stapelprozesse 90 miteinander
zu koordinieren. Die Kommunikationsschicht 92 kommuniziert
auch mit den Ablaufeinrichtungen, wie Steuergeräten, Feldgeräten, etc.,
um einen Stapelablauf zu bewerkstelligen, zu überwachen und auszuführen. Solche
Verbindungen können über einen
Ablauf-Server 97 (in 3 dargestellt)
stattfinden, die in diesem oder einem anderen Server als Stapelprozesse 90 abgespeichert
werden. Natürlich kann
die Kommunikationsschicht 92 jede beliebige Form annehmen
und hängt
allgemein von der Art der Verbindungen und Kommunikationsnetze ab,
die in der Prozessanlage zwischen den Stapelserverknoten 44 und
den Client-Serverknoten 42, sowie zwischen den Stapelserverknoten 44 und
dem Ablaufsystem (wie den Rechnern 12 von 1) verwendet werden.
-
Das
Gerätschaftenmodell 96 ist
einfach eine Kopie aller relevanten Abschnitte des Hauptgerätschaftenmodells 84,
weil das Hauptgerätschaftenmodell 84 bereits
existierte als der Stapelprozess vom Stapelausführungsmanager 82 erstellt
und hervorgebracht wurde. Die Stapelausführungslogik 94 ist
die Logik, die tatsächlich
eine bestimmte Stapel unter Verwendung von bestimmten Einrichtungen
implementiert, die während
des Ablaufs der Stapel aus dem Gerätschaftenmodell 96 ausgewählt werden kann,
indem ein bestimmtes, wie beim Erstellen des Stapelprozesses 90 spezifiziertes
Rezept verwendet wird. Die Stapelausführungslogik 94 kann ähnlich der Logik
sein, die gegenwärtig
in Stapelausführungsprogrammen
verwendet wird, um eine Stapel zu beginnen, den Arbeitsablauf und
Fortschritt einer Stapel zu überwachen,
die Einrichtungen, Prozeduren, Phasen, etc., zu spezifizieren, die
während
der Stapel wie von einem Rezept gefordert verwendet werden sollen,
etc. Wie klar wird, ist die Stapelausführungslogik 94 dafür verantwortlich,
eine einzelne Stapel oder einen einzelnen Stapelablauf durch alle
seine Stadien zu bringen, und um mit dem Stapelausführungsmanager 82 wegen
einer Ausrüstungsentscheidung
zwischen den unterschiedlichen Stapelabläufen 90 oder irgendwelcher
anderen stapelübergreifenden
Prozessverbindungen oder Client-Verbindungen zu kommunizieren. Client-Verbindungen
können umfassen,
Stapelstatusdaten wie Alarme, Warnhinweise, Ereignisse, etc. zu
verschicken, die während des
Arbeitsablaufs der dazugehörigen
Stapel entstehen, der gerade vom Stapelprozess 90 bewerkstelligt wird.
Selbstverständlich
kann jede beliebige Stapelausführungslogik
eingesetzt werden.
-
Während des
Betriebs erstellt der Stapelausführungsmanager 82,
wenn eine BOI-Anwendung 48 oder der Aktionsmanager-Server 54 die
Stapelausführungsmaschine 70 anweist,
eine Stapel zu implementieren oder zu erstellen, einen Stapelprozess 90 (z.B.
den Stapelprozess 90a) für diejenige Stapel, die die
Daten über
die Stapel verwendet, wie sie von der BOI-Anwendung 48 oder
dem Aktionsmanager-Server 54 bereitgestellt
werden. Um den Stapelprozess 90a zu erstellen, kann der
Stapelausführungsmanager 82 eine
Stapelprozesslogikvorlage 98 einschließlich einer generischen Stapellogik
(oder Programmierung) abspeichern und verwenden, und diese Logik unter
Verwendung einer Datei oder anderer Daten modifizieren oder instanzieren,
die die speziellen Daten, die von der Stapellogikvorlage verwendet
werden sollen, um eine bestimmte Stapel auszuführen, spezifizieren, wie etwa
das Rezept, die Prozeduren, die Einrichtungen, die verwendet werden
sollen. Während
dieser Zeit kann der Stapelausführungsmanager 82 das
Hauptgerätschaftenmodell 84 (oder
irgendeinen einschlägigen
Abschnitt davon) in den Stapelprozess 90a oder als Teil
des Stapelprozesses 90a kopieren. Steht der Stapelprozess 90a,
kann ihn der Stapelausführungsmanager 82 dann
auf jede beliebige oder bekannte Weise abkoppeln, um den Stapelprozess 90a zur
Ausführung
im Prozessor 74 (3)
in einem anderen Anwendungsprozessraum zur Ausführung zu bringen, so dass er
als autonome Anwendung unabhängig
vom Stapelausführungsmanager 82 wirkt.
-
Wie
in 4 dargestellt, erstellt
der Stapelausführungsmanager 82 einen
separaten Stapelprozess 90 in einem anderen Anwendungsverarbeitungsraum
für jede
neue Stapel, die ausgeführt
werden soll. Einmal erstellt oder abgekoppelt, wird jeder der Stapelprozesse 90 vom
Prozessor 74 des Stapelservers, in welchem er erstellt
wird, ausgeführt,
und wirkt wie jede andere Anwendung auf diesem Prozessor 74,
wodurch Speicherplatz und Verarbeitungszeit auf dem Prozessor 74 mehrfach
genutzt werden. Wie klar wird, läuft
dadurch jeder Stapelprozess 90 eigenständig ab und kann ausfallen,
ohne dabei den Stapelausführungsmanager 82 oder
irgendeinen der andere Stapelprozesse 90 unnötig in Mitleidenschaft
zu ziehen. Die hier beschriebene Stapelausführungsmaschine 70 entkoppelt
die einzelnen Stapelabläufe
zu separaten Stapelprozessen, die am selben Prozessor oder im selben
Server, aber in separaten Anwendungsprozessräumen ablaufen, um dadurch dazu
beizutragen, zu verhindern, dass der Ausfall eines der Stapelabläufe einen
Ausfall oder ein Anhalten aller anderen Stapelabläufe verursacht,
die gerade auf dem Server ausgeführt
werden. Auf diese Weise verursacht ein Ausfall (wie ein Softwareausfall)
in oder bei einem der Stapelprozesse 90 nicht notwendigerweise
den Ausfall irgendeines der anderen Stapelprozesse 90 und
kann in den meisten Fällen
auch die Stapelausführungsmaschine 70 nicht zum
Ausfall bringen. Auf diese Weise beschränkt sich der Ausfall im Allgemeinen
auf einen einzelnen Stapelablauf, der gerade von einem Prozessor 74 implementiert
wird, und überträgt oder
wirkt sich nicht auf alle Stapelabläufe aus, die gerade vom Prozessor 74 implementiert
werden. Diese Tatsache reduziert signifikant die Neustartzeit, die
mit einem Stapelsoftwareausfall verbunden ist, weil im Allgemeinen
nur eine einzelne Stapel manuell neu gestartet werden muss. Im Falle,
dass die Stapel nicht neu gestartet werden kann oder als Ausschuss
entsorgt werden muss, reduziert das hier beschriebene Stapelausfallentkopplungsmerkmal
den Umfang an verlorengegangener Prozessanlagenzeit und verlorengegangenen
Ressourcen, die sich aus diesem Ausfall ergeben.
-
Da
darüber
hinaus jeder der Stapelprozesse 90 sein eigenes Gerätschaftenmodell
abspeichert, welches er verwendet, bis er abgeschlossen ist, kann das
Hauptgerätschaftenmodell 84 in
der Stapelausführungsmaschine 70 jederzeit
geändert
oder abgeändert
werden, ohne sich dabei auf die momentan ablaufenden Stapelabläufe oder
Stapelprozesse 90 auszuwirken. Auf diese Weise kann ein
Benutzer oder Bediener das Hauptgerätschaftenmodell 83 in der
Stapelausführungsmaschine 70 ändern, um
sich in der Anlage verändernde
Bedingungen zu reflektieren, wie das Hinzukommen oder Entfernen
bestimmter Einrichtungen, ohne warten zu müssen, dass alle momentan ablaufenden
Stapelprozesse 90 zum Abschluss kommen, und ohne die Prozesse 90 anhalten oder
abbrechen zu müssen,
um die Änderung
in der Stapelausführungsmaschine 70 vorzunehmen.
-
Zusätzlich kann
die Stapelausführungsmaschine 70,
weil jeder Stapelprozess 90 in einem anderen Anwendungsverarbeitungsraum
als der Stapelausführungsmaschine 70 abläuft, gleichzeitig
viel mehr Stapelabläufe
implementieren, ohne die Speicherplatzzuteilung zu verletzen, die
von der auf dem Stapelserver 44 (4) verwendeten Betriebssoftware durchgesetzt
wird, weil das Hinzufügen
oder Erstellen eines neuen Stapelprozesses 90 den von der Stapelausführungsmaschine 82 verwendeten
Speicher nicht signifikant belastet, wenn dieser Stapelprozess 90 erst
einmal abgekoppelt ist und selbständig läuft. Im Ergebnis kann der Stapelausführungsmanager 82 effektiv
jede Anzahl von Stapelprozessen 90, die gleichzeitig ablaufen
sollen, erstellen, ohne dabei die Speicherzwänge zu verletzen, die von der
Betriebssoftware für
jede Einzelanwendung auferlegt werden.
-
Noch
weiter darüber
hinaus kann, wie zuvor beschrieben, jeder Stapelserver 44 von 3 einen Ablauf-Server 97 umfassen,
der eine Ablaufinteraktion und Herunterladedienste für alle Stapelprozesse oder
-anwendungen 90 bereitstellt, und kann Daten wie Sicherheitsdaten,
Gerätehierarchiedaten,
Rezeptdaten und weitere Rechner- oder Prozessanlagendaten zur Verfügung stellen,
die benötigt
werden, um Stapel in der Prozessanlage 16 zu erstellen
und ablaufen zu lassen. Gleichermaßen kann der Ablauf-Server 97 eine
Kommunikationsschnittstelle zwischen den Stapelprozessen 90 und
den Rechnern 12 von 1 bereitstellen,
um es den Stapelprozessen 90 zu ermöglichen, mit den Rechnern 12 zu
kommunizieren und dadurch Stapel in der Prozessanlage 16 einzuleiten,
zu überwachen
und zu steuern. Falls gewünscht,
kann der Ablauf-Server 97 ein teilweises Herunterladen
von Gerätschaftenmodellveränderungen
auf das Hauptgerätschaftenmodell 84 in
der Stapelausführungsmaschine 70 ermöglichen,
und kann dazu verwendet werden, eine Koordinierung zwischen den
unterschiedlichen Stapelausführungsknoten 44 zu
ermöglichen,
um es dadurch Stapelprozessen 90, die in verschiedenen
der Knoten 44 ablaufen, zu ermöglichen, sich miteinander zu
koordinieren, um beispielsweise eine knotenübergreifende Geräteentscheidung
zu treffen.
-
Wie
klar wird, kann die hier beschriebene Architektur der Stapelausführungsmaschine
die gleichzeitige Ausführung
von irgendwelchen von einem bis mehreren Hunderten oder mehr unterschiedlichen Stapelprozessen
zu jeder bestimmten Zeit unterstützen,
während
ein Softwareausfall in irgendeinem der aktuell ablaufenden Stapelprozesse
reduziert oder daran gehindert wird, sich auf den Ablauf irgendwelcher
anderer Stapelprozesse oder auch den Ablauf des Stapelausführungsmanagers
auszuwirken. Zusätzlich
kann diese Architektur der Stapelausführungsmaschine signifikant
die Zeit für
einen Neustart im Falle eines Softwareausfalls reduzieren, weil
typischerweise nur ein einzelner Stapelablauf (derjenige, der den
Softwareausfall verursacht hat) manuell neu gestartet werden muss,
und nicht alle Stapelabläufe. Auch
ermöglicht
es diese Architektur der Stapelausführungsmaschine, dass die Stapelausführungsmaschine
geändert
werden kann, ohne die verschiedenen Stapelabläufe anzuhalten oder abzubrechen,
die gerade bewerkstelligt werden. Da jeder Stapelprozess in seinem
eigenen Anwendungsverarbeitungsraum abläuft, besteht auch keine praktische
Grenze für
die Anzahl von Stapeln, die gleichzeitig auf einer einzelnen Stapelausführungsmaschine
ausgeführt werden
können,
die auf die Betriebssoftware zurückzuführen ist,
die dem Umfang des physikalischen und virtuellen Speichers, der
von einer Einzelanwendung adressiert werden kann, eine Grenze auferlegt.
Im Ergebnis besteht keine oder nur eine reduzierte Notwendigkeit,
separate Stapelausführungsmaschinen in
denselben oder unterschiedlichen Servern zu erstellen, um eine Entkopplung
vorzusehen und die Anzahl gleichzeitiger Stapelabläufe, die
zu irgendeiner gegebenen Zeit in einer Prozessanlage bewerkstelligt
werden können,
zu erhöhen.
-
Es
wird klar, dass Stapelprogramme wie die Stapelausführungsmaschine,
die BOI, CMOI und die Aktionsmanager-Serveranwendungen, die hier
beschrieben sind, in jeder beliebigen Prozessanlagensteuerungsprogrammierumgebung
verwendet und implementiert werden können, und in jedem Prozessanlagensteuerungssystem
verwendet werden können,
das irgendeine beliebige Art von Prozessanlagensteuerungskommunikationsprotokoll
verwendet, und darüber
hinaus dazu verwendet werden kann, jede Art von Funktion im Hinblick
auf irgendwelche Art von Ge rät(en)
oder Teileinheiten von Geräten)
zu erfüllen.
Während
die wie hier beschriebenen Stapelprogramme vorzugsweise in Software implementiert
sind, die beispielsweise in einem Server, einem Arbeitsplatzrechner
oder einem anderen Computer gespeichert sind, können je nach Wunsch diese Programme
alternativ oder zusätzlich
in Hardware, Firmware, anwendungsspezifischen integrierten Schaltungen,
programmierbaren Logikschaltungen, etc. implementiert werden. Falls
sie in Software implementiert werden, können die Stapelprogramme in
jedem maschinenlesbaren Speicher wie etwa einer Magnetplatte, einer
Laserplatte oder einem anderen Speichermedium, in einem RAM oder
ROM eines Computers, Rechners, Feldgeräts, etc., gespeichert werden.
Gleichermaßen
kann diese Software einem Benutzer oder einem Gerät über jedes
bekannte oder gewünschte Übermittlungsverfahren
einschließlich, beispielsweise
einen Kommunikationskanal wie eine Telefonleitung, das Internet,
ein tragbares Medium, wie eine computerlesbare Diskette, etc. übermittelt werden.
-
Während die
vorliegende Erfindung mit Bezug auf spezielle Beispiele beschrieben
wurde, die nur veranschaulichend für die Erfindung und diese nicht
einschränkend
sein sollen, wird dem Fachmann klar sein, dass Veränderungen,
Hinzufügungen
oder Weglassungen an den offenbarten Ausführungsformen vorgenommen werden
können,
ohne dass dabei vom Aussagegehalt und Umfang der Erfindung abgewichen
würde.