-
Die vorliegende Erfindung betrifft
allgemein Prozesssteuerungssysteme und insbesondere ein Simulationssystem,
das einen oder mehrere Knoten eines Mehrfachknoten-Prozesssteuerungssystems simuliert,
um simulierte Prozesssteuerungs-Funktionalität, die einem verteilten Prozesssteuerungssystem
zugeordnet ist, bereitzustellen.
-
Verteilte Prozesssteuerungssysteme,
wie sie in Prozessen der Chemie- oder Erdölindustrie oder anderen Prozessen
angewandt werden, haben typischerweise eine oder mehrere Prozesssteuerungen, die
kommunikativ mit einer oder mehreren Feldeinrichtungen über Analog-,
Digital- oder kombinierte Analog-/Digitalbusse verbunden sind. Die
Feldeinrichtungen, die beispielsweise Ventile, Ventilpositionierer,
Schalter und Messwandler (z. B. Temperatur-, Druck-, Pegel- und
Durchflussratensensoren) sein können,
sind innerhalb der Prozessumgebung angeordnet und führen Prozessfunktionen
wie etwa das Öffnen
oder Schließen
von Ventilen, die Messung von Prozessparametern usw. aus. Intelligente
Feldeinrichtungen wie etwa diejenigen, die mit dem wohlbekannten
Fieldbus-Protokoll übereinstimmen,
können
auch Steuerungsberechnungen, Warnfunktionen und andere Steuerungsfunktionen
ausführen,
die üblicherweise
in der Steuerung implementiert sind. Die Prozesssteuerungen, die
ebenfalls charakteristisch innerhalb der Anlagenumgebung angeordnet
sind, empfangen Signale, die von den Feldeinrichtungen durchgeführte Prozessmessungen
und/oder andere Informationen bezeichnen, die sich auf die Feldeinrichtungen
beziehen, und führen
eine Steuerungsanwendung aus, die beispielsweise verschiedene Steuermodule
betä tigt,
die Prozesssteuerungsentscheidungen treffen, auf der empfangenen
Information basierende Steuersignale erzeugt und die Koordination mit
den Steuermodulen oder -blöcken
herstellt, die in den Feldeinrichtungen wie etwa HART- und Fieldbus-Feldeinrichtungen
ausgeführt
werden. Die Steuermodule in der Steuerung senden die Steuersignale auf
den Übertragungsleitungen
an die Feldeinrichtungen, um dadurch den Betrieb des Prozesses zu steuern.
-
Informationen von den Feldeinrichtungen und
der Steuerung werden gewöhnlich über einen Datenbus
für eine
oder mehrere andere Hardwareeinrichtungen wie etwa Bedienerworkstations,
PCs, Datenstammspeicher, Berichterzeugungseinrichtungen, zentrale
Datenbanken usw. verfügbar
gemacht, die typischerweise in einer Leitstelle oder an anderen Stellen,
die von der rauheren Anlagenumgebung entfernt sind, angeordnet sind.
Diese Hardwareeinrichtungen führen
Anwendungen aus, die beispielsweise einem Bediener die Ausführung von
Funktionen in bezug auf den Prozess erlauben, etwa die Änderung von
Einstellungen der Prozesssteuerungsroutine, die Änderung der Operation der Steuermodule
innerhalb der Steuerung oder der Feldeinrichtung, das Betrachten
des aktuellen Prozesszustands, die Simulation des Betriebs des Prozesses
zum Zweck der Schulung von Personal oder zum Testen der Prozesssteuerungs-Software,
der Erhaltung und Aktualisierung einer Konfigurationsdatenbank usw.
-
Beispielhaft weist das DeltaVTM Steuerungssystem, das von Fisher-Rosemount
Systems, Inc. verkauft wird, eine Vielzahl von Anwendungen auf, die
in verschiedenen Einrichtungen an den verschiedensten Stellen innerhalb
einer Prozessanlage gespeichert sind und von diesen ausgeführt werden. Eine
Konfigurationsanwendung, die in einer oder mehreren Bedienerworkstations
vorhanden ist, ermöglicht
es Anwendern, Prozesssteuermodule zu kreieren oder zu ändern und
diese Prozesssteuermodule über
einen Datenbus zu bestimmten verteilten Steuerungen herunterzuladen.
Die Konfigurationsanwendung kann es auch einem Designer ermöglichen, Anwenderoberflächen zu
erzeugen oder zu ändern, die
von einer Betrachtungsanwendung genutzt werden, um einem Anwender
Daten anzuzeigen und ihm Änderungen
von Einstellungen wie etwa Sollwerten innerhalb der Prozesssteuerungsroutine
zu ermöglichen.
Jede dedizierte Steuerung und in manchen Fällen Feldeinrichtungen speichern
und führen
eine Steuerungsanwendung aus, die die Steuermodule betreibt, die
ihnen zugeordnet und heruntergeladen sind, um die eigentliche Prozesssteuerung
zu implementieren. Betrachtungsanwendungen, die an einer oder mehreren
Bedienerworkstations laufen können, empfangen
Daten von der Steuerungsanwendung über den Datenbus und zeigen
diese Daten für
Prozesssteuerungssystem-Designer, -Bediener oder -Anwender an, die
die Anwenderoberfläche
benutzen, die jede von einer Reihe von verschiedenen Ansichten zur
Verfügung
stellen können,
etwa eine Bedieneransicht, eine Ingenieuransicht, eine Technikeransicht
usw. Eine Datenhistorian-Anwendung ist typischerweise in einer Datenhistorian-Einrichtung
gespeichert und wird von dieser ausgeführt; die Einrichtung sammelt
und speichert einen Teil der Daten oder sämtliche Daten, die auf dem
Datenbus geliefert werden, während
gleichzeitig eine Konfigurationsdatenbank-Anwendung in noch einer anderen Computereinrichtung
laufen kann, die mit dem Datenbus verbunden ist, um die aktuelle
Prozesssteuerungsroutine-Konfiguration und dazugehörige Daten
zu speichern. Alternativ ist die Konfigurationsdatenbank in derselben
Workstation wie die Konfigurationsanwendung gespeichert.
-
Simulationsanwendungen wie die Mimic-Anwendung,
die von Don H. Munger Company in St. Louis, Missouri, verkauft wird,
oder die HYSYS-Anwendung, die von Hyprotech in Calgary, Kanada,
hergestellt und verkauft wird, können
auf einem Personalcomputer laufen, der mit dem Datenbus verbunden
ist. Diese oder andere Schnittstellenanwendungen kommunizieren mit
der Steuerungsanwendung und der Betrachtungsanwendung über den
Datenbus, um das Testen der Steuermodule zu ermöglichen, die in der Steuerung
oder den Benutzeroberflächen
gespeichert sind. Diese Simulationsanwendungen ermöglichen
auch die Durchführung
von Trainings und das Austesten des Systems. In manchen Fällen ist
die HYSYS-Anwendung, die ein HiFi-Prozesssimulationsprodukt ist,
in denselben Computer wie die Mimic-Anwendung integriert, um die
genaue zeitliche Steuerung und das genaue Verhalten eines Prozesssteuerungsentwurfs
zu simulieren, so dass dieser Entwurf ausgetestet werden kann. Typischerweise
kommunizieren diese Simulationsanwendungen mit den Steuerungsanwendungen
innerhalb der Steuerung oder der Feldeinrichtungen unter Verwendung
einer Standardschnittstelle wie etwa der OPC-Schnittstelle oder
der PI-Schnittstelle, die wohlbekannt sind.
-
Alternativ wird die Simulation manuell
durchgeführt,
wobei ein Bediener oder anderer Anwender die Simulationsfähigkeiten
von Ein/Ausgabe- bzw. E/A-Funktionsblöcken innerhalb der Steuermodule der
Steuerung oder der Feldeinrichtungen nutzt, um die Werte und Statusvariablen,
die von den E/A-Blöcken
verarbeitet werden, manuell vorzugeben und dadurch wiederum die
Prüfung
von Informationen oder Steuerlogik zuzulassen, ohne eine Feldeinrichtung
tatsächlich
zu steuern oder auch, ohne dass eine Feldeinrichtung mit der Steuerung
verbunden ist. In beiden Fällen
können
spezielle Simulationsmodule erzeugt und in der Steuerung oder den
Feldeinrichtungen gespeichert werden, um mit den eigentlichen Steuermodulen
dadurch in Dialog zu treten, dass simulierte Prozessdynamik auf
der Basis eines Ausgangsblockziels zu den eigentlichen Steuermodulen
bereitgestellt wird.
-
Bei diesen Systemen ist es möglich zu
prüfen,
dass die in den von den Betrachtungsanwendungen erzeugten Anwenderdisplays
gezeigte Information von der Steuerung korrekt übertragen wird, nachdem die
Steuermodule entworfen, zugeordnet und in die Steuerung oder die
Feldeinrichtungen heruntergeladen wurden, und einen Simulationsprozess
zur Prüfung
des Systems anzuwenden. Die Nutzung der kompletten Systemhardware
für das
Austesten der Konfiguration und die Schulung von Bedienern wird typischerweise
vor dem Einrichten des Steuerungssystems durchgeführt, damit
die physischen Verbindungen zu der Steuerung und die Kommunikation zwischen
Steuerung und Workstation vollständig
getestet werden können.
Ferner können
Leistungsvermögen,
Speichererfordernisse und Lasten, die in die Steuerung von konfigurierten
Modulen eingeführt werden,
geprüft
werden.
-
In vielen Fällen ist es jedoch erwünscht, ein Prozesssteuerungssystem
oder einen Knoten eines Prozesssteuerungssystems zu simulieren,
nachdem dieses Prozesssteuerungssystem vollständig konfiguriert und implementiert
wurde und/oder während das
Prozesssteuerungssystem online arbeitet. Beispielsweise kann es
erwünscht
sein, eine Simulationsumgebung zu schaffen, die ein vollständig implementiertes
Prozesssteuerungssystem für
Trainingszwecke wie etwa zur Ausbildung neuer Bediener oder für Testzwecke
wie etwa zum Testen einer neuen Gruppe von Betriebsparametern simuliert,
um zu erkennen, ob gewünschte
Ergebnisse erhalten werden; dies soll vor dem Anlaufen der eigentlichen
Anlage mit diesen Betriebsparametern erfolgen.
-
Wenn zum Zeitpunkt der Implementierung der
Konfiguration kein Simulationssystem erzeugt wurde, muss nachteiligerweise
ein Konfigurationssystem aus dem tatsächlichen Prozess, wie er konfiguriert
ist, geschaffen werden. Das bedeutet typischerweise, dass ein Bediener
oder eine andere Person manuell ein Simulationssystem durch Installation eines
separaten Simulationsblocks für
jeden der Steuerblöcke
in jedem der zu simulierenden Knoten erstellen muss und einen E/A-Block
oder eine Referenz für
jeden Block oder jede Funktion außerhalb des zu simulierenden
Knotens, jedoch in kommunikativer Verbindung mit diesen Knoten,
erzeugen muss. Der Bediener muss auch die Kommunikationen zwischen
diesen Blöcken
konfigurieren, um die innerhalb der Prozessanlage auftretenden tatsächlichen
Kommunikationen zu simulieren. Da der Bediener jeden Knoten Block
für Block
manuell kopieren muss, kann das geschaffene Simulationssystem vom Bediener
eingeführte
Fehler enthalten und die Anlage eventuell nicht exakt so, wie sie
konfiguriert ist, simulieren. Außerdem ist dieser Prozess sehr
zeitaufwändig,
und zwar besonders in komplexen Anlagen, die in jedem Knoten Hunderte
oder Tausende von verschiedenen Blöcken haben können, was
die Erzeugung von Hunderten oder Tausenden von Simulationssteuerblöcken und
manchmal noch mehr Eingabe/Ausgabeblöcken erforderlich macht.
-
Alternativ kann der Bediener die
Software so, wie sie konfiguriert ist, für jeden der Blöcke eines Knotens
in eine Simulationsumgebung wie etwa auf einen Simulationscomputer
kopieren. In diesem Fall muss aber der Bediener immer noch die Simulations-Ein-/Ausgabeblöcke oder
Referenzen zu diesen Blöcken
manuell erzeugen. Wie oben gesagt wird, treten bei diesem Vorgang
immer noch vom Bediener eingeführte
Fehler auf, und der Vorgang ist zeitaufwändig.
-
Wegen der vorstehend angegebenen
Probleme erfordert in jedem Fall die Schaffung eines Simulationssystems
für eine
tatsächlich
in Betrieb befindliche und konfigurierte Anlage viel Zeit und Arbeitsstunden
des Bedieners und ist daher sehr teuer; manchmal kostet dies Millionen
Dollar. Diese Kosten schrecken viele Anlagen ab, exakte Simulationssysteme
für das
Prozesssteuerungssystem so, wie es konfiguriert ist, zu erstellen,
wodurch Umfang und Güte
des Trainings, das an der Anlage geboten werden kann, sowie der
Umfang des Offline-Testens, das durchgeführt werden kann, begrenzt sind.
-
Außerdem gibt es viele Signale
wie etwa Statussignale der Eingabe/Ausgabe-Blöcke, die in einem Simulationssystem,
das von einem tatsächlichen
Betriebssystem kopiert ist, zu Problemen führen. Insbesondere erzeugt
jeder Block, wenn er ein Kommunikationssignal an einen anderen Block
sendet, im Allgemeinen ein Statussignal, das den Status des Signals
beispielsweise als gut, schlecht, alt usw. bezeichnet. In der von
der laufenden Anlage kopierten Simulationsumgebung sind jedoch die
Statussignale immer alt oder schlecht, weil es innerhalb der Anlage
keine tatsächliche
Einrichtung gibt, die dieses Signal sendet und aktualisiert. Infolgedessen
kann das Simulationssystem bei der Behandlung schlechter Statussignale
steckenbleiben und unfähig
sein, die tatsächliche
Steuerungsumgebung zu simulieren, oder sendet vielleicht zahlreiche
Fehlermeldungen an den Bediener, was für den Simulationsbediener lästig wird.
-
Außerdem gibt es Situationen
oder Zeiten, in denen es vorteilhaft ist, einen Schnappschuss bzw. Momentaufnahme
bzw. Speicherauszug des laufenden Simulationssystems zu erfassen
oder zu erzeugen, und zwar einschließlich der Werte aller Prozessvariablen,
Sollwerte und sonstiger Prozessparameter. Dieser Schnappschuss der
simulierten Anlage oder eines Knotens der Anlage kann nützlich sein
für die
Diagnose eines Problems, die Sicherung eines besonders guten oder
schlechten Anlagenzustands zum späteren Gebrauch bei einer anderen
Simulation, zur Wiederholung der gleichen Simulation und zum Testen
der Wirkung von unterschiedlichen Handlungen usw. Derzeit gibt es
aber keine bekannte Weise der Erzeugung eines Schnappschusses einer Simulation
in einem bestimmten Moment, ohne den Betrieb der Simulation für einen
beträchtlichen
Zeitraum tatsächlich
anzuhalten und den Status jedes der Blöcke innerhalb der Simulation
zu kopieren. Da bekannte oder Standardmethoden zum Kopieren der Blöcke usw.
in einem Knoten länger
als der Operationszyklus des Knotens dauern, würde die Durchführung dieser
Kopiermethoden an einer laufenden Simulation bedeuten, dass sich
Variablen oder Werte während
des Kopierprozesses ändern
und somit der eingefangene Anlagen- oder Knotenstatus nicht einen
bestimmten einzigen Moment betrifft, sondern statt dessen verschiedene
Variablenwerte von verschiedenen Zeitpunkten hätte. Andererseits ist das Anhalten
der Simulation über
den Zeitraum, der benötigt
wird, um auf die Werte von sämtlichen
Modulparametern zuzugreifen und sie zu kopieren, insbesondere in
einer objektorientierten Programmierumgebung für den Simulationsbediener erkennbar
und kann störend
sein.
-
Ein Simulationssystem schließt sich
an eine Konfigurationsdatenbank für einen oder mehrere vollständig konfigurierte
Knoten eines Prozesssteuerungssystems an und kopiert die Module
einschließlich
der Funktionsblöcke
innerhalb dieser Knoten in einen oder mehrere Simulationscomputer.
Das Simulationssystem weist einen Algorithmus auf, der während des
Kopierprozesses oder danach automatisch ein Referenzparametermodul
für jeden
der kopierten Knoten erstellt, um einen Referenzparameter für jede der
außerhalb
des Knotens befindlichen Eingangs- und Ausgangsreferenzen wie etwa
Ein/Ausgabe-Blöcke,
andere Funktionsblöcke
in anderen Knoten, Messwandlerblöcke
in Feldeinrichtungen usw. zu speichern. Im Fall von Fieldbus-Funktionsblöcken erstellt
das Simulationssystem automatisch einen Funktionsblock innerhalb
der Simulations-Workstation in dem Protokoll des Steuerungsknotens,
der die Operation des Fieldbus-Funktionsblocks simuliert, und erstellt
dann das Simulationssystem, in dem diese simulierten Fieldbus-Funktionsblöcke so arbeiten, als
ob sie ursprünglich
so konfiguriert worden wären, dass
sie sich in der simulierten Steuerung und nicht in einer außerhalb
der Steuerung befindlichen Feldeinrichtung befinden. Ferner kann
das Simulationssystem die Statussignale deaktivieren oder auf eine Weise
wirksam sein, die die Statussignale der erzeugten Ein/Ausgabe-Blöcke innerhalb
des Simulationssystems ignoriert, um zu verhindern, dass die Statussignale
für den
Bediener sichtbare Fehler verursachen.
-
Ferner können die redundanten Fähigkeiten bekannter
Steuermodule genutzt werden, um einen Schnappschuss eines Simulationssystems
innerhalb eines sehr kurzen Zeitraums festzuhalten oder zu speichern.
Insbesondere kann das Simulationssystem die redundanten Ausgaben
nutzen, die von jedem der Steuerblöcke innerhalb des Prozesssteuerungssystems
bereitgestellt werden, und kann anstelle einer Aktualisierung eines
redundanten Blocks einfach die aktualisierten Parameter auf logische Weise
in einem Speicher innerhalb der Simulations-Workstation speichern.
Wenn ein Schnappschuss eines Simulationsknotens gewünscht wird, kann
das Simulationssystem die Operation der Simulationsmodule für den Zeitraum
anhalten, der benötigt
wird, um die redundanten Daten in dem Simulationsspeicher in eine
Schnappschussdatei oder irgendeine Pufferdatei zu kopieren. Nach
diesem Kopiervorgang, der sehr rasch abläuft, kann das Simulationssystem
erneut gestartet werden. Häufig
ist der Kopiervorgang so kurz, dass der Simulationsbediener keine
Störung
in dem Betrieb des Simula tionssystems erkennt. Dieser Prozess ermöglicht es
einem Simulationsbediener, einen Schnappschuss von einem oder mehreren
Simulationsknoten in einem bestimmten und einzigen Moment zu erhalten,
ohne dass das Simulationssystem merklich gestört werden muss.
-
1 ist
ein Blockbild eines typischen Prozesssteuerungsnetzes, das eine
Vielzahl von Knoten und ein Simulationssystem hat, um eine Simulation von
einem oder mehreren der Knoten zu erzeugen und auszuführen;
-
2 ist
ein Bildschirmdisplay, das einen Simulationserzeugungs- und -steuerungsbildschirm zum
Gebrauch durch einen Simulationsbediener zeigt;
-
3 ist
ein Bildschirmdisplay, das einen Befehl zur Erzeugung einer Simulation
für einen
einzelnen Steuerungsknoten für
ein Prozesssteuerungssystem zeigt;
-
4 ist
ein Bildschirmdisplay, das eine Simulation zeigt, die für einen
einzelnen Steuerungsknoten eines Prozesssteuerungssystems erzeugt wurde;
-
5 ist
ein Bildschirmdisplay, das ein Set von externen Referenzparametern
zeigt, die innerhalb der Simulation in eine Modulreferenz umgewandelt
wurden;
-
6 ist
ein Bildschirmdisplay, das einen Behälter oder ein Referenzparametermodul
zeigt, das geschaffen wurde, um Eingangs/Ausgangs-Referenzen für die erzeugte
Simulation zu halten;
-
7 ist
ein Bildschirmdisplay, das einen Schnappschusseinfangbildschirm
zum Gebrauch durch einen Simulationsbediener beim Einfangen eines
Schnappschusses des Simulationssystems zeigt; und
-
8 ist
ein Bildschirmdisplay, das einen Wiederherstellungsbildschirm zum
Gebrauch durch einen Simulationsbediener bei der Wiederherstellung des
Simulationssystems auf einen vorher eingefangenen Schnappschuss
zeigt.
-
BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Gemäß 1 weist ein verteiltes Prozesssteuerungssystem 10 einen
oder mehrere Knoten 12, 14, 16, 18 und 20 auf.
Bei dem beispielhaften Prozesssteuerungssystem 10 von 1 weist jeder der Knoten 12, 14 und 16 eine
Prozesssteuerung 12a, 14a, 16a auf, die
mit einer oder mehreren Feldeinrichtungen 22 und 23 über Ein/Ausgabe- bzw. E/A-Einrichtungen 24 verbunden
sind, die beispielsweise Fieldbus-Schnittstellen, HART-Schnittstellen usw.
sein können.
Die Steuerungen 12a, 14a und 16a sind
ferner mit einer oder mehreren Haupt- oder Bedienerworkstations 18a und 20a in
den Knoten 18 und 20 über einen Datenbus 30 gekoppelt,
der beispielsweise eine Ethernetleitung sein kann. Falls gewünscht, können die
Steuerungsknoten 12, 14 und 16 redundante
Steuerungen 12R, 14R und 16R aufweisen,
die vorgesehen sind, um den Status der Steuerungen 12a, 14a und 16a auf
bekannte Weise zu verfolgen (wobei typischerweise dedizierte Übertragungsleitungen
genutzt werden) und bei Ausfall der zugehörigen primären Steuerungen 12a, 14a und 16a die
Aufgabe der primären
Steuerungen zu übernehmen.
Die Steuerungsknoten 12, 14 und 16 sowie die
zugeordneten E/A-Einrichtungen und Feldeinrichtungen 22, 23 und 24 sind
typischerweise innerhalb der manchmal rauhen Anlagenumgebung angeordnet
und darin verteilt, aber die Knoten 18 und 20 der Bediener-Workstation
befinden sich gewöhnlich
in Steuerwarten oder anderen weniger rauhen Umgebungen, zu denen
Kontrollpersonal leicht Zugang hat.
-
Allgemein gesagt, können die
Workstations 18a und 20a der Knoten 18 und 20 dazu
dienen, Anwendungen zu speichern und auszuführen, die dazu dienen, das
Prozesssteuerungssystem 10 zu konfigurieren und zu überwachen.
Ferner kann die Datenbank 32 mit dem Datenbus 30 verbunden
sein und als Datenhistorian oder als Konfigurationsdatenbank wirksam
sein, die die aktuelle Konfiguration des Prozesssteuerungssystems 10 so,
wie es in die Knoten 12, 14, 16, 18 und 20 heruntergeladen
und darin gespeichert wurde, speichert.
-
Es ist bekannt, dass jede Steuerung 12a, 14a und 16a,
die übrigens
beispielsweise die DeltaV-Steuerung von Fisher-Rosemount Systems,
Inc., sein kann, eine Steuerungsanwendung speichert und ausführt, die
eine Steuerungsstrategie unter Verwendung einer Reihe von verschiedenen,
einzeln ausgeführten
Steuermodulen oder -blöcken
implementiert. Jedes Steuermodul kann aus Funktionsblöcken, die allgemein
so bezeichnet werden, bestehen, wobei jeder Funktionsblock ein Teil
oder eine Subroutine einer Gesamtsteuerungsroutine ist und gemeinsam
mit anderen Funktionsblöcken
(über als
Leitungen bezeichnete Kommunikationsmittel) wirksam ist, um Prozesssteuerschleifen
innerhalb des Prozesssteuerungssystems 10 zu implementieren.
Es ist wohlbekannt, dass Funktionsblöcke charakteristisch eine von
einer Eingabefunktion, wie sie etwa einem Messwandler, einem Sensor
oder einer anderen Prozessparametermesseinrichtung zugeordnet ist,
einer Steuerfunktion, wie sie einer Steuerroutine zugeordnet ist,
die PID-, Fuzzy-Logik-Steuerung usw. ausführt, oder einer Ausgabefunktion,
die die Operation irgendeiner Einrichtung wie etwa eines Ventils
steuert, ausführen,
um irgendeine physische Funktion innerhalb des Prozesssteuerungssystems 10 durchzuführen. Selbstverständlich gibt
es Hybrid-Funktionsblöcke
und andere Arten von Funktionsblöcken.
Das Fieldbus-Protokoll und das DeltaV-Systemprotokoll verwenden
Steuermodule und Funktionsblöcke,
die in einem objektorientierten Programmierprotokoll entworfen und
implementiert sind, aber die Steuermodule könnten unter Anwendung jedes
gewünschten
Steuerungsprogrammierschemas entworfen werden, was beispielsweise
sequentielle Funktionsblöcke,
Kettenlogik usw. umfasst, und sind nicht darauf beschränkt, unter
Anwendung einer Funktionsblock- oder irgendeiner anderen bestimmten
Programmiertechnik ausgebildet zu sein. Wie es typisch ist, wird die
Konfiguration der Steuermodule, wie sie innerhalb der Prozesssteuerknoten 12, 14 und 16 gespeichert
ist, in der Konfigurationsdatenbank 32 gespeichert, die
für Anwendungen
innerhalb der Workstations 18a und 20a zugänglich ist.
-
Bei dem in 1 gezeigten System können die mit den Steuerungen 12a, 14a und 16a verbundenen
Feldeinrichtungen 22 und 23 4-20-ma-Standardeinrichtungen
oder intelligente Feldeinrichtungen wie HART-, Profibus- oder Fieldbus-Einrichtungen
sein, die einen Prozessor und einen Speicher aufweisen. Einige dieser
Einrichtungen wie die Fieldbus-Feldeinrichtungen (die in 1 mit 23 bezeichnet
sind) können
Module oder Untermodule wie Funktionsblöcke speichern und ausführen, die
der in den Steuerungen 12a, 14a und 16a implementierten
Steuerungsstrategie zugeordnet sind. Funktionsblöcke 26 und 27 sind in 1 in zwei verschiedenen
der Fieldbus-Feldeinrichtun gen 23 angeordnet dargestellt.
Die Funktionsblöcke 26 und 27 in
den Feldeinrichtungen 23 können gemeinsam mit der Ausführung der
Module innerhalb der Steuerungen 12a, 14a und 16a ausgeführt werden,
um die Prozesssteuerung zu implementieren, wie bekannt ist. Selbstverständlich können die
Feldeinrichtungen 22, 23 jede Art von Einrichtung
wie Sensoren, Ventile, Messwandler, Positionierer usw. sein, und
die E/A-Einrichtungen 24 können jede
Art von E/A-Einrichtung sein, die an ein gewünschtes Kommunikations- oder
Steuerungsprotokoll wie HART, Fieldbus, Profibus usw. angepasst
sind.
-
In dem Prozesssteuerungssystem 10 von 1 umfasst eine Workstation 20a ein
Simulationssystem oder eine Simulationsanwendung 50, die dazu
dient, eine oder mehrere Simulationen zu erzeugen und zu implementieren,
die hier als Simulationsfälle
bezeichnet werden, und zwar für
einen oder mehrere Knoten des Prozesssteuerungssystems 10. Allgemein
gesagt, erzeugt die Simulationsanwendung 50, wenn sie implementiert
ist, einen Simulationsfall für
einen oder mehrere bestimmte Knoten, indem jedes der Steuermodule
innerhalb der Knoten aus der Konfigurationsdatenbank als Simulationsmodule
kopiert wird und diese Simulationsmodule in der Simulationsworkstation 20a gespeichert
werden. Falls gewünscht,
könnte
die Simulationsanwendung 50 den Simulationsfall zu einer
Vielzahl von Workstations verteilen. Für die Zwecke der vorliegenden
Erläuterung
wird jedoch davon ausgegangen, dass sämtliche Simulationsmodule auf
einer einzigen Simulationsworkstation 20a erzeugt und ausgeführt werden.
Während
dieses Erzeugungsprozesses erzeugt die Simulationsanwendung 50 ein
Referenzparametermodul für
jeden der Knoten in dem Simulationsfall, wobei jedes Referenzparametermodul
Referenzparameter für
jede der Ein/Ausgabereferenzen aufweist, die Signalen zugeordnet
sind, die in den und aus dem bezeichneten Knoten von jeden der Simulationsmodule
innerhalb dieses Knotens gesendet werden. Nachdem für einen
Knoten oder für
eine Vielzahl von Knoten ein Simulationsfall erzeugt worden ist,
kann der Simulationsfall implementiert und für jeden gewünschten Zweck wie etwa für Test-
oder Schulungszwecke aktiviert werden.
-
Wie 1 zeigt,
umfasst die Simulationsanwendung 50 (die in einem computerlesbaren
Speicher 52 eines Mikroprozessors 54 der Hauptworkstation 20a gespeichert
und ausgebildet ist, um an dem Mikroprozessor implementiert zu werden)
Anwendungen, Routinen oder Subroutinen 56 bis 58.
Die erste Routine 56 ist dem Erzeugen und Betreiben einer
Anwenderdisplayeinrichtung 60 zugeordnet, die zu der Simulationsworkstation 20a gehört, um einem Simulationsbediener
zu ermöglichen,
Simulationsfälle
von einem oder mehreren Knoten des Prozesssteuerungssystems 10 zu
erzeugen, zu betrachten und zu steuern. Die zweite Routine 57 erzeugt,
wenn sie ausgeführt
wird, tatsächlich
einen Simulationsfall für
einen oder mehrere bezeichnete Knoten, indem sie kommunikativ miteinander
verbundene Simulationsmodule für
jedes der Module erzeugt (die einzelne oder Vielfachfunktionsblöcke aufweisen
können), die
jedem der bezeichneten Knoten zugehörig sind, und dann automatisch
die Referenzparametermodule für
jeden der Knoten erzeugt, um die Eingänge oder Ausgänge dieser
Knoten zu speichern. Die dritte Subroutine 58 kann verwendet
werden, um den Simulationsfall, nachdem er erzeugt ist, zu starten,
zu stoppen, zu rekonfigurieren, Schnappschüsse einzufangen, ihn wiederherzustellen
oder anderweitig zu steuern. Natürlich
sind die Routinen 57 und 58 mit der Anwenderdisplayroutine 56 integriert,
um einem Simulationsbediener zu erlauben, die verschiedenen Schritte
bei der Erzeugung, Steuerung und Betrachtung eines Simulationsfalls
für das
Prozesssteuerungssystem 10 auszuführen.
-
Während
des Betriebs des Prozesssteuerungssystems 10 (d. h. nachdem
eine Prozesssteuerungskonfiguration erzeugt und in das Prozesssteuerungssystem 10 und
somit in jeden der darin vorhandenen verschiedenen Knoten heruntergeladen
worden ist), aber vor dem Erzeugen irgendeines Simulationsfalls
kann ein Bediener auf die Simulationsanwendung 50 zugreifen.
Zu diesem Zeitpunkt kann die Displayroutine 56 dem Bediener
einen Steuer- oder Simulationsdisplaybildschirm 70 anzeigen
wie etwa den in 2 gezeigten
Bildschirm. Der beispielhafte Simulationsdisplaybildschirm 70 von 2 hat eine Reihe von verschiedenen
Abschnitten einschließlich eines
Knotenbezeichnungsabschnitts 72, der sich in 2 an der linken Seite des
Displaybildschirms 70 befindet, und eines Informationsabschnitts 74,
der sich auf der rechten Seite des Displaybildschirms 70 befindet.
-
Der Knotenbezeichnungsabschnitt 72 kann die
Knoten und Einrichtungen, Routinen usw. zeigen, die jedem der Knoten
des Prozesssteuerungssystems 10 zugehörig sind, und kann einem Simulationsbediener
ermöglichen,
einen oder mehrere dieser Knoten oder Einrichtungen innerhalb eines
Knotens wie etwa Steuerungen auf jede gewünschte Weise etwa unter Anwendung
einer Maus auszuwählen. Der
Knotenbezeichnungsabschnitt 72 von 2 zeigt eine Baumstruktur, die die verschiedenen
Prozesssteuerungs-Konfigurationselemente, wie sie in der Konfigurationsdatenbank 32 für den Prozess 10 gespeichert
sind, darstellt. Selbstverständlich
können
die Knoten oder sonstigen Elemente des Prozesssteuerungssystems 10 auf
jede andere gewünschte
Weise dargestellt werden. Der Informationsabschnitt 74 liefert
dem Simulationsbediener dagegen Informationen über das ausgewählte Element/die
Elemente innerhalb des Knotenbezeichnungsabschnitts, etwa eine grafische
oder Textbeschreibung der Subelemente innerhalb der ausgewählten Elemente
an dem Knotenbezeichnungsabschnitt 72. Falls gewünscht, kann über Drop-down- oder
Pop-up-Menüs
auf dem Steuerungsbildschirm 70 Zugriff auf Befehlsgruppen
erfolgen, die dazu dienen können,
einen Simulationsfall für
einen oder mehrere Knoten des Prozesssteuerungssystems 10 zu
erzeugen oder einen Simulationsfall von einem oder mehreren Knoten
des Prozesssteuerungssystems 10 auszuführen, zu steuern und zu betrachten. Falls
gewünscht,
kann ein Schieber vorgesehen sein, um die Geschwindigkeit der Simulation
in bezug auf die Ausführungsgeschwindigkeit
oder den Zyklus des eigentlichen Prozesssteuerungssystems 10 zu
bezeichnen. Der Schieber kann eine Stopp-Position und Positionen
aufweisen, die bewirken, dass der Simulationsfall langsamer oder
schneller als die Ausführungsgeschwindigkeit
des eigentlichen Prozesssteuerungssystems 10 ausgeführt wird.
Dieser Schieber kann außerdem
eine Pause- und Lauf- oder Vorwärtstaste
aufweisen, um dem Simulationsbediener ein rasches Anhalten und Starten
des Simulationsfalls zu ermöglichen.
-
2 zeigt
insbesondere eine Baumstruktur in dem Knotenbezeichnungsabschnitt 72,
die unter anderem eine Steuerungsstrategie 80 hat, die
einen zugeordneten Area A (Bereich A) hat, unter dem sich eine Gruppe
von Modulen befindet: Loop1-Loop6 (Schleife1-Schleife6), Test_AI1,
Test_AO1, Test_DI1 und Test_DO1. Da in 2 Area_A gewählt ist, zeigt der Informationsabschnitt 74 die
verschiedenen Schleifen und anderen Elemente, die Area_A zugeordnet
sind, an denen anschließende
Aktivitäten
erfolgen, solange Area_A gewählt
ist. Gleichermaßen umfasst
die Baumstruktur von 2 ein
Steuerungsnetz 84, das unter anderem drei Steuerungen N_Solv_1,
Sol_Man_1 und Ctlr_1 umfasst. Ctlr_1 umfasst zugeordnete Module,
E/A-Karten CO1, CO3, CO4 und Assigned Remote I/O. Selbstverständlich sind
den Steuerungen N_Solv_1 und Sol_Man_1 andere Einheiten, Module
usw. zugeordnet, jedoch in der Baumstruktur von 2 nicht erweitert.
-
Allgemein gesagt, kann der Simulationsbediener
an der Workstation 20a den Knotenbezeichnungsabschnitt 72 auf
dem Displaybildschirm 70 verwenden, um einen oder mehrere
Knoten wie etwa Steuerungen auszuwählen, für die anschließende Aktivitäten erfolgen
sollen. Somit kann der Simulationsbediener einen oder mehrere Knoten
(z. B. Steuerungen) auswählen,
für die
Simulationsfälle
zu erzeugen und auszuführen
sind. Wenn ein Simulationsbediener z. B. nur einen Knoten auswählt und
dann einen Simulationsfall beispielsweise über ein Drop-down-Menü erzeugt,
erzeugt die oben angegebene Routine 57 einen Simulationsfall
für diesen
einzigen Knoten. Wenn der Simulationsbediener drei Knoten (etwa
jeden der Knoten 12, 14 und 16 von 1) oder das gesamte Prozesssteuerungssystem auf
dem Knotenbezeichnungsabschnitt 72 des Bildschirms 70 auswählt und
dann den Simulationserzeugungsbefehl auswählt, erzeugt die Routine 57 gleichermaßen einen
Simulationsfall einschließlich der
Module innerhalb jedes dieser drei Knoten oder des Gesamtsystems.
Auf diese Weise kann der Simulationsbediener auf einfache Weise
die Anzahl und die speziellen Knoten des Prozesssteuerungssystems 10 auswählen, für die ein
Simulationsfall erzeugt und implementiert werden soll, wodurch die gleichzeitige
Erzeugung eines Simulationsfalls für jede Anzahl bezeichneter
Knoten ermöglicht
wird. Ferner kann der Simulationsbediener verschiedene Knoten zur
Betrachtung während
des Betriebs des Simulationsfalls unter Nutzung des Knotenbezeichnungsabschnitts 72 auswählen.
-
Wenn der Simulationsbediener den
Simulationserzeugungsbefehl wählt,
wird der Algorithmus oder die Routine 57 wirksam und wandelt
das Prozesssteuerungssystem so, wie es an den bezeichneten Knoten
konfiguriert ist, in einen Simulationsfall um. Zur Durchführung dieser
Funktion greift die Simulationserzeugungsroutine 57 auf
die Konfigurationsdatenbank 32 zu und kopiert (oder erzeugt)
einen Simulationsblock für
jeden der Blöcke
und jedes der Module, die sich in jedem der bezeichneten Knoten befinden,
wie sie in der Konfigurationsdatenbank 32 gespeichert sind.
Die Simulationserzeugungsroutine 57 kann dies, falls gewünscht, auf
einer Knoten-für-Knoten-Basis durchführen. Als
Teil dieses Prozesses sendet die Simulationserzeugungsroutine
57 Befehle
an die Konfigurationsdatenbank 32 zum Erhalt einer Kopie
der Module, Funktionsblöcke
usw. für
einen Knoten. Die erhaltenen Kopien werden in der Simulationsworkstation 20a gespeichert
und bevorzugt dadurch in ein Simulationsmodul umgewandelt, dass
angegeben wird, dass die eingegebene Simulation für Eingabeblöcke verwendet
werden soll.
-
Während
die Simulationsmodulblöcke
Knoten für
Knoten in der Simulationsworkstation 20a erzeugt werden,
werden sie durch Nachrichtenverbindungen gemäß den Angaben in den eigentlichen Steuermodulen
kommunikativ miteinander verbunden. Die Simulationserzeugungsroutine 57 erkennt jedoch
als Teil dieses Erzeugungsprozesses automatisch die Eingänge und
Ausgänge
jedes Steuerblocks, die außerhalb
der bezeichneten Knoten sind, beispielsweise unter Verwendung von
Pfadnamen, die den eigentlichen Eingängen und Ausgängen zugeordnet
sind. Zur Durchführung
dieser Funktion kann die Simulationserzeugungsroutine 57 den
Pfadnamen oder eine andere Bezeichnung der Quelle oder des Ziels
des Eingangs und Ausgangs des erzeugten Simulationsblocks mit den
Knotenpfadnamen der simulierten Knoten vergleichen und feststellen,
ob die Eingabe- oder Ausgabequelle innerhalb oder außerhalb
der bezeichneten Knoten liegt (d. h. derjenigen Knoten, für die die
Simulation erzeugt wird). Wenn die Quelle oder das Ziel des Kommunikationssignals
außerhalb
der bezeichneten Knoten liegt, erzeugt die Simulationserzeugungsroutine 57 automatisch
eine Verbindung zu einem Referenzparametermodul (das von der Routine 57 erzeugt
wird) innerhalb des Simulationssystems, so dass dieses als Eingang
oder Ausgang wirksam ist und dieses Modul in dem Simulationssystem
wie etwa in der Simulationsworkstation 20a speichert. Es
versteht sich, dass dieses Referenzparametermodul dazu dient, eine
Verbindung oder ein Ziel für
bestimmte Eingänge
und Ausgänge
für den
Simulationsfall zu bilden, die in dem Simulationssystem real nicht
existieren, etwa Verbindungen zu Feldeinrichtungen usw.
-
3 zeigt
eine Bildschirmanzeige 90 mit der Baumstruktur 92,
in der ein einzelner Steuerungsknoten 94 (mit der Bezeichnung
Sol_Man_1) gewählt
worden ist. Der Simulationsbediener hat ein Pop-up-Menü 96 aufgerufen
(indem er beispielsweise die ausgewählte Steuerung 94 mit
der Maus rechts angeklickt hat), um Zugriff auf einen "Umwandlung-Simulieren"-Befehl zu erhalten.
Die rechte Seite des Displays 90 zeigt die Module in der
ausgewählten
Steuerung 94. Die Wahl des "Umwandlung-Simulieren"-Befehls in dem Fenster 96 ruft
die Anwendung 57 auf, die dann eine Simulation für den gewählten Steuerungsknoten 94 erzeugt,
wie oben beschrieben wurde.
-
Insbesondere erzeugt die Routine 57 die
Simulationsmodule oder -blöcke
für jedes
der Steuermodule innerhalb des bezeichneten Knotens 94 zusammen
mit einem Referenzparametermodul zur Speicherung von Ein- und Ausgängen zu
dem Knoten. Ein solcher Simulationsfall ist in 4 gezeigt, die einen Bildschirm 100 zeigt,
auf dem die Module innerhalb des Simulationsfalls für die ausgewählte Steuerung 94 nach
Erzeugung des Simulationsfalls zu sehen sind. Wie auf der rechten
Seite des Bildschirms 100 gezeigt ist, umfasst der Simulationsfall für den Steuerungsknoten 94 Simulationsmodule Loop1-Loop6
(die aus den tatsächlichen
Modulen Loop1-Loop6 des Knotens 94, wie er in der Konfigurationsdatenbank 32 gespeichert
ist, erzeugt sind). Als Teil des Umwandlungsvorgangs hat jedoch
die Anwendung 57 ein zusätzliches Modul 102 (mit
der Bezeichnung M_Ctlr 1) erzeugt, das als Containermodul dient,
das Eingangs- und Ausgangsreferenzen für den Steuerknoten 94 enthält. Wie
oben erwähnt wird,
bestimmt die Routine 57 nach der Erzeugung der simulierten
Steuerblöcke
und Module für
einen Knoten das Vorhandensein von etwaigen Eingängen/Ausgängen, die außerhalb
der erzeugten Simulationsmodule vorhanden sind wie etwa Referenzen auf
Blöcke
oder Signale von Feldeinrichtungen oder Modulen innerhalb anderer
Knoten, die in dem Simulationsfall nicht enthalten sind. Wenn solche
Eingangs/Ausgangs-Referenzen detektiert werden, erzeugt die Routine 57 automatisch
ein Referenzmodul wie etwa das Modul 102 für solche
Referenzen, wodurch ein Modul innerhalb des Simulationssystems geschaffen
wird, das dafür
zuständig
ist, Eingänge/Ausgänge des
Simulationsfalls für
Signale bereitzustellen oder zu akzeptieren, die von Hardware wie etwa
Feldeinrichtungen, die nicht Teil der Simulation ist, gesendet oder
empfangen werden.
-
5 zeigt
ein Bildschirmdisplay 105, das einen umgewandelten Funktionsblock 108 (der
einen simulierten Eingang hat) und ein Set von externen Referenzen 110a–110f zeigt,
die jeweils einen HART-Einrichtungseingang oder -ausgang (und damit
eine externe Referenz) bezeichnen, die tatsächlich auf ein externes Referenzmodul
weisen, das für den
Knoten erzeugt wurde, um diese externen Referenzen zu enthalten.
-
Die Referenzbox 110a ist
gewählt
worden, und ihre Eigenschaften sind in dem Pop-up-Fenster 112 dargestellt,
das den Pfadnamen für
diese Referenz als das Modul C01CH01HART_PV in dem Steuerungsknoten
M_Sol_Man_1 (der ein simulierter Knoten ist) bezeichnet. Gleichermaßen zeigt 6 ein Bildschirmdisplay 116,
das das Modul C01CH01HART_PV darstellt, das ein Set von externen
Referenzparametern aufweist, die in der Menübox 118 benannt sind.
Die Eigenschaften eines ausgewählten
dieser externen Referenzparameter (d. h. der HART_PV-Parameter)
sind in einem Pop-up-Fenster 120 gezeigt.
Selbstverständlich
sind ähnliche
Eigenschaften für
jeden der anderen Referenzparameter gespeichert, die dem Referenzparametermodul 102 von 4 zugeordnet oder darin gespeichert
sind.
-
Es versteht sich somit, dass die
Anwendung 57 als Teil der Simulationsumwandlung ein externes Referenzparametermodul
erzeugt, das die Werte und sonstigen Attribute der externen Referenzen
speichert, die jedem Simulationsblock zugeordnet sind. Die hier
beschriebene Anwendung 57 erzeugt ein einzelnes externes
Referenzmodul für
jeden bezeichneten Steuerknoten, aber externe Referenzparametermodule
könnten
mehr oder weniger externe Referenzen enthalten, wenn das gewünscht wird. Beispielsweise
könnte
ein externes Referenzparametermodul für jede externe Referenz erzeugt
werden usw. Diese Operation verhindert außerdem, dass der Simulationsbediener
externe Referenzen für
das Simulationssystem manuell bezeichnen oder erzeugen muss, was
bisher zeitaufwändig
und fehleranfällig
ist. Ferner erleichtert die Erzeugung dieser Module die Operation
einer Simulation, da Eingänge zu
und Ausgänge
von dem Simulationsfall über
diese externen Referenzmodule gehandhabt werden können, auf
die wegen ihrer objektorientierten Beschaffenheit leicht Zugriff
genommen werden kann und die leicht geändert werden können.
-
Für
die Simulationserzeugungsroutine 57 ist es zwar eine relativ
einfache Sache, Steuerblöcke und
andere einem Steuerknoten zugeordnete Module zu erkennen und zu
kopieren, es gibt jedoch Fälle, in
denen einige der Steuer- oder sonstigen Funktionsblöcke oder
Module eines Knotens in der Steuerung für diesen Knoten gespeichert
sind und außerhalb
desselben ablaufen. Beispielsweise können Fieldbus-Feldeinrich tungen
Steuerblöcke
und andere Module, die einem Knoten des Prozesssteuerungssystems
zugeordnet sind, speichern und ausführen. In diesen Fällen kann
die Simulationserzeugungsroutine 57 zuerst das Vorhandensein
von Steuerblöcken
oder anderen Modulen innerhalb des Knotens, jedoch außerhalb
der Steuerung, dadurch erkennen, dass sie nach solchen Blöcken in
dem in der Konfigurationsdatenbank 32 gespeicherten Konfigurationsschema
sucht. Die hier beschriebene Anwendung 57 sucht zwar insbesondere
nach Fieldbus-Funktionsblöcken,
es ist aber möglich,
dass andere Arten von Funktionsblöcken existieren, die imstande
sind, außerhalb
der Steuerung eines Knotens operativ zu sein, und die Anwendung 57 könnte auch nach
diesen Arten von Blöcken
suchen. Selbstverständlich
ist die Art und Weise der Durchführung
dieser Suchvorgänge
von der innerhalb der Steuerung des Knotens verwendeten Art der
Programmierung und Dokumentation abhängig.
-
Wenn die Simulationserzeugungsroutine 57 das
Vorhandensein von Funktionsblöcken
oder Modulen, die dem Knoten zugeordnet, jedoch außerhalb der
Steuerung für
diesen Knoten sind, erkennt, kann sie diesen Block kopieren oder
einen neuen Block erzeugen, der diesen Block in der Simulationsworkstation 20a simuliert.
Um den Block zu kopieren, kann die Simulationserzeugungsroutine 57 auf
den Block von der Konfigurationsdatenbank oder von der Feldeinrichtung,
in der der Block tatsächlich
gespeichert ist, zugreifen. Wenn der Funktionsblock innerhalb der Feldeinrichtung
oder sonstigen Einrichtung nicht in demselben Protokoll wie die
in der Simulation verwendeten Steuerungsblöcke ist, was im Allgemeinen der
Fall sein wird, kann die Anwendung 57 einen Simulationsblock
in dem Steuerungsprotokoll erzeugen, der die Funktionalität des Funktionsblocks
in der Feldeinrichtung bestmöglich
simuliert. Diese Funktion kann mit oder ohne Hilfe durch einen Simulationsbediener
ausgeführt
werden, der aufgefordert werden kann, den Steuerungsprotokollblock
zu bezeichnen, der für
den Funktionsblock in der Feldeinrichtung zu verwenden ist. Alternativ
kann eine Tabelle oder Liste, die die Umwandlung zwischen Blöcken der
verschiedenen Protokolle einschließlich der Parameterumwandlungen
bezeichnet, gespeichert und genutzt werden, um einen Funktionsblock
innerhalb des Steuerungsprotokolls zu erzeugen, der die Operation
des eigentlichen Funktionsblocks in der Feldeinrichtung simuliert.
-
Nach der Erzeugung eines Funktionsblocks innerhalb
des Steuerungsprotokolls für
den externen Funktionsblock, z. B. den Fieldbus-Funktionsblock, kann
die Simulationserzeugungsroutine 57 dann diesen Funktionsblock
auf die gleiche Weise in einen Simulationsblock umwandeln, wie das
bei den Steuerungsprotokollblöcken
oder -modulen erfolgt.
-
Ein anderes Problem, das bei heute
angewandten Simulationen auftritt, ist das Problem der Behandlung
von Eingabe/Ausgabe-Fehleranzeigen von Quellen wie etwa Eingabe/Ausgabe-Funktionsblöcken, die
nicht mehr mit einer tatsächlichen
Einrichtung oder Quelle innerhalb des Steuerungssystems wie etwa
einer Feldeinrichtung gekoppelt sind oder die keinen Simulationsmodus
haben und daher scheinbar Daten liefern, die schlecht oder alt sind oder
in Diagnosefehlern resultieren. In manchen Fällen sind die diese Signale
erzeugenden Blöcke
oder Quellen nicht für
eine Simulation eingerichtet, und daher führen die Signale von diesen
Blöcken
zur Erzeugung von schlechten E/A-Meldungen. Ferner führt die
Erzeugung des Simulationsfalls mit Referenzparametern für die Eingänge und
Ausgänge
zu einer Situation, in der von den Simulationssteuermodulen oder
-blöcken
E/A-Ausfälle
detektiert werden, obwohl tatsächlich
keine solchen E/A-Ausfälle
existieren (weil keine echte E/A stattfindet). In Abhängigkeit
von der Datenmenge, die bei der Simulation zu und von diesen Blöcken gesendet
wird, können
während
der Operation des Simulationsfalls zahlreiche Fehlermeldungen detektiert
und an den Simulationsbediener als Eingang/Ausgang oder Diagnosefehleranzeigen übermittelt
werden. Die Behandlung dieser falschen Fehlermeldungen kann während der
Simulation störend
und lästig
sein.
-
Zur Milderung dieses Problems führt die
Simulationserzeugungsroutine 57 Änderungen an der Art und Weise
aus, wie Eingangs/Ausgangssignale in dem Simulationsfall im Gegensatz
zu dem eigentlichen Prozesssteuerungssystem gehandhabt werden. Insbesondere
deaktiviert die Simulationserzeugungsroutine 57 die Anzeige
oder Detektierung von schlechten E/A beispielsweise in Analogausgabe-(AO)-
und Digital- oder Diskretausgabe(DO)-Blöcken und in externen Parametern,
die direkt auf E/A-Kanäle
Bezug nehmen wie etwa denjenigen in den oben erörterten externen Referenzparametermodulen.
Zur Durchführung
dieser Operation kann die Simulationserzeugungsroutine 57 die
Statusanzeige dieser E/A-Signale gewollt deaktivieren, indem beispielsweise die
Bits für
die E/A-Fehlerdetektierung nicht gesetzt werden, oder kann simulieren,
ob das Ausgabemodul so zugeordnet ist, dass es in der Simulationsworkstation 20a läuft. Wenn
diese Status- oder Fehleranzeigen nicht aktiviert sind, erscheint
die Simulationsbedienerschnittstelle so, als ob die E/A normal wäre, was
es ermöglicht,
die Simulationsbedienerschulung ohne Ablenkung durch falsche schlechte
E/A-Anzeigen durchzuführen.
Selbstverständlich
kann die Simulationserzeugungsroutine 57 während des
Umwandlungsprozesses wirksam sein, um die E/A-Fehlerdetektierung
von allen anderen Blöcken
oder Quellen zu deaktivieren, von denen erwartet wird, dass sie
schlechte oder alte E/A-Daten haben, weil diese Datenquellen nicht
mit tatsächlich aktiven
Einrichtungen wie etwa Feldeinrichtungen gekoppelt sind.
-
Nachdem ein Simulationsfall für einen
oder mehrere der Knoten erzeugt worden ist, kann dieser Simulationsfall
in der Simulationsworkstation 20a für Schulungs- oder Testzwecke
implementiert werden. In manchen Fällen kann der Simulationsfall über die für die Eingänge/Ausgänge jedes
der Knoten erzeugten Referenzen mit einer Standard-Simulationsschnittstelle
wie etwa einer HYSYS-Schnittstelle, die eine andere bekannte Technik
wie etwa OPC verwendet, gekoppelt werden. Falls gewünscht, kann die
Simulationserzeugungsroutine 57 natürlich ihre eigene Schnittstelle
wie etwa eine API (Anwendungsprogrammierschnittstelle) bereitstellen,
die es dem Simulationsbediener ermöglicht, Eingänge und
Ausgänge
zu dem Simulationsfall auf jede gewünschte Weise zu bezeichnen
oder zu ändern.
-
Es versteht sich, dass die Befehle
für die
Initialisierung und die Steuerung der Geschwindigkeit des Simulationsfalls
sowie für
die Betrachtung der Information innerhalb des Simulationsfalls durch
eine einzige Schnittstelle unter Verwendung einzelner Befehle durchgeführt werden
können,
auch wenn mehr als ein Knoten betroffen ist. Diese Ansicht ermöglicht es
einem Simulationsbediener, eine einzelne Anforderung abzugeben,
die sämtliche
von der Simulation betroffenen Knoten anspricht. Die Ansicht kann
beeinflusst oder geändert
werden durch die Wahl verschiedener Knoten über den Knotenbezeichnungsabschnitt
des Bildschirmdisplays.
-
Bei großen Schulungssystemen besteht häufig die
Forderung nach der Bereitstellung der Fähigkeit zum Neustart der Prozesssteuerungssimulation
zu einem vorhergehen den Zeitpunkt in der Schulungssitzung. Es kann
auch gefordert sein, die Bedienerhandlungen erneut ablaufen zu lassen,
die bei der Simulation vorgenommen wurden, und zwar ab einem früheren Zeitpunkt.
Diese Funktionen können von
der Anwendung 58 ausgeführt
werden, die beispielsweise über
ein Drop-down-Menü auf
dem Display 70 von 2 initiiert
werden kann.
-
Bisher war das Einfangen eines Schnappschusses
einer laufenden Simulation insofern etwas schwierig, als im Allgemeinen
die Bereitstellung einer Anforderung zum Kopieren jedes der gewünschten Parameter
aus den verschiedenen Funktionsblöcken oder -modulen innerhalb
des Simulationsfalls notwendig war. Da diese Anforderungen jedoch
einzeln an verschiedene Module gesendet werden müssen und ihre Ausführung einen
endlichen Zeitraum erfordert, ist es praktisch unmöglich, den
Zustand sämtlicher
Module des Simulationssystems gleichzeitig zu kopieren, ohne die
Simulation für
einen längeren Zeitraum
anzuhalten, um dieses Kopieren zu ermöglichen. Bei großen Simulationssystemen
mit vielen darin enthaltenen Steuermodulen kann dieser Kopiervorgang
in einer erheblichen Verzögerung
resultieren, was zu einer merklichen Störung der Simulation führt.
-
Es wurde entdeckt, dass es zur Beschleunigung
des Vorgangs des Festhaltens eines Schnappschusses möglich ist,
die redundanten Fähigkeiten der
Module innerhalb des Simulationssystems zu nutzen. Insbesondere
weisen viele Steuermodule wie etwa die in den Steuerungen 12a, 14a und 16a von 1 ausgeführten Steuermodule und -blöcke redundante
Fähigkeiten
auf, was bekannt ist. Speziell werden diese Steuermodule erzeugt,
um periodisch oder auf der Grundlage einer Änderung nach der anderen Werte
der Parameter usw. des Moduls an redundante Steuermodule zu senden,
die in den redundanten Steuerungen 12R, 14R und 16R vorhanden
sind. Die redundanten Steuermodule aktualisieren sich selbst auf
solche Weise, dass die redundanten Steuerungen 12R, 14R und 16R jederzeit
verfügbar
sind, die primäre
Operation des Prozesssteuerungssystems zu übernehmen, wenn eine der entsprechenden
Steuerungen 12a, 14a oder 16a ausfällt.
-
Die Simulationserzeugungsroutine 57 kann während des
Vorgangs der Erzeugung von Simulationsmodulen für den Simulationsfall jedes
der redundanten Signale, die von dem Simulationsmodul erzeugt werden,
mit einem redundanten Modul oder mit einer bestimmten Speicheradresse
innerhalb des Simulationscomputers 20a koppeln und veranlassen, dass
diese Signale in einen bestimmten Speicherplatz geschrieben und
gesichert werden. Anstatt also ein redundantes Steuermodul für jedes
der Module innerhalb des Simulationsfalls zu erzeugen, braucht die
Simulationserzeugungsroutine 57 nur die von den Simulationsmodulen
erzeugten redundanten Signale mit bestimmten und dedizierten Speicherplätzen zu koppeln,
die Speicherplätze
innerhalb eines separaten Moduls sein können oder auch nicht. Während des
Betriebs des Simulationssystems werden dann die im normalen Verlauf
der Simulationsmodule erzeugten redundanten Signale festgehalten,
und die Daten in diesen Signalen werden auf irgendeine logische
Weise in einem leicht zugänglichen
Speicher für den
späteren
Abruf gespeichert. Danach kann die Anwendung 58 zu jedem
Zeitpunkt während
des Betriebs des Simulationsfalls einen Schnappschuss der laufenden
Simulation dadurch erzeugen, dass die auf diese logische Weise gespeicherten
redundanten Daten in einen Puffer oder eine Datei kopiert werden, auf
die der Bediener Zugriff hat. Da die Speicherplätze für die redundanten Daten dediziert
sind und in einem leicht zugänglichen
Speicher liegen, kann der Kopierprozess, der ein Blockkopiervorgang
sein kann, schnell durchgeführt
werden, was im Vergleich mit dem Kopieren von Daten, die in den
verschiedenen Modulen des eigentlichen Simulationsfalls gespeichert
sind, die Zeit verkürzt,
die benötigt
wird, um einen Schnappschuss des Simulationssystems zu erhalten.
Wenn also ein Schnappschuss für
einen speziellen Zeitpunkt erzeugt wird, braucht die Routine 58 nur
die Operation des Simulationssystems zu dem speziellen Zeitpunkt
anzuhalten und die Inhalte der dedizierten Speicherplätze in eine
Schnappschussdatei zu kopieren, was im Allgemeinen sehr schnell
durchzuführen
ist, und dann die Operation des Simulationssystems fortzusetzen.
-
7 zeigt
ein Bildschirmdisplay 130, das von dem Simulationsbediener
verwendet werden kann, um das Einfangen eines Schnappschusses des
Simulationssystems zu einem bestimmten Zeitpunkt auszulösen. Wie
gezeigt, kann der Simulationsbediener einen Schnappschuss des Systems
innerhalb eines ausgewählten
Knotens gemäß der Bezeichnung
durch den Knotenbezeichnungsabschnitt 72 sichern und diesen
Schnappschuss für
spätere Referenz
mit einem Namen versehen. Selbstverständlich kann dieser Schnappschuss
Knoten für Knoten
für jeden
Knoten erstellt werden, der die richtigen redundanten Fähigkeiten
hat. Falls gewünscht, kann
die Schnappschusssammelanwendung 58 jeden der Knoten des
Prozesssteuerungssystems anweisen, einen Schnappschuss zum gleichen
Zeitpunkt einzufangen, so dass ein Vielfachknotenschnappschuss erhalten
wird.
-
Gleichermaßen kann der Simulationsbediener,
wie 8 zeigt, das Simulationssystem
auf eine vorhergehende Einstellung zurückstellen, wie sie in einem
gesicherten Schnappschuss eingefangen wurde, indem eine Wiederherstellungsanwendung
(die Teil der Routine 58 ist) initiiert und einer der vorhergehenden
Schnappschüsse
des Systems, der wiederhergestellt werden soll, ausgewählt wird.
Selbstverständlich
ist die von dem Simulationsbediener gewählte Wiederherstellungsdatei
im Allgemeinen diejenige Datei, die vorher als Schnappschuss gesichert wurde,
und die Wiederherstellungsanwendung verwendet diese Daten in der
Wiederherstellungsdatei und schreibt sie in die Simulationsmodule
auf irgendeine bekannte oder Standardweise ein. Während dieser
Operation hält
die Routine 58 den Betrieb des Simulationssystems an, greift
auf die vom Simulationsbediener bezeichnete Schnappschussdatei zu,
kopiert den Inhalt der Schnappschussdatei in die kommunikativ miteinander
verbundenen Simulationsmodule und setzt dann den Betrieb des Simulationssystems
fort.
-
Während
der Verarbeitung der Anforderung zum Sichern oder Wiederherstellen
der Simulation ist die Ausführung
der Simulationsmodule an der zugeordneten Simulation unterbrochen.
Aus diesem Grund sollte das Sichern und Wiederherstellen mit der
kleinstmöglichen
Verzögerung
erfolgen. Falls gewünscht,
können
die dem Sichern und Wiederherstellen zugehörigen Befehle einem Knoten
von einer Anwendungs-/Schulungsstation, die OPC verwendet, zugeleitet
werden. In diesem Fall ist die zugehörige Anwendung dafür zuständig, die
Sicherungs- und Wiederherstellungsbefehle an jeden interessierenden
Knoten abzugeben. Wenn ein Sicherungsbefehl initiiert wird, stellt
die Simulationssteuerungsanwendung 58 bevorzugt einen Dialog
auf dem Display bereit, der es dem Simulationsbediener erlaubt,
Knoten zu bezeichnen, die gesichert werden. Ferner kann der Simulationsbediener
eine Beschreibung bereitstellen, die mit der Datendatei (den Datendateien) gesichert
wird. Wenn ein Wiederherstellungsbefehl initiiert wird, präsentiert
die Simulationssteuerungsanwendung 58 gleichermaßen eine
Liste von Zeitpunkten, für
die Schnappschussdateien erzeugt wurden, sowie eine zugehörige Beschreibung.
Wenn ein bestimmter Zeitpunkt ausgewählt ist, kann der Simulationsbediener
wählen,
welche Knoten unter Verwendung der gesicherten Daten wiederherzustellen sind.
-
Falls gewünscht, unterstützt die
Simulationssteuerungsanwendung 58 eine Option, die es ermöglicht,
dass der Sicherungsbefehl automatisch und periodisch an alle Knoten
abgegeben wird. Zur Initiierung von automatischen Sicherungen muss
der Simulationsbediener dieses Feature aktivieren und die Häufigkeit
der Sicherungen sowie die mit der Datei zu sichernde Beschreibung
bezeichnen. Der Dialog für dieses
Feature kann gemäß der Autosave
Tools Option von MicroSoftTM Word ausgebildet
sein. Als Ergebnis der Operation dieses Features gibt die Simulationssteuerungsanwendung 58 periodisch
einen Einfang- und Sicherungsbefehl an die Knoten des Simulationsfalls
ab. Um die Störung
einer Schulungssitzung zu vermeiden, sollte die Abarbeitung des
Sicherungsbefehls die Ausführung
der Simulationsmodule stoppen, so dass der Befehl ohne Verzögerung ausgeführt werden
kann.
-
Nach der Implementierung kann jede
der hier beschriebenen Softwares in einem computerlesbaren Speicher
wie etwa auf einer magnetischen Platte bzw. Diskette, einer Laserplatte
oder einem anderen Speichermedium, in einem RAM oder ROM eines Computers
oder Prozessors usw. gespeichert werden. Ebenso kann diese Software
einem Anwender, einem Prozesssteuerungssystem oder einer Bedienerworkstation
unter Verwendung jedes bekannten oder gewünschten Lieferverfahrens geliefert
werden, beispielsweise auf einer computerlesbaren Platte bzw. Diskette
oder einem anderen transportierbaren Computerspeichermechanismus
oder auf einem Nachrichtenübertragungskanal
wie etwa einer Telefonleitung, dem Internet, dem World Wide Web,
jedem anderen lokalen Netz oder weiträumigen Netz usw. (wobei diese
Lieferung als gleich oder austauschbar mit der Lieferung der Software
auf einem transportierbaren Speichermedium angesehen wird). Ferner
kann diese Software ohne Modulation direkt geliefert werden, oder
sie kann unter Nutzung einer geeigneten Modulationsträgerwelle
moduliert werden, bevor sie auf einem Nachrichtenübertragungskanal übertragen
wird.
-
Die vorliegende Erfindung wurde unter
Bezugnahme auf spezielle Ausführungsformen
beschrieben, die nur beispielhaft sein sollen und die Erfindung
nicht einschränken;
für den
Fachmann ist ersichtlich, dass an den beschriebenen Ausführungsformen Änderungen,
Hinzufügungen
oder Weglassungen vorgenommen werden können, ohne vom Umfang der Erfindung
abzuweichen.