DE69414609T2 - Informationsanzeigesystem zur aktiven redundanten rechnergestützten prozesssteuerung - Google Patents

Informationsanzeigesystem zur aktiven redundanten rechnergestützten prozesssteuerung

Info

Publication number
DE69414609T2
DE69414609T2 DE69414609T DE69414609T DE69414609T2 DE 69414609 T2 DE69414609 T2 DE 69414609T2 DE 69414609 T DE69414609 T DE 69414609T DE 69414609 T DE69414609 T DE 69414609T DE 69414609 T2 DE69414609 T2 DE 69414609T2
Authority
DE
Germany
Prior art keywords
process control
computer
computers
clock cycle
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69414609T
Other languages
English (en)
Other versions
DE69414609D1 (de
Inventor
Michael J. Midland Mi 48642 Durisin
Joseph Detroit Mi 48221 Ellison
Bradley K. Midland Mi 48642 Felix
Jeffery T. Saginaw Mi 48603 Polishak
Dana W. Midland Mi 48642 Pressnall
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dow Chemical Co
Original Assignee
Dow Chemical Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dow Chemical Co filed Critical Dow Chemical Co
Publication of DE69414609D1 publication Critical patent/DE69414609D1/de
Application granted granted Critical
Publication of DE69414609T2 publication Critical patent/DE69414609T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0428Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • G05B9/03Safety arrangements electric with multiple-channel loop, i.e. redundant control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/328Computer systems status display
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24102Display status of controller
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24186Redundant processors are synchronised
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24187Redundant processors run identical programs
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24195Compare data in channels at timed intervals, for equality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1487Generic software techniques for error detection or fault masking using N-version programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Multi Processors (AREA)
  • Control By Computers (AREA)
  • Hardware Redundancy (AREA)

Description

  • Die vorliegende Erfindung bezieht sich allgemein auf computergestützte Prozeßsteuerungssysteme. Die Erfindung bezieht sich genauer auf ein Informationsanzeige- und Diagnosesystem zum Liefern von Informationen über den Zustand eines durch redundante Prozeßsteuerungscomputer gesteuerten Prozesses an einen Operator (Bedienungsperson).
  • Beim Steuern komplexer Prozesse mittels Computer, insbesondere bei missionskritischen Anwendungen, ist es sehr wünschenswert, eine redundante Computersteuerung zu verwenden. Dies trifft insbesondere z. B. in automatisierten chemischen Verfahrensanlagen zu, bei denen zwei oder mehr Computer redundant verbunden sein können, um sicherzustellen, daß die Prozeßschritte geeignet ausgeführt werden, und um die Notwendigkeit für eine Systemabschaltung im Fall einer Fehlfunktion einer Komponente zu minimieren.
  • Im Fall einer chemischen Verfahrensanlage gibt es typischerweise eine sehr große Anzahl von Sensoren, Mischern, Ventilen und anderen analogen und digitalen Komponenten, die benötigt werden, um den Prozeß auszuführen. Es kann sehr teuer sein, den chemischen Prozeß abzuschalten und erneut anzufahren, weshalb viele Prozeßsteuerungssysteme so ausgelegt sind, daß sie 24 Stunden am Tag und 7 Tage in der Woche laufen. In solchen Systemen ist es häufig erwünscht, redundante Prozeßsteuerungscomputer zu verwenden, um das System fehlertoleranter zu machen. Der Einreicher dieser Anmeldung, die Dow Chemical Company, hat festgestellt, daß Redundanz möglicherweise am besten implementiert wird unter Verwendung zweier oder mehrerer Prozeßsteuerungscomputer, die jeweils einen separaten Befehlscode abarbeiten, wobei die Computer durch lose synchronisierte separate Takte zeitlich gesteuert werden. Der Einreicher dieser Anmeldung hat ferner festgestellt, daß es günstig sein kann, diese Prozeßsteuerungscomputer in einer aktiv redundanten Weise zu verbinden, wobei jeder Computer seine eigene Sequenz von Programmbefehlen ausführt und jeder Computer ein Ausgangssignal zum gleichzeitigen Ansteuern einer gemeinsamen Vorrichtung liefert.
  • In komplexen Prozeßsteuerungsanwendungen, wie z. B. petrochemischen Prozeßsteuerungsanwendungen, bei denen Tausende von Variablen überwacht und im wesentlichen gleichzeitig und in Echtzeit (ohne wesentliche Verzögerung) gesteuert werden müssen, ist die Bereitstellung der nützlichen Informationen für den Operator oder den Techniker keineswegs eine einfache Aufgabe. Die Schwierigkeit bei der Bereitstellung von Informationen ist insbesondere dann akut, wenn redundante Systeme verwendet werden, da es häufig schwierig sein kann, die Quelle eines Fehlers oder einer Fehlfunktion zu identifizieren, insbesondere wenn der Fehler oder die Fehlfunktion intermittierend auftritt. Es wäre daher wünschenswert, ein Prozeßsteuerungssystem und ein Anzeigesystem zu besitzen, das ein Steuerungstechniker oder ein Steuerungssystemoperator verwenden kann, um einen defekten oder nicht funktionierenden Abschnitt oder ein Softwareelement in dem Fall zu lokalisieren, in dem die redundanten Prozeßsteuerungscomputer nicht übereinstimmen.
  • Neben der Problembehandlung von Komponentenausfällen ist eine weitere Schwierigkeit, die in redundanten Problemen auftritt, das Problem, wie die Systemsoftware oder die Prozeßsteuerungsprogramme verändert oder aktualisiert werden können, ohne das System abzuschalten. In einem nicht redundanten System ist es typischerweise erforderlich, das System abzuschalten, um eine neue Softwareaktualisierung zu installieren. In einer großen chemischen Verfahrensanlage kann dies sehr teuer sein, da Komponenten abkühlen können, der Prozeß falsch zu reagieren beginnen kann, eine Reinigung von Komponenten erforderlich sein kann und dergleichen.
  • Wenn ein redundantes Steuerungscomputersystem verwendet wird, scheint die Redundanz eine einzigartige Gelegenheit für eine Softwareaktualisierung ohne Abschalten des Systems zur Verfügung zu stellen. In bestimmten Fällen kann dies durchgeführt werden durch Abschalten nur eines der redundanten Computersysteme, wobei die restlichen Systeme in Betrieb bleiben und die vorhandene Software abarbeiten. Die neue Softwarerevision wird anschließend geladen und auf dem vorher abgeschalteten Computer gestartet, wobei mit großer Vorsicht die neue Version in aufgeschaltet wird, bei dem Versuch, die Operation des Prozesses von der alten Softwareversion auf die neue Softwareversion zu übertragen.
  • Obwohl dies in der Theorie funktioniert, ist es in der Praxis häufig überaus schwierig, von der alten Version auf die neue Version umzuschalten, da sichergestellt werden muß, daß beide Versionen sich in verriegelter Schrittsynchronisierung befinden. In einer komplexen chemischen Verfahrensanwendung kann dies bedeuten, daß mehrere tausend Steuervorrichtungen und Ventile sich unter der alten Softwareversion in exakt dem gleichen Zustand befinden, in dem sie sich zum Zeitpunkt des Umschaltens unter der neuen Softwareversion befinden. In vielen komplexen chemischen Verfahrensanwendungen ist es praktisch für einen Menschen unmöglich, diese vielen Daten unter Verwendung der derzeit vorhandenen Technik zu begreifen.
  • Die DE-A-32 25 455 offenbart ein computergestütztes Prozeßsteuerungssystem zum Liefern von Informationen über den Zustand des gesteuerten Prozesses an einen Operator, das versehen ist mit ersten und zweiten unabhängig arbeitenden redundanten Prozeßsteuerungscomputern, die jeweils eine Schnittstelleneinrichtung für die Verbindung mit einem gemeinsamen Punkt innerhalb des gesteuerten Prozesses und zum überwachen eines diesen gemeinsamen Punkt zugeordneten gemeinsamen Parameters besitzt. Die ersten und zweiten Prozeßsteuerungsprogramme laufen jeweils auf den ersten und zweiten Prozeßsteuerungscomputern, wobei die Programme jeweils eine Einrichtung besitzen zum Steuern des Verhaltens wenigstens eines Abschnitts des gesteuerten Prozesses.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung schafft ein Prozeßsteuerungs- Softwaresystem und eine Steuerungsumgebung für die Verwendung durch einen Steuerungstechniker oder einen Steuerungssystemoperator bei der Programmierung und der Überwachung von computergesteuerten Prozessen. Die vorliegende Erfindung ist in den unabhängigen Ansprüchen 1 und 24 definiert. Die abhängigen Ansprüche definieren bestimmte Ausführungsformen der Erfindung. In einem Aspekt schafft die Erfindung ein Prozeßsteuerungsanzeigesystem, das schnell zu begreifende Informationen über den Zustand eines redundanten Prozeßsteuerungssystems liefert. Das Anzeigesystem liefert gleichzeitig zeitlich ausgerichtete, Echtzeit-Datenwerte, die jeweils mehreren redundanten Prozeßsteuerungscomputern zugeordnet sind. Auf diese Weise wird die Schwierigkeit beim Lokalisieren intermit tierender Fehler und Komponentenausfälle für den Techniker auf Anhieb ersichtlich.
  • Das gleiche Anzeigesystem wird ferner zu einem unverzichtbaren Werkzeug bei der Durchführung von Softwareänderungen und Aktualisierungen, durch gleichzeitiges Anzeigen zeitlich ausgerichteter Echtzeit-Werte der aktuellen Daten, die in den jeweiligen redundanten Computern vorhanden sind (wobei die Ausgänge eines der Systeme unterdrückt werden). Die Echtzeit-Daten werden neben der jeweiligen Variablen einer gegebenen Prozeßsteuerungsprogramm-Quellcode-Anweisung angezeigt. Der Steuerungsingenieur kann schnell und leicht die anzuzeigende Quellcode- Anweisung auswählen. Auf diese Weise kann der Steuerungsingenieur auf einer Programmanweisungsbasis oder auf Zeilenbasis ermitteln, ob jede Ausgangsvariable (z. B. zum Steuern eines Ventils) für alle redundanten Computer genau den gleichen Wert besitzt, bevor eine neue Version aufgeschaltet wird.
  • Gemäß einem Aspekt der Erfindung wird daher ein computergestütztes Prozeßsteuerungsanzeigesystem geschaffen zum Anzeigen von Informationen über den Zustand eines zu steuernden Prozesses für einen Operator. Das System enthält erste und zweite unabhängig arbeitende redundante Prozeßsteuerungscomputer, die jeweils einen Schnittstellenmechanismus besitzen zum Verbinden mit einem gemeinsamen Punkt innerhalb des gesteuerten Prozesses und zum Überwachen eines den gemeinsamen Punkt zugeordneten gemeinsamen Parameters. Das System enthält ferner erste und zweite Prozeßsteuerungsprogramme, die auf den ersten bzw. zweiten Computern laufen. Die Prozeßsteuerungsprogramme besitzen jeweils eine Einrichtung zum Steuern des Verhaltens wenigstens eines Abschnitts des gesteuerten Prozesses. Das Steuerungsprogramm ist dadurch gekennzeichnet, daß es als eine Serie von Quellenanweisungen dargestellt werden kann, wobei die Quellenanweisungen wenigstens ein Token enthalten, um den gemeinsamen Parameter darzustellen. Das System enthält ferner einen Anzeigecomputer, der mit den ersten und zweiten Prozeßsteuerungscomputern verbunden ist, um wenigstens einen Abschnitt der Serie von Quellcode-Anweisungen anzuzeigen, die das Steuerungsprogramm umfaßt. Das System umfaßt ferner eine Datenannahme- und Anzeigevorrichtung zum Erhalten eines zeitlich ausgerichteten gemeinsamen Parameterwertes sowohl vom ersten als auch vom zweiten Prozeßsteuerungscomputer und zum Anzeigen dieser Werte neben dem gemeinsamen Parameter-Token in der Quellcode-Anweisung. Auf diese Weise wird dem Operator eine Einrichtung zur Verfügung gestellt zum gleichzeitigen visuellen Vergleichen des überwachten Parameters von den ersten und zweiten Prozeßsteuerungscomputern.
  • Gemäß einem weiteren Aspekt der Erfindung verwendet das Prozeßsteuerungsanzeigesystem wenigstens eine textorientiert dargestellte Programmanweisung, um wenigstens einen Abschnitt der Prozeßsteuerungsstrategie darzustellen, die zum Steuern des Prozesses verwendet wird. Die Programmanweisung umfaßt mehrere Tokens oder lexikalische Einheiten, einschließlich eines L-Wert-Tokens und wenigstens eines R-Wert-Tokens, die durch ein Äquivalenz-Token getrennt sind. Das System erhält automatisch Daten vom gesteuerten Prozeß und verwendet diese Daten, um einen aktuellen booleschen Zustand (WAHR oder FALSCH) irgendwelchen booleschen R-Wert-Tokens zuzuweisen und einen aktuellen Analogwert irgendwelchen Analogwert-R-Wert- Tokens zuzuweisen, die das entsprechende L-Wert-Token in der Anweisung beeinflussen. Das System liefert eine textorientierte Darstellung aller möglichen Zustände der booleschen Abschnitte der R-Werte, die das L-Wert-Token beeinflussen. Auf diese Weise werden Informationen über den Zustand der Prozeßsteuerungsstrategie an einen Opera tor geliefert. Alternativ kann das System die textorientiert dargestellte Programmanweisung unter Verwendung eines ersten visuell unterscheidbaren Anzeigeattributs darstellen, um Tokens anzuzeigen, die derzeit WAHR sind, und ein zweites visuell unterscheidbares Anzeigeattribut verwenden, um Tokens anzuzeigen, die derzeit FALSCH sind. Auf diese Weise werden ebenfalls Informationen über den Zustand der Prozeßsteuerungsstrategie in einer leicht verständlichen Form an einen Operator geliefert.
  • In einem weiteren Aspekt schafft die Erfindung ein Prozeßsteuerungsanzeigesystem, das ein Hauptanzeigefenster und ein Beobachtungsfenster einrichtet, das dem Hauptanzeigefenster zugeordnet ist. Das Beobachtungsfenster kann vorzugsweise textorientiert dargestellte Informationen anzeigen. Es werden mehrere textorientiert dargestellte Programmanweisungen verwendet, um wenigstens einen Abschnitt der Prozeßsteuerungsstrategie darzustellen, die zum Steuern des Prozesses verwendet wird. Eine erste Teilmenge dieser mehreren Programmanweisungen wird ausgewählt und im Beobachtungsfenster angezeigt. Anschließend wird ohne Veränderung der ersten ausgewählten Teilmenge eine zweite Teilmenge der mehreren Programmanweisungen ausgewählt und im Hauptfenster angezeigt. Die Anzeige der ersten Teilmenge im Beobachtungsfenster und der zweiten Teilmenge im Hauptfenster wird unabhängig durchgeführt, so daß die Auswahl der ersten Teilmenge durch die Auswahl oder die Rekonfiguration der Auswahl der zweiten Teilmenge nicht verändert wird, wodurch weitere nützliche Informationen für den Operator geliefert werden.
  • Weitere Aspekte der Erfindung umfassen ein Live-Daten- Auffrischungssystem, bei dem die Live-Daten-Auffrischung automatisch für Fenster gesperrt wird, die auf ein Graphiksymbol reduziert worden sind oder die von anderen Fenstern abgedeckt worden sind. Die ankommenden Daten werden vorzugsweise unter Verwendung eines Puffersystems gepuffert, das automatisch nach der erneuten Auswahl einer textorientiert dargestellten Programmanweisung oder nach dem Rollen des Hauptanzeigefensters den Puffer wiederherstellt. Außerdem unterstützt das vorliegende System sowohl analoge als auch digitale Anzeigeformate.
  • Für ein vollständigeres Verständnis der Erfindung, ihrer Aufgaben und Vorteile kann auf die folgende Beschreibung und die beigefügten Zeichnungen Bezug genommen werden.
  • Kurzbeschreibung der Zeichnungen
  • Fig. 1 zeigt ein beispielhaftes Prozeßsteuerungscomputersystem, das mehrere Prozeßsteuerungscomputer enthält, die in redundanten Paaren konfiguriert sind, und das ferner ein Computernetz enthält, an das die Prozeßsteuerungscomputer angeschlossen sind;
  • Fig. 2 ist ein Blockschaltbild der derzeit bevorzugten Ausführungsform zum Verbinden und Arbitrieren zwischen zwei Prozeßsteuerungscomputern;
  • Fig. 3 ist ein Blockschaltbild, das die Harvard-Architektur eines Prozeßsteuerungscomputers gemäß der vorliegenden Erfindung zeigt, wobei der Befehlsspeicher und der Datenspeicher dargestellt werden, die im voraus so konfiguriert sind, daß sie alle vordefinierten Datentypen aufnehmen;
  • Fig. 4 ist ein Eingang/Ausgang-Variablen- und Zeitablaufdiagramm, das den derzeit bevorzugten 1-Hertz-Zyklus zeigt;
  • Fig. 5A-5E (gemeinsam Fig. 5) sind Serien von Zeitzyklusdiagrammen, die die Zeitzyklusbeziehung zwischen zwei redundanten Prozeßsteuerungscomputern gemäß der bevorzugten Ausführungsform zeigen;
  • Fig. 6 ist ein Anzeigefenster einer bevorzugten graphischen Benutzerschnittstelle, das die bevorzugte Art zeigt, mit der zeitlich ausgerichtete Echtzeit-Werte neben dem Quellcode-Listing einer Programmanweisung angezeigt werden, und das den Fall zeigt, bei dem beide redundante Prozeßsteuerungscomputer übereinstimmen;
  • Fig. 7 ist ein ähnliches Anzeigefenster wie in Fig. 6, das den Fall zeigt, in dem die redundanten Prozeßsteuerungscomputer nicht übereinstimmen;
  • Fig. 8 zeigt die Komponentenabschnitte einer Programmanweisung gemäß der Erfindung, wobei sowohl ein arithmetischer Ausdruck als auch ein logischer Ausdruck gezeigt sind;
  • Fig. 9 ist ein Beispiel-Listing, das die Grundprogrammstruktur der derzeit bevorzugten Ausführungsform zeigt;
  • Fig. 10 zeigt die derzeit bevorzugte Konfiguration zur Durchführung der Beratungssystemfunktion der Erfindung;
  • Fig. 11 und 12 zeigen das Selbstbewertungssystem der vorliegenden Erfindung;
  • Fig. 13 zeigt das Überwachungsfenster der vorliegenden Erfindung;
  • Fig. 14 zeigt die funktionalen Komponenten der derzeit bevorzugten Implementierung;
  • Fig. 15 zeigt das Informationsmodell der derzeit bevorzugten Ausführungsform.
  • Beschreibung der bevorzugten Ausführungsform
  • Um die vorliegende Neuerung vollständiger zu erkennen, kann ein bestimmtes Wissen über die Architektur eines relativ komplexen computergesteuerten Prozesses nützlich sein. Das Folgende stellt somit eine kurze Beschreibung einer computergestützten Prozeßsteuerungssystemarchitektur des Typs dar, der bei der Steuerung eines chemischen Herstellungsprozesses verwendet werden kann. Anschließend wird die Erfindung in Verbindung und im Zusammenhang mit dem computergestützten Prozeßsteuerungssystem für eine chemische Herstellungsanlage beschrieben. Selbstverständlich ist klar, daß die Prinzipien der Erfindung keineswegs auf chemische Herstellungsanlagen beschränkt sind und daß die Beschreibung der derzeit bevorzugten Ausführungsform der Erfindung in diesem Zusammenhang lediglich darstellen kann, wie die Erfindung umgesetzt werden kann, und nicht den Umfang der Erfindung einschränken soll, der in den Ansprüchen dargelegt ist.
  • In einer chemischen Herstellungsanlage können hunderte oder Tausende von elektrisch betätigten Ventilen, Temperatursteuervorrichtungen, physikalischen Sensoren und dergleichen vorhanden sein. Diese elektrischen Einrichtungen können weit über die Anlage verteilt sein. Dementsprechend wird zur Vereinfachung der Computersteuerung ein computergestütztes Anlagennetz verwendet, wobei diese elektrischen Vorrichtungen mit dem Netz verbunden sind. Um dies darzustellen, zeigt die Fig. 1 ein Anlagennetz 20, das mehrere dedizierte Prozeßsteuerungscomputer 22 verwendet, die über dedizierte Kommunikationsprozessoren 24 mit der Übertragungsleitung oder dem Lichtleitfaserstamm 26 des Anlagennetzes verbunden sind. Ferner sind mit der Stammleitung 26 mehrere Operatorstationen 28 verbunden, die als Schnittstelle zwischen dem menschli chen Operator und dem mechanisierten oder computergesteuerten Herstellungsprozeß dienen. Für eine vollständigere Beschreibung der Operatorstation der bevorzugten Ausführungsform kann Bezug genommen werden auf die US-Patentanmeldung mit der laufenden Nr. 08/128.988 von Van Weele u. a., mit dem Titel "Operator Station for Manufacturing Process Control System", eingereicht am 29. September 1993.
  • Das Anlagennetz kann ferner einen Computer enthalten, der mit dem Netzstamm verbunden ist und der als Sicherheitsmanager 30 dient, um Einrichtungen für die Netzsicherheit zur Verfügung zu stellen. Zum Beispiel kann der Sicherheitsmanager-Computer eine Sicherheitstabelle halten, um zu spezifizieren, welches der anderen Systeme am Netz mit einem gegebenen System kommunizieren kann. Das Anlagennetz kann ferner einen Steuerungsraumdatenmanager 32 enthalten, um sicherzustellen, daß alle Elemente des Netzes identische Kopien aller benötigten Dateien besitzen, sowie ein Prozeßinformationssystem 34 zum Verwalten historischer Datenbänke von Prozeßinformationen, die auf einem Historie-Server 36 gespeichert sein können. Zusätzlich zum Historie-Server kann das Anlagennetz ferner einen Unterstützungsdienst-Computer enthalten, um Software zur Verfügung zu stellen, die zum Entwickeln und Laden von ausführbaren Programmcodes in die Prozeßsteuerungscomputer 22 verwendet wird. Das Anlagennetz kann in vielen kommerziellen Anwendungen sehr groß sein. In der Praxis kann die Stammleitung durch eine oder mehrere Brücken erweitert sein, um die Verbindungsmöglichkeiten zu erweitern und Abschnitte des Netzes anzuschließen, die in physikalisch getrennten Bereichen der Anlage angeordnet sein können. Dementsprechend sind in Fig. 1 mehrere Brücken 40 gezeigt. Bei Bedarf kann eine Brücke verwendet werden, um das Anlagennetz 20 mit einem Weitverkehrsnetz wie z. B. dem WAN 42 zu verbinden.
  • Die dedizierten Prozeßsteuerungscomputer 22 sind über Schnittstellenschaltungen mit den elektrischen und elektromechanischen Vorrichtungen und Sensoren verbunden, die den zu steuernden physikalischen Prozeß steuern. In Fig. 1 sind die Prozeßsteuerungscomputer in Paaren gruppiert, in denen jedes Paar ein Redundanzsystem darstellt. Das heißt, jedes Paar von Computern kann den gleichen Prozeß steuern. In der derzeit bevorzugten Ausführungsform sind die Computer aktiv redundant, d. h. jeder antwortet aktiv auf die gleichen Sensoren und jeder steuert aktiv die gleichen Ausgänge.
  • In Fig. 2 ist eine derzeit bevorzugte Anordnung zum Handhaben der Verbindung und der Arbitrierung zwischen einem Paar von Prozeßsteuerungscomputern gezeigt. In Fig. 2 ist ein Paar von aktiv redundanten Prozeßsteuerungscomputern 22a und 22b gezeigt. Diese Computer empfangen vorzugsweise gemeinsame Eingangsdaten von einem oder mehreren Feldcomputereinheiten, wie z. B. den Feldcomputereinheiten 50a-50b. Diese Feldcomputereinheiten können mittels einer geeigneten Datenkommunikationsverbindung, wie z. B. den Lichtleitfaserkabeln 52a-52d, entfernt von den Prozeßsteuerungscomputern 22a-22b angeordnet sein. Diesbezüglich beschreiben die US-Patentanmeldung mit der laufenden Nr. 07864.931, eingereicht am 31. März 1991 mit dem Titel "Process Control Interface System Having Triply Redundant Remote Field Units" von Glaser u. a. und die US-Patentanmeldung mit der laufenden Nr. 07/952.089, eingereicht am 4. August 1992, mit dem Titel "Method of Input Signal Resolution for Actively Redundant Process Control Computers" von Baca Jr. u. a. die Kommunikation und die Steuerung der Verbindungen zwischen zwei aktiv redundanten Prozeßsteuerungscomputern wie z. B. den Prozeßsteuerungscomputern 22a-22b, und die Eingabe/Ausgabe-Vorrichtungen, die direkt dem gesteuerten physikalischen Prozeß zugeordnet sind, genauer. Alternativ kann eine lokale Feldinstrumentation verwendet werden, um die Prozeßsteuerungscomputer 22a, 22b direkter mit den Eingangssensoren wie z. B. dem Strömungsratensensor 54 und dem Temperatursensor 56, zu verbinden.
  • Obwohl die Redundanz zweier aktiv arbeitender Prozeßsteuerungscomputer gewisse Fehlertoleranzvorteile gegenüber einem einzelnen entscheidungstreffenden Prozeßsteuerungscomputer hat, ist die vorliegende Erfindung nicht auf eine Konfiguration von nur zwei aktiv redundanten Prozeßsteuerungscomputern beschränkt. Zum Beispiel kann es daher erwünscht sein, unter bestimmten Umständen drei Prozeßsteuerungscomputer anstelle der beiden in Fig. 2 gezeigten zu verwenden.
  • In der vorliegenden Ausführungsform arbeiten die Prozeßsteuerungscomputer 22a-22b vorzugsweise konkurrierend mit allen Signalen, die in einer oder mehreren Feldcomputereinheiten gesendet werden. Mit anderen Worten, jeder der Prozeßsteuerungscomputer kann unabhängige Entscheidungen auf der Grundlage der von den redundanten Computern vom Feld empfangenen Daten treffen. Die Entscheidungen, die von den Prozeßsteuerungscomputern 22a, 22b getroffen werden, bestimmen die Ausgangssignalwerte, die letztendlich zu den speziellen Ausgangsvorrichtungen (z. B. Ventilen, Pumpenmotoren, Reaktorheizvorrichtungen und dergleichen) von den geeigneten Feldcomputereinheiten weitergeleitet werden. Diesbezüglich ist in Fig. 2 eine Pumpe 58 gezeigt, um einen Typ von Ausgabevorrichtung darzustellen, der vom System gesteuert werden kann.
  • Während die Ausgangssignalwerte zwischen den zwei aktiv redundanten Prozeßsteuerungscomputern 22a-22b übereinstimmen können, können im alternativen Fall zwei unabhängige Sätze von Ausgangssignalwerten andernfalls den Feldcomputereinheiten 50a-50b mitgeteilt werden. Die von einer Feldcomputereinheit empfangenen Eingangswerte können arbitriert sein, so daß es unnötig ist, die Ausgangswerte in Übereinstimmung zu bringen oder zu arbitrieren. Dies ist der Fall, da beide Prozeßsteuerungscomputer anschließend mit dem gleichen Prozeßsteuerungsprogramm arbeiten und mit dem gleichen Satz von arbitrierten Eingangswerten arbeiten, wobei das leistungsfähigere Ausgangssignal (d. h. das Signal mit höherer Spannung) den Status des Feldsteuerelements bestimmt.
  • Um die Eingangssignalarbitrierung oder die erneute Übereinstimmung zu erleichtern, ist zwischen den Prozeßsteuerungscomputern eine bidirektionale parallele Kommunikationsverbindung 60 vorgesehen. Diese Kommunikationsverbindung wird manchmal als die "Haupt"-Verbindung bezeichnet, da sie eine direkte Übertragung von Daten und Zeitsteuerungssignalen zwischen den Prozeßsteuerungscomputern erlaubt. Jeder der Prozeßsteuerungscomputer 22a-22b ist mit einer entsprechenden Verbindungsschaltung 62a-62b versehen. Die Verbindungsschaltung steuert den bidirektionalen Signalaustausch über die Hauptverbindung 60.
  • Jeder der Prozeßsteuerungscomputer enthält eine Zentraleinheit 64a-64b. In der derzeit bevorzugten Ausführungsform verwenden die Prozeßsteuerungscomputer eine Harvard- Architektur, die einen physikalisch separaten Befehlsspeichermechanismus und einen Datenspeichermechanismus enthält, die jeweils ihre eigenen Adressen- und Datenleitungen besitzen, um sie mit der Zentraleinheit zu verbinden. Die Harvard-Architektur wird derzeit bevorzugt, da sie erlaubt, daß OP-Code-Befehle und Operandendaten für die Befehle im gleichen Taktzyklus geholt werden können.
  • Jeder der Prozeßsteuerungscomputer enthält eine Netzsteuervorrichtung 66a-66b, um die Kommunikation mit den Feldcomputereinheiten 50a-50b zu erleichtern. Jede Netzsteuervorrichtung ist ihrerseits mit einer oder mehreren Ausbruchschaltungen 68a-68b über Lichtleitfaserkabel 70a, 70b und 72a, 72b verbunden. Die Ausbruchschaltungen leiten Eingangssignale von den Feldcomputereinheiten zu den Netzsteuervorrichtungen. In ähnlicher Weise leiten die Ausbruchschaltungen die Ausgangssignale von den Netzsteuervorrichtungen zu den geeigneten Feldcomputereinheiten. Im Fall eines großen Prozeßsteuerungssystems, das viele Feldcomputereinheiten verwendet, können mehrere Ausbruchschaltungen in Serie verbunden sein, um einen Kommunikationsring um die Netzsteuervorrichtungen zu bilden. Außerdem kann eine zweite Ebene von Ausbruchschaltungen ebenfalls mit den dargestellten Ausbruchschaltungen verbunden sein, um den bidirektionalen Signalaustausch unter den Prozeßsteuerungscomputern und den jeweiligen Feldcomputern weiter zu verteilen. Die derzeit bevorzugten Netzsteuervorrichtungen 66a-66b können eines der Lichtleitfaserkabel 70a-70b oder 72a-72b verwenden, um eine bidirektionale Kommunikation mit den Ausbruchschaltungen auf der Kommunikationsringebene durchzuführen.
  • Jede der Feldcomputereinheiten 50a-50b kann ihrerseits als ein redundantes System implementiert sein. In der in Fig. 2 dargestellten Ausführungsform verwenden die Feldcomputer 50a-50b dreifach redundante Systeme, die eine linke Computerschaltung 74a-74b, eine mittlere Computerschaltung 76a-76b und eine rechte Computerschaltung 78a-78b umfassen. Jeder der dreifach redundanten Computer ist mit einer Eingangsschaltung 80a-80b und einer Ausgangsschaltung 82a-82b versehen. Diese Eingangs- und Ausgangsschaltungen sind mit den Sensoren und den Vorrichtungen in der Anlage verbunden, die physikalisch überwacht und gesteuert werden, wie z. B. dem Strömungsratensensor 54, dem Temperatursensor 56 und der Pumpe 58.
  • Die Ausbruchschaltung 68a ist vorzugsweise sowohl mit der linken Computerschaltung 74a der Feldcomputereinheit 50a als auch mit der linken Computerschaltung 74b der Feldcomputereinheit 50b verbunden. In ähnlicher Weise ist die Ausbruchschaltung 68b sowohl mit der rechten Computerschaltung 78a der Feldcomputereinheit 50a als auch mit der rechten Computerschaltung 78b der Feldcomputereinheit 50b verbunden. Auf diese Weise empfängt der Prozeßsteuerungscomputer 22a Signale von allen linken Computerschaltungen 74a-74b, während der Prozeßsteuerungscomputer 22b die Eingangssignale von allen rechten Computerschaltungen 78a-78b empfängt. Wie gezeigt sind somit zwei separate Lichtleitfaserkommunikationsnetze in der bevorzugten Ausführungsform zwischen den Prozeßsteuerungscomputern 22a-22b und den Feldcomputereinheiten 50a-50b vorgesehen, obwohl jeder der Prozeßsteuerungscomputer mit jeder der Feldcomputereinheiten verbunden ist.
  • Die mittlere Computerschaltung 76a-76b der Feldcomputereinheiten 50a-50b sind nicht direkt mit den Prozeßsteuerungscomputern 22a-22b verbunden. Die mittleren Computerschaltungen kommunizieren jedoch direkt mit den linken und rechten Computerschaltungen 74a-74b bzw. 78a-78b. In dem Fall, in dem drei Prozeßsteuerungscomputer verwendet werden (anstelle der zwei dargestellten), können außerdem die mittleren Computerschaltungen 76a-76b über eine geeignete Lichtleitfaserverbindung angeschlossen werden, um direkt mit diesem dritten Prozeßsteuerungscomputer zu kommunizieren. Wie in Fig. 2 gezeigt, empfangen die mittleren Computerschaltungen 76a-76b alle entsprechenden Eingangssignale, die die linken und rechten Computerschaltungen von den verschiedenen dargestellten Sensoren empfangen. In ähnlicher Weise können die mittleren Computerschaltungen auch mit allen Ausgangsvorrichtungen verbunden sein, mit denen die linken und rechten Computerschaltungen verbunden sind.
  • Obwohl die Prozeßsteuerungscomputer 22a-22b alle ihre Eingangssignale und alle ihre Ausgangssignale zu und von den Feldcomputereinheiten senden bzw. empfangen können, können sie auch mit Eingangsschaltungen 84a-84b und Ausgangsschaltungen 86a-86b versehen sein. Ferner kann zusätzlich zu der Hauptverbindung 60, die die Prozeßsteuerungscomputer bidirektional miteinander verbindet, eine zusätzliche Verbindung 88 für eine bidirektionale Verbindung der Netzsteuervorrichtungen 66a-66b vorgesehen sein.
  • Jeder der Prozeßsteuerungscomputer enthält eine IFS- Schaltung 90a-90b, um die Kommunikation mit einem intelligenten Vorfeld-Kommunikationssystem 92 zu erleichtern. Das intelligente Vorfeld-Kommunikationssystem bietet eine intelligente Schnittstelle zwischen den Prozeßsteuerungscomputern und dem anlagenweiten oder lokalen Netz über die Übertragungsleitung oder die Lichtleitfaserstammleitung 26. Das Vorfeld(Front end)-Kommunikationssystem bietet einen Weg zum schnellen Übertragen von Eingangs- und/oder Ausgangsdaten von den Prozeßsteuerungscomputern zu einer oder mehreren Netzvorrichtungen, wie z. B. einer Operator-Arbeitsstation 28. Die IFS-Schaltungen 90a-90b können über eine geeignete Lichtleitfaserverbindung mit einer IFQ-Schaltung 94 verbunden sein, die ihrerseits mit dem Vorfeldcomputer 96 verbunden ist.
  • In der bevorzugten Ausführungsform bietet die IFS-Schaltung 90a-90b eine Schnittstelle zum verdeckten Anschluß eines Dual-Port-Datenspeichers, der im Prozeßsteuerungscomputer enthalten ist. Die IFQ-Schaltung 94 bietet eine Schnittstelle zum Q-Bus des Vorfeldcomputers 96. Die derzeit bevorzugte Ausführungsform verwendet einen MICROVAX-4200-Computer als Vorfeldcomputer, auf dem das Echtzeit-ELN-Betriebssystem läuft, das von der Digital Equipment Corporation geliefert wird. Für eine weitere Beschreibung des Vorfeld-Kommunikationssystems wird auf die US-Patentanmeldung mit der laufenden Nr. 07/898.923, eingereicht am 12. Juni 1992, mit dem Titel "Secure Front End Communication System and Method for Process Control Computers" von DeBruijn, auf die US-Patentanmeldung mit der laufenden Nr. 07/897.905, eingereicht am 12. Juni 1992, mit dem Titel "Stealth Interface for Process Control Computers", von Sederlund u. a., und auf die US-Patentanmeldung mit der laufenden Nr. 07/898.126, eingereicht am 12. Juni 1992, mit dem Titel "Intelligent Process Control Communication System and Method" von Allbery Jr. u. a., verwiesen.
  • Bevorzugte Softwareumgebung A. Speichermanagement
  • Wie oben erwähnt worden ist, verwenden die Prozeßsteuerungscomputer der derzeit bevorzugten Ausführungsform eine Harvard-Architektur, bei der der Programmspeicher und der Datenspeicher getrennt sind und unterschiedlich adressierbare Vorrichtungen sind, die jeweils ihre eigenen Adressierungs-, Hol- und Speichermechanismen besitzen. Dies ist in Fig. 3 gezeigt. In Fig. 3 ist die Zentraleinheit 100 über den Adreßbus 104 und den Datenbus 106 mit dem Befehlsspeicher 102 verbunden. In ähnlicher Weise ist die CPU 100 über den Adreßbus 110 und den Datenbus 112 auch mit dem Datenspeicher 108 verbunden. Der Befehlsspeicher 102 enthält die ausführbaren Programmbefehle, die die CPU 100 holt und während der Operation ausführt. In der Praxis können diese Programmbefehle vom Steuerungstechniker oder vom Computerprogrammierer in einer Hochebenen-Sprache geschrieben und in den ausführ baren Code kompiliert werden. Zum Zweck der Darstellung der Konzepte wurde eine schematische Darstellung einer Serie von Programmbefehlsanweisungen bei 114 gezeigt. In einem Pseudo-Assemblersprachenformat gezeigt, sollen die Befehlsanweisungen 114 eine Sequenz von Programmschritten darstellen, die die CPU nacheinander ausführt, bis sie durch eine Programmanweisung angewiesen wird, zu einer nicht seriellen Adresse zu springen. Es ist selbstverständlich klar, daß die ausführbaren Befehlsanweisungen von Anwendung zu Anwendung sehr verschieden sind und in mehreren unterschiedlichen Formaten angezeigt werden können, einschließlich eines Binärformats und eines Hexadezimalformats.
  • Der Dual-Port-Datenspeicher 108 wird verwendet, um die Datenwerte zu speichern, die die CPU während der Ausführung der Befehlsanweisungen 114 verarbeitet. Der Datenspeicher 108 kann ferner verwendet werden, um die Reihenfolge zu speichern, in der die Befehlsausführungsunterroutinen, die im Befehlsspeicher 102 gespeichert sind, ausgeführt werden sollen. Im Gegensatz zu herkömmlichen Speicherzuweisungstechniken verwendet die bevorzugte Ausführungsform einen vorgegebenen Satz von Datentypen, wobei jedem Datentyp eine bestimmte Anzahl von Datenzellen oder Adressen innerhalb eines vorgegebenen Bereichs von Adressen im voraus zugeordnet ist. Zu Darstellungszwecken ist dieses vordefinierte Datenspeicherzuweisungsschema als Speicherabbildungsgitter 116 dargestellt. Das Speicherabbildungsgitter 116 definiert einen Satz vorgegebener Bereiche, die jeweils einem anderen Datentyp entsprechen. Zu Darstellungszwecken wurden diese Bereiche mit den folgenden Datentypabkürzungen bezeichnet:
  • Datentyp Beschreibung
  • AI Analoge Eingangsvariable
  • AO Analoge Ausgangsvariable
  • AK Analoge Konstante (über Benutzereingabe)
  • AC Analoge berechnete Variable (berechnet vom Computer)
  • DI Digitale Eingangsvariable
  • DO Digitale Ausgangsvariable
  • DK Digitale Konstante (über Benutzereingabe)
  • DC Digitale berechnete Variable (berechnet vom Computer)
  • ALARM Variable, die die Alarmbedingung darstellt
  • STEP Platzhalteridentifizierer, der zum Unterteilen von Programmen verwendet wird
  • SEQ Platzhaltervariable, die zum Steuern von sequentierten Operationen verwendet wird
  • SPECIAL Spezialvariable
  • Ein großer Gewinn an Geschwindigkeit und Zuverlässigkeit resultiert aus dem vordefinierten, geschlossenen Satz von Datentypelementen und der Zuweisung dieser Elemente zu vordefinierten Speicherstellen. In der derzeit bevorzugten Ausführungsform sind alle Prozeßsteuerungsprogramme auf die Verwendung nur dieser Datentypen beschränkt, die sich durch Vordefinition garantiert an vordefinierten Speicherstellen befinden. Genauer befindet sich z. B. die erste analoge Eingangsvariable oder Datenzelle, die mit AI(1) bezeichnet ist, von Computer zu Computer betrachtet immer an der gleichen physikalischen Adresse. In ähnlicher Weise befindet sich die hundertste analoge Eingangsvariable oder Datenzelle, die mit AI(100) bezeichnet ist, ebenfalls von Computer zu Computer an der gleichen physikalischen Adresse. Ist die Adresse dieser Variablen im voraus bekannt, bedeutet dies, daß der Prozeßsteuerungscomputer CPU 100 auf die Variable zugreifen kann (um Da ten zu holen oder Daten zu speichern), ohne irgendwelche Taktzyklen für die Lokalisierung der Variablen zu verschwenden. Dies steht im Gegensatz zu herkömmlichen Speicherverwaltungstechniken, die Speicher für Variablen zum Kompilierungszeitpunkt oder zum Laufzeitpunkt frei zuweisen, ohne die Garantie, daß sich eine gegebene Variable an einer gegebenen physikalischen Adresse befindet. Tatsächlich wird in den meisten herkömmlichen Systemen die von-Neumann-Architektur verwendet, bei der Daten und Programmbefehle im gleichen Speicherraum gespeichert sind.
  • In der derzeit bevorzugten Ausführungsform besitzen unterschiedliche vordefinierte Datentypen vordefinierte Verwendungen, wie in der obigen Tabelle gezeigt ist. Um dies weiter zu erläutern, wird auf die Fig. 4 Bezug genommen, in der ein Prozeßsteuerungscomputer 22 schematisch gezeigt ist. Wie gezeigt, stellen die analogen und digitalen Eingangsvariablen AI bzw. DI die vom Feld gesammelten Daten dar. Die analogen Daten können in Form von Ganzzahl-Werten vorliegen, die verwendet werden, um analoge Merkmale wie z. B. eine Temperatur darzustellen. Die digitalen Daten können in Form von booleschen Werten (WAHR, FALSCH bzw. TRUE, FALSE) vorliegen, die verwendet werden, um logische Bedingungen wie z. B. die Position eines Ein/Aus-Schalters darzustellen. Das bevorzugte System verwendet ferner analoge und digitale Ausgangsvariablen AO bzw. DO. Diese werden als Steuersignale verwendet, um analoge und digitale Ausrüstungen im Feld zu betätigen. Zum Beispiel kann eine analoge Ausgangsvariable verwendet werden, um eine Temperatursteuervorrichtung einzustellen, und eine digitale Ausgangsvariable kann verwendet werden, um einen Pumpenmotor ein- und auszuschalten. Wie ihre Gegenstück-Eingangsvariablen können die analogen Ausgangsvariablen in Form von Ganzzahl- Werten vorliegen und die digitalen Ausgangsvariablen in Form von booleschen Werten vorliegen. Die derzeit bevorzugte Ausführungsform verwendet Ganzzahl-Werte, bei Bedarf mit Skalierungsfaktoren, um analoge Werte und Bedingungen darzustellen. In der alternativen Ausführungsform können analoge Werte als Gleitkommazahlen ausgedrückt werden. Die bevorzugte Ausführungsform bevorzugt ganze Zahlen gegenüber Gleitkommazahlen, um einen Geschwindigkeitsvorteil zu erzielen.
  • Manchmal kann ein Programmierer wünschen, analoge und digitale Konstanten zu verwenden, um Anfangsbedingungen einzustellen oder um Parameter zur Verfügung zu stellen, von denen nicht erwartet wird, daß sie sich während der Steuerung des Prozesses ändern. Die bevorzugte Implementierung unterscheidet zwischen analogen und digitalen Konstanten, die der Benutzer am Arbeitsplatz eingeben kann, von denjenigen analogen und digitalen Werten, die vom Prozeßsteuerungscomputer berechnet werden. In Fig. 4 sind vom Benutzer einstellbare analoge und digitale Konstanten mit AK bzw. DK bezeichnet. Die analogen und digitalen Variablen, die vom Prozeßsteuerungscomputer berechnet werden, sind mit AC bzw. DC bezeichnet. Zusätzlich zu diesen Werten verwendet der Prozeßsteuerungscomputer auch spezialisierte Indexzähler und Merkervariablen zum Bezeichnen von Operationszuständen des gesteuerten Prozesses.
  • Das derzeit bevorzugte Prozeßsteuerungssystem arbeitet mit einem festen Taktzyklus, derzeit mit einem Taktzyklus von 1 Hertz, mit der Einschränkung, daß die gesamte Verarbeitung, die von einem Prozeßsteuerungscomputer durchgeführt wird, innerhalb eines einzelnen Zyklus stattfinden muß. Im allgemeinen ist das System so ausgelegt, daß die Zykluszeit wesentlich kürzer gewählt ist als die physikalische Reaktionszeit des Systems. Mit anderen Worten, das Computersystem sollte schneller reagieren als das gesteuerte physikalische System. In Prozeßsteuerungsanwendungen wie z. B. chemischen Anlagen hat sich gezeigt, daß ein Zyklus von 1 Hertz angemessen ist. In Fig. 4 ist der 1-Hertz-Takt mit dem Bezugszeichen 220 bezeichnet. Die Dateneingangs-, Datenausgangs- und Computerverarbeitungsereignisse finden vorzugsweise zu vorgegebenen Zeitpunkten innerhalb des 1-Hertz-Zyklus statt. Der 1-Hertz-Takt ist zu diesem Zweck in Zeitintervalle unterteilt.
  • In Fig. 4 ist der Anfang des Zyklus mit 222 bezeichnet. In der Darstellung rückt die Zeit im Uhrzeigersinn vor. Im ersten Zeitintervall 224 werden alle Eingangsvariablen (AI und DI) durch Zugreifen auf die zugehörigen Vorrichtungen über die Feldcomputereinheiten gelesen und als aktuelle Werte in den vorgegebenen Speicherstellen AI und DI gespeichert. Nach diesem Zeitintervall ist das nächste Zeitintervall 226 für die Arbitrierung reserviert. Während des Arbitrierungsintervalls 226 arbitriert der Prozeßsteuerungscomputer mit seinem Gegenstück oder den Gegenstücken im aktiv redundanten System. Die Arbitrierung wird im folgenden genauer beschrieben. Im nächsten Zeitintervall 228 durchläuft der Prozeßsteuerungscomputer den Satz von Programmbefehlen, die vom Systemoperator oder Techniker zum Steuern des physikalischen Prozesses geschrieben worden sind. Die Zeitspanne, die für die Ausführung des gesamten Prozeßsteuerungsprogramms erforderlich ist, schwankt in Abhängigkeit von den durchzuführenden Aufgaben. In der Darstellung der Fig. 4 wird ungefähr eine Hälfte des 1-Hertz-Zyklus für das Prozeßsteuerungsprogramm selbst verwendet. Es ist wichtig, zu erkennen, daß das Prozeßsteuerungsprogramm vom Ingenieur so geschrieben worden ist, daß alle Befehle während des 1-Hertz-Zyklus ausgeführt werden. Diese Prozeßsteuerungsbefehle werden während des Zeitintervalls 228 für jeden 1-Hertz-Zyklus vorzugsweise vollständig vom Start bis zum Ende wiederholt durchlaufen.
  • Nach dem Prozeßsteuerungszyklus 228 enthält der 1-Hertz- Zyklus das Zeitintervall 230, während dem alle Ausgangsvariablen (AO und DO) bei Bedarf zum Feld übertragen werden, auf der Grundlage der Ergebnisse der während des Zeitintervalls 228 durchgeführten Verarbeitungsschritte. Das restliche Zeitintervall 232 nach dem Zeitintervall 230 wird als "Hertz-unendlich"-(Hz')-Intervall bezeichnet und nimmt die restliche Zeitspanne auf, bis der 1-Hertz- Zyklus bei 222 wiederholt wird. Die Zeitspanne, die für das Hz'-Intervall 232 zur Verfügung steht, hängt von der Zeitspanne ab, die von den anderen Intervallen verwendet wird, insbesondere vom Verarbeitungsintervall 228. Das Intervall Hz' 232 kann für unkritische Aufgaben wie z. B. das Ausdrucken, die Kommunikation und dergleichen verwendet werden, die für die Prozeßsteuerung nicht erforderlich sind.
  • Aus dem Vorangehenden wird deutlich, daß das Prozeßsteuerungs-Softwaresystem zweckmäßig alle Prozeßsteuerungsoperationen darauf beschränkt, innerhalb eines vordefinierten Zeitintervalls oder Zeitfensters ausgeführt zu werden, das jede Sekunde einmal beginnt. (oder einmal für jedes Taktintervall). Um sicherzustellen, daß das gesamte Prozeßsteuerungsprogramm vom Anfang bis zum Ende in der erlaubten Zeitspanne durchlaufen wird, hindert die derzeit bevorzugte Prozeßsteuerungssprache den Programmierer daran, bedingte Verzweigungsanweisungen zu verwenden. Statt dessen wird der Zustand des gesteuerten Prozesses ermittelt und unter Verwendung der verfügbaren digitalen und analogen Konstanten und der Variablen ALARM, STEP und SEQ gespeichert. Diese stehen anschließend für eine Abfrage während des Verarbeitungszyklus zur Verfügung, um die Entscheidungsfindung zu unterstützen. Dies wird im folgenden genauer gezeigt, wenn die derzeit bevorzugte Sprache beschrieben wird.
  • Unter der Forderung, daß alle Verarbeitungsschritte innerhalb einer endlichen vordefinierten Zeitspanne ausgeführt werden müssen, ist es möglich, daß ein Programm über die Grenzen des Prozeßsteuerungszeitsegments 228 hinauswächst. Wenn dies auftritt, wird die Prozeßsteuerungsaufgabe in mehrere Teile unterteilt, wobei jeder Teil einer separaten Bank von aktiv redundanten Prozeßsteuerungscomputern zugewiesen wird.
  • Arbitrierung
  • Die aktiv redundante Prozeßsteuerungscomputersystemarchitektur beruht auf einem Arbitrierungsschema für die Behandlung des Falls, bei dem die redundanten Computer bei unterschiedlichen Ausgangsdaten ankommen, vorausgesetzt, sie beruhen auf identischen Eingangsdaten. Im vorliegenden Arbitrierungsschema wird jedem der redundanten Sätze von Prozeßsteuerungscomputern eine oder mehrere logische Bezeichnungen zugewiesen, die angeben, wie die Computer während der Arbitrierung antworten. Der Bequemlichkeit halber wird jedem der Prozeßsteuerungscomputer ein logischer "Positions"-Name zugewiesen, wie z. B. "Links", "Mitte" und "Rechts" (für ein Drei-Computer- Redundanzsystem) oder "Links" und "Rechts" für ein Zwei- Computer-Redundanzsystem. Außerdem wird jedem Computer ein logischer "Funktions"-Name zugewiesen, der bei der Beschreibung nützlich ist, wie die jeweiligen redundanten Computer in bestimmten Typen von Stand-off-Arbitrierungen funktionieren. Im dargestellten Zwei-Computer-Redundanzsystem der Fig. 2 haben die Aasmelder die logischen Funktionsnamen "Fuchs" für den Computer 22a und "Hund" für den Computer 22b verwendet. Selbstverständlich dienen diese Namen nur der Bequemlichkeit, da alle möglichen Namen geeignet sind. Außerdem ist der Computer 22a der Bequemlichkeit halber ferner mit "Links" bezeichnet und der Computer 22b mit "Rechts" bezeichnet. Der Grund für sowohl einen logischen Positionsnamen (Links, Rechts) als auch einen logischen Funktionsnamen (Fuchs, Hund) besteht darin, zu ermöglichen, unterschiedliche Arbitrierungsschemen zu verfolgen, in Abhängigkeit davon, ob der arbitrierte Wert eine physikalische Manifestation besitzt oder nicht. Digitale und analoge Eingangs- und Ausgangswerte besitzen eine physikalische Manifestation, da sie sich auf physikalische Vorrichtungen innerhalb des gesteuerten Prozesses beziehen oder diese abbilden. Andererseits ist eine Variable wie z. B. STEP ein rein logisches Element und hat keine physikalische Manifestation. Die Variable STEP wird verwendet, um ein Prozeßsteuerungsproblem in mehrere sequentielle "Schritte" aufzuteilen, die der Prozeßsteuerungscomputer der Reihe nach ausführt. Die Variable RECIPE ist eine weitere Identifizierervariable, die keine physikalische Manifestation besitzt. Die Variable RECIPE wird verwendet, um eine gegebene Sammlung von Schritten und Befehlen zum Erreichen einer vorgegebenen Verarbeitungsaufgabe zu bezeichnen oder zu etikettieren. Hierzu würde RECIPE zur Herstellung von Styrol anders bezeichnet als RECIPE für die Herstellung von Polyvinylchlorid.
  • Die Arbitrierung wird vorzugsweise während des Arbitrierungszeitintervalls 226 durchgeführt, wobei irgendwelche Diskrepanzen auf der Grundlage eines vorgegebenen Prioritätsschemas aufgelöst werden. Diskrepanzen bezüglich der Variablen mit einer physikalischen Manifestation werden von den Links/Rechts-Computern aufgelöst, während Diskrepanzen in Variablen ohne physikalische Manifestation von den Fuchs/Hund-Computern aufgelöst werden. Hierbei sei daran erinnert, daß die Links/Rechts-Computer und die Fuchs/Hund-Computer einfach unterschiedliche Namen für die physikalischen Prozeßsteuerungscomputereinrichtungen 22a und 22b sind. In der dargestellten Ausführungsform beziehen sich z. B. die Bezeichnungen "Fuchs" und "Links" auf die gleiche physikalische Vorrichtung, nämlich den Computer 22a; in ähnlicher Weise beziehen sich die Bezeichnungen "Hund" und "Rechts" auf den physikalischen Prozeßsteuerungscomputer 22b. Dies sind einfache Namenskonventionen, wobei die Regeln von Fuchs/Hund mit Links/Rechts vertauscht werden können, solange die angepaßte Konvention konsistent verwendet wird.
  • Wie im folgenden beschrieben wird, wird das Arbitrierungsereignis ausgelöst, um in einer Weise stattzufinden, die sicherstellt, daß beide Prozeßsteuerungscomputer das Auslesen aller Eingangsvariablen abgeschlossen haben. Während der aktuellen Arbitrierung werden irgendwelche Diskrepanzen in den analogen Eingangswerten (AI) oder digitalen Eingangswerten (DI) aufgelöst, indem der Wert bevorzugt wird, der vom logischen Links-Computer erhalten wird. Irgendwelche Diskrepanzen in der Variable RECIPE, der Variablen STEP oder anderen Variablen ohne physikalische Manifestation werden bevorzugt vom logischen Fuchs- Computer aufgelöst. Die Variablen ALARM werden nicht arbitriert. Jeder Computer behandelt ALARM-Bedingungen unabhängig, wobei die Hardwareschaltung so ausgelegt ist, daß alle Alarme gekennzeichnet werden, um anzugeben, welcher Computer des redundanten Satzes diese erzeugt hat. In einem doppelt redundanten System vergleicht während der Arbitrierung der rechte Computer jede seiner analogen und digitalen Eingangsvariablen mit denjenigen des linken Computers. Der logisch linke Wert wird verwendet, wenn beide linken und rechten Werte innerhalb von 1,5% liegen (oder einem bestimmten anderen geeigneten Prozentsatz). Wenn keine Übereinstimmung innerhalb von 1,5% vorhanden ist, verwenden beide linken und rechten Computer ihre eigenen Werte und die Programmentwickler berücksichtigen diese Tatsache, wenn die Prozeßsteuerungssoftware geschrieben wird. Wenn außerdem keine Übereinstimmung vorliegt, wird ein Merker für irgendwelche Diskrepanzen jenseits der Arbitrierung gesetzt, der eine mögliche Fehlfunktion anzeigt. Wenn eine Einstimmung innerhalb 1,5% vorliegt, werden auf diese Weise irgendwelche Berechnungen, die während des Verarbeitungsintervalls 228 stattfinden, auf der Grundlage der gleichen Eingangswerte für beide Computer ausgeführt, und erzeugen somit wahrscheinlich die gleichen Ausgangswerte. Wenn in ähnlicher Weise während des Arbitrierungsintervalls die Variablen STEP des Fuchses und des Hundes nicht übereinstimmen, wird die Variable STEP des Fuchses verwendet und der Hund ändert einfach seine Variable STEP, so daß sie mit derjenigen des Fuchses übereinstimmt, und setzt den Arbitrierungsmerker.
  • Die Arbitrierung von analogen und digitalen Ausgangswerten wird automatisch auf Hardwareebene gehandhabt. Genauer, während des Datenausgangsintervalls 230 versuchen beide Computer, die gleiche Ausgangsleitung anzusteuern. In diesem Fall ist die Schaltung so konfiguriert, daß immer der höhere Wert gewinnt. Der Programmentwickler berücksichtigt dies, wenn er Prozeßsteuerungsprogramme schreibt, indem er das System so konfiguriert, daß das Hochpegelsignal dem Ruhezustand oder einem Niedrigenergiezustand zugeordnet ist, falls möglich.
  • Im obenbeschriebenen doppelt redundanten System werden Arbitrierungsdiskrepanzen behandelt, indem einer der beiden Computer im voraus als Sieger bestimmt wird. In einem dreifach redundanten System sind mehrere unterschiedliche Arbitrierungsmechanismen möglich. Eine Option ist, ein "Bit-Abstimmungs"-Schema zu verwenden, bei dem jeder Computer bei der Arbitrierung mit einem Nachbar immer verliert und bei der Arbitrierung mit dem anderen Nachbarn immer gewinnt, ähnlich dem Kinderspiel "Papier, Schere, Stein". Eine weitere Option ist, z. B. immer den mittleren Computer in allen Arbitrierungen zwischen Links, Mitte und Rechts auszuwählen. Eine weitere Option ist, einen Mittelwert zu verwenden, der unter Verwendung aller drei Computerwerte berechnet wird. Eine vierte Option, die derzeit bevorzugt wird, ist, den am weitesten links stehenden Wert der zwei Computer zu nehmen, der innerhalb 1,5% liegt, und diesen Wert als wahren Wert für alle drei zu verwenden. Um sicherzustellen, daß jeder der redundanten Computer das Einlesen der Eingangsdaten beendet hat, bevor die Arbitrierung begonnen wird, wird wenigstens einer der redundanten Computer etwas später als die übrigen gestartet, wobei dieser Computer verwendet wird, um die Arbitrierung einzuleiten. Im doppelt redundanten System beginnt der Fuchs-Computer zuerst und der Hund-Computer folgt ungefähr 2 Millisekunden später. Da sowohl der Fuchs als auch der Hund für das Lesen der identischen analogen und digitalen Eingangsvariablen verantwortlich sind, stellt das Starten des Hundes nach dem Fuchs sicher, daß der Fuchs das Einlesen aller Eingangsvariablen beendet hat, wenn der Hund das Lesen aller Eingangsvariablen beendet hat. Dies ist in der Serie der Fig. 5A-5E gezeigt, in denen der Fuchs auf der linken Seite mit 220a bezeichnet ist und der Hund auf der rechten Seite mit 220b bezeichnet ist. Jede der Fig. 5A-5E kennzeichnet den Beginn des Zeitzyklus mit 222, wobei jede Figur den Fuchs 220a etwas vor dem Hund 220b zeigt. Somit hat in Fig. 5A der Fuchs 220a das Ende des Zeitintervalls 224 erreicht, während der Hund 220b sich immer noch im Zeitintervall 224 befindet. Mit Bezug auf die Beschreibung der Fig. 4 sei erinnert, daß das Zeitintervall 224 das Intervall ist, während dem die digitalen und analogen Eingangsvariablen von den Feldcomputern gelesen werden.
  • In Fig. 5B hat der Hund 220b das Arbitrierungsintervall 226 erreicht. Der Fuchs 220A befindet sich bereits im Arbitrierungsintervall. Wenn der Hund 220b am Arbitrierungsintervall ankommt, leitet er die Arbitrierungssequenz ein, indem er den Fuchs 220a informiert. Anschließend vergleicht jeder Computer seine Werte mit denjenigen des anderen oder der anderen Computer und führt anschließend die obenbeschriebenen Arbitrierungsanpassungsroutinen aus.
  • Mit der Zeit überquert der Hund 220b die Schwelle in das Zeitintervall 228 (in Fig. 5C gezeigt), wobei die Arbitrierung beendet wird und beide Computer mit dem Verarbeiten aller Programmbefehlsanweisungen beginnen, die von dem im Befehlsspeicher 102 gespeicherten Prozeßsteuerungsprogramm zur Verfügung gestellt werden. Das Zeitintervall 228 endet, wenn der Hund 220b in das Zeitintervall 230 eintritt, wie in Fig. 5D gezeigt ist. Während des Zeitintervalls 230 setzen beide Computer alle analogen und digitalen Ausgangsvariablen durch Ansteuern der entsprechenden Signalleitungen, die mit den Feldcomputereinheiten verbunden sind. Nachdem schließlich alle analogen und digitalen Ausgangsvariablen aktualisiert sind, endet das Zeitintervall 230 und beide Computer treten in das in Fig. 5E gezeigte Hz'-Intervall 232 ein. Das Hz'- Intervall endet, wenn der Zyklus den Startpunkt 222 erreicht, woraufhin sofort der nächste Zyklus beginnt.
  • Gleichzeitiges Überwachen aller zeitlich ausgerichteten Parameter
  • Die vorliegende Erfindung kann eine gleichzeitige Anzeige von gleichzeitig überwachten, zeitlich ausgerichteten Parametern liefern. Diese Anzeige ist sehr nützlich bei der Problembehandlung redundanter Prozeßsteuerungssysteme und ist ferner sehr nützlich beim Durchführen eines sanften Übergangs von einer Softwareversion zu einer weiteren in einem redundanten Computersystem. Die derzeit bevorzugte Ausführungsform bietet diese Anzeige in Verbindung mit einer alphanumerischen Anzeige einer Programmanweisung oder eines Ausdrucks im Quellcodeformat. Dies ist in Fig. 6 gezeigt.
  • Das vorliegende Informationsanzeigesystem ist so konfiguriert, daß auf die Anfrage des Operators die aktuellen Werte der ausgewählten Variablen gleichzeitig von allen redundanten Computern angezeigt werden. Um den Nutzen zu erhöhen, werden die Werte gemeinsam mit einer Prozeßsteuerungsprogramm-Quellcodeanweisung angezeigt, die diese Variablen verwendet und/oder berechnet. Die aktuellen Werte jeder Variablen in einer ausgewählten Quellcodeanweisung werden vorzugsweise unmittelbar neben der Anzeige der Quellcodeanweisung angezeigt, wie in Fig. 6 gezeigt ist. In Fig. 6 ist ein Anzeigefenster allgemein mit 234 bezeichnet. Innerhalb des Anzeigefensters befindet sich ein Ablegerfenster 236, in welchem eine Quellcodeanweisung erscheint, die allgemein mit 238 bezeichnet ist. Unterhalb der Quellcodeanweisung befindet sich eine Anzeige der vom Fuchs erhaltenen aktuellen Werte in der Zeile 240 und der vom Fuchs erhaltenen aktuellen Werte in der Zeile 242. Wie gezeigt, sind diese Werte vertikal unterhalb der entsprechenden Variablen der Quellcodeanweisung 238 angeordnet. In dem in Fig. 6 gezeigten Beispiel besitzt somit die analoge Ausgangsvariable AO(123) einen Wert 100, der dem Fuchs zugeordnet ist, und einen Wert 100, der dem Hund zugeordnet ist. In ähnlicher Weise besitzt die digitale Ausgangsvariable DO(101) einen Wert WAHR sowohl für den Fuchs als auch für den Hund. Bei einem Rückblick auf das in Fig. 6 gezeigte Beispiel wird deutlich, daß sowohl der Fuchs als auch der Hund konsistente Werte für alle dargestellten Variablen liefern. Dies stellt einen normalen Betriebszustand dar, in dem keine Diskrepanzen zwischen den redundanten Systemen vorhanden sind, was die dargestellten Variablen betrifft. Im Gegensatz hierzu zeigt die Fig. 7 das gleiche Quellcode-Listing, jedoch mit Diskrepanzen zwischen den Computern Fuchs und Hund. Wie mit der Erfindung gezeigt, sind diese Diskrepanzen sofort offensichtlich durch einfaches Vergleichen der gelieferten aktuellen Werte. Analoge L-Werte mit einem booleschen R-Wert oder einem Ausdruck, die diesem zugeordnet sind, halten ihren letzten Wert, bis ihr boolescher R-Wert oder Ausdruck wahr wird. Dies ist im Vergleich der Fig. 6 und 7 gezeigt.
  • Die Implementierung der in den Fig. 6 und 7 gezeigten Anzeige ist nicht nur eine einfache Frage der Anzeige von Zahlen neben dem Quellcode-Listing. Für einen maximalen Nutzen müssen die Werte in zwei Dimensionen "zeitlich ausgerichtet" angezeigt werden. Erstens, alle für einen gegebenen Prozeßsteuerungscomputer angezeigten Werte sollten die aktuellen Werte für den gleichen Taktzyklus wiedergeben. Außerdem sollten die für jeden redundanten Prozeßsteuerungscomputer angezeigten Werte auch vom gleichen Taktzyklus stammen. Mit anderen Worten, der Wert 100, der für die Variable AO(123) für den Fuchs geliefert wird, sollte wie in Fig. 6 gezeigt der Wert sein, der während des gleichen Zeitintervalls erhalten worden ist, wie die Eingangsvariable AI(100), die für den Fuchs erhalten wurde. Dies kann als eine horizontale zeitliche Ausrichtung bezeichnet werden. Außerdem sollte der Wert, der für den analogen Ausgang AO(123) für den Fuchs erhalten wird, ebenfalls während des gleichen Zeitintervalls erhalten werden wie der entsprechende analoge Ausgang AO(123) für den Hund. Dies kann als vertikale zeitliche Ausrichtung bezeichnet werden. Die derzeit bevorzugte Ausführungsform implementiert ein System mit sowohl horizontaler als auch vertikaler zeitlicher Ausrichtung.
  • Um für die horizontale zeitliche Ausrichtung zu sorgen, können mehrere unterschiedliche Lösungsansätze verwendet werden. Wie in den Fig. 1 und 2 gezeigt, kann das Anzeigefenster 236 für die Anzeige an einem oder mehreren Arbeitsplätzen 28 oder an irgendeinem geeigneten Anzeige- Endgerät, das mit dem Prozeßinformationssystem 34 verbunden ist, erzeugt werden. Die aktuellen Datenwerte, die im Anzeigefenster angezeigt werden, können von den Prozeßsteuerungscomputern erhalten werden durch Einlesen der Daten in eine Speicherstelle (z. B. im Arbeitsplatzcomputer) zu einem geeigneten Zeitpunkt. Wie in Fig. 2 gezeigt, können die Daten über die intelligente Vorfeldeinrichtung 92 im Operator-Arbeitsplatz 28 eingelesen werden.
  • Es gibt mehrere Möglichkeiten, um für die vertikale zeitliche Ausrichtung im vorliegenden System zu sorgen. Wie in den Fig. 5A-5E gezeigt, ist eine Möglichkeit, die Daten am Punkt P (Fig. 5C) einzulesen, nachdem die Arbitrierung abgeschlossen ist.
  • An diesem Punkt im Zyklus sind die analogen und digitalen Eingangsvariablen alle gelesen worden und irgendwelche Einstellungen während der Arbitrierung durchgeführt worden. Sobald sie in dem Speicher gebündelt sind, werden diese analogen und digitalen Eingangswerte bis zum nächsten Taktzyklus oder wenigstens bis zu dem Zeitpunkt, zu dem das Verarbeitungsintervall 228 endet, gespeichert. Auf diese Weise stellt das System sicher, daß die analogen und digitalen Eingangsvariablen und die analogen und digitalen Ausgangsvariablen zeitlich ausgerichtet sind, d. h. sie stellen den Zustand des Systems während eines einzigen Taktzyklus dar.
  • Eine weitere Möglichkeit zum Bewerkstelligen der horizontalen zeitlichen Ausrichtung ist, das Eingangsdatenlesen zu starten, nachdem das Verarbeitungsintervall angeschlossen ist, wie z. B. am Punkt Q in Fig. 5D. Durch Starten des Einlesens am Punkt Q stammen die Eingangsdaten, die aus den Feldeinheiten gelesen werden, und die Ausgangsdaten, die aus dem Verarbeitungsintervall 228 resultieren, aus dem gleichen Taktzyklus. Eine weitere Möglichkeit zum Bewerkstelligen der horizontalen zeitlichen Ausrichtung ist, das Dateneinlesen während des Hz'- Intervalls zu starten, wie z. B. am Punkt R in Fig. 5E. Das Starten des Einlesens an diesem Punkt stellt ferner sicher, daß die Eingangs- und Ausgangsdaten aus dem gleichen Taktzyklus stammen.
  • Das System sorgt für eine vertikale zeitliche Ausrichtung mittels der Vorgehensweise, in der wenigstens einer der redundanten Computer (im vorangehenden Beispiel der Hund) seine Taktzyklusausführung nach seinem redundanten Gegenstück startet (im vorangehenden Beispiel der Fuchs). Die vertikale zeitliche Ausrichtung wird sichergestellt, da jeder der redundanten Computer für das Lesen der identischen Eingangsdaten verantwortlich ist, und in den meisten Fällen für die Durchführung der gleichen Berechnungs- und Verarbeitungsschritte. Die derzeit bevorzugte Ausführungsform implementiert somit einen lose synchronisierten zeitlichen Ausrichtungsmechanismus, bei dem jeder Prozeßsteuerungscomputer seinen eigenen internen Takt besitzt. In der alternativen Ausführungsform ist es möglich, ein System zu implementieren, das auf einem einzigen Master-Takt beruht, der von allen Prozeßsteuerungscomputern gemeinsam genutzt wird. Ein solches System kann als ein fest synchronisiertes System bezeichnet werden, da der Master-Takt in diesem Fall bestimmt, wann jeder Computer alle benötigten Aufgaben ausführt. Die lose gekoppelte Synchronisierungstechnik wird bevorzugt, da sie die Notwendigkeit der Verwendung eines einzelnen Master-Taktes beseitigt, der dann, wenn er ausfällt, das gesamte System lahm legt. Im bevorzugten lose gekoppelten Synchronisierungsschema legt ein Ausfall eines Computertakts nicht das gesamte System lahm, da die übrigen redundanten Computer weiterhin in Betrieb sind.
  • Im lose gekoppelten Synchronisierungsschema stehen die redundanten Computer über die Hauptverbindung 60 miteinander in Verbindung. Die Hauptverbindung 60 ist in den Fig. 5A-5E mit einer gestrichelten Linie gezeigt. Über diese Hauptverbindung teilt der Fuchs 220a dem Hund 220b mit, daß er einen Taktzyklus gestartet hat, so daß der Hund 220b sein Startsignal ungefähr 2 Millisekunden später erzeugen kann. Über diese Hauptverbindung 60 arbitrieren auch der Fuchs und der Hund während des Arbitrierungsintervalls 226.
  • Die derzeit bevorzugte Ausführungsform erstellt die für die Informationsanzeige erforderlichen Dateien während der Kompilierungszeit. Dies ermöglicht, daß das Informationsanzeigesystem im Gebrauch schneller arbeitet. Das gesamte Prozeßsteuerungsprogramm wird somit von Anweisung zu Anweisung geprüft, wobei eine indizierte Datei erstellt wird, die nicht nur eine Zeichenkette enthält, die die darzustellende Programmanweisung beschreibt, sondern auch den physikalischen Ort auf dem Bildschirm, an dem jede der Variablen erscheinen muß, die dieser Anweisung zugeordnet ist. Die einzelnen Programmanweisungen sind vorzugsweise einer eindeutigen Zeilennummer zugewiesen, die als Schlüssel verwendet wird, um nach der Anweisung in einer Datenbank zu suchen, die eine Zeichenkette oder eine alphanumerische Darstellung der Programmanweisung selbst sowie eine Liste aller Variablen enthält, auf die in Verbindung mit dieser Programmanweisung zugegriffen werden muß. Die Variablenliste wird nicht nur verwendet, um zu identifizieren, auf welche Variablen für eine Echtzeit-Anzeige zugegriffen werden muß, sondern auch um den physikalischen Ort auf dem Bildschirm zu identifizieren, an dem diese Variablen erscheinen. Es wird vorzugsweise ein Datensatz jeder Variablen geliefert, zusammen mit einer Liste aller Zeilennummern, in denen diese Variable erscheint. Auf die Daten kann somit leicht zugegriffen werden, entweder mit einem direkten Eintrag einer Zeilennummer oder durch Anfordern einer Suche aller Zeilennummern, in denen die gewünschte Variable erscheint. In jedem Fall wird die Zeilennummer als Schlüssel verwendet, mit dem die gewünschten Informationen gesucht werden.
  • Bevorzugte Programmiersprache
  • In dem derzeit bevorzugten Programmiersystem wird eine Programmanweisung oder ein Ausdruck verwendet, um den Prozeßsteuerungscomputer anzuweisen, eine spezielle Maßnahme durchzuführen. Das Ergebnis der speziellen Maßnahme kann für den Prozeßsteuerungscomputer intern sein, wie z. B. die Änderung eines Wertes im Speicher, oder extern, wie z. B. die Aktivierung eines Alarms, die Anzeige einer Nachricht oder das Ändern einer Ventilposition. Ein vollständiges Prozeßsteuerungsprogramm enthält typischerweise mehrere solcher Programmanweisungen. Jede Programmanweisung umfaßt eine Zeichenkette alphanumerischer Zeichen in einer oder mehreren Zeilen. Genauer sind die alphanumerischen Zeichen in Sequenzen gruppiert, die Tokens genannt werden. Die Tokens sind die lexikalischen Basiseinheiten der Sprache. Mit anderen Worten, das Token ist die kleinste Spracheinheit, die eine Bedeutung trägt. Einige Beispiele von Tokens umfassen Schlüsselwörter, wie z. B. das Schlüsselwort IF, Variablennamen, wie z. B. DI(101) und AO(112), Konstantennamen wie z. B. AK(100) und DK(101), Variablennamen wie z. B. AC(12) und DC(22), Operatoren wie z. B. LT(< ) und Interpunktion wie z. B. ().
  • Jede Programmanweisung in der derzeit bevorzugten Sprache stellt einen einzelnen Wert dar oder veranlaßt, daß ein bestimmtes Ergebnis eintritt. Zum Beispiel sind die Berechnung einer Variablen, eines WAHR/FALSCH-Digitalwertes, eine Drucknachricht und ein Alarm alles Ergebnisse, die eindeutige Werte besitzen, die durch eine Programmanweisung bestimmt werden. Jede Programmanweisung oder jeder Ausdruck selbst kann in eine linke Seite (manchmal als der L-Wert oder LVAL bezeichnet) und eine rechte Seite (manchmal als der R-Wert oder RVAL bezeichnet) unterteilt werden, wobei die beiden Seiten durch ein "Äquivalenz-Token" getrennt sind. Die linke Seite stellt das "Ergebnis" der Programmanweisung dar. Die rechte Seite kann Operatoren enthalten (wie z. B. +, -, OR, AND, XOR, < , > , usw.) und Operanden (wie z. B. Variablen oder Konstanten), die den Zustand des Ergebnisses bestimmen. Die meisten Ausdrücke können grundsätzlich als arithmetisch, vergleichend oder logisch klassifiziert werden. Kombinationen derselben können ebenfalls in einer einzigen Programmanweisung auftreten.
  • Die Fig. 8 zeigt die Bestandteile einer Programmanweisung. In Fig. 8 sind zwei Programmanweisungen oder Ausdrücke dargestellt, ein arithmetischer Ausdruck bei 300 und ein logischer Ausdruck bei 302. Die linken und rechten Seiten 300L und 300R des arithmetischen Ausdrucks sind getrennt durch "ist definiert als" oder "geht über in", das Gleichheitszeichen ("=") bzw. Äquivalenz-Token 300E. Die linken und rechten Seiten 302L und 302R des logischen Ausdrucks 302 sind getrennt durch das bedingte "geht über in", das IF-Äquivalenz-Token 302E. In Fig. 8 sind ferner zwei aktuelle Ausdrücke gezeigt, die in alphanumerischen Zeichen geschrieben sind. Genauer ist der hier verwendete arithmetische Ausdruck 300:
  • AC(100) = 3 · 6 · [AK(1) + 4].
  • Der logische Ausdruck 302, der in diesem Beispiel verwendet wird, ist:
  • DC(100) IF DI(100) OR DI(101).
  • Anders als bei herkömmlichen Programmiersprachen, die unterschiedlichen Klassen arithmetischer Operatoren einen Vorrang zuweisen (Multiplikation und Division werden vor der Addition und Subtraktion durchgeführt), wird die Auswertung der arithmetischen Ausdrücke in der vorliegenden Sprache durch Abarbeiten von links nach rechts bewerkstelligt, wobei Paare von Termen unter Verwendung desjenigen arithmetischen Operators bewertet werden, der zwischen den Paaren auftritt. Wenn jedes Paar ausgewertet ist, wird das Ergebnis zum ersten Term eines Paares zusammen mit dem nächsten Term im Ausdruck. Wenn einer der Terme in Klammern steht, wird der geklammerte Term in der gleichen Reihenfolge von links nach rechts innerhalb der Klammern zuerst ausgewertet.
  • Anhand der Beschreibung der Fig. 4 wird klar, daß der derzeit bevorzugte Prozeßsteuerungscomputer jede Sekunde alle Programmanweisungen einmal ausführt, die die diesem Computer zugewiesenen Prozeßsteuerungsaufgaben umfassen. Die derzeit bevorzugte Programmiersprache ist so strukturiert, daß sie an diesen Einmalpro-Sekunde-Zyklus angepaßt ist. In Fig. 9 ist die derzeit bevorzugte Programmstruktur mit 304 bezeichnet. Die Programmstruktur umfaßt einen Vorspannabschnitt, der mit Titel 306 bezeichnet ist, in dem der Titel, der Autor und die relevante Versionssteuerungsinformation plaziert werden können. Als nächstes folgt der Initialisierungsabschnitt 308, in welchem die geeigneten Systeminitialisierungsparameter plaziert werden. Diese können z. B. die für das System definierte CPU-Identifikation, die Anzahl der redundanten Prozeßsteuerungscomputer, die das System enthält, eine Deklaration irgendwelcher analoger Konstanten und deren zugehörige Skalierungsfaktoren, die Identität und Definition aller im System verwendeten Rezepte, einschließlich der Anzahl der Rezepte und Komponenten sowie der Werte und Skalierungsfaktoren usw. enthalten.
  • Nach dem Initialisierungsabschnitt ist der 1-Zyklus-pro- Sekunde-Programmanweisungsabschnitt 310 angeordnet, auch mit HZ1 bezeichnet. Auf diesen 1-Hertz-Abschnitt wird in dem in Fig. 4 gezeigten 1-Hertz-Zyklus zugegriffen. Der 1-Hertz-Abschnitt 310 umfaßt einen Dateneingabeabschnitt 312, dem einige Aspekte der Datensammlung im Zeitintervall 224 in Fig. 4 zugeordnet sind. Die Programmstruktur enthält ferner einen Kommunikationsabschnitt 314, dem die in den Zeitintervallen 226 und 232 durchgeführten Kommunikationsvorgänge zugeordnet sind. Der 1-Hertz-Abschnitt enthält den Sequenzabschnitt 316, in welchem die aktuellen Prozeßsteuerungsschritte als Sammlung von getrennt identifizierten, sequentiell ausführbaren Sequenzen fortgeführt sind. Die Verwendung von Sequenzen in der bevorzugten Ausführungsform wird im folgenden genauer beschrieben.
  • Das Ende des Sequenzabschnitts 316 markiert auch das Ende des 1-Hertz-Abschnitts 310. Es sei daran erinnert, daß in der derzeit bevorzugten Ausführungsform das 1-Hertz-(1- Zyklus-pro-Sekunde)-Zeitintervall verwendet wird, da die meisten gesteuerten Prozesse langsam genug reagieren, so daß mit einem 1-Zyklus-pro-Sekunde-Steuerungsintervall eine angemessene Steuerung erhalten wird. Um Aufgaben aufzunehmen, die häufiger als einmal in einer Sekunde überwacht werden müssen, implementiert die Erfindung ein 10-mal-pro-Sekunde- oder 10-Hertz-Zeitintervall und ein 100-mal-pro-Sekunde- oder 100-Hertz-Zeitintervall. In der Programmstruktur 304 sind Abschnitte für die 10-Hertz- und die 100-Hertz-Steuerungsinformationen reserviert. Diese sind bezeichnet mit HZ10 und HZ100 sowie mit den Bezugszeichen 318 bzw. 320. Schließlich ist die gesamte restliche Zeitspanne, die nicht von den Prozeßsteuerungsschritten verwendet wird, für das Hz'-Zeitintervall 232 der Fig. 4 reserviert. Die Programmstruktur 304 enthält Raum für die Auflistung irgendwelcher HZ'-Operationen bei 322.
  • Wie oben erwähnt worden ist, betrachtet die Programmstruktur die Unterteilung eines Prozeßsteuerungsproblems in eine Serie von Sequenzen. In Fig. 9 sind z. B. zwei Sequenzen SEQ(jj) und SEQ(qq) gezeigt. Die Verwendung von Sequenzen kann bewirken, daß das Prozeßsteuerungsprogramm leichter zu lesen und leichter zu managen und zu warten ist. Die Entscheidung, wie ein Prozeßsteuerungsproblem in Sequenzen zu unterteilen ist, wird vom Prozeßsteuerungstechniker gefällt, der für das Schreiben des Programms verantwortlich ist. Die folgenden allgemeinen Richtlinien können angewendet werden, wenn eine Prozeßsteuerungsaufgabe in Sequenzen unterteilt wird:
  • (1) Trennpunkte im Prozeß sind typischerweise Pipelines oder "Schwellpunkte" im Prozeß;
  • (2) eine Einheitsoperation ist ähnlich einer Destillierkolonne und ihrer zugehörigen Ausrüstung (Aufkocher, Überkopfkondensatoren, Pumpen usw.) üblicherweise als eine Sequenz ausgewiesen;
  • (3) eine einzelne Sequenz kann nicht auf mehrere Prozeßsteuerungscomputer verteilt werden; sie nutzt einen Teil der Kapazität eines einzigen Prozeßsteuerungscomputers; und
  • (4) einzelne Sequenzen können nicht verwendet werden, um Rohmaterialien und Zwischenprodukt- oder Endprodukt- Speichertanks darzustellen.
  • Nachdem ein Prozeß in Sequenzen unterteilt worden ist, kann jede Sequenz weiter in kleinere Operationssegmente unterteilt werden, die als Schritte bezeichnet werden. Jeder Schritt innerhalb einer Sequenz gibt eine bestimmte Funktion des gesteuerten Prozesses an. Jeder Schritt beschreibt, was in der gegebenen Sequenz geschieht. Spezielle Prozeßereignisse bestimmen vorzugsweise den Anfang und das Ende jedes Schrittes. Wenn die Ereignisse, die den Schritt kennzeichnen, abgeschlossen sind, ändert sich der Sequenzstatus durch das Übergehen zu einem weiteren Schritt. Somit können Schritte verwendet werden, um nahezu alle Steuerungsmaßnahmen und Alarme für einen gegebenen Prozeß zu koordinieren.
  • Die derzeit bevorzugte Ausführungsform verwendet eindeutige Schrittnummern, um die Schritte voneinander zu unterscheiden. Zum Beispiel besitzt die derzeit bevorzugte Ausführungsform 1.000 Schritte, die zur Verwendung im System zur Verfügung stehen. Die Schritte sind ohne Überlappung für jede Sequenz eindeutig zugewiesen. Wenn somit die Sequenz 2 die Schritte 200 bis 215 enthält, kann die Sequenz 3 mit Schritt 216 beginnen und enthält keine der Schrittnummern, die der Sequenz 2 zugewiesen sind.
  • Die Sequenznumerierung und die Schrittnumerierung ermöglichen dem Programmierer, einen bestimmten Bereich von Programmmanweisungen oder Ausdrücken eindeutig zu identifizieren. Wie im Speicherabbildungsdiagramm der Fig. 3 gezeigt, sind der spezielle Speicherbereich und die Identifizierer für alle verfügbaren Schritte und alle verfügbaren Sequenzen durch die Prozeßsteuerungscomputerarchitektur im voraus definiert. Durch die Zuweisung im voraus können alle redundanten Prozeßsteuerungscomputer in einem System ohne Mehrdeutigkeit auf die gleiche Sequenznummer und Schrittnummer zugreifen (z. B. während der Arbitrierung). Dies bietet einen beträchtlichen Vorteil hinsichtlich der Geschwindigkeit und Zuverlässigkeit. Das im voraus zugewiesene Numerierungsschema stellt sicher, daß alle Prozeßsteuerungscomputer auf eine Sequenznummer oder Schrittnummer zugreifen können, ohne daß es erforderlich ist, zwischenzeitliche Nachschlagoperationen durchzuführen. Der Lösungsansatz ist ferner sehr zuverlässig, da keine Mehrdeutigkeit von einem Prozeßsteuerungscomputer zu einem weiteren besteht. Mit anderen Worten, Sequenz 2 Schritt 202 bezieht sich auf genau die gleiche Sequenz und den gleichen Schritt, unabhängig davon, welcher Prozeßsteuerungscomputer hierauf zugreift.
  • Beratungssystem
  • Um dem Informationsanzeigesystem mehr Vielseitigkeit zu verleihen, ist ein intelligentes Beratungssystem vorgesehen. Dieses Beratungssystem arbeitet in Verbindung mit der Programmanweisungsanzeige. Genauer, das Beratungssystem ist in einem Fenster wie z. B. dem Fenster 352 implementiert. Das Beratungsfenster liefert eine textorientierte Darstellung aller möglichen Zustände der angezeigten digitalen Variablen [z. B. DI(100)], booleschen Ausdrücke [z. B. AI(100) > AI(200)] und booleschen Funktionen [z. B. Funktionen zum Durchführen von Abweichungen oder für zeitverzögerte Ereignisse], die den booleschen Teil der Programmanweisung WAHR bilden können. Diese Informationen werden verwendet, um den Systemoperator über Möglichkeiten zu beraten, die in einer ausge wählten Anweisung bezeichneten Variablen zu manipulieren, um den logischen Teil der Anweisung zu zwingen, einen WAHR-Zustand auszuwerten. Die Analyse, die die Anwendung durchführt, und die resultierende Vorrichtung beruhen auf einer Momentaufnahme der Live-Daten, die unter Verwendung des obenbeschriebenen zeitlich ausgerichteten Datenzugriffmechanismus erhalten wird.
  • Das in Fig. 10 gezeigte Beratungssystem kann ein Expertensystem verwenden, das eine aufrufbare Schnittstelle und eine zugehörige Sammlung von "Operatorberatungs"-Text für die Anzeige nach der Identifizierung einer Situation besitzt.
  • Selbstbewertungssystem
  • Das derzeit bevorzugte System enthält eine Selbstbewertungsoption, die verwendet wird, um den Operator bei der Interpretation von Programmanweisungen zu unterstützen. Diese Option kann freigegeben werden, indem der Cursor auf einen Selbstprüfkasten bewegt wird und ein Mausknopf gedrückt wird. Nachdem die Selbstbewertungsoption auf diese Weise freigegeben ist, haben alle Programmanweisungen, die im Hauptfenster gezeigt sind, die Selbstbewertungsoperation durchgeführt.
  • Die Selbstbewertung bewirkt die Anzeige von zwei Typen von Indikatoren für alle Programmanweisungen, die boolesche Ausdrücke enthalten. In der derzeit bevorzugten Ausführungsform enthalten diese Indikatoren Anzeigewerte, die derzeit WAHR sind, in inverser Videodarstellung, wobei ferner unter Verwendung der Unterstreichung gezeigt wird, wie weit WAHR durch die Anweisung vorgerückt ist.
  • Die folgenden Regeln werden verwendet, um zu ermitteln, wie anzuzeigen ist, was derzeit WAHR ist.
  • (1) Alle Variablen, die ein digitales Format besitzen und die einen Wert WAHR besitzen, werden im inversen Videoformat angezeigt.
  • (2) Der Operand NOT (NICHT) wird im inversen Videoformat angezeigt, wenn er vor einer Variablen oder einem Ausdruck auftritt und wenn die Variable oder der Ausdruck FALSCH ist.
  • (3) Klammern in einer Programmanweisung, die einen WAHREN Ausdruck enthalten, werden im inversen Videoformat angezeigt.
  • (4) Irgendwelche Funktionen (z. B. AI[100] > AI[200]), die WAHR sind, werden im inversen Videoformat angezeigt.
  • Ein Beispiel, wie diese Regeln angewendet werden, ist in Fig. 11 gezeigt. In Fig. 11 ist das inverse Videoformat als Kasten gezeigt. Diesbezüglich können andere visuelle Attribute verwendet werden, wie z. B. Farbänderungen, Farbschattierungsänderungen und dergleichen.
  • Bei der Feststellung, wie weit eine Anweisung WAHR ist, d. h. wie weit WAHR durch die Programmanweisung vorgerückt ist, werden folgende Regeln verwendet.
  • (1) Nur boolesche Variablen, Funktionen und boolesche Ausdrücke werden bewertet.
  • (2) Die Unterstreichung beginnt von links nach rechts.
  • (3) Geklammerte Ausdrücke werden nur dann unterstrichen, wenn der gesamte Ausruck WAHR ist.
  • (4) Nicht-boolesche Variablen und Ausdrücke werden nicht unterstrichen.
  • Ein Beispiel, wie diese Regeln angewendet werden, ist in Fig. 12 gezeigt.
  • Beobachtungsfenster
  • Das Informationsanzeigesystem enthält ein Beobachtungsfenster, das es dem Operator erlaubt, eine Teilmenge der Programmanweisungen auszuwählen, die derzeit im. Hauptfenster angezeigt werden, und diese in einem getrennten Fenster anzuzeigen, das als Beobachtungsfenster bezeichnet wird. Diese Möglichkeit erlaubt dem Operator, das Hauptfenster zu rekonfigurieren, um andere interessierende Elemente zu untersuchen, während eine Ansicht wichtiger Programmanweisungen erhalten bleibt, die im ursprünglichen Hauptfenster angezeigt waren. Wie in Fig. 13 gezeigt, bezieht sich das Beobachtungsfenster 360 auf das Hauptfenster 234. Bei Bedarf kann das Beobachtungsfenster als Ablegerfenster des Hauptfensters implementiert werden. Wenn das Hauptfenster zu einem Symbol verkleinert oder gelöscht wird, wird auch das zugehörige Beobachtungsfenster zu einem Symbol verkleinert oder gelöscht. Das Beobachtungsfenster bietet ferner eine Möglichkeit für den Operator, einen Rat für die obenbeschriebene WAHR-Funktion einzuholen. Bei Bedarf können einem einzigen Hauptfenster mehrere Beobachtungsfenster zugeordnet sein.
  • Live-Daten-Zugriff
  • Wie oben beschrieben worden ist, sammelt das Informationsanzeigesystem Live-Daten von den redundanten Prozeßsteuerungscomputern zu einem vorgegebenen Zeitpunkt während des lose synchronisierten Programmzyklus. Dies kann auf verschiedene Weise implementiert werden. Die derzeit bevorzugte Ausführungsform verwendet jedoch die Schaltung der intelligenten Vorfeldeinrichtung 92 (Fig. 2) zum Speichern der Werte von allen Prozeßsteuerungscomputern für einen späteren Zugriff seitens der Operatorstation 28 oder des Prozeßinformationsystems 34. Um den Speicherbedarf zu verringern, werden die Live- Daten von den Prozeßsteuerungscomputern nur bei Bedarf gesammelt. Mit anderen Worten, wenn eine einzelne Programmanweisung angezeigt wird, die nur drei Variablen verwendet, werden nur diese drei Variablen von den redundanten Prozeßsteuerungscomputern gesammelt. Die derzeit bevorzugte Ausführungsform implementiert dies durch Senden von Datenanforderungsnachrichten über die intelligente Vorfeldeinrichtung 92, die den Variablen entsprechen, die in der im Hauptfenster angezeigten Programmanweisung enthalten sind (und auch in irgendwelchen Ablegerfenstern oder Beobachtungsfenstern). Solange die angezeigte Programmanweisung unverändert bleibt, werden diese Daten in jedem Zyklus aktualisiert und schließlich unterhalb ihrer alphanumerischen Bezeichnung im Hauptfenster angezeigt. Wenn vom Operator eine andere Programmanweisung ausgewählt wird, was das Holen neuer Variablen, erfordert, werden zusätzliche Datenanforderungsnachrichten über die intelligente Vorfeldeinrichtung 92 gesendet. Die derzeit bevorzugte Ausführungsform sendet und empfängt Datenanforderungsnachrichten gleichzeitig. Dies wird gegenüber asynchronen Datenanforderungen bevorzugt, da eine synchrone Benachrichtigung keine individuelle Verfolgung jeder gesendeten Nachricht und kein Warten auf die Rückgabe aller dieser Nachrichten vor dem erneuten Anzeigen der Daten erfordert.
  • Um die Systemleistung weiter zu verbessern und den Speicherüberhangbedarf zu verringern, kann das Live-Daten- Auffrischungssystem automatisch gesperrt werden, wenn Fenster auf Symbolgröße verkleinert sind oder von anderen Fenstern verdeckt sind. Die ankommenden Daten werden vorzugsweise unter Verwendung eines Puffersystems gepuffert, das den Puffer nach der erneuten Auswahl der Programmanweisung automatisch erneut aufbaut.
  • Informationsmodell und funktionale Komponenten
  • In Fig. 14 sind die funktionalen Komponenten der vorliegenden Implementierung gezeigt. Wie gezeigt, bietet das Hauptfenster Zugriff auf verschiedene Optionen, die dem Benutzer erlauben, Informationen in unterschiedlichen Formaten darzustellen und auf andere Komponenten der Erfindung wie z. B. die Beratung für die WAHR-Komponente zuzugreifen. Die Hauptfensterkomponente ist vorzugsweise gezogen, um für Operatoren einen Mechanismus zum Zugreifen auf die dargestellten Optionen zu schaffen, in der gleichen Weise wie auf andere Operatorstationsmerkmale zugegriffen wird. Auf diese Weise wird eine konsistente Schnittstelle geschaffen, die dem Benutzer, erleichtert, mit dem System intuitiv zu arbeiten. In der Darstellung der Fig. 14 kann das graphische Anzeigefenster optional eine graphische Darstellung einer Programmanweisung liefern, die einer Verbindung von Leitungen und Ventilen gleicht, um dem Operator eine konkrete Darstellung des Wahrheitsflusses durch die Programmanweisung zu geben.
  • In Fig. 15 ist das Informationsmodell der derzeit bevorzugten Ausführungsform dargestellt. Es ist klar, daß dieses Informationsmodell der in Fig. 9 beschriebenen Programmstruktur entspricht. Der Initialisierungsabschnitt 364 enthält den Programmcode, der erforderlich ist, um die Prozeßsteuerungscomputervariablen und Peripherievorrichtungen wie z. B. Drucker, Aufzeichnungen und dergleichen zu initialisieren. Der Initialisierungsabschnitt 364 enthält gewöhnlich keinen ausführbaren Code.
  • Der 1-Hertz-Abschnitt 366 greift auf den gesamten Programmcode zu der wenigstens einmal pro Sekunde ausgeführt werden muß. Wie oben erläutert worden ist, ist dies gewöhnlich der Ort, an dem sich alle Prozeßsteuerungsanweisungen befinden. Der 1-Hertz-Abschnitt enthält den Eingabeabschnitt 368, der Zugriffe auf den Programmcode enthält, der die Datenannahme und die zugehörige Verarbeitung durchführt, wie z. B. das Lesen analoger und digitaler Eingänge, das Durchführen einer digitalen Filterung und das Skalieren von Analogwerten. Der 1- Hertz-Abschnitt besitzt ferner einen Kommunikationsabschnitt 370, der Zugriffe auf den Programmcode enthält, der erforderlich ist, um die Kommunikation zwischen den redundanten Prozeßsteuerungscomputern durchzuführen. Der 1-Hertz-Abschnitt enthält ferner einen Sequenzabschnitt 372. Es gibt einen Sequenzabschnitt für jede aktive Sequenz, wobei jeder Sequenzabschnitt Zugriffe auf den Programmcode für diese spezielle Sequenz enthält. Die vorliegende Implementierung erlaubt maximal 99 Sequenzen, die von einem einzigen Programm gesteuert werden können.
  • Zusätzlich zum 1-Hertz-Abschnitt enthält die vorliegende Implementierung ferner einen 10-Hertz-Abschnitt 374 und einen 100-Hertz-Abschnitt 376. Der 10-Hertz-Abschnitt wird verwendet, um Zugriffe auf den Programmcode zu halten, der wenigstens zehn mal pro Sekunde ausgeführt werden muß, während der 100-Hertz-Abschnitt Zugriffe auf den Programmcode enthält, der wenigstens 100 mal pro Sekunde ausgeführt werden muß. Schließlich enthält die Implementierung den Hz'-Abschnitt 378. Dieser Abschnitt enthält Zugriffe auf den Programmcode, der so oft wie möglich ausgeführt werden muß. Wie vorher erläutert worden ist, nutzt der Hz'-Abschnitt alle Zeit, die übrig ist, nachdem die 1-Hertz-, 10-Hertz- und 100-Hertz-Abschnitte ihre Operationen abgeschlossen haben.
  • Wie ferner in Fig. 15 gezeigt, wird klar, daß die vorher beschriebenen Programmabschnitte jeweils eine oder mehrere Programmzeilen umfassen, die durch den Block 380 schematisch gezeigt sind. Die Programmzeilen können in Form von Prozeßsteuerungsprogrammanweisungszeilen 382 oder Textzeilen 384 vorliegen. Eine Programmanweisung 382 umfaßt ein Element eines Prozeßsteuerungsprogramms. Sie wird verwendet, um den Prozeßsteuerungscomputer anzuweisen, eine spezielle Maßnahme durchzuführen. Textzeilen dienen als Dokumentation und werden vom Programm in keiner Weise verwendet. Textzeilen werden identifiziert durch Plazieren eines Kommentarzeichens "C" an einer vordefinierten Stelle, um anzugeben, daß die Zeile eine Textzeile ist. Wie gezeigt, bestehen Programmanweisungszeilen aus Operatoren und Funktionen, wie mit dem Block 386 gezeigt ist, und ferner aus Variablen, wie mit dem Block 388 gezeigt ist. Die vorliegende Implementierung liefert ein vollständiges Komplement der arithmetischen und booleschen Operatoren, sowie der Funktionen zur Durchführung spezieller Prozeßsteuerungsaufgaben. Selbstverständlich kann das Komplement der von einer gegebenen Implementierung gebotenen Funktionen erreicht werden durch Anpassen der Typen der physikalischen Operationen, die in der Anlage gesteuert werden.
  • Die Variablen, die die Programmanweisungszeile bilden, umfassen Datenstrukturen, die alle im voraus definiert sind und im voraus expliziten Speicherstellen innerhalb der Computerarchitektur zugewiesen sind. Diese Variablen können ferner Attribute besitzen, die zusätzliche Informationen über den Zustand einer Prozeßsteuerungsbedingung liefern, wie mit der Variable ausgedrückt wird. Zum Beispiel können digitale Eingänge ein Attribut manuell/automatisch besitzen, das anzeigt, ob der Operator eine bestimmte Variable (und somit die Ausrüstung, die diese steuert) in der automatischen Steuerung durch das Prozeßsteuerungsprogramm plaziert hat. In Fig. 15 sind diese Attribute allgemein mit 390 bezeichnet.
  • Obwohl die bestimmte Anordnung der Programmanweisungen in einem Prozeßsteuerungsprogramm in Abhängigkeit von der Implementierung verändert werden kann, gruppiert die derzeit bevorzugte Ausführungsform die Programmzeilen wie gezeigt in Absätzen 392, Seiten 394 und Themen 396.
  • Aus dem Vorangehenden wird deutlich, daß die vorliegende Erfindung ein Informationsanzeigesystem und eine fest integrierte Programmierumgebung schafft, die für die Prozeßsteuerungsanwendungen ideal geeignet ist. Die redundante Prozeßsteuerung einschließlich der aktiven redundanten Steuerung ist enthalten. Das System ist so beschaffen, daß es dem Operator aktuelle, wichtige Informationen in einer Form liefert, die er schnell und leicht begreifen kann. Das Informationsanzeigesystem ist daher bei der Fehlerbeseitigung in Prozeßsteuerungsprogrammen, bei der Fehlerbehandlung intermittierender und fehlerhafter Systeme und für das einfache Verständnis, wie der Prozeß derzeit gesteuert wird, sehr nützlich. Außerdem erleichtern die zeitlich ausgerichteten aktuellen Datenwerte, die für jeden der redundanten Prozeßsteuerungscomputer gleichzeitig dargestellt werden, erheblich den Übergang von einer Softwareversion zu einer weiteren.

Claims (1)

1. Computergestütztes Prozeßsteuerung-Anzeigesystem zum Transportieren von Informationen über den Zustand eines durch wenigstens einen Prozeßsteuerungscomputer (22) gesteuerten Prozesses an eine Bedienungsperson, gekennzeichnet durch
mehrere textorientiert dargestellte Programmanweisungen (238), die wenigstens einen Teil einer zur Steuerung des Prozesses verwendeten Prozeßsteuerungsstrategie darstellen;
wobei die Programmanweisungen mehrere Bitkombinationen enthalten, die dem gesteuerten Prozeß zugeordnete Steuerparameter darstellen;
eine Einrichtung, die vom Prozeßsteuerungscomputer automatisch Daten erhält und diese dazu verwendet, wenigstens einem Teil der Steuerparameter-Bitkombinationen einen Ist-Zustand (240, 242) zuzuweisen.
2. System nach Anspruch 1, ferner mit einer Einrichtung zum Anzeigen (234), der Ist-Zustände des Teils der Steuerparameter.
3. Computergestütztes Prozeßsteuerung-Anzeigesystem nach Anspruch 1, das enthält:
wenigstens einen Prozeßsteuerungscomputer (22) mit einer Schnittstelleneinrichtung zum Anschließen an einen Steuerpunkt innerhalb des gesteuerten Prozesses und zum Überwachen eines ersten Steuerparameters, der dem Steuerpunkt zugeordnet ist;
ein Prozeßsteuerungsprogramm, das auf dem Prozeßsteuerungscomputer läuft und eine Einrichtung zum Steuern des Verhaltens wenigstens eines Abschnitts des gesteuerten Prozesses besitzt, wobei das Prozeßsteuerungsprogramm als eine Reihe der Programmanweisungen dargestellt werden kann;
einen Anzeigecomputer (28), der mit dem Prozeßsteuerungscomputer verbunden ist, um wenigstens einen Teil der Reihe von die Prozeßsteuerungsprogramme umfassenden Programmanweisungen anzuzeigen;
wobei der Anzeigecomputer (28) ferner eine Datenzugriffs- und -anzeigeeinrichtung besitzt, die den ersten Steuerparameterwert erhält und gleichzeitig angrenzend an seine in der Programmanweisung vorhandene Bitkombination anzeigt, wobei die Bedienungsperson über eine Einrichtung verfügt, die eine visuelle Zuordnung zwischen dem ersten Steuerparameterwert vom Prozeßsteuerungscomputer und der entsprechenden Programmanweisung des Prozeßsteuerungsprogramms herstellt.
4. System nach Anspruch 3, wobei der erste Steuerparameter Live-Daten vom gesteuerten Prozeß repräsentiert.
5. System nach Anspruch 3, wobei der Prozeßsteuerungscomputer ferner eine Schnittstelleneinrichtung (26) zum Anschließen an einen zweiten Steuerpunkt innerhalb des gesteuerten Prozesses und zum Überwachen eines zweiten Steuerparameters, der dem zweiten Steuerpunkt zugeordnet ist, besitzt.
6. System nach Anspruch 5, wobei die Reihe von Quellanweisungen wenigstens eine Bitkombination enthält, um den zweiten Parameter darzustellen; und wobei der Anzeigecomputer (28) ferner eine Datenzugriffs- und -anzeigeeinrichtung enthält, die den zweiten Parameter erhält und gleichzeitig angrenzend an seine in der Programmanweisung vorhandene Bitkombination anzeigt, wobei die Bedienungsperson über eine Einrichtung verfügt, um den ersten Parameterwert und den zweiten Parameterwert vom Prozeßsteuerungscomputer visuell zu vergleichen.
7. System nach Anspruch 1 oder 3, ferner mit mehreren redundanten Prozeßsteuerungscomputern (22).
6. System nach Anspruch 7, ferner mit einer Einrichtung zum Anzeigen der Ist-Zustände des Teils der Steuerparameter.
9. System nach Anspruch 7, wobei die Prozeßsteuerungscomputer so beschaffen sind, daß sie im wesentlichen redundante Programmanweisungen verarbeiten.
10. System nach Anspruch 7, wobei die Prozeßsteuerungscomputer so beschaffen sind, daß sie im wesentlichen übereinstimmende Programmanweisungen verarbeiten.
11. System nach Anspruch 7, wobei die Prozeßsteuerungscomputer in bezug auf einen gemeinsamen relativen Taktzyklus synchronisiert sind.
12. System nach Anspruch 7, wobei die Einrichtung zum automatischen Erhalten von Daten so beschaffen ist, daß sie durch Erhalten von Daten von jedem der Prozeßsteuerungscomputer (22) während desselben relativen Taktzyklus eine vertikale Zeitausrichtung erzielt.
13. System nach Anspruch 7, wobei die Prozeßsteuerungscomputer so beschaffen sind, daß sie jeweils einen Taktzyklus definieren, und wobei jeder Computer so beschaffen ist, daß er sämtliche den Teil der Prozeßsteuerungsstrategie darstellenden Programmanweisungen während eines einzelnen Taktzyklus vollständig verarbeitet.
19. System nach Anspruch 7, ferner mit einer Einrichtung zum Herstellen einer Kommunikation (24) zwischen den Prozeßsteuerungscomputern, wobei die Kommunikation dazu verwendet wird, die Prozeßsteuerungscomputer auf einen gemeinsamen relativen Taktzyklus zu synchronisieren.
15. System nach den Ansprüchen 7 und 11, wobei die Einrichtung zum automatischen Erhalten von Daten so beschaffen ist, daß sie durch Erhalten der Daten für mehrere verschiedene Bitkombinationen von jedem der Prozeßsteuerungscomputer während desselben relativen Taktzyklus eine horizontale Zeitausrichtung erzielt.
16. System nach Anspruch 7, wobei jeder der Prozeßsteuerungscomputer so beschaffen ist, daß er einen Taktzyklus erzeugt, in dem die Prozeßsteuerungsstrategie vollständig ausgeführt wird.
17. System nach Anspruch 16, wobei der Taktzyklus ein im voraus definiertes Zeitintervall enthält, in dem Daten automatisch erhalten werden.
18. System nach Anspruch 16, wobei die Prozeßsteuerungscomputer so beschaffen sind, daß sie wenigstens ein Ausgangssignal erzeugen, und wobei das Signal während eines im voraus definierten Zeitintervalls innerhalb des Taktzyklus ausgegeben wird.
19. System nach Anspruch 1, wobei
die mehreren Bitkombinationen wenigstens eine L- Wert-Bitkombination und wenigstens eine R-Wert -Bitkombination, wovon jede einen Boolschen Abschnitt besitzt, enthalten;
die Einrichtung zum automatischen Erhalten von Daten vom gesteuerten Prozeß so beschaffen ist, daß sie die Daten verwendet, um den R-Wert-Bitkombinationen einen wirklichen Boolschen Zustand für jede der Bitkombinationen zuzuweisen;
wobei das System ferner eine Einrichtung enthält, die eine textorientierte Darstellung sämtlicher möglicher Zustände der Boolschen Abschnitte der R-Werte, die den Boolschen Abschnitt des L-Werts WAHR machen, erzeugt, wobei Informationen über den Zustand der Prozeßsteuerungsstrategie an die Bedienungsperson tranportiert wird.
20. System nach Anspruch 19, ferner mit einer Einrichtung zum Anzeigen der textorientiert dargestellten Programmanweisung, wobei unter Verwendung eines ersten visuell unterscheidbaren Anzeigeattributs Bitkombinationen dargestellt werden, die momentan WAHR sind, und unter Verwendung eines zweiten visuell unterscheidbaren Anzeigeattributs Bitkombinationen dargestellt werden, die momentan FALSCH sind, wobei Informationen über den Zustand der Prozeßsteuerungsstrategie an die Bedienungsperson transportiert werden.
21. System nach Anspruch 1, ferner mit
einer Einrichtung zum Herstellen eines Hauptanzeigefensters (236) und eines Beobachtungsfensters (360), das dem Hauptanzeigefenster zugehört und der Anzeige der textorientiert dargestellten Informationen dient;
einer Einrichtung zum Wählen einer ersten Untermenge der mehreren textorientiert dargestellten Programmanweisungen und zum Anzeigen der ersten Untermenge in dem Beobachtungsfenster;
einer Einrichtung, die ohne Änderung der ersten gewählten Untermenge eine zweite Untermenge der mehreren textorientiert dargestellten Programmanweisungen wählt und die erste Untermenge im Hauptfenster anzeigt;
wobei das Anzeigen der ersten Untermenge in dem Beobachtungsfenster und das Anzeigen der zweiten Unter menge im Hauptfenster unabhängig ausgeführt werden, so daß die Wahl der ersten Untermenge durch eine Änderung der Wahl der zweiten Untermenge unverändert bleibt, wobei Informationen über den Zustand der ersten und der zweiten Untermenge unabhängig voneinander und gleichzeitig an die Bedienungsperson transportiert werden.
22. System nach Anspruch 3, wobei jeder der mehreren Prozeßsteuerungscomputer ferner eine Schnittstelleneinrichtung zum Anschließen an einen zweiten gemeinsamen Punkt in dem gesteuerten Prozeß und zum Überwachen eines zweiten gemeinsamen Parameters, der dem zweiten gemeinsamen Punkt zugeordnet ist, besitzt.
23. System nach Anspruch 22, wobei die Bedienungsperson über eine Einrichtung verfügt, um die ersten gemeinsamen Parameterwerte und die zweiten Parameterwerte von den mehreren Steuerungscomputern visuell zu vergleichen.
24. Computergestütztes Prozeßsteuerung-Anzeigeverfahren zum Transportieren von Informationen über den Zustand eines durch wenigstens einen Prozeßsteuerungscomputer (22) gesteuerten Prozesses an eine Bedienungsperson, gekennzeichnet durch die folgenden Schritte:
Verwenden mehrerer textorientiert dargestellter Programmanweisungen (238), um wenigstens einen Teil einer zur Steuerung des Prozesses verwendeten Prozeßsteuerungsstrategie darzustellen;
wobei die Programmanweisungen mehrere Bitkombinationen enthalten, die dem gesteuerten Prozeß zugeordnete Steuerungsparameter darstellen;
automatisches Erhalten von Daten vom Prozeßsteuerungscomputer und Verwenden der Daten, um wenigstens einem Teil der Steuerungsparameter-Bitkombinationen einen Ist-Zustand (240, 242) zuzuweisen.
25. Verfahren nach Anspruch 24, ferner mit dem Schritt des Anzeigens der Ist-Zustände des Teils der Steuerungsparameter.
26. Verfahren nach Anspruch 24, gekennzeichnet durch den Schritt des Steuerns des Zustands des Prozesses.
27. Verfahren nach Anspruch 26, ferner mit dem Schritt des Anzeigens der Ist-Zustände des Teils der Steuerungsparameter.
28. Verfahren nach Anspruch 26, ferner mit dem Schritt des Verwendens der Prozeßsteuerungscomputer, um im wesentlichen redundante Programmanweisungen zu verarbeiten.
29. Verfahren nach Anspruch 26, ferner mit dem Schritt des Verwendens der Prozeßsteuerungscomputer, um im wesentlichen übereinstimmende Programmanweisungen zu verarbeiten.
30. Verfahren nach Anspruch 26, ferner mit dem Schritt des Synchronisierens der Prozeßsteuerungscomputer auf einen gemeinsamen relativen Taktzyklus.
31. Verfahren nach Anspruch 26, ferner mit dem Schritt des Synchronisierens der Prozeßsteuerungscomputer auf einen gemeinsamen relativen Taktzyklus, wobei der Schritt des automatischen Erhaltens von Daten ausgeführt wird, um durch Erhalten von Daten von jedem der Prozeßsteuerungscomputer während desselben relativen Taktzyklus eine vertikale Zeitausrichtung zu erzielen.
32. Verfahren nach Anspruch 26, wobei die Prozeßsteuerungscomputer jeweils einen Taktzyklus definieren und wobei jeder Computer sämtliche Programmanweisungen, die den Teil der Prozeßsteuerungsstrategie darstellen, während eines einzigen Taktzyklus vollständig verarbeitet.
33. Verfahren nach Anspruch 26, ferner mit den Schritten des Herstellens einer Kommunikation zwischen den Prozeßsteuerungscomputern und des Verwendens der Kommunikation, um die Prozeßsteuerungscomputer auf einen gemeinsamen relativen Taktzyklus zu synchronisieren.
34. Verfahren nach Anspruch 26, ferner mit dem Schritt des Synchronisierens der Prozeßsteuerungscomputer auf einen gemeinsamen relativen Taktzyklus, wobei der Schritt des automatischen Erhaltens von Daten ausgeführt wird, um durch Erhalten von Daten für mehrere verschiedene Bitkombinationen von jedem der Prozeßsteuerungscomputer während desselben relativen Taktzyklus eine horizontale Zeitausrichtung zu erzielen.
35. Verfahren nach Anspruch 26, wobei jeder der Prozeßsteuerungscomputer einen Taktzyklus erzeugt, in dem die Prozeßsteuerungsstrategie vollständig ausgeführt wird.
36. Verfahren nach Anspruch 35, wobei der Taktzyklus ein im voraus definiertes Zeitintervall enthält, in dem Daten automatisch erhalten werden.
37. Verfahren nach Anspruch 35, wobei die Prozeßsteuerungscomputer wenigstens ein Ausgangssignal erzeugen und wobei das Signal während eines im voraus definierten Zeitintervalls innerhalb des Taktzyklus ausgegeben wird.
DE69414609T 1993-12-23 1994-12-21 Informationsanzeigesystem zur aktiven redundanten rechnergestützten prozesssteuerung Expired - Fee Related DE69414609T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/173,407 US5491625A (en) 1993-12-23 1993-12-23 Information display system for actively redundant computerized process control
PCT/US1994/014330 WO1995017706A2 (en) 1993-12-23 1994-12-21 Information display system for actively redundant computerized process control

Publications (2)

Publication Number Publication Date
DE69414609D1 DE69414609D1 (de) 1998-12-17
DE69414609T2 true DE69414609T2 (de) 1999-07-22

Family

ID=22631867

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69414609T Expired - Fee Related DE69414609T2 (de) 1993-12-23 1994-12-21 Informationsanzeigesystem zur aktiven redundanten rechnergestützten prozesssteuerung

Country Status (8)

Country Link
US (1) US5491625A (de)
EP (1) EP0764294B1 (de)
JP (1) JPH09509511A (de)
AT (1) ATE173344T1 (de)
CA (1) CA2179298A1 (de)
DE (1) DE69414609T2 (de)
ES (1) ES2126247T3 (de)
WO (1) WO1995017706A2 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19947065A1 (de) * 1999-09-30 2001-04-05 Siemens Ag Darstellung von hochbitratigen Daten
DE102005036475B3 (de) * 2005-08-03 2007-04-12 Kress, Wolfram Verfahren zur sicheren Bedienung und Programmierung sicherheitsgerichteter Geräte

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768119A (en) * 1996-04-12 1998-06-16 Fisher-Rosemount Systems, Inc. Process control system including alarm priority adjustment
JP3582230B2 (ja) * 1996-06-04 2004-10-27 三菱電機株式会社 制御システム
EP0825506B1 (de) 1996-08-20 2013-03-06 Invensys Systems, Inc. Verfahren und Gerät zur Fernprozesssteuerung
US5790397A (en) * 1996-09-17 1998-08-04 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US5790437A (en) * 1996-11-26 1998-08-04 Watlow Electric Manufacturing Company Graphical interface for programming ramping controllers
DE19718284C2 (de) * 1997-05-01 2001-09-27 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Überwachen einer Anlage mit mehreren Funktionseinheiten
US6748451B2 (en) 1998-05-26 2004-06-08 Dow Global Technologies Inc. Distributed computing environment using real-time scheduling logic and time deterministic architecture
AT412131B (de) * 1998-11-24 2004-09-27 Automationx Software For Ind A Automatisierungssystem zur lösung einer prozesstechnischen aufgabenstellung und verfahren hierzu
US6367031B1 (en) * 1998-12-17 2002-04-02 Honeywell International Inc. Critical control adaption of integrated modular architecture
DE19918270A1 (de) * 1999-04-22 2000-10-26 Abb Patent Gmbh Verfahren zur bedarfsabhängigen Berechnung einer Funktion
US6647301B1 (en) * 1999-04-22 2003-11-11 Dow Global Technologies Inc. Process control system with integrated safety control system
AU5273100A (en) * 1999-05-17 2000-12-05 Foxboro Company, The Methods and apparatus for control configuration with versioning, security, composite blocks, edit selection, object swapping, formulaic values and other aspects
US7089530B1 (en) * 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
US6788980B1 (en) * 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
US6473660B1 (en) * 1999-12-03 2002-10-29 The Foxboro Company Process control system and method with automatic fault avoidance
FR2838532B1 (fr) * 2002-04-10 2004-07-30 Airbus France Systeme et procede de controle de plusieurs actionneurs
US20040034440A1 (en) * 2002-08-14 2004-02-19 Richard Middlebrook Golf handicap and merchandising kiosk
DE10348563B4 (de) 2002-10-22 2014-01-09 Fisher-Rosemount Systems, Inc. Integration von Grafikdisplayelementen, Prozeßmodulen und Steuermodulen in Prozeßanlagen
US9983559B2 (en) * 2002-10-22 2018-05-29 Fisher-Rosemount Systems, Inc. Updating and utilizing dynamic process simulation in an operating process environment
US6813527B2 (en) * 2002-11-20 2004-11-02 Honeywell International Inc. High integrity control system architecture using digital computing platforms with rapid recovery
US7761923B2 (en) * 2004-03-01 2010-07-20 Invensys Systems, Inc. Process control methods and apparatus for intrusion detection, protection and network hardening
US7680970B2 (en) * 2004-10-22 2010-03-16 Fisher-Rosemount Systems, Inc. Method and system for batch process arbitration in a process control system
US20060123098A1 (en) * 2004-11-11 2006-06-08 Ipdev Multi-system auto-failure web-based system with dynamic session recovery
US20060155753A1 (en) * 2004-11-11 2006-07-13 Marc Asher Global asynchronous serialized transaction identifier
US20060155770A1 (en) * 2004-11-11 2006-07-13 Ipdev Co. System and method for time-based allocation of unique transaction identifiers in a multi-server system
SE529634C2 (sv) * 2006-03-02 2007-10-09 Abb Ab En metod för att jämföra variabelvärden erhållna från olika versioner av ett applikationsprogram samt ett automationssystem och en styrenhet
SE529676C2 (sv) * 2006-03-02 2007-10-23 Abb Ab En metod för att utvärdera en applikation, ett automationssystem och en styrenhet
WO2007123753A2 (en) * 2006-03-30 2007-11-01 Invensys Systems, Inc. Digital data processing apparatus and methods for improving plant performance
US20080189718A1 (en) * 2007-02-02 2008-08-07 The Mathworks, Inc. Scalable architecture
US20090076628A1 (en) * 2007-09-18 2009-03-19 David Mark Smith Methods and apparatus to upgrade and provide control redundancy in process plants
CN104407518B (zh) 2008-06-20 2017-05-31 因文西斯系统公司 对用于过程控制的实际和仿真设施进行交互的系统和方法
US8463964B2 (en) * 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
US8127060B2 (en) 2009-05-29 2012-02-28 Invensys Systems, Inc Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
EP2309354B1 (de) * 2009-10-01 2013-03-20 Siemens Aktiengesellschaft Vorrichtung und Verfahren zur Simulation
EP2811354A1 (de) * 2013-06-03 2014-12-10 Siemens Aktiengesellschaft Prozessautomatisierungssystem mit einer zentralen Rechnereinheit
CN104049621B (zh) * 2014-07-03 2016-09-28 中南大学 一种基于上位机和可编程控制器的系统辨识方法
JP6407919B2 (ja) 2016-06-15 2018-10-17 ファナック株式会社 数値制御装置および変数判定方法
US10878140B2 (en) 2016-07-27 2020-12-29 Emerson Process Management Power & Water Solutions, Inc. Plant builder system with integrated simulation and control system configuration
US11418969B2 (en) 2021-01-15 2022-08-16 Fisher-Rosemount Systems, Inc. Suggestive device connectivity planning

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4500951A (en) * 1981-01-07 1985-02-19 Hitachi, Ltd. Plant control system
DE3225455C2 (de) * 1982-07-07 1986-07-17 Siemens AG, 1000 Berlin und 8000 München Verfahren zum sicheren Betrieb eines redundanten Steuersystems
US4562529A (en) * 1982-09-01 1985-12-31 Programasyst Limited Control of real time industrial processes
US4641269A (en) * 1983-01-26 1987-02-03 Emhart Industries, Inc. Programmable control system for glassware forming machines
US5157595A (en) * 1985-07-19 1992-10-20 El Paso Technologies, Company Distributed logic control system and method
US5400246A (en) * 1989-05-09 1995-03-21 Ansan Industries, Ltd. Peripheral data acquisition, monitor, and adaptive control system via personal computer
US5162986A (en) * 1990-10-19 1992-11-10 Allen-Bradley Company, Inc. Remote downloading and uploading of motion control program information to and from a motion control I/O module in a programmable controller
US5301100A (en) * 1991-04-29 1994-04-05 Wagner Ferdinand H Method of and apparatus for constructing a control system and control system created thereby
US5265004A (en) * 1991-10-15 1993-11-23 Allen-Bradley Company, Inc. Sequence controller with combinatorial Boolean logic

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19947065A1 (de) * 1999-09-30 2001-04-05 Siemens Ag Darstellung von hochbitratigen Daten
DE102005036475B3 (de) * 2005-08-03 2007-04-12 Kress, Wolfram Verfahren zur sicheren Bedienung und Programmierung sicherheitsgerichteter Geräte

Also Published As

Publication number Publication date
WO1995017706A3 (en) 1997-02-13
DE69414609D1 (de) 1998-12-17
ES2126247T3 (es) 1999-03-16
WO1995017706A2 (en) 1995-06-29
EP0764294B1 (de) 1998-11-11
JPH09509511A (ja) 1997-09-22
ATE173344T1 (de) 1998-11-15
CA2179298A1 (en) 1995-06-29
EP0764294A1 (de) 1997-03-26
US5491625A (en) 1996-02-13

Similar Documents

Publication Publication Date Title
DE69414609T2 (de) Informationsanzeigesystem zur aktiven redundanten rechnergestützten prozesssteuerung
DE69809254T2 (de) Architektur eines hybriden echzeitsteuerungssystems und verfahren zu seinem betrieb
DE3855166T2 (de) Selbstkonfiguration von Knotenpunkten in einem verteilten, auf Nachrichten gegründeten Betriebssystem
DE3610433C2 (de) Verfahren zum Steuern einer Maschine mit einer speicherprogrammierbaren Steuerung mit Funktionsplaninterpreter
DE69308293T2 (de) Globales prozesssteuerungsinformationssystem und verfahren
DE112018002293T5 (de) Industrielles steuerungssystem mit offener architektur
WO1995017706A9 (en) Information display system for actively redundant computerized process control
EP1476829A2 (de) Engineeringverfahren und engineeringsystem f r industrielle automatisierungssysteme
EP1182528A2 (de) Industrielle Steuerung auf der Basis verteilbarer Technologischer Objekte
DE10127722A1 (de) System zur Entwicklung eines Anwendungssystems und dessen Implementierung
DE102007046965A1 (de) Dynamische Modifikationsfunktionsblöcke zur Verwendung in einem Prozesssteuerungssystem
DE112010005955T5 (de) Steuerungssystem das während des Betriebs rekonfigurierbar ist, und Verfahren dafür
EP3538960A1 (de) Ablaufsteuerung von programmmodulen
EP1238318B1 (de) Automatisierungsgerät und aufdat-verfahren
WO2003071417A2 (de) Softwareapplikation, softwarearchitektur und verfahren zur erstellung von softwareapplikationen, insbesondere für mes-systeme
EP0782722B1 (de) Verfahren und vorrichtung zur steuerung und aktivierung von miteinander mittels eines bussystems vernetzten sensoren und/oder aktuatoren
EP1137972B1 (de) Automatisierungssystem zur lösung einer prozesstechnischen aufgabenstellung und verfahren hierzu
DE19614748A1 (de) Fehlerdiagnose-System, -Anordnung und -Verfahren
EP2407842A2 (de) Verfahren zur Inbetriebnahme von Maschinen oder Maschinen einer Maschinenserie und Projektierungssystem
EP1653308B1 (de) System und Verfahren zur Speicherung und Bereitstellung von Informationen
EP0525214B1 (de) Verfahren zum Betreiben eines Automatisierungsgeräts
EP0707248A1 (de) Verfahren zur Aktivierung bzw. Deaktivierung von Teilprogrammen mittels über Programmattribute gesteuerten Sichten in einem bevorzugt auf Zustandsgraphen basierenden Automatisierungssystem
DE102008023873A1 (de) Verfahren zum Betrieb eines Antriebssystems
EP1536328B1 (de) Datenverarbeitungssystem mit automatisierbarer Verwaltung und Verfahren zur automatisierten Verwaltung eines Datenverarbeitungssystems
DE69710200T2 (de) Verfahren und system für multifadenbuszugriff bei datenübertragung und -aufnahme in einem prozesssteuerungssystem

Legal Events

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