-
GEBIET DER ERFINDUNG
-
Die vorliegende Erfindung bezieht sich allgemein auf Prozesssteuerungssysteme und insbesondere auf redundante Anwendungsendgeräte für Prozesssteuerungssysteme.
-
ERFINDUNGSHINTERGRUND
-
Prozesssteuerungssysteme, wie sie z.B. in der chemischen Industrie, der Petrochemie und für andere Prozesse eingesetzt werden, umfassen typischerweise einen oder mehrere zentrale Prozesssteuerungen, die mit wenigstens einem Host bzw. Hauptcomputer oder einer Bediener-Workstation bzw. Arbeitsplatzsystem und mit einer oder mehreren Feldvorrichtungen über analoge, digitale oder kombinierte analog/digitale Datenstrecken kommunikativ verbunden sind. Die Feldvorrichtungen, bei denen es sich z.B. um Ventile, Ventilsteller, Schalter und Messwertgeber (z.B. für Temperatur-, Druck- und Durchflusssensoren) handelt, führen Funktionen innerhalb des Prozesses aus, z.B. Öffnen und Schließen von Ventilen und Erfassen von Prozessparametern. Die Prozesssteuerung erhält Signale, die Prozessdatenmessungen anzeigen, die von Feldeinrichtungen gemacht wurden und/oder anderen Informationen, die die Feldvorrichtungen betreffen, und nutzt diese Informationen zur Implementierung einer Steuerungsroutine, um Steuersignale zu generieren, die über die Datenstrecken oder andere Kommunikationsleitungen an die Feldvorrichtungen übermittelt werden, um die Arbeitsweise des Prozesses zu steuern. Informationen von den Feldvorrichtungen und den Steuerungen können einer oder mehreren Anwendungen zur Verfügung gestellt werden, die von der Bediener-Workstation bzw. dem Arbeitsplatzsystem ausgeführt werden, um einem Bediener zu ermöglichen, die jeweils gewünschten Funktionen bezüglich des Prozesses zu veranlassen, etwa Abfragen des aktuellen Prozesszustandes, Modifikationen des Prozessablaufs, etc.
-
Viele Prozesssteuerungssysteme umfassen außerdem ein oder mehrere Anwendungsendgeräte. Typischerweise sind die Anwendungsendgeräte durch PCs, Arbeitsplatzsysteme o.dgl. realisiert, die dabei über ein lokales Netzwerk (LAN) mit den Steuerungen, Bediener-Workstations bzw. Arbeitsplatzsystemen und anderen Systemen innerhalb des Prozesssteuerungssystems kommunikativ verbunden sind. Jedes Anwendungsendgerät kann eine oder mehrere Programmanwendungen ausführen, die Verwaltungsfunktionen, Wartungsmaßnahmen, virtuelle Steuerungsfunktionen, Diagnosefunktionen, Echtzeitüberwachungsfunktionen etc. innerhalb des Prozesssteuerungssystems veranlassen.
-
Ein Ausfall eines Anwendungsendgerätes aufgrund z.B. eines Programmfehlers oder eines Gerätefehlers (z.B. Ausfall der Netzwerkverbindung, Stromausfall, etc.) innerhalb des Anwendungsendgerätes und/oder an anderen Stellen des Prozesssteuerungssystems führt typischerweise zum Abbruch der Funktionen und Anwendungen, die von dem fehlerhaften bzw. ausgefallenen Anwendungsendgerät ausgeführt werden. Einige Prozesssteuerungssysteme oder Anwendungsendgeräte sind konfiguriert, um eine begrenzte Fähigkeit zur Wiederherstellung der Funktion des Anwendungsendgerätes zu gewährleisten. Beispielsweise speichern einige bekannte Anwendungsendgeräte Konfigurationsinformationen, Steuerparameter und -werte, Stammdaten etc., die den von ihnen ausgeführten Funktionen und/oder Anwendung(en) zugehörig sind. Diese gespeicherten historischen Informationen oder Stammdaten können vom Prozesssteuerungssystem nach einem Restart (z.B. Neuladen des Systems) eines Anwendungsendgerätes genutzt werden, um eine aufgrund eines Geräte- und/oder Programmfehlers oder -versagens beendete, angehaltene oder in anderer Weise inoperativ gewordene Anwendung wiederherzustellen.
-
Leider bestehen die bekannten Verfahren zur Wiederherstellung der Funktion eines Anwendungsendgerätes im Wesentlichen aus kaltem Wiederanfahren oder Neustarten des Anwendungsendgerätes, gefolgt von einer zeitintensiven Datenrestaurierung und einer nicht-synchronisierten Re-Instantiierung der Programmanwendung(en) des Anwendungsendgerätes, die von dem Anwendungsendgerät durchgeführt wird.
-
Obwohl diese bekannten Verfahren zur Wiederherstellung der Funktion eines Anwendungsendgerätes für verschiedene Prozesssteuerungsanwendungen hinreichend sein können, sind sie nicht für alle Prozesssteuerungsanwendungen geeignet und können in manchen Fällen gefahren- und/oder kostenträchtige Auswirkungen haben. Insbesondere stellen die bekannten Verfahren zur Wiederherstellung der Funktion eines Anwendungsendgerätes keinen nahtlosen oder „stoßfreien“ Ablauf sicher, da sie typischerweise eine erhebliche Zeitverzögerung zwischen dem Ausfall des Anwendungsendgerätes und der Wiederherstellung von deren Funktion mit sich bringen. Die vor einem Ausfall gespeicherten Parameterwerte sind somit aufgrund von Veränderungen in der Anlage oder bei anderen Prozessbedingungen, die während der relativ langen Dauer der Wiederherstellung aufgetreten sind, möglicherweise nicht mehr zutreffend. In manchen Fällen kann die Verwendung solcher Stammdaten sehr teuer und/oder gefährlich sein. Beispielsweise kann im Fall von virtuellen Steuerungen und von Verwaltungsanwendungen die Verwendung fehlerhafter Parameterwerte den Verlust von Stapeln bzw. Batches, Personen- und/oder Sachschäden etc. nach sich ziehen. Außerdem wird im Fall des Ausfalls eines Anwendungsendgerätes aufgrund eines nicht aufhebbaren Gerätefehlers die Anwendung beendet, bis das Geräte bzw. Computerteil ausgetauscht oder repariert ist, was ebenfalls einen nicht hinnehmbar langen Zeitraum in Anspruch nehmen kann.
-
Die
DE 698 15 392 T2 offenbart eine Prozessanlage mit einem Prozesssteuergerät als Prozesssteuersystem, welches ein primäres Steuerprozessmodul als Anwendungsendgerät beinhaltet, welches wiederum einen Prozessor und einen Tracker umfasst, und wobei eine Netzwerkschnittstelle des Systems als Redudanzlinksubsystem funktioniert, indem sie je einen Anschluss zum Prozessor und zum Tracker zur Verfügung stellt.
-
-
ZUSAMMENFASSUNG
-
Die vorliegende Erfindung ist definiert durch ein Anwendungsendgerät für die Verwendung als Reserve-Endgeräte in einem Prozesssteuerungssystem gemäß Anspruch 1, durch ein Verfahren zum Aufbau eines Redundanzkontextes innerhalb eines Prozesssteuerungssystems gemäß Anspruch 15 und durch ein entsprechendes System gemäß Anspruch 21 und schließlich ein maschinenlesbares Medium gemäß Anspruch 25. Zweckmäßige Fortbildungen des Erfindungsgedankens sind Gegenstand der jeweiligen abhängigen Ansprüche.
-
Gemäß einem Ausführungsbeispiel umfasst ein Anwendungsendgerät zur Verwendung in einem Prozesssteuerungssystem einen Redundanzmanager und ein Redundanzlinksubsystem, das mit dem Redundanzmanager verbunden und geeignet ist, um über eine Redundanzkommunikationsstrecke mit einem zweiten Anwendungsendgerät zu kommunizieren. Der Redundanzmanager kann einen Redundanzkontext mit dem zweiten Anwendungsendgerät aufbauen und mittels des Redundanzkontextes die Operationen des zweiten Anwendungsendgerätes verfolgen. Zusätzlich kann der Redundanzmanager so angepasst sein, um über die Redundanzstrecke und das Redundanzlinksubsystem Information von dem zweiten Anwendungsendgerät zu empfangen und in Reaktion auf die Information die Operationen des zweiten Anwendungsendgerätes auf das Anwendungsendgerät umzuschalten.
-
Gemäß noch einem weiteren Ausführungsbeispiel wird durch ein System bzw. ein Verfahren zum Aufbau eines Redundanzkontextes innerhalb eines Prozesssteuerungssystems mit erstem und zweitem Anwendungsendgerät eine dem ersten Anwendungsendgerät zugeordnete Konfiguration in das zweite Anwendungsendgerät geladen und festgestellt, ob das erste Anwendungsendgerät eine ausreichende Funktionsgüte aufweist, und Informationen bezüglich einer Gruppe von Ressourcen, die von dem ersten Anwendungsendgerät genutzt wird, an das zweite Anwendungsendgerät übermittelt. Außerdem kann das System bzw. das Verfahren feststellen, ob das zweite Anwendungsendgerät Zugriff auf die von dem ersten Anwendungsendgerät genutzte Gruppe von Ressourcen hat, und es kann in Reaktion auf die Feststellung, dass das zweite Anwendungsendgerät Zugriff auf die von dem ersten Anwendungsendgerät genutzte Gruppe von Ressourcen hat, den Redundanzkontext innerhalb des Prozesssteuerungssystems aufbauen.
-
Figurenliste
-
- 1 ist ein Blockdiagramm eines beispielhaften Prozesssteuerungssystem, das die hierin beschriebenen Einrichtungen und Verfahren eines redundanten Anwendungsendgerätes nutzt;
- 2 ist ein detaillierteres Blockdiagramm einer beispielhaften Art und Weise, in der das redundante Anwendungsendgerät der 1 implementiert werden kann;
- 3 ist ein detaillierteres Blockdiagramm einer beispielhaften Art und Weise, in der die Redundanzmanager der 2 implementiert werden können.
-
DETAILLIERTE BESCHREIBUNG
-
1 ist ein Blockdiagramm eines beispielhaften Prozesssteuerungssystems 10, das die Einrichtungen und Verfahren des hier beschriebenen Anwendungsendgerätes nutzt. Wie in 1 gezeigt, umfasst das Prozesssteuerungssystem 10 eine Steuerung 12, eine Bedienerstation 14, ein aktives Anwendungsendgerät 16 und ein Reserve-Anwendungsendgerät 18, die alle über eine Datenstrecke oder über ein lokales Netzwerk (LAN) 20 kommunikativ verbunden sein können, wobei letzteres allgemein als Application Control Network (ACN, Anwendungssteuerungsnetz) bezeichnet wird. Die Bedienerstation 14 und die Anwendungsendgeräte 16 und 18 können durch eine oder mehrere Arbeitsplatzsysteme oder beliebige andere geeignete Computersysteme oder Verarbeitungseinheiten realisiert werden. Beispielsweise können die Anwendungsendgeräte 16 und 18 unter Verwendung einzelner Personalcomputer, Einzel- oder Multiprozessor-Workstations etc. realisiert werden. Außerdem kann das LAN 20 mit Hilfe eines jeden gewünschten Kommunikationsmediums und -protokolls aufgebaut werden. Beispielsweise kann das LAN 20 auf einer der festverdrahteten oder drahtlosen Ethernet-Kommunikationslösungen basieren, die bekannt sind und deshalb hier nicht detaillierter beschrieben werden. Dem Fachmann ist jedoch unmittelbar klar, dass jedes andere geeignete Kommunikationsmedium und -protokoll Verwendung finden kann. Des Weiteren ist es möglich, obwohl nur ein einziges LAN dargestellt ist, mehr als ein LAN einschließlich der zugehörigen Kommunikationshardware in den Anwendungsendgeräten 16 und 18 einzusetzen, um redundante Kommunikationsstrecken zwischen den Anwendungsendgeräten 16 und 18 bereitzustellen.
-
Die Steuerung 12 kann über einen digitalen Datenbus 28 und eine Eingabe/- Ausgabeeinheit (I/O) 30 mit einer Vielzahl eigenintelligenter Feldvorrichtungen 22, 24 und 26 verbunden werden. Bei den eigenintelligenten Feldvorrichtungen 22-26 kann es sich um zum Fieldbus kompatible Ventile, Stellelemente, Sensoren etc. handeln, wobei in diesem Fall die eigenintelligenten Feldvorrichtungen 22-26 über den digitalen Datenbus 28 auf Grundlage des bekannten „Fieldbus-Protokolls“ kommunizieren. Es versteht sich von selbst, dass anstelle dessen andere Typen eigenintelligenter Feldvorrichtungen und andere Kommunikationsprotokolle Verwendung finden können. Beispielsweise können die eigenintelligenten Feldvorrichtungen 22-26 statt dessen aus Profibus- oder HART-kompatiblen Vorrichtungen bestehen, die mittels der bekannten Profibus- oder HART-Kommunikationsprotokolle über den Datenbus 28 miteinander kommunizieren.
-
Zusätzliche I/O-Einheiten (ähnlich oder identisch der I/O-Einheit 30) können mit der Steuerung 12 verbunden werden, damit weitere Gruppen eigenintelligenter Feldvorrichtungen, bei denen es sich um Fieldbus- oder HART-Komponenten etc. handeln kann, mit der Steuerung 12 kommunizieren können.
-
Zusätzlich zu den eigenintelligenten Feldvorrichtungen 22-26 können eine oder mehrere nicht eigenintelligente Feldvorrichtungen 32 und 34 kommunikativ mit der Steuerung 12 verbunden werden. Bei den nicht-eigenintelligenten Feldvorrichtungen 32 und 34 kann es sich beispielsweise um herkömmliche Geräte für 4-20 Milliampere (mA) oder 0-10 Volt Gleichspannung (VDC) handeln, die über festverdrahtete Verbindungen 36 und 38 mit der Steuerung 12 kommunizieren.
-
Bei der Steuerung 12 kann es sich beispielsweise um eine Steuerung des Typs DeltaV™ der Fisher-Rosemount Systems, Inc. handeln. Statt dessen kann aber auch jede andere Steuerung eingesetzt werden. Des Weiteren wäre es möglich, obwohl 1 nur eine Steuerung zeigt, auch weitere Steuerungen jedes beliebigen Typs oder Kombinationen solcher Steuerungen mit dem LAN 20 zu verbinden. In jedem Fall kann die Steuerung 12 eine oder mehrere Prozesssteuerungsroutinen ausführen, die dem Prozesssteuerungssystem 10 zugehörig sind, und die von einem Systemingenieur oder durch andere Systembediener über die Bedienerstation 14 generiert und anschließend in die Steuerung 12 geladen und initialisiert wurden.
-
Wie 1 zeigt, kann das Prozesssteuerungssystem 10 außerdem eine entfernte Bedienerstation 40 umfassen, die über eine Kommunikationsstrecke 42 und ein LAN 44 mit den Anwendungsendgeräten 16 und 18 kommunikativ verbunden ist. Die entfernte Bedienerstation 40 kann geographisch gesehen weit entfernt sein, wobei es sich in diesem Fall bei der Kommunikationsstrecke 42 vorzugsweise, nicht aber zwingend, um eine drahtlos aufgebaute Verbindung, eine Verbindung auf Internetbasis oder um ein anderweitig auf Datenpaketübermittlung basierendes Kommunikationsnetz, um Telefonleitungen (z.B. digitale Teilnehmerleitungen) oder um eine beliebige Kombination dieser Möglichkeiten handelt.
-
Wie im Beispiel der 1 gezeigt, ist das aktive Anwendungsendgerät 16 und das Reserve-Anwendungsendgerät 18 über das LAN 20 und eine Redundanzstrecke 46 kommunikativ miteinander verbunden. Bei der Redundanzstrecke 46 kann es sich um eine separate, zweckgebundene (d.h. nicht durch andere genutzte) Kommunikationsstrecke zwischen dem aktiven Anwendungsendgerät 16 und dem Reserve-Anwendungsendgerät 18 handeln. Die Redundanzstrecke 46 kann beispielsweise mittels eines zweckgebundenen Ethernet-Link (d.h. jeweils zweckgebundene Ethernet-Karten in den miteinander verbundenen Anwendungsendgeräten 16 und 18) realisiert werden. In anderen beispielhaften Ausführungen könnte die Redundanzstrecke 46 jedoch auch durch das LAN 20 oder ein redundantes LAN (nicht dargestellt) realisiert werden, das mit den Anwendungsendgeräten 16 und 18 kommunikativ verbunden ist, wobei keine der Verbindungen zwingend zweckgebunden sein muss.
-
Generell gesagt, tauschen die Anwendungsendgeräte 16 und 18 kontinuierlich, nur in bestimmten Fällen oder periodisch Informationen über die Redundanzstrecke 46 aus (z.B. in Reaktion auf Änderungen von Parameterwerten, Konfigurationsänderungen der Anwendungsendgeräte, etc.), um einen Redundanzkontext aufzubauen und zu unterhalten. Der Redundanzkontext ermöglicht eine unterbrechungsfreie oder nahtlose Übergabe oder Umschaltung der Steuerung zwischen dem aktiven Anwendungsendgerät 16 und dem Reserve-Anwendungsendgerät 18. Beispielsweise ermöglicht der Redundanzkontext eine Übergabe oder Umschaltung von dem aktiven Anwendungsendgerät 16 an das Reserve-Anwendungsendgerät 18 in Reaktion auf Geräte- oder Programmausfälle in dem aktiven Anwendungsendgerät 16 oder in Reaktion auf eine Anweisung durch einen Systemnutzer oder Systembediener oder seitens einer Klienten-Anwendung des Prozesssteuerungssystems 10.
-
Bei jedem Ereignis können die Anwendungsendgeräte 16 und 18 als ein einzelner Knoten innerhalb des LAN 20 auftreten, der sich als redundantes Paar verhält. Insbesondere arbeitet das Reserve-Anwendungsendgerät 18 als betriebsbereites Reserve-Anwendungsendgerät, das bei einem Ausfall des aktiven Anwendungsendgerätes 16 oder dann, wenn eine Umschaltanweisung von einem Benutzer eintrifft, rasch und unterbrechungsfrei die Kontrolle der Anwendungen oder Funktionen übernimmt, die von dem aktiven Anwendungsendgerät 16 ausgeführt werden, ohne dass dabei eine zeitintensive Initialisierung oder andere Benutzereingriffe erforderlich sind. Um ein solches betriebsbereites Reserve-Anwendungsendgerät zu realisieren, nutzt das momentan aktive Anwendungs- , endgerät (beispielsweise das aktive Anwendungsendgerät 16) den Redundanzkontext für den Austausch von Information, beispielsweise Informationen zur Konfiguration, zu den Steuerparametern etc., über die Redundanzstrecke 46 mit dem redundanten PartnerAnwendungsendgerät (beispielsweise das Reserve-Anwendungsendgerät 18). Auf diese Weise kann eine nahtlose oder unterbrechungsfreie Übergabe der Kontrolle bzw. eine Umschaltung von dem momentan aktiven Anwendungsendgerät (beispielsweise des aktiven Anwendungsendgerätes 16) zum redundanten Partner- oder Reserve-Anwendungsendgerät (beispielsweise des Reserve-Anwendungsendgerätes 18) so lange erfolgen, wie das Reserve-Anwendungsendgerät 18 bereit ist und die Kontrolle übernehmen kann.
-
Um sicherzustellen, dass das Anwendungsendgerät 18 bereit und in der Lage ist, die Kontrolle der Anwendungen, virtuellen Steuerungsfunktionen, Kommunikationsfunktionen, etc. zu übernehmen, die momentan von dem aktiven Anwendungsendgerät 16 ausgeführt werden, stellt der Redundanzkontext fest, ob das Reserve-Anwendungsendgerät 18 Zugriff auf die physikalischen Ressourcen hat (beispielsweise auf das LAN 20, andere externe Datenquellen, etc.), ob ihr die erforderlichen Programmierungsinformationen zur Verfügung stehen (beispielsweise Konfigurations- und Verbindungsinformationen), und ob die erforderliche Funktionsgüte (beispielsweise Prozessorgeschwindigkeit, Speicheranforderungen, etc.) gegeben ist. Der Redundanzkontext wird außerdem aufrechterhalten, um sicherzustellen, dass das Reserve-Anwendungsendgerät 18 zu jedem Zeitpunkt zur Übernahme der Kontrolle bereit ist. Die Aufrechterhaltung des Redundanzkontextes geschieht durch den Austausch von Statusinformationen, Konfigurationsinformationen oder jeder anderen Information, die benötigt wird, um die Synchronisation der Betriebsabläufe zwischen den redundanten Anwendungsendgeräten 16 und 18 zu gewährleisten.
-
In einigen beispielhaften Ausführungen können die Anwendungsendgeräte 16 und 18 so konfiguriert sein, dass bei einem Ausfall des aktiven Anwendungsendgerätes 16 mit anschließender Wiederherstellung der fehlerfreien Funktion oder nach einer Reparatur oder einem Austausch (mit geeigneter Konfigurierung) das aktive Anwendungsendgerät 16 die Kontrolle von dem Reserve-Anwendungsendgerät 18 zurückerhält, und das Reserve-Anwendungsendgerät 18 wieder in den Status als Hot-Standby-Station wechselt. Wenn es jedoch wünschenswert ist, kann das Reserve-Anwendungsendgerät 18 so konfiguriert werden, dass ein in seiner Funktion wiederhergestelltes Anwendungsendgerät die Kontrolle nur nach Bestätigung durch den Systembenutzer oder durch einen anderen Benutzereingriff zurückerhält.
-
Das aktive Anwendungsendgerät 16 ist normalerweise für die Ausführung (d.h. die Abwicklung) von virtuellen Steuerungsfunktionen, Anwendungen für Verwaltungsfunktionen, wartungsbezogenen Anwendungen, Diagnoseanwendungen und/oder allen sonstigen gewünschten Funktionen oder Anwendungen zuständig, die dem Management und/oder der Überwachung von Aktivitäten zur Prozesssteuerung, Unternehmensoptimierung etc. zuzurechnen sind, und die im Rahmen des Prozesssteuerungssystems 10 benötigt werden. Das Reserve-Anwendungsendgerät 18 ist in identischer Weise konfiguriert wie das aktive Anwendungsendgerät 16 und enthält daher eine Kopie einer jeden Funktion und Anwendung, die für die Ausführung der Aufgaben des aktiven Anwendungsendgerätes 16 erforderlich ist. Außerdem besitzt das Reserve-Anwendungsendgerät 18 die Geräte und/oder verfügt über den Zugriff auf identische oder mindestens funktional äquivalente Ressourcen, wie sie dem aktiven Anwendungsendgerät 16 zur Verfügung stehen. Darüber hinaus verfolgt das Reserve-Anwendungsendgerät 18 über die Redundanzstrecke 46 den Betrieb des aktiven Anwendungsendgerätes 16 (beispielsweise die aktuellen Parameterwerte, die von den in dem aktiven Anwendungsendgerät 16 ausgeführten Anwendungen verwendet werden).
-
2 ist ein detaillierteres Blockdiagramm einer beispielhaften Art und Weise, in der die redundanten Anwendungsendgeräte 16 und 18 der 1 realisiert werden können. Wie im Beispiel der 2 dargestellt, umfasst das aktive Anwendungsendgerät 16 einen Redundanzmanager 50, der kommunikativ mit einer oder mehreren redundanten Anwendungen 52, einem virtuellen Steuerblock 54, einem Kommunikationssubsystem 56, einem Betriebssystem 58 und einem Redundanzlinksubsystem 60 verbunden ist. In entsprechender Weise umfasst das Reserve-Anwendungsendgerät 18 einen Redundanzmanager 62, eine oder mehrere redundante Anwendungen 64, einen virtuellen Steuerblock 66, ein Kommunikationssubsystem 68, ein Betriebssystem 70 und ein Redundanzlinksubsystem 72. Obwohl die Funktionsblöcke 62-72 des dargestellten Reserve-Anwendungsendgerätes 18 eine Funktionalität bereitstellen, die identisch oder wenigstens nahezu identisch der Funktionalität der jeweils entsprechenden Funktionsblöcke 50-60 des aktiven Anwendungsendgerätes 16 ist, wurden abweichende Bezugszeichen für einander entsprechende Funktionsblöcke (beispielsweise die Blöcke 50 und 62) verwendet, um die Klarheit der Funktionsbeschreibungen der Anwendungsendgeräte 16 und 18 zu gewährleisten. Insbesondere werden die einander entsprechenden Funktionsblöcke des aktiven Anwendungsendgerätes 16 und des Reserve-Anwendungsendgerätes 18, obwohl sie identische (oder im Wesentlichen identische) Funktionalitäten bereitstellen können, in den jeweiligen Anwendungsendgeräten 16 bzw. 18 unabhängig voneinander initialisiert, so dass sie nicht notwendigerweise zu gleichen Zeitpunkten genau gleiche Betriebszustände aufweisen.
-
Generell wirken die Funktionsblöcke 50-60 und 62-72 mit den jeweils zugeordneten Redundanzmanagern 50 und 62 zusammen, um einen Redundanzkontext aufzubauen und aufrechtzuerhalten. Der Redundanzkontext versetzt das Reserve-Anwendungsendgerät 18 in die Lage, den Betrieb des aktiven Anwendungsendgerätes 16 zu verfolgen bzw. zu überwachen. Genauer gesagt, die Anwendungsendgeräte 16 und 18 tauschen Informationen über die jeweiligen Redundanzlinksubsysteme 60 und 72 und die Redundanzstrecke 46 aus, so dass jedes der Anwendungsendgeräte 16 und 18 die einwandfreie Funktion (d.h. den Funktionszustand) des anderen Anwendungsendgerätes feststellen kann. Zusätzlich können Werte von Betriebsparametern und andere Informationen über die Redundanzstrecke 46 zwischen dem aktiven Anwendungsendgerät 16 und dem Reserve-Anwendungsendgerät 18 ausgetauscht werden. Der Redundanzmanager 62 des Reserve-Anwendungsendgerätes 18 kann Parameterinformationen oder -werte, die er von dem aktiven Anwendungsendgerät 16 erhält, an eine oder mehrere der redundanten Anwendungen 64, den virtuellen Steuerblock 66, das Kommunikationssubsystem 68 und/oder an das Betriebssystem 70 etc. übermitteln, soweit dies für die Aufrechterhaltung eines Betriebszustandes in dem Reserve-Anwendungsendgerät 18 erforderlich ist, das im Wesentlichen mit dem aktiven Anwendungsendgerät 16 synchron ist und dieses nachbildet.
-
Für ein besseres Verständnis des Zusammenwirkens bzw. der Kooperation zwischen den Redundanzmanagern 50 und 62 und ihren jeweiligen lokalen Subsystemen oder den Funktionsblöcken 52-60 und 64-70 wird nachstehend eine detaillierte Erläuterung der Arbeitsweise der Funktionsblöcke 52-60 und 64-70 gegeben. Die redundanten Anwendungen 52 und 64 umfassen eine oder mehrere Programmanwendungen wie beispielsweise Anwendungen für Verwaltungsanwendungen, Wartung, Echtzeitüberwachung, Diagnosen etc. Die redundanten Anwendungen 52 und 64 sind typischerweise, jedoch nicht notwendigerweise, geschichtete Programmanwendungen (d.h. Programmanwendungen, die anderen Programmanwendungen überlagert sind). Beispielsweise ist eine Verwaltungsanwendung typischerweise von einer oder mehreren Stapel- bzw. Batch-Management-Anwendungen überlagert.
-
Die redundanten Anwendungen 52 und 64 sind mit ihren jeweiligen Redundanzmanagern 50 und 62 registriert und somit vollständig in den Redundanzkontext integriert, der von den Redundanzmanagern 50 und 62 aufgebaut und aufrechterhalten wird. Anders gesagt, die redundanten Anwendungen 52 und 64 können als jeweils redundante Anwendungspaare fungieren, so dass dann, wenn beispielsweise eine der redundanten Anwendungen 52 ausfällt, die entsprechende identische Partneranwendung aus den redundanten Anwendungen 64 nach einer Umschaltung von dem aktiven Anwendungsendgerät 16 auf das Reserve-Anwendungsendgerät 18 die Ausführung an dem Punkt übernehmen kann, an dem die ausgefallene Anwendung geendet hat.
-
Um die redundanten Anwendungen 52 und 64 in die Lage zu versetzen, am Redundanzkontext teilzunehmen, muss jeweils entsprechende zu den Anwendungen 52 und 64 gehörende Statusinformationen und andere Informationen ausgetauscht werden, die den momentanen Zustand des aktiven Anwendungsendgerätes 16, des Reserve-Anwendungsendgerätes 18 sowie den momentanen Zustand der Anwendungen 52 und 64 betreffen. Im Fall der Veranlassung einer Umschaltung (beispielsweise Übernahme der Kontrolle durch das Reserve-Anwendungsendgerät 18 von dem aktiven Anwendungsendgerät 16 in Reaktion auf einen Ausfall des aktiven Anwendungsendgerätes 16 oder in Reaktion auf eine Anweisung durch einen Systemnutzer) kann der Redundanzmanager 62 den redundanten Anwendungen 64 melden, dass eine solche Umschaltung eingeleitet ist. Das Reserve-Anwendungsendgerät 18 kann seinerseits einen oder mehrere Systemalarme oder -ereignisse generieren, die beispielsweise an eine oder an beide der Bedienerstationen 14 und 40 weitergeleitet und über diese an einen Systemnutzer gemeldet werden können. Außerdem erhalten beispielsweise im Fall der Detektierung eines Ausfalls des Reserve-Anwendungsendgerätes 18 durch das aktive Anwendungsendgerät 16 die redundanten Anwendungen 52 eine Meldung dieser Situation, und wenn dies gewünscht ist, kann das aktive Anwendungsendgerät 16 einen oder mehrere entsprechende Alarme oder Ereignisse generieren und an die Bedienerstationen 14 und 40 und/oder an andere mit dem Prozesssteuerungssystem 10 verbundene Systeme übermitteln. In jedem Fall ist jede der Anwendungen innerhalb der redundanten Anwendungen 52 und 64 konfiguriert, um auf die Meldung einer eingeleiteten Umschaltung, auf die Meldung eines Ausfalls des Reserve-Anwendungsendgerätes 18, etc. in einer für die jeweilige Anwendung angepassten Weise zu reagieren.
-
Die virtuellen Steuerblöcke 54 und 66 stellen Informationen zu den physikalischen Ressourcen für die jeweiligen Redundanzmanager 50 und 62 bereit, beispielsweise die Speichergröße, Prozessorgeschwindigkeit, Ein/Ausgaben, etc., die zur Ausführung der virtuellen Steuerungsfunktionen erforderlich sind. Zum Beispiel kann der Redundanzmanager 62 die Information zu den physikalischen Ressourcen verwenden, um festzustellen, ob das Reserve-Anwendungsendgerät 18 über die Kapazität (d.h. die geeigneten physikalischen Ressourcen) verfügt, um im Falle einer notwendigen Umschaltung die Kontrolle anstelle des aktiven Anwendungsendgerätes 16 zu übernehmen bzw. zu erhalten. Die virtuellen Steuerblöcke 54 und 66 übermitteln außerdem ein Signal an ihre jeweiligen Redundanzmanager 50 und 62, wenn die von ihnen genutzte Information, beispielsweise Betriebsdaten, Abstimmdaten etc., in ihren jeweiligen Anwendungsendgeräten 16 und 18 aktualisiert werden muss. Auf diese Weise werden die Ausführungsfunktionsblöcke, die Ablaufsteuerung, die Stapel- bzw. Batch-Operationen, etc. vollständig synchronisiert. Im Fall, dass die virtuellen Steuerblöcke 54 und 66 den Systemnutzern, Bedienern, Dritten, etc. die Möglichkeit einräumen, anwenderspezifische Funktionsblöcke zu generieren, werden diese anwenderspezifischen Funktionsblöcke ebenfalls durch die Redundanzmanager 50 und 62 synchronisiert. Somit kann der virtuelle Steuerblock 66 der Funktion des virtuellen Steuerblocks 54 folgen (d.h. mit diesem in Synchronisation sein), so dass im Fall einer Umschaltung von dem aktiven Anwendungsendgerät 16 auf das Reserve-Anwendungsendgerät 18 der virtuelle Steuerblock 66 die virtuellen Steuerungsaufgaben des virtuellen Steuerblocks 54 nahtlos und unterbrechungsfrei weiterführen (d.h. übernehmen) kann. Vorzugsweise beginnt dabei der virtuelle Steuerblock 66 die Ausführung seiner Module, Verfahren, etc. mit Parameterwerten, die den zum Zeitpunkt der Umschaltung gültigen Werten der entsprechenden Parameter im virtuellen Steuerblock 54 identisch sind.
-
Des Weiteren können die virtuellen Steuerblöcke 54 und 66 konfiguriert sein, um ein Signal dafür zu liefern, dass in einem oder beiden der virtuellen Steuerblöcke 54 und 66 eine Bedingung vorliegt, die eine Umschaltung ausschließt bzw. eine solche verhindert. Ein solches Signal kann beispielsweise in dem Fall bereitgestellt werden, wenn sich die Konfiguration des aktiven Anwendungsendgerätes 16 geändert hat und das Reserve-Anwendungsendgerät 18 nicht aktualisiert wurde, wo eine Anwendung (beispielsweise eine der redundanten Anwendungen 64) des Reserve-Anwendungsendgerätes 18 nicht funktioniert.
-
Die Kommunikationssubsysteme 56 und 68 stellen ihren jeweiligen Anwendungsendgeräten 16 und 18 und damit jedem der darin enthaltenen Funktionsblöcke über das LAN 20 die Möglichkeit der Kommunikation untereinander und mit anderen Systemen innerhalb des Prozesssteuerungssystems 10 zur Verfügung. Außerdem stellen die Kommunikationssubsysteme 56 und 68 Dienste und/oder Information für die jeweiligen Redundanzmanager 50 und 62 bereit, um die Kooperation der Anwendungsendgeräte 16 und 18 innerhalb des von den Redundanzmanagern 50 und 62 aufgebauten und unterhaltenen Redundanzkontextes zu ermöglichen und zu vereinfachen. Insbesondere können die von den Kommunikationssubsystemen 56 und 68 bereitgestellten Dienste beispielsweise einen Dienst umfassen, der die Sperrung der Kommunikationssubsysteme 56 und 68 ermöglicht, einen Dienst, der verifiziert, dass das aktive Anwendungsendgerät 16 mit dem gleichen LAN (d.h. dem LAN 20) verbunden ist wie das Reserve-Anwendungsendgerät 18, einen Dienst, der ein Signal liefert, dass ein Kommunikationssubsystem ausgefallen ist, und einen Dienst, der bei einer Umschaltung das neu aktivierte Anwendungsendgerät (beispielsweise das Reserve-Anwendungsendgerät 18) für die Übernahme der Kommunikationsaufgaben des nunmehr inaktiven Anwendungsendgerätes (beispielsweise des aktiven Anwendungsendgerätes 16) auf dem LAN 20 freigibt. Beispielsweise kann das neu aktivierte Anwendungsendgerät die Kommunikationsverbindungen des zuvor aktiven Anwendungsendgerätes mit den anderen Systemen, Vorrichtungen etc. über das LAN 20 wiederherstellen.
-
Jedes der Kommunikationssubsysteme 56 und 68 kann außerdem ein Signal dafür bereitstellen, dass sich die von ihm verwalteten Daten (beispielsweise Verbindungsinformation, Leitweglenkungsinformation, etc.) geändert haben und folglich in dem redundanten Partner-Anwendungsendgerät aktualisiert werden müssen. Beispielsweise kann das Kommunikationssubsystem 56 des aktiven Anwendungsendgerätes 16 an das Reserve-Anwendungsendgerät 18 melden, dass eine neue Verbindung zum aktiven Anwendungsendgerät 16 eingerichtet wurde. Die Information betreffend die neue Verbindung kann durch den Redundanzmanager 50 über das Redundanzlinksubsystem 60, die Redundanzstrecke 46 und das Redundanzlinksubsystem 72 an den Redundanzmanager 62 übermittelt werden. Der Redundanzmanager 62 kann anschließend mit dem Kommunikationssubsystem 68 kommunizieren, um die neue Verbindung zur Aufrechterhaltung des Redundanzkontextes einrichten. Auf diese Weise stellt der Redundanzmanager 62 einen Zustand des Reserve-Anwendungsendgerätes 18 sicher, in dem dieses in der Lage ist, die Kommunikationsaufgaben des aktiven Anwendungsendgerätes 16 im Fall einer Umschaltung wahrzunehmen.
-
Jedes der Redundanzlinksubsysteme 60 und 72 stellt einen Dienst bereit, durch den seine jeweiligen Anwendungsendgeräte 16 bzw. 18 in die Lage versetzt werden, einen Kommunikationskanal bzw. eine Kommunikationsverbindung über die Redundanzstrecke 46 einzurichten. Außerdem stellen die Redundanzlinksubsysteme 60 und 72 bei einem Ausfall des Kommunikationskanals bzw. der Kommunikationsverbindung zwischen den Anwendungsendgeräten 16 und 18 ein diesbezügliches Signal für ihre jeweiligen Redundanzmanager 50 und 62 bereit. Des Weiteren stellen die Redundanzlinksubsysteme 60 und 72 Dienste bereit, durch die Betriebsdaten betreffend die redundanten Anwendungen 52 und 64, die virtuellen Steuerblöcke 54 und 66, die Kommunikationssubsysteme 56 und 68, die Betriebssysteme 58 und 70, etc. zwischen den Anwendungsendgeräten 16 und 18 ausgetauscht werden können.
-
Wie nachstehend detaillierter beschrieben, nutzen die Redundanzmanager 50 und 62 die Informationsübertragungskapazität ihrer Redundanzlinksubsysteme 60 und 72 und die Redundanzstrecke 46, um Statusinformationen betreffend der überwachten Ressourcen zu übermitteln. Diese Statusinformationen können in Reaktion auf Änderungen der Parameterwerte und/oder der Konfiguration etc. beispielsweise von dem aktiven Anwendungsendgerät 16 zum Reserve-Anwendungsendgerät 18 übermittelt werden, um ein „Heartbeat“- bzw. Synchronisationssignal bzw. eine Information hinsichtlich der einwandfreien Funktion und/oder des Betriebszustands des aktiven Anwendungsendgerätes 16 zu liefern. Im Ergebnis kann dann, wenn das Heartbeat- bzw. Synchronisationssignal anzeigt, dass die einwandfreie Funktion des aktiven Anwendungsendgerätes 16 in schwerwiegender Weise beeinträchtigt ist und/oder das Heartbeat- bzw. Synchronisationssignal vollständig ausgefallen ist, das Reserve-Anwendungsendgerät 18 eine Umschaltung bewirken und die Aufgaben des ausgefallenen oder des ausfallenden aktiven Anwendungsendgerätes 16 übernehmen.
-
Bei den Betriebssystemen 58 und 70 kann es sich um jedes gewünschte Betriebssystem handeln, wie z.B. Windows®, Linux® etc., das die Laufzeit-Umgebung der Anwendungsendgeräte 16 und 18 als Host bzw. als Hauptcomputer unterstützen kann. Für das in 1 gezeigte beispielhafte Prozesssteuerungssystem 10 kann als Laufzeit-Umgebung die DeltaV™-Laufzeit-Umgebung eingesetzt werden. Die Betriebssysteme 58 und 70 können Information für die Redundanzmanager 50 und 62 bereitstellen, beispielsweise Information zu Status, einwandfreier Funktion, Kapazität etc. der den Anwendungsendgeräten 16 und 18 zugeordneten Geräteplattform. Selbstverständlich kann die Information entsprechend der zur Bestückung der Anwendungsendgeräte 16 und 18 eingesetzten Computerteile variieren. Beispielsweise kann im Fall einer Realisierung der Anwendungsendgeräte 16 und 18 mittels Multiprozessor-Workstations bzw. Arbeitsplatzsystemen eine bestimmte Art von Information bereitgestellt werden, während im Fall einer Realisierung der Anwendungsendgeräte 16 und 18 mittels Einzelprozessor-PCs eine andere Art oder ein anderer Umfang von Information bereitgestellt werden kann.
-
Die Redundanzmanager 50 und 62 kommunizieren in kooperativer Weise mit ihren jeweiligen redundanten Anwendungen 52 und 64, den virtuellen Steuerblöcken 54 und 66, den Kommunikationssubsystemen 56 und 68, den Betriebssystemen 58 und 70 und den Redundanzlinksubsystemen 60 und 72, um einen Redundanzkontext aufzubauen und aufrechtzuerhalten. Außerdem verwalten die Redundanzmanager 50 und 62 die Umschaltung zwischen den Anwendungsendgeräten 16 und 18 entweder automatisch im Moment des Auftretens eines Ausfalls des momentan aktiven Anwendungsendgerätes oder in Reaktion auf eine Benutzeranweisung. Des Weiteren verwalten die Redundanzmanager 50 und 62 Diagnoseinformation bezüglich des Redundanzkontextes selbst. Beispielsweise kann Statusinformation, Datenlatenzinformation etc. geführt werden und, wenn gewünscht, durch beispielsweise eine Optimierungsanwendung und/oder eine Diagnoseanwendung abgefragt und genutzt werden, die zu den redundanten Anwendungen 52 und 64 gehört, oder bei der es sich um eine Klienten-Anwendung handeln kann, die mit den Redundanzmanagern 50 und 62 in einer Weise kommuniziert, die nachstehend in Verbindung mit 3 detaillierter beschrieben wird.
-
3 ist ein detaillierteres Blockdiagramm einer beispielhaften Art und Weise der Realisierung der Redundanzmanager 50 und 62 der 2. Der Klarheit halber wird das in 3 gezeigte Beispiel anhand des Redundanzmanagers 62 des Reserve-Anwendungsendgerätes 18 detailliert beschrieben. Das detaillierte Blockdiagramm der 3 und die folgende Beschreibung desselben sind jedoch gleichermaßen für den Redundanzmanager 50 des aktiven Anwendungsendgerätes 16 zutreffend. Wie 3 zeigt, umfasst der Redundanzmanager 62 in jedem Fall einen Heartbeat- bzw. Synchronisationsmanager 100, einen Ressourcenmonitor 102, eine Schnittstelle 104 (API) zur Anwendungsprogrammierung des Redundanzmanagers und eine Verwaltung 106 für die redundanten Klienten.
-
Das API 104 des Redundanzmanagers, im Folgenden Redundanzmanager-API, ermöglicht einer oder mehreren der redundanten Anwendungen oder Klienten 108, die die in 2 gezeigten redundanten Anwendungen 64 sowie andere Anwendungen oder Klienten (nicht in 2 dargestellt) umfassen können, am Redundanzkontext teilzunehmen. Anders gesagt, das Redundanzmanager-API 104 enthält Funktionen, die eine oder mehrere Anwendungen oder Klienten 108 in die Lage versetzen, Verbindung zum Redundanzmanager 62 aufzunehmen (d.h. mit diesem zu kommunizieren), um Änderungen des Status oder der Information (beispielsweise Umschaltstatus eines bestimmten Anwendungsendgerätes, Änderungen der Parameterwerte oder der Konfiguration etc.) zu erhalten. Die Änderung von Statusinformation oder von Information, die vom Redundanzmanager 62 an die redundanten Anwendungen/ Klienten 108 übermittelt wird, kann aus Information abgeleitet werden oder auf solcher basieren, die der Heartbeat- bzw. Synchronisationsmanager 100 vom Redundanzlinksubsystem 72 erhält, und/oder von Information, die der Ressourcenmonitor 102 von einer oder mehreren Ressourcen erhält, beispielsweise vom Kommunikationssubsystem 68 und vom Betriebssystem 70.
-
Das Redundanzmanager-API 104 implementiert eine Anwendungsregistrierungsfunktion, die es einer Anwendung oder einem Klienten der redundanten Anwendungen/- Klienten 108 ermöglicht, mit dem Redundanzmanager 62 zu kommunizieren. Die Anwendungsregistrierungsfunktion kann eine eindeutige Identifizierung für jede zu registrierende Anwendung generieren, um es dem Redundanzmanager zu ermöglichen, die Anwendung bei Bedarf in dem Reserve-Anwendungsendgerät 18 zu lokalisieren. Außerdem kann die Anwendungsregistrierungsfunktion eine Callback- bzw. Rückfragefunktion beinhalten (die mittels eines Helper-Thread bzw. Hilfsthread implementiert werden kann), die es dem Redundanzmanager 62 ermöglicht, redundanzrelevante Ereignisse (beispielsweise eine Umschaltung, eine Konfigurationsänderung etc.) an die registrierte Anwendung zu übermitteln.
-
Das Redundanzmanager-API 104 realisiert außerdem eine Funktion für das Löschen der Registrierung einer Anwendung, die eine selektierte Anwendung aus der Liste der registrierten Anwendungen entfernt. Der Redundanzmanager 62 kann die Funktion für das Löschen der Registrierung einer Anwendung von einer fehlerhaften Anwendung unterscheiden und stellt somit die Möglichkeit bereit, Anwendungen zu entfernen oder deren Registrierung zu löschen, ohne dabei eine nicht erforderliche Umschaltung zu veranlassen. Beispielsweise wird im Fall der Löschung der Registrierung einer in dem aktiven Anwendungsendgerät 16 registrierten Anwendung, im Gegensatz zu einer Fehlersituation, von dem Reserve-Anwendungsendgerät 18 nicht automatisch eine Umschaltung angefordert, wenn deren Heartbeat- bzw. Synchronisationsmanager 100 feststellt, dass die Registrierung der Anwendung zweckgerichtet gelöscht wurde und die letztere nicht länger verfügbar ist.
-
Das Redundanzmanager-API 104 stellt außerdem eine Funktion zur unbedingten Umschaltung bereit, die bei Aufruf durch eine Anwendung oder einen Klienten aus der Gruppe der redundanten Anwendungen/Klienten 108 das aktive Anwendungsendgerät 16 veranlasst, auf das Reserve-Anwendungsendgerät 18 umzuschalten. Darüber hinaus stellt das Redundanzmanager-API 104 eine Funktion bereit, die die momentane Redundanzfunktion des Redundanzmanagers 62 und damit auch die Redundanzfunktion des Anwendungsendgerätes zurückgibt, in der der Redundanzmanager 62 selbst gespeichert ist, im Beispiel der 3 also das Reserve-Anwendungsendgerät 18. Somit liefert das Redundanzmanager-API 104 auf Anfrage durch eine oder mehrere der redundanten Anwendungen/Klienten 108 mittels der Funktion zur Rückmeldung der Redundanzfunktion Information zurück, die besagt, dass der Redundanzmanager 62 und das Anwendungsendgerät 18 in Reserve sind. Wenn eine entsprechende Anfrage an ein Redundanzmanager-API in dem aktiven Anwendungsendgerät 16 gerichtet wird, liefert das betreffende Redundanzmanager-API Information zurück, die einen aktiven Zustand anzeigt. Selbstverständlich kann auch jede andere gewünschte Funktion durch das Redundanzmanager-API 104 bereitgestellt werden.
-
Im Betrieb bauen die Redundanzmanager 50 und 62 vor der Freigabe einer Umschaltung einen Redundanzkontext auf. Zunächst werden die Anwendungsendgeräte 16 und 18 in identischer (oder wenigstens im Wesentlichen identischer) Weise konfiguriert. Vorzugsweise, nicht aber notwendigerweise, wird hierfür die Konfiguration des aktiven Anwendungsendgerätes 16 über das LAN 20 in z.B. das Reserve-Anwendungsendgerät 18 geladen. In dem Reserve-Anwendungsendgerät 18 kann ein Identitätssignal oder ein anderer Indikator gesetzt oder eingestellt werden, um die betreffende Station als in Reserve befindlich zu kennzeichnen. Nachdem die Konfiguration des aktiven Anwendungsendgerätes 16 in das Reserve-Anwendungsendgerät 18 geladen wurde, initiiert das Reserve-Anwendungsendgerät 18 die Kommunikation mit dem aktiven Anwendungsendgerät 16 über die Redundanzstrecke 46.
-
Das Reserve-Anwendungsendgerät 18 kommuniziert mit dem aktiven Anwendungsendgerät 16 über die Redundanzstrecke 46, um dem aktiven Anwendungsendgerät 16 Information hinsichtlich der Funktionsgüte zu übermitteln, die erforderlich ist, um den Redundanzkontext aufzubauen. Die Information hinsichtlich der Funktionsgüte kann beispielsweise einen Parameter bezüglich der maximal zulässigen Datenlatenz, einen maximal zulässigen Zeitraum für den Ausfall der Steuerung oder einen beliebigen anderen Parameter oder Wert enthalten, der sich auf Leistung, Sicherheit, Kosten etc. des Prozesssteuerungssystem 10 auswirken kann. Wenn das aktive Anwendungsendgerät 16 nicht in der Lage ist, die erforderliche Funktionsgüte bereitzustellen, wird der Redundanzkontext nicht aufgebaut.
-
Das Reserve-Anwendungsendgerät 18 kann außerdem das aktive Anwendungsendgerät 16 abfragen, um festzustellen, ob das aktive Anwendungsendgerät 16 bereits an einem Redundanzkontext mit einer anderen Anwendungsendgerät teilnimmt. Wenn das aktive Anwendungsendgerät 16 bereits Bestandteil eines Paars redundanter Anwendungsendgeräte bildet, wird der Redundanzkontext nicht aufgebaut.
-
Wenn das aktive Anwendungsendgerät 16 noch nicht als redundanter Partner mit einem anderen Anwendungsendgerät partizipiert (d.h. bereits Teil eines anderen Redundanzkontextes bildet) und die zur Aufrechterhaltung des aufgebauten Redundanzkontexts erforderliche Funktionsgüte bereitstellen kann, übermittelt das aktive Anwendungsendgerät 16 Information bezüglich der zur Ausführung der Operationen des aktiven Anwendungsendgerätes 16 verwendeten Ressourcen. Beispielsweise enthält die zwischen dem Reserve-Anwendungsendgerät 18 und dem aktiven Anwendungsendgerät 16 ausgetauschte ressourcenbezogene Information die Speicheranforderungen und die für die Abwicklung der Aufgaben des aktiven Anwendungsendgerätes 16 erforderliche Prozessorklasse, von dem aktiven Anwendungsendgerät 16 unterstützte Proxy- bzw. bevollmächtigende Information (z.B. Klient und Server bzw. Zusteller), Information zum Kommunikationssubsystem (z.B. Basis-Information, Leitweglenkungs-Information zum Internet-Protokoll, etc.).
-
Nach Empfang der Ressourceninformation bestimmt das Reserve-Anwendungsendgerät 18, ob es Zugriff auf die erforderlichen Ressourcen hat, wobei das Reserve-Anwendungsendgerät 18 in dem Fall, dass es nicht über den Zugriff auf die erforderlichen Ressourcen verfügt, eine geeignete Fehlermeldung an das aktive Anwendungsendgerät 16 absetzt und der Aufbau des Redundanzkontextes unterbleibt. Wenn andererseits das Reserve-Anwendungsendgerät 18 Zugriff auf die erforderlichen Ressourcen hat, baut das Reserve-Anwendungsendgerät 18 die Kommunikation mit dem aktiven Anwendungsendgerät 16, dem Kommunikationssubsystem 68 und allen anderen Subsystemen oder Vorrichtungen auf, um Informationen von den Ressourcen zu erhalten, die für die Abwicklung der Aufgaben des aktiven Anwendungsendgerätes 16 notwendig sind. Sobald das Reserve-Anwendungsendgerät 18 die für den Erhalt der benötigten Ressourceninformation erforderliche Kommunikation aufgebaut hat, kann ein Identitätssignal oder ein anderer Indikator gesetzt werden, um anzuzeigen, dass der Redundanzkontext aufgebaut ist.
-
Wenn der Redundanzkontext zwischen dem aktiven Anwendungsendgerät 16 und dem Reserve-Anwendungsendgerät 18 aufgebaut ist, wird der Kontext fortgeführt, wobei alle Änderungen der Konfiguration, der Betriebsparameter, der Kommunikationssubsysteme, bedienerseitige Änderungen, Ablaufsteuerungs-Information, Stapel- bzw. Batch-Phasen, Alarmmeldungen, Ereignismeldungen, Belegtmeldungen einzelner Ressourcen (beispielsweise beim Zugriff auf eine mehrfach genutzte Einrichtung wie etwa einen Vorlauf oder einen Reaktor) etc., die das aktive Anwendungsendgerät 16 betreffen, an das Reserve-Anwendungsendgerät 18 übermittelt werden. Wenn beispielsweise ein Systemnutzer oder ein Bediener die Konfiguration des aktiven Anwendungsendgerätes 16 verändert, werden diese Änderungen durch den Redundanzmanager 50 über die Redundanzlinksubsysteme 60 und 72 und die Redundanzstrecke 46 an den Redundanzmanager 62 übermittelt. Der Redundanzmanager 62 aktualisiert anschließend die Konfiguration des Reserve-Anwendungsendgerätes 18, so dass diese mit dem des aktiven Anwendungsendgerätes 16 übereinstimmt. In entsprechender Weise werden dann, wenn sich Parameterwerte wie beispielsweise Abstimmdaten und dem virtuellen Steuerblock 54 zugeordnete Regelkreisparameter etc. in einer Weise verändern, die die Fähigkeit des Reserve-Anwendungsendgerätes 18 zur Übernahme der Steuerungsaufgaben von dem aktiven Anwendungsendgerät 16 beeinflusst, werden diese Parameterwerte an das Reserve-Anwendungsendgerät 18 übermittelt und dort entsprechend aktualisiert. Folglich werden betriebliche Änderungen in dem aktiven Anwendungsendgerät 16 an das Reserve-Anwendungsendgerät weitergegeben, so dass das Reserve-Anwendungsendgerät 18 im Wesentlichen synchronisiert zur Funktion des aktiven Anwendungsendgerätes 16 ist.
-
Wenn eine Konfigurationsänderung an dem aktiven Anwendungsendgerät 16 vorgenommen und die Änderung an das Reserve-Anwendungsendgerät 18 weitergegeben wird, sperren die Redundanzmanager 50 und 62 die automatische Umschaltung (d.h. eine Umschaltung infolge eines Fehlers in dem aktiven Anwendungsendgerät 16). Während die automatische Umschaltung gesperrt ist, wird die Information betreffend die Konfigurationsänderungen über die Redundanzlinksubsysteme 60 und 72 und die Redundanzstrecke 46 an das Reserve-Anwendungsendgerät 18 übertragen. Wenn die Konfigurationsinformation erfolgreich übermittelt und in dem Reserve-Anwendungsendgerät 18 aktualisiert ist, wird die automatische Umschaltung wieder freigegeben. Andererseits kann bei einem Fehlschlagen der Übertragung und/oder der Aktualisierung der Konfigurationsinformation der Redundanzkontext unterbrochen oder beendet werden, wobei in diesem Fall die Anwendungsendgeräte 16 und 18 nicht weiter als redundantes Paar zusammenwirken.
-
Wie weiter oben erwähnt, kann eine Umschaltung durch manuellen Eingriff eines Systemnutzers oder eines Bedieners veranlasst werden, oder automatisch in Reaktion auf die Erkennung einer Bedingung oder eines anderen Ereignisses erfolgen, die/das es erfordert, dass das Reserve-Anwendungsendgerät 18 die Aufgaben des aktiven Anwendungsendgerätes 16 übernimmt. Eine manuelle Umschaltung kann durch einen hierfür berechtigten Benutzer veranlasst werden, indem ein entsprechender Funktionsaufruf an ein Redundanzmanager-API im Redundanzmanager 50 des aktiven Anwendungsendgerätes 16 abgesetzt wird, welches ähnlich oder identisch dem Redundanzmanager-API 104 sein kann.
-
Die automatische Umschaltung wird durch das Reserve-Anwendungsendgerät 18 veranlasst, und zwar in Reaktion auf eine Feststellung des Heartbeat- bzw. Synchronisationsmanagers 100 dahin gehend, dass das aktive Anwendungsendgerät 16 keine weiteren Synchronisationssignale (d.h. Statusinformation hinsichtlich der überwachten Ressourcen, die auf die ordnungsgemäße Funktion des aktiven Anwendungsendgerätes 16 hinweist) über die Redundanzstrecke 46 übermittelt. Die Redundanzlinksubsysteme 60 und 72 sind so konfiguriert, um ihre jeweiligen Redundanzmanager 50 und 62 in dem Fall zu informieren, dass die Kommunikation mit einem Partner innerhalb des Redundanzkontextes (beispielsweise dem Reserve-Anwendungsendgerät 18 als Partner im Redundanzkontext mit dem aktiven Anwendungsendgerät 16) ausbleibt. Zusätzlich sind die Kommunikationssubsysteme 56 und 68 konfiguriert, um ihre jeweiligen Redundanzmanager 50 und 62 im Fall einer Unterbrechung der LAN-Kommunikation mit ihren jeweiligen Anwendungsendgeräten 16 und 18 entsprechend zu informieren. Wenn beispielsweise das aktive Anwendungsendgerät 16 einen Ausfall der Kommunikation über das LAN 20 erleidet, meldet das Kommunikationssubsystem 56 den Ausfall an den Redundanzmanager 50. Der Redundanzmanager 50 meldet den Kommunikationsausfall mittels seines Redundanzlinksubsystem 60 (über die Redundanzstrecke 46) an den Redundanzmanager 62 in dem Reserve-Anwendungsendgerät 18.
-
Wie weiter oben erwähnt, kann eine Umschaltung in Reaktion auf einen Benutzereingriff veranlasst werden. Insbesondere kann ein Systemnutzer oder ein Bediener mit einer oder mehreren der redundanten Anwendungen/Klienten 108 (3) über das Redundanzmanager-API 104 in Verbindung treten, um eine Funktion aufzurufen, die eine Umschaltung bewirkt. Vorzugsweise, nicht aber notwendigerweise, wird die Anforderung zur Umschaltung an den Redundanzmanager 50 in dem aktiven Anwendungsendgerät 16 gerichtet. Wenn der Redundanzmanager 50 die Anforderung zur Umschaltung erhält, informiert der Redundanzmanager 50 den virtuellen Steuerblock 54, damit dieser die Umschaltung veranlasst, und alle das aktive Anwendungsendgerät 16 benötigten Bevollmächtigungen gesperrt werden. Zusätzlich werden alle für die Funktion des aktiven Anwendungsendgerätes 16 unterstützenden Ressourcen informiert, dass eine Umschaltung eingeleitet wurde. Beispielsweise wird das Kommunikationssubsystem 56 informiert, dass eine Umschaltung angefordert wurde. In Reaktion auf die Meldung bezüglich der Umschaltung stellt das Kommunikationssubsystem 56 sicher, dass seitens des aktiven Anwendungsendgerätes 16 nichts gegen eine Aktivierung des Reserve-Anwendungsendgerätes 18 (d.h. gegen eine Übernahme der Steuerung) steht. Darüber hinaus stellt das Kommunikationssubsystem 56 sicher, dass alle von dem Anwendungsendgerät abgesetzten Meldungen (d.h. Anforderungen eines Wechsels der Betriebsweise, Anforderungen zur Abstimmung etc.) an das aktive Anwendungsendgerät 16 übermittelt werden.
-
Nach Meldung der Umschaltung an die Ressourcen kommuniziert der Redundanzmanager 50 über die Redundanzlinksubsysteme 60 und 72 und die Redundanzstrecke 46, um eine Umschaltanweisung oder -anforderung an den Redundanzmanager 62 in dem Reserve-Anwendungsendgerät 18 zu übermitteln. Das Reserve-Anwendungsendgerät 18 reagiert auf die Anweisung oder die Anforderung zur Umschaltung, indem es den virtuellen Steuerblock 66 informiert, die Umschaltung zu bewirken, und durch Freigabe aller Bevollmächtigungen (die zuvor in dem aktiven Anwendungsendgerät 16 gesperrt wurden), die für die Funktion des virtuellen Steuerblocks 66 erforderlich sind. Anschließend werden die den virtuellen Steuerblock 66 unterstützenden Ressourcen von der Umschaltung informiert. Beispielsweise wird das Kommunikationssubsystem 68 im Gange der Umschaltung informiert und kann in Reaktion hierauf die Aktualisierung der Information zum Internetprotokollrouting, den erneuten Aufbau der TCP-Verbindungen etc. veranlassen. Im Gegensatz hierzu kann eine Umschaltung selbstverständlich auch automatisch in Reaktion auf einen Ausfall des aktiven Anwendungsendgerätes 16 initiiert werden.
-
Die redundanten Anwendungsendgeräte 16 und 18 können genutzt werden, um eine Online-Konfigurationsänderung, auch bekannt als „Hot“-Konfigurationsänderung, der aktiven Anwendung 16 vorzunehmen. Beispielsweise kann nach dem Aufbau eines Redundanzkontextes zwischen dem aktiven Anwendungsendgerät 16 und dem Reserve-Anwendungsendgerät 18 eine Umschaltoperation vorgenommen werden, um die Funktionen des aktiven Anwendungsendgerätes 16 an das Reserve-Anwendungsendgerät 18 umzuschalten. Die Umschaltoperation oder -funktion ist dann vorübergehend gesperrt, so dass die Konfiguration des aktiven Anwendungsendgerätes 16 in jeder gewünschten Weise geändert werden kann. Die Konfigurationsänderung kann ein Upgrade oder eine Änderung einer oder mehrerer der redundanten Anwendungen 52, eine Änderung des virtuellen Steuerblocks 54 oder jede andere gewünschte Änderung umfassen. Danach wird die Umschaltoperation oder -funktion wieder freigegeben, und eine Umschaltoperation zum Umschalten der Funktionen des Reserve-Anwendungsendgerätes 18 an das aktive Anwendungsendgerät 16 wird ausgeführt.
-
Die in den beispielhaften Anwendungsendgeräten 16 und 18 dargestellten Funktionsblöcke können unter Verwendung jeder beliebigen Kombination aus Programmen, Software in Festwertspeichern und Computergeräten, implementiert werden. Beispielsweise können ein oder mehrere Mikroprozessoren, Mikrosteuerungen, anwendungsspezifische Integrierte Schaltungen (ASICs - Application Specific Integrated Circuits) etc. auf Befehle oder Daten zugreifen, die auf maschinen- oder prozessorlesbaren Speichermedien gehalten werden, um die hierin beschriebenen Verfahren und Vorrichtungen umzusetzen bzw. zu realisieren. Die Speichermedien können jede beliebige Kombination aus Einrichtungen und/oder Medien wie beispielsweise Halbleiterspeichern einschließlich Speichern mit wahlfreiem Zugriff (RAM), Festspeichern (ROM), elektrisch löschbaren/- programmierbaren Festwertspeichern (EEPROM) etc., optischen und magnetischen Speichermedien etc. umfassen. Außerdem können Programme, die zur Implementierung der Funktionsblöcke genutzt werden, zusätzlich oder alternativ zu dem Prozessor oder einer anderen Einrichtung bzw. anderer Einrichtungen zur Abarbeitung der Programme, über das Internet, Telefonleitungen, Satellitenkommunikation etc. geliefert und zugegriffen werden.
-
Während die vorliegende Erfindung unter Bezugnahme auf spezifische Ausführungsbeispiele beschrieben worden ist, die die Erfindung nur verdeutlichen und nicht einschränken sollen, wird es für den Fachmann offensichtlich sein, dass Änderungen, Hinzufügungen oder Weglassungen an den offenbarten Ausführungsformen vorgenommen werden können, ohne vom Geist und Geltungsbereich der Erfindung abzuweichen.