DE102004042550B4 - Zustandsautomat-Funktionsblock mit durch den Nutzer veränderlicher Konfigurationsdatenbank für Zustandsübergänge - Google Patents

Zustandsautomat-Funktionsblock mit durch den Nutzer veränderlicher Konfigurationsdatenbank für Zustandsübergänge Download PDF

Info

Publication number
DE102004042550B4
DE102004042550B4 DE102004042550.7A DE102004042550A DE102004042550B4 DE 102004042550 B4 DE102004042550 B4 DE 102004042550B4 DE 102004042550 A DE102004042550 A DE 102004042550A DE 102004042550 B4 DE102004042550 B4 DE 102004042550B4
Authority
DE
Germany
Prior art keywords
state
state machine
input
cells
procedure
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 - Lifetime
Application number
DE102004042550.7A
Other languages
English (en)
Other versions
DE102004042550A1 (de
Inventor
Gary K. Law
Michael G. Ott
Kent A. Burr
Godfrey R. Sherriff
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.)
Fisher Rosemount Systems Inc
Original Assignee
Fisher Rosemount Systems Inc
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 Fisher Rosemount Systems Inc filed Critical Fisher Rosemount Systems Inc
Publication of DE102004042550A1 publication Critical patent/DE102004042550A1/de
Application granted granted Critical
Publication of DE102004042550B4 publication Critical patent/DE102004042550B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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/045Programme control other than numerical control, i.e. in sequence controllers or logic controllers using logic state machines, consisting only of a memory or a programmable logic device containing the logic for the controlled machine and in which the state of its outputs is dependent on the state of its inputs or part of its own output states, e.g. binary decision controllers, finite state controllers
    • 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/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41835Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by programme execution
    • 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/23Pc programming
    • G05B2219/23258GUI graphical user interface, icon, function bloc editor, labview
    • 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/23Pc programming
    • G05B2219/23289State logic control, finite state, tasks, machine, fsm
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Programmable Controllers (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

Verfahren für die Konfigurierung eines einer Prozessanlage zugeordneten Zustandsautomaten, welcher als Funktionsblocks implementiert ist, über eine Rechenvorrichtung mit einer Display- und einer Eingabevorrichtung, wobei der Zustandsautomat auf der Grundlage von Konfigurationsdaten des Zustandsautomaten und einem oder mehreren Eingängen des Zustandsautomaten zwischen den Zuständen übergeht, wobei die Eingänge des Zustandsautomaten mit dem Betrieb der Prozessanlage verbunden sind, wobei das Verfahren aufweist:Bereitstellung einer grafischen Nutzerschnittstelle über die Display-Vorrichtung, wobei die grafische Nutzerschnittstelle eine Vielzahl von grafischen Elementen umfasst, wobei die grafischen Elemente eine erste Vielzahl von Zellen umfassen, die dem Funktionsblock zugeordnet sind, der in einer Matrix mit einer ersten Dimension und einer zweiten Dimension angeordnet ist, wobei Positionen entlang der ersten Dimension Zustandsmaschinenzuständen entsprechen und Positionen entlang der zweiten Dimension Eingänge des Zustandsautomaten entsprechen, so dass Zellen in der ersten Vielzahl von Zellen Eingangs-/Zustandspaare definieren, die der Position der Zellen relativ zu der ersten und zweiten Dimension entsprechen;Empfangen von Zustandsübergangsdaten, die mit einem oder mehreren der Vielzahl von grafischen Elementen über die Eingabevorrichtung verbunden sind, wobei die Zustandsübergangsdaten einen oder mehrere nächste Zustände feststellen, in die die Zustandsmaschine im Anschluss an Bedingungen in der Prozessanlage übergeht, die den Eingabe/Zustandspaaren entsprechen, die durch eine oder mehrere der Zellen der ersten Vielzahl von Zellen definiert sind; und Speichern der Zustandsübergangsdaten auf dem ersten computerlesbaren Medium, das mit dem Funktionsblock verbunden ist.

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich allgemein auf Funktionsblöcke zur Nutzung in Prozessanlagen und im Besonderen auf die Konfigurierung und Implementierung eines mit einer Prozessanlage verbundenen Zustandsautomaten.
  • ERFINDUNGSHINTERGRUND
  • Prozesssteuerungssysteme, wie sie in der chemischen Industrie, der Petrochemie und anderen Prozessen eingesetzt werden, umfassen typischerweise ein oder mehrere, über analoge, digitale oder kombinierte analog/digitale Busse oder Leitungen kommunikativ mit mindestens einer Host- oder Bediener-Workstation und einer oder mehreren Feldgeräten verbundene Prozesssteuerungsgeräte. Die Feldgeräte, bei denen es sich beispielsweise um Ventile, Ventilsteller, Schalter und Messwertumformer (z.B. Temperatur-, Druck- und Durchflusssensoren) handeln kann, führen Funktionen innerhalb der Prozessanlage aus, wie Öffnen und Schließen von Ventilen und das Messen von Prozessparametern. Die Prozesssteuerungsgeräte empfangen Signale von Prozessmessungen, die von den Feldgeräten vorgenommen wurden, und/oder andere, den Feldgeräten zugehörige Informationen, nutzen diese Information, um Steuerungsroutinen zu implementieren und erzeugen dann Steuerungssignale, die über die Busse oder Leitungen an die Feldgeräte abgesetzt werden, um den Prozessbetrieb zu steuern. Information von den Feldgeräten und den Steuerungsgeräten wird typischerweise einer oder mehreren Applikationen zur Verfügung gestellt, die von der Bediener-Workstation ausgeführt werden, um einem Bediener die Ausführung jeder gewünschten Funktion in Bezug auf den Prozess zu ermöglichen, wie beispielsweise die Konfigurierung des Prozesses, die Anzeige des aktuellen Prozesszustands, die Änderung des Prozessbetriebs etc.
  • Darüber hinaus ist in vielen Prozessen ein separates Sicherheitssystem bereitgestellt, um bedeutende sicherheitsrelevante Probleme innerhalb der Prozessanlage zu detektieren, und um automatisch Ventile zu schließen, die Energiezufuhr zu Vorrichtungen zu unterbrechen, Ströme innerhalb der Anlage zu steuern etc., wenn ein Problem auftritt, das ernsthafte Schäden an der Anlage verursachen oder solche nach sich ziehen könnte, etwa ein Austreten toxischer Chemikalien, eine Explosion etc. Diese Sicherheitssysteme verfügen typischerweise über ein oder mehrere, von den normalen Steuerungsgeräten für die Prozesssteuerung getrennte Steuerungsgeräte, die als Logiksolver bezeichnet werden, und die über separate Busse oder Kommunikationsleitungen mit innerhalb der Anlage installierten Sicherheitsfeldgeräten verbunden sind. Die Logiksolver nutzen die Sicherheitsfeldgeräte, um Prozessbedingungen zu detektieren, die mit signifikanten Ereignissen wie z.B. der Position bestimmter Sicherheitsschalter oder Absperrventile, Über- oder Unterschreitung bestimmter Prozessgrößen, der Funktionsweise wichtiger Energieversorgungs- oder Steuerungseinrichtungen, der Funktion von Vorrichtungen zur Detektierung von Fehlersituationen etc. verbunden sind, um „Ereignisse“ innerhalb der Prozessanlage zu detektieren. Wenn ein Ereignis (typischerweise als eine „Ursache“ bezeichnet) detektiert wird, veranlasst das Sicherheitssteuerungsgerät Maßnahmen (typischerweise als „Wirkung“ bezeichnet) zur Begrenzung der schädlichen Auswirkung des Ereignisses, beispielsweise das Schließen von Ventilen, das Abschalten von Geräten, die Unterbrechung der Energiezufuhr zu Teilen der Anlage etc. Ganz allgemein umfassen diese Maßnahmen oder Wirkungen das Steuern von Sicherheitsvorrichtungen in einen abgeschalteten oder „sicheren“ Betriebsmodus, der so gewählt ist, dass eine schwerwiegende oder gefahrenträchtige Bedingung innerhalb der Prozessanlage verhindert wird.
  • Systeme innerhalb einer Prozessanlage, wie z.B. Prozesssteuerungssysteme und Sicherheitssysteme, können typischerweise den Zustand verschiedener Prozesse und/oder der Systeme selbst überwachen. An ein System abgesetzte Eingangssignale können die Änderung des vom System überwachten Zustands auslösen und vom System erzeugte Ausgangssignale können zusätzlich zu den Eingangssignalen zum System vom aktuellen Zustand des Systems abhängen. Gegenwärtig kann der Zustand eines Systems unter Nutzung von in einer Programmiersprache geschriebenen Routinen verfolgt werden. Das Schreiben dieser Routinen kann umständlich, zeitraubend und fehlerträchtig sein. In Sicherheitssystemen können derartige Fehler schwerwiegende Folgen nach sich ziehen, da eine Fehlfunktion des Sicherheitssystems zu schweren Verletzungen oder sogar zum Tod von Anlagenpersonal und möglicherweise zu Schäden in Höhe von mehreren Millionen Dollar bei Ausrüstung und Material an der Anlage führen kann.
  • Der Zustand eines Systems kann auch unter Nutzung einer Programmiertechnik für programmierbare Steuerungsgeräte überwacht werden, die den IEC-Normen entspricht und allgemein als „sequentieller Funktionsplan“ (gemäß der IEC-Norm 61131-3) bezeichnet wird. Wie dem Fachmann jedoch bekannt ist, kann es schwierig sein, einen sequentiellen Funktionsplan zu nutzen, um den Zustand eines Systems zu überwachen. Außerdem kann, wie das Schreiben der Routinen in einer Programmiersprache, das Erzeugen eines sequentiellen Funktionsplans umständlich, zeitraubend und fehlerträchtig sein.
  • Die Druckschrift WO 1999/09498 A1 offenbart ein computerimplementiertes System und Verfahren zur automatischen Erzeugung von Funktionalität auf Hardwareebene, z.B. programmierbare Hardware oder FPGAs, als Reaktion auf ein von einem Benutzer erstelltes graphisches Programm. Dies ermöglicht dem Benutzer die Entwicklung oder Definition von Gerätefunktionalität unter Verwendung grafischer Programmiertechniken, während das resultierende Programm direkt in der Hardware arbeiten kann.
    Die Druckschrift US 2002/0194218 A1 offenbart ein Verfahren umfassend: die Erzeugung einer Matrixdatenbank mit Daten, die einen Eingangsparameter, eine Ausgangsreaktion und eine Beziehung zwischen dem Eingangsparameter und der Ausgangsreaktion definieren. Die definierenden Daten der Matrixdatenbank werden an eine Matrixfunktionseinheit übertragen, wobei die Matrixfunktionseinheit eine Eingangsparameterfunktionseinheit, eine Ausgangsantwortfunktionseinheit und eine Schnittpunktfunktionseinheit umfasst. Die Eingabeparameter-Funktionseinheit enthält eine vordefinierte, konfigurierbare Logik zur Definition eines bestimmten Eingabeparameters. Die Funktionseinheit für die Ausgangsreaktion umfasst eine vordefinierte, konfigurierbare Logik zum Definieren einer bestimmten Ausgangsreaktion. Die Schnittpunkt-Funktionseinheit enthält eine vordefinierte, konfigurierbare Logik zur Definition der Beziehung zwischen dem Eingangsparameter und der Ausgangsreaktion. Durch die Übertragung der Matrixdatenbank an die Matrixfunktionseinheit werden die vordefinierte Eingangsparameterlogik, die vordefinierte Ausgangsreaktionslogik und die vordefinierte Schnittpunktlogik konfiguriert.
    Die Druckschrift US 5 903 886 A offenbart Analysewerkzeuge, die beim Entwurf der Hardware- und Softwarekomponenten eines integrierten Schaltkreises oder einer gedruckten Schaltung verwendet werden.
    Die Druckschrift DE 199 40 078 A1 offenbart ein System mit einer datenverarbeitenden Vorrichtung für eine Stapelsteuerung, mit: einem Serverprogramm, welches in der datenverarbeitenden Vorrichtung betreibbar ist und in Einklang mit einer ersten Zustandsmaschine zur Verarbeitung eines Stapels (batch) betreibbar ist; einem logischen Phasenmodul, der an das Serverprogramm gekoppelt ist und an die datenverarbeitende Vorrichtung gekoppelt ist und der in Einklang mit einer zweiten Zustandsmaschine betreibbar ist, die im wesentlichen identisch der ersten Zustandsmaschine ist.
  • ZUSAMMENFASSUNG
  • Die vorliegende Erfindung löst die Aufgaben bzw. Nachteile des Stands der Technik mit den Verfahren und dem physikalischen Medium gemäß den unabhängigen Ansprüchen 1, 17 und 33. Vorteilhafte Weiterbildungen sind in den abhängigen angegeben. Ein Steuerungssystem, ein Sicherheitssystem etc. innerhalb einer Prozessanlage kann jeweils einen oder mehrere Zustandsautomaten-Funktionsblöcke nutzen, die in einfacher Weise in eine Programmierumgebung für Funktionsblockdiagramme integriert werden können. Ein derartiger Funktionsblock kann einen oder mehrere Eingänge beinhalten, die genutzt werden können, um einen vom Zustandsautomat-Funktionsblock implementierten Zustandsautomaten zur Veränderung eines Zustands zu veranlassen. Der Zustandsautomat-Funktionsblock kann einen nächsten Zustand bestimmen, in den diese auf Basis von Konfigurierungsdaten für den Zustandsübergang, die den nächsten Zustand, falls vorhanden, anzeigen, übergehen soll. Die Konfigurierungsdaten für den Zustandsübergang können auf Basis des momentanen Zustands des Zustandsautomaten und mindestens einer der Eingänge aus einer Datenbank abgerufen werden. Der Zustandsautomat-Funktionsblock kann außerdem einen oder mehrere Ausgänge beinhalten, die auf Basis des Zustands des Zustandsautomaten erzeugt werden. Die Eingänge des Zustandsautomat-Funktionsblocks können beispielsweise einem Prozesssteuerungssystem oder einem Sicherheitssystem zugeordnet werden, und die Ausgänge können beispielsweise für die Steuerung von Feldgeräten im Prozesssteuerungssystem oder im Sicherheitssystem genutzt werden.
  • Der Zustandsautomat-Funktionsblock kann mindestens teilweise über eine grafische Benutzerführung konfiguriert werden. Die grafische Benutzerführung kann eine Vielzahl von grafischen Elementen umfassen, wobei mindestens einige der grafischen Elemente genutzt werden können, um zu spezifizieren, wie der Übergang des Zustandsautomaten von einem Zustand in einen anderen erfolgen sollte. In einem Ausführungsbeispiel kann eine Vielzahl von Zellen auf dem Bildschirm eines Computers dargestellt werden, wobei jede Zelle der ersten Vielzahl von Zellen einer von mindestens einigen möglichen Paarungen des mindestens einen Eingangs und einigen der Zustände der Vielzahl von Zuständen des Zustandsautomaten entspricht. Die Vielzahl von Zellen kann beispielsweise in einer Matrix angeordnet werden, in der die Spalten der Matrix der Vielzahl von möglichen Zuständen des Zustandsautomaten und die Reihen der Matrix den Eingängen des Zustandsautomaten (oder umgekehrt) entsprechen. In einer Zelle, die einem bestimmten Zustand und einem bestimmten Eingang entspricht, kann ein Programmierer mittels einer Eingabevorrichtung des Computers Konfigurierungsdaten eingeben, die einen nächsten Zustand anzeigen. Diese Konfigurierungsdaten des nächsten Zustands zeigen den nächsten Zustand an, in den der Zustandsautomat übergehen sollte, wenn der Zustandsautomat sich in dem Zustand befindet, der der Zelle entspricht und wenn der der Zelle entsprechende Eingang einen spezifischen Wert annimmt.
  • In einem weiteren Beispiel kann die grafische Nutzerschnittstelle ein Diagramm beinhalten, bei dem Objekte des Diagramms Zustände des Zustandsautomaten repräsentieren. Ein Programmierer kann z.B. einen Pfeil von einem zu einem anderen Zustand einzeichnen und dem Pfeil außerdem einen Eingang zuordnen. Das kann anzeigen, dass der Zustandsautomat von dem einen in den anderen Zustand übergehen sollte, wenn der spezifizierte Eingang um einen spezifischen Wert annimmt.
  • Die Gestaltungen der Zustandsautomat-Funktionsblöcke gemäß den Ansprüchen dieser Anmeldung können im Vergleich zum früheren Stand der Technik für die Überwachung des Zustands eines Steuerungs- oder Sicherheitssystems einfacher konfiguriert werden. So kann beispielsweise ein Teil oder die gesamte Konfigurierung unter Nutzung einer grafischen Benutzerführung wie der vorstehend beschriebenen erfolgen. Weiterhin können Gestaltungen von Zustandsautomat-Funktionsblöcken ohne Schwierigkeit in ein Steuerungsgerät, einen Logiksolver, Feldgeräten etc. integriert werden, die eine Funktionsblocklogik anwenden, da der Zustandsautomat-Funktionsblock auf die gleiche oder eine ähnliche Weise wie andere Funktionsblocktypen integriert werden kann, indem Eingänge und Ausgänge des Zustandsautomat-Funktionsblocks mit anderen Funktionsblöcken, Elementen innerhalb einer Steuerungsstrategie, einer Bedienerschnittstelle etc. verbunden werden. Die Arbeitsweise der Zustandsautomat-Funktion kann außerdem einfach dokumentiert werden, da sie mindestens teilweise grafisch, so wiezum Beispiel in Matrixform, dargestellt werden kann. Verschiedene Ausführungsbeispiele von Zustandsautomat-Funktionsblöcken oder von Mechanismen für die Konfigurierung von Zustandsautomat-Funktionsblöcken können einen oder mehrere oder keinen der vorstehend beschriebenen Vorteile bieten.
  • Figurenliste
  • Die Merkmale und Vorteile der hierin beschriebenen Verfahren, Geräte und Systeme gehen am besten aus der nachstehenden ausführlichen Beschreibung in Verbindung mit den beigefügten Zeichnungen hervor; dabei zeigen:
    • 1 ist ein Blockdiagramm einer beispielhaften Prozessanlage;
    • 2 ist ein Blockdiagramm einer beispielhaften, in 1 schematisch dargestellten Workstation;
    • 3 ist ein Beispiel eines Displays, das ein Steuerungsmodul zeigt;
    • 4 ist ein Beispiel einer Darstellung eines Zustandsautomat-Funktionsblocks;
    • 5 ist eine beispielhafte Matrix für die Eingabe von Konfigurierungsdaten des nächsten Zustands für einen Zustandsautomat-Funktionsblock;
    • 6 ist die beispielhafte Matrix aus 5, in der die Konfigurierungsdaten des nächsten Zustands in der Matrix zur Anzeige gebracht werden;
    • 7 ist ein Flussdiagramm eines beispielhaften Ablaufs innerhalb eines Zustandsautomat-Funktionsblocks;
    • 8 ist ein Blockdiagramm eines beispielhaften Zustandsautomat-Funktionsblocks;
    • 9 ist ein Flussdiagramm eines weiteren beispielhaften Ablaufs innerhalb eines Zustandsautomat-Funktionsblocks;
    • 10 ist ein Flussdiagramm einer beispielhaften Routine für die Verarbeitung von Dateneingängen in einen Zustandsautomat-Funktionsblock;
    • 11 ist ein Flussdiagramm einer beispielhaften Routine für die Verarbeitung eines ENABLE-Eingangs (Freigabeeingangs) eines Zustandsautomat-Funktionsblocks;
    • 12 ist ein Flussdiagramm einer beispielhaften Routine für die Veränderung eines Zustands und das Setzen von Ausgängen eines Zustandsautomat-Funktionsblocks;
    • 13 ist eine beispielhafte Matrix für die Eingabe von Ausgangskonfigurierungsdaten für einen Zustandsautomat-Funktionsblock;
    • 14 ist ein Blockdiagramm eines weiteren beispielhaften Zustandsautomat-Funktionsblocks;
    • 15 ist ein Flussdiagramm einer weiteren beispielhaften Routine für die Veränderung eines Zustands und das Setzen von Ausgängen eines Zustandsautomat-Funktionsblocks;
    • 16 ist ein Flussdiagramm einer beispielhaften Routine für das Setzen geeigneter Ausgangswerte eines Zustandsautomat-Funktionsblocks; und
    • 17 ist ein beispielhaftes Zustandsübergangsdiagramm für die Eingabe von Konfigurierungsdaten des nächsten Zustands für einen Zustandsautomat-Funktionsblock.
  • Beispiel einer Prozessanlage
  • 1 ist ein Blockdiagramm einer beispielhaften Prozessanlage 10, die einen oder mehrere Knoten 12, 16, 18 und 20 umfasst. In der beispielhaften Prozessanlage 10 der 1 umfasst jeder der Knoten 12 und 16 ein Prozesssteuerungsgerät 12a, 16a, das über Eingangs-/Ausgangs-(I/O)-Vorrichtungen 24, bei denen es sich z.B. um Foundation Feldbus-Schnittstellen, HART-Schnittstellen etc. handeln kann, mit einem oder mehreren Feldgeräten 22 und 23 verbunden ist. Die Steuerungsgeräte 12a und 16a sind außerdem über ein Netzwerk 30, das beispielsweise einen oder mehrere Busse, ein verdrahtetes lokales Netzwerk (LAN) wie ein Ethernet LAN, ein drahtloses LAN, ein Fernnetz (WAN), ein Intranet etc. umfassen kann, mit einer oder mehreren Host- oder Bediener-Workstations 18a und 20a in den Knoten 18 und 20 verbunden. Die Knoten 12, 16 der Steuerungsgeräte und die diesen zugeordneten I/O-Vorrichtungen 24 und Feldgeräte 22, 23 sind typischerweise in der manchmal rauen Werksumgebung angeordnet und über sie verteilt, während die Knoten 18 und 20 der Bediener-Workstations gewöhnlich in Steuerzentralen oder anderen, weniger rauen und für das Steuerungspersonal leicht zugänglichen Umgebungen untergebracht sind.
  • Allgemein gesagt, die Workstations 18a und 20a der Knoten 18 und 20 können genutzt werden, um Applikationen zu speichern und auszuführen, die für die Konfigurierung und Überwachung der Prozessanlage 10 und/oder das Management der Vorrichtungen 22, 23, 24 und der Steuerungsgeräte 12a, 16a in der Prozessanlage 10 genutzt werden. Ferner kann eine Datenbank 32 an das Netzwerk 30 angeschlossen werden und als Datenhistorie und/oder eine Konfigurationsdatenbank fungieren, in der die aktuelle Konfiguration der Prozessanlage 10 abgelegt ist, wie sie in die Knoten 12, 16, 18, 20, 22, 23, 24, 50 und 70 heruntergeladen und/oder dort gespeichert wurde.
  • Jedes der Steuerungsgeräte 12a und 16a, bei denen es sich beispielsweise um das von Emerson Process Management vertriebene Steuerungsgerät Delta V™ handeln kann, kann eine Steuerungsapplikation speichern und ausführen, die unter Verwendung einer Anzahl verschiedener, getrennt ausgeführter Steuerungsmodule oder -blöcke eine Steuerungsstrategie implementiert. Jedes der Steuerungsmodule kann aus Elementen bestehen, die gewöhnlich als Funktionsblöcke bezeichnet werden, wobei jeder Funktionsblock ein Teil oder ein Unterprogramm einer Gesamtsteuerungsroutine ist und (über als Links bezeichnete Kommunikationen) mit anderen Funktionsblöcken zusammenwirkt, um Prozesssteuerungsschleifen innerhalb der Prozessanlage 10 zu implementieren. Bekanntlich führen Funktionsblöcke typischerweise entweder eine Eingangsfunktion (wie sie z.B. einem Messwertumformer, einem Sensor oder einer anderen Messvorrichtung für Prozessparameter zugeordnet ist), eine Steuerungsfunktion (die beispielsweise einer Steuerungsroutine zugeordnet sein kann, die PID-, Fuzzy-Logik- oder andere Steuerungen ausführt), oder eine Ausgangsfunktion aus, die den Betrieb einer Vorrichtung (z.B. eines Ventils) steuert, um eine physikalische Funktion innerhalb der Prozessanlage 10 auszuführen. Selbstverständlich existieren Hybrid- und andere Arten von Funktionsblöcken, die verwendet werden können. Obwohl ein Feldbus-Protokoll und das Systemprotokoll von DeltaV™ Steuerungsmodule und Funktionsblöcke nutzen können, die in einem objektorientierten Programmierprotokoll entwickelt und implementiert wurden, könnten die Steuerungsmodule unter Nutzung jedes gewünschten Steuerungsprogrammierschemas entwickelt werden, wozu u.a. auch sequentielle Funktionsblöcke, Kontaktpläne etc. gehören können, und sind daher bei der Entwicklung nicht auf Funktionsblöcke oder eine andere besondere Programmiertechnik beschränkt. Typischerweise kann die Konfiguration der Steuerungsmodule, wie sie in den Prozesssteuerungsknoten 12 und 16 abgelegt ist, in der Konfigurationsdatenbank 32 gespeichert werden, auf die, die von den Workstations 18a und 20a ausgeführten, Applikationen zugreifen können. Funktionsblöcke können beispielsweise im Steuerungsgerät 12a, 16a gespeichert und von ihm ausgeführt werden, was typischerweise der Fall ist, wenn diese Funktionsblöcke für Standard 4-20 mA-Vorrichtungen und einige Typen intelligenter Feldgeräte wie HART-Vorrichtungen genutzt oder diesen zugeordnet werden, oder sie können in den Feldgeräten selbst gespeichert und von diesen implementiert werden, was bei Feldbus-Vorrichtungen der Fall sein kann.
  • In dem in 1 dargestellten System kann es sich bei den mit den Steuerungsgeräten 12a und 16a verbundenen Feldgeräten 22 und 23 um 4-20 mA-Standard Vorrichtungen oder intelligente Feldgeräte handeln, wie HART-, Profibus- oder Foundation Fieldbus-Feldgeräte, die einen Prozessor und einen Speicher beinhalten. Einige dieser Vorrichtungen, wie die Foundation Fieldbus-Feldgeräte (die in 1 mit der Nummer 23 bezeichnet sind), können Module oder Untermodule, wie z.B. Funktionsblöcke speichern und ausführen, die der in den Steuerungsgeräten 12a und 16a implementierten Steuerungsstrategie zugeordnet sind. Selbstverständlich können die Feldgeräte 22, 23 beliebige Vorrichtungstypen sein, wie Sensoren, Ventile, Messwertumformer, Stellungsregler etc., und die I/O-Vorrichtungen 24 können beliebige I/O-Vorrichtungstypen sein, die jedem gewünschten Kommunikations- oder Steuerungsgeräteprotokoll, wie HART, Foundation Fieldbus, Profibus etc. entsprechen.
  • Jedes der Steuerungsgeräte 12a und 16a umfasst einen Prozessor, der eine oder mehrere in einem Speicher abgelegte Prozesssteuerungsroutinen implementiert oder überwacht, die dort gespeicherte oder anderweitig damit verbundene Steuerungsschleifen beinhalten können. Die Steuerungsgeräte 12a und 16a kommunizieren mit den Feldgeräten 22, 23, den Workstations 18a, 20a und der Datenbank 32, um einen Prozess auf jede gewünschte Art zu steuern. Jedes der Steuerungsgeräte 12a und 16a kann konfiguriert werden, um eine Steuerungsstrategie oder Steuerungsroutine auf jede gewünschte Weise zu implementieren.
  • Die Prozessanlage 10 kann auch ein Sicherheitssystem 14 umfassen (durch punktierte Linien angedeutet), das in die Prozesssteuerungsknoten 12 und 16 integriert ist. Das Sicherheitssystem 14 kann generell als ein sicherheitsgerichtet instrumentiertes System (SIS - Safety Instrumented System) arbeiten, um die von den Prozesssteuerungsknoten 12 und 16 bewirkten Steuerungseingriffe zu überwachen und auszublenden, um so die Wahrscheinlichkeit des sicheren Betriebs der Prozessanlage 10 zu maximieren.
  • Zu jedem der Knoten 12 und 16 können ein oder mehrere Sicherheitssystem-Logiksolver 50 gehören. Jeder der Logiksolver 50 ist eine I/O-Vorrichtung mit einem Prozessor und einem Speicher und ist konfiguriert, um im Speicher abgelegte Sicherheitslogikmodule auszuführen. Jeder Logiksolver 50 ist kommunikativ verbunden, um Steuerungssignale für die Sicherheitssystemfeldgeräte 60 und 62 bereitzustellen und/oder von diesen zu empfangen. Zusätzlich beinhaltet jeder der Knoten 12 und 16 mindestens eine Vorrichtung zur Nachrichtenübertragung (MPD) 70, die über eine Ring- oder Busverbindung 74 (die in 1 nur teilweise abgebildet ist) kommunikativ mit anderen MPDs 70 verbunden ist. Das Sicherheitssystem 14 aus 1 setzt sich generell aus den Sicherheitssystem-Logiksolvern 50, den Sicherheitssystemfeldgeräten 60 und 62, den MPDs 70 und dem Bus 74 zusammen.
  • Bei den Logiksolvern 50 der 1 kann es sich um jeden gewünschten Typ von Sicherheitssystem-Steuerungsvorrichtungen handeln, die einen Prozessor und einen Speicher umfassen, in dem Sicherheitslogikmodule abgelegt sind, die ausgelegt wurden, um im Prozessor ausgeführt zu werden und eine Steuerungsfunktionalität bereitzustellen, die dem Sicherheitssystem 14 zugeordnet ist, das sich der Feldgeräte 60 und 62 bedient. Selbstverständlich kann es sich bei den Sicherheitsfeldgeräten 60 und 62 um jeden gewünschten Typ von Feldgeräten handeln, der allen bekannten oder gewünschten Kommunikationsprotokollen, wie z.B. den bereits aufgeführten entspricht oder diese benutzt. Insbesondere können die Feldgeräte 60 und 62 sicherheitsrelevante Feldgeräte eines Typs sein, die gewöhnlich von einem unabhängigen, zweckgebundenen, sicherheitsrelevanten Steuerungssystem gesteuert werden. In der Prozessanlage 10 in 1 nutzen die Sicherheitsfeldgeräte 60 gemäß der Abbildung ein zweckgebundenes oder Point-to-Point-Kommunikationsprotokoll, wie das HART- oder 4-20 mA-Protokoll, während die Sicherheitsfeldgeräte 62 in der gleichen Abbildung ein Bus-Kommunikationsprotokoll, wie z.B. ein Feldbus-Protokoll nutzen. Die Sicherheitsfeldgeräte 60 können jede gewünschte Funktion ausführen und z.B. als Absperrventil, als Trennschalter etc. fungieren.
  • Eine gemeinsame Backplane (nicht dargestellt) kann in jedem der Knoten 12 und 16 verwendet werden, um die Steuerungsgeräte 12a und 16a kommunikativ mit den Prozesssteuerungs-I/O-Karten 24, den Sicherheitslogiksolvern 50 und den MPDs 70 zu verbinden. Die Steuerungsgeräte 12a und 16a sind ebenfalls kommunikativ mit dem Netzwerk 30 verbunden. Die Steuerungsgeräte 12a und 16a, die I/O-Vorrichtungen 24, die Logiksolver 50 und die MPDs 70 können über das Netzwerk 30 mit den Knoten 18 und 20 kommunizieren.
  • Wie der Fachmann weiß, ermöglicht die (nicht dargestellte) Backplane im Knoten 12, 16 den Logiksolvern 50 die örtliche Kommunikation miteinander, um die von diesen Vorrichtungen implementierten Sicherheitsfunktionen zu koordinieren, einander Daten zu übermitteln und/oder andere integrierte Funktionen auszuführen. In ähnlicher Weise ermöglicht die (nicht dargestellte) Backplane im Knoten 16 den Logiksolvern 50 die örtliche Kommunikation miteinander, um die von diesen Vorrichtungen implementierten Sicherheitsfunktionen zu koordinieren, einander Daten zu übermitteln und/oder andere integrierte Funktionen auszuführen. Andererseits fungieren die MPDs 70, um Teilen des Sicherheitssystems 14, die an verschiedenen Stellen der Anlage 10 angeordnet sind, trotzdem die Kommunikation miteinander zu ermöglichen, nämlich um koordinierte Sicherheitsmaßnahmen in verschiedenen Knoten der Prozessanlage 10 bereitzustellen. Insbesondere ermöglichen die MPDs 70 in Zusammenwirkung mit dem Bus 74 den Logiksolvern 50, die verschiedenen Knoten 12 und 16 der Prozessanlage 10 zugeordnet sind, eine kommunikative Kaskadierung, um die Kaskadierung sicherheitsrelevanter Funktionen innerhalb der Prozessanlage 10 gemäß einer vorgeschriebenen Priorität möglich zu machen. Die MPDs 70 und der Bus 74 stellen für das Sicherheitssystem einen Kommunikationslink bereit, der eine Alternative zum Netzwerk 30 darstellt.
  • Alternativ können zwei oder mehr sicherheitsrelevante Funktionen an verschiedenen Standorten innerhalb der Prozessanlage 10 gegenseitig verriegelt oder miteinander gekoppelt werden, ohne dass eine zweckgebundene Leitung zu einzelnen Sicherheitsfeldgeräten innerhalb der getrennten Bereiche oder Knoten der Anlage 10 vorgesehen werden muss. Anders gesagt, die Verwendung der MPDs 70 und 72 und von Bus 74 ermöglicht einem Sicherheitsingenieur die Entwicklung und Konfigurierung eines Sicherheitssystems 14, das seiner Natur nach über die ganze Prozessanlage 10 verteilt ist, von dem aber verschiedene Komponenten kommunikativ miteinander verbunden sind, damit die anlagenweit installierte sicherheitsrelevante Hardware nach Bedarf miteinander kommunizieren kann. Dieses Merkmal sorgt auch für die größenmäßige Anpassungsfähigkeit des Sicherheitssystems 14, da dadurch das Sicherheitssystem 14 nach Bedarf oder in dem Maß, in dem der Prozessanlage 10 neue Prozesssteuerungsknoten hinzugefügt werden, zusätzliche Sicherheitslogiksolver erhalten kann.
  • 2 ist ein Blockdiagramm einer beispielhaften Workstation 18a (Workstation 20a kann die gleiche oder eine ähnliche Vorrichtung umfassen). Die Workstation 18a kann mindestens einen Prozessor 100, einen flüchtigen Speicher 104 und einen nichtflüchtigen Speicher 108 umfassen. Der flüchtige Speicher 104 kann beispielsweise ein RAM beinhalten. In einigen Ausführungen kann das RAM durch eine oder mehrere Batterien gepuffert werden, um den Verlust von Daten bei Stromausfall zu vermeiden. Der nichtflüchtige Speicher 108 kann z.B. eine oder mehrere Festplatten, ein ROM, ein CD-ROM, ein programmierbares ROM (PROM), ein EPROM, ein EEPROM, eine DVD, einen Flash-Speicher etc. umfassen. Zur Workstation 18a kann auch eine Workstation-I/O-Vorrichtung 112 gehören. Der Prozessor 100, der flüchtige Speicher 104, der nichtflüchtige Speicher 108 und die Workstation-I/O-Vorrichtung 112 können über einen Adressen-/Datenbus 116 miteinander verbunden werden. Die Workstation 18a kann außerdem mindestens eine Display-Vorrichtung 120 und mindestens eine Nutzereingabevorrichtung 124 umfassen, bei der es sich beispielsweise um ein oder mehrere Elemente wie eine Tastatur, ein Tastenfeld, eine Maus, einen Trackball, einen Touchscreen einen Lightpen etc. handeln kann. In einigen Ausführungen können der flüchtige Speicher 104, der nichtflüchtige Speicher 108 und die Workstation-I/O-Vorrichtung 112 einzeln oder zu mehreren über einen von dem Adressen-/Datenbus 116 getrennten Bus (nicht dargestellt) oder direkt mit dem Prozessor 100 verbunden werden.
  • Die Display-Vorrichtung 120 und die Nutzereingabevorrichtung 124 sind mit der Workstation-I/O-Vorrichtung 112 verbunden. Ferner ist die Workstation 18a über die Workstation-I/O-Vorrichtung 112 an das Netzwerk 30 angeschlossen. Obwohl die Workstation-I/O-Vorrichtung 112 in 2 als eine Vorrichtung dargestellt ist, kann sie mehrere Vorrichtungen umfassen. In einigen Ausführungen können die Display-Vorrichtung 120 und die Nutzereingabevorrichtung 124 außerdem einzeln oder zu mehreren direkt mit dem Adressen-/Datenbus 116 oder dem Prozessor 100 verbunden werden.
  • In 1 und 2 kann eine Konfigurierungsapplikation für die Prozesssteuerung, die einem oder mehreren der Steuerungsknoten 12, 16 zugeordnet ist, in einer oder mehreren der Workstations 18a und 20a gespeichert und von diesen ausgeführt werden. Die Konfigurierungsapplikation für die Prozesssteuerung könnte beispielsweise in dem nichtflüchtigen Speicher 108 und/oder dem flüchtigen Speicher 104 abgelegt und vom Prozessor 100 ausgeführt werden. Wenn dies gewünscht wird, könnte diese Applikation jedoch in anderen, mit der Prozessanlage 10 verbundenen Computern gespeichert und ausgeführt werden. Allgemein gesagt, die Konfigurierungsapplikation für die Prozesssteuerung ermöglicht einem Programmierer die Erzeugung und Konfigurierung von Steuerungsroutinen, Steuerungsmodulen, Funktionsblöcken, Programmen, Logik etc., die von den Steuerungsgeräten 12a, 16a, den I/O-Vorrichtungen 24 und/oder den Feldgeräten 22, 23 implementiert werden sollen. Diese Steuerungsroutinen, Steuerungsmodule, Funktionsblöcke, Programme, Logik etc. können dann über das Netzwerk 30 in die jeweils entsprechenden Steuerungsgeräte 12a, 16a, I/O-Vorrichtungen 24 und/oder Feldgeräte 22, 23 geladen werden.
  • Auf ähnliche Weise kann eine dem Sicherheitssystem 14 zugeordnete Konfigurierungsapplikation für Sicherheitssysteme in einer oder mehreren der Workstations 18a und 20a gespeichert und von diesen ausgeführt werden. Die Konfigurierungsapplikation für Sicherheitssysteme könnte beispielsweise in dem nichtflüchtigen Speicher 108 und/oder dem flüchtigen Speicher 104 abgelegt und vom Prozessor 100 ausgeführt werden. Wenn gewünscht, könnte diese Applikation jedoch in anderen, mit der Prozessanlage 10 verbundenen Computern gespeichert und ausgeführt werden. Allgemein gesagt, die Konfigurierungsapplikation für Sicherheitssysteme ermöglicht einem Programmierer die Erzeugung und Konfigurierung von Steuerungsroutinen, Steuerungsmodulen, Funktionsblöcken, Programmen, Logik etc., die von den Steuerungsgeräten 12a, 16a, den Logiksolvern 50 und/oder den Vorrichtungen 60, 62 zu implementieren sind. Diese Steuerungsroutinen, Steuerungsmodule, Funktionsblöcke, Programme, Logik etc. können dann über das Netzwerk 30 in die jeweils entsprechenden Steuerungsgeräte 12a, 16a, die Logiksolver 50 und/oder die Vorrichtungen 60, 62 geladen werden.
  • Zustandsautomat-Funktionsblock
  • Mittels einer Konfigurierungsapplikation für Steuerungssysteme oder Sicherheitssysteme können Steuerungsmodule und/oder Steuerungsroutinen unter Nutzung eines Funktionsblock-Programmmusters programmiert werden. 3 zeigt ein Beispiel eines Displays 150 mit der Darstellung eines Steuerungsmoduls 154. Das Display 150 kann Teil einer der Konfigurierungsapplikation zugeordneten Nutzerschnittstelle sein und kann beispielsweise über die Display-Vorrichtung 120 der Workstation 18a für einen Programmierer zur Anzeige gebracht werden. Die Darstellung des Steuerungsmoduls 154 im Display 150 zeigt eine Gruppe kommunikativ miteinander verbundener Funktionsblöcke, die erzeugt und über das Netzwerk 30 zur Implementierung während des Betriebs der Prozessanlage in die jeweils entsprechenden Steuerungsgeräte 12a, 16a, I/O-Vorrichtungen 24, Logiksolver 50 und/oder die Vorrichtungen 22, 23, 60, 62 geladen werden können. Wie in 3 gezeigt, umfasst das Steuerungsmodul 154 einen Zustandsautomat-Funktionsblock (SMFB) 160, eine Vielzahl von analogen Eingangs-(AI) und digitalen Eingangs-(DI)Funktionsblöcken, eine Vielzahl von analogen Ausgangs-(AO) und digitalen Ausgangs-(DO)Funktionsblöcken und andere Funktionsblöcke (FBs). Der SMFB 160 besitzt Eingänge, die kommunikativ mit den Funktionsblöcken 114 verbunden sind, bei denen es sich z.B. um DI-Funktionsblöcke oder andere FBs handeln kann. Der SMFB 160 besitzt außerdem Ausgänge, die mit den Funktionsblöcken 118 verbunden sind, die z.B. DO-Funktionsblöcke oder andere FBs sein können. Das Steuerungsmodul 154 kann als Teil eines Steuerungssystems, eines Sicherheitssystems etc. eigenständig oder als eines einer Vielzahl von Steuerungsmodulen mit diesen gemeinsam Vorrichtungen wie z.B. Schalter, Ventile etc. steuern. Selbstverständlich ist das Steuerungsmodul 154 lediglich ein Beispiel eines Steuerungsmoduls, das SMFBs verwendet. Generell kann ein Steuerungsmodul auf jede gewünschte Weise programmiert werden, um alle Arten von Funktionsblöcken zu umfassen, die auf jede gewünschte Weise kommunikativ mit einer beliebigen Anzahl SMFBs verbunden und auf jede gewünschte oder zweckmäßige Art für die Ausführung einer gewünschten Funktionalität konfiguriert sind. Wenn es beispielsweise in einem Feldbus-Netzwerk verwendet wird, kann ein Steuerungsmodul jeden Typ von Feldbus-Funktionsblöcken beinhalten.
  • In einigen Ausführungsbeispielen können ein oder mehrere Eingänge zum SMFB 160 von einem anderen Element als einem Funktionsblock empfangen werden. Beispielsweise können ein oder mehrere der Eingänge des SMFB 160 kommunikativ verbunden werden, um beispielsweise über eine Bedienerschnittstelle Eingaben von einem Bediener zu empfangen. Ein Bediener, der z.B. eine in einem Knoten wie dem Knoten 18 oder 20 implementierte Bedienerschnittstelle nutzt, könnte Eingaben für den SMFB 160 bereitstellen.
  • Der SMBF kann ein Funktionsblock sein, der einen Zustandsautomaten implementiert. In einigen Ausführungsbeispielen kann der Zustandsautomat eine Entität beinhalten (z.B. eine Vorrichtung, von einem Prozessor implementierte Software etc.), die sich in einem von einer Vielzahl von Zuständen befinden kann. Der Zustandsautomat kann von einem Zustand in einen anderen übergehen, wenn ein spezifischer Eingang in den Zustandsautomaten erfolgt. Der SMFB kann Ausgänge auf Basis des momentanen Zustands des Zustandsautomaten bereitstellen. Als ein Beispiel kann der SMFB eine oder mehrere Ausgaben bereitstellen, die den momentanen Zustand des Zustandsautomaten anzeigen. Ganz allgemein kann ein Zustandsautomat eine Entität beinhalten (z.B. eine Vorrichtung, von einem Prozessor implementierte Software etc.), die einen Zustand der Entität oder einer anderen Entität zu einem gegebenen Zeitpunkt speichert (z.B. einer Prozessanlage, eines Unterabschnitts einer Prozessanlage, einer Komponente einer Prozessanlage etc.) und die den Zustand ändern und/oder auf Basis von Eingaben in den Zustandsautomaten eine Maßnahme oder Ausgabe veranlassen kann.
  • Unter Nutzung der der Konfigurierungsapplikation zugeordneten Bedienerschnittstelle kann der Programmierer ein Steuerungsmodul von der Art des Steuerungsmoduls 154 entwickeln. Als ein Beispiel kann die Benutzerschnittstelle einen Mechanismus für einen Programmierer bereitstellen, um gewünschte Funktionsblöcke beispielsweise aus einer Vorlage oder Palette auszuwählen, die eine Vielzahl von genormten oder speziell angepassten Funktionsblockvorlagen enthält. Außerdem kann die Bedienerschnittstelle ein grafisches Schaubild bereitstellen, in das der Programmierer Darstellungen von Funktionsblöcken einfügen kann. Der Programmierer kann beispielsweise eine Maus, einen Trackball, eine Tastatur, ein Tastenfeld, einen Touchscreen etc. benutzen, um einen Funktionsblock in der Vorlage oder Palette anzuwählen und um den Funktionsblock dann durch „Ziehen und Einsetzen“ (Drag & Drop) in das grafische Schaubild zu bringen. Der Programmierer kann ferner Funktionsblöcke kommunikativ verbinden, indem er beispielsweise mit Hilfe einer Maus, eines Trackballs, einer Tastatur, eines Tastenfelds, eines Touchscreens etc. eine Linie zwischen einem Ausgang eines Funktionsblocks und einem Eingang eines anderen Funktionsblocks zieht.
  • Nach seiner Konfigurierung kann das Steuerungsmodul 154 z.B. durch ein oder mehrere der Steuerungsgeräte 12a, 14a, 16a, I/O-Vorrichtungen 24, Logiksolver 50 und die Vorrichtungen 22, 23, 60, 62 implementiert werden.
  • 4 ist ein Beispiel einer Darstellung eines SMFB 200, der beispielsweise im Display einer Nutzerschnittstelle wie dem Display 150 aus 3 angezeigt werden kann. Die Darstellung des SMFB 200 zeigt, dass der SMFB 200 sieben Dateneingänge (IN_D1 bis IN_D7) und sieben Datenausgänge (STATE und OUT_D1 bis OUT_D6) umfasst. Die Dateneingänge zeigen im Allgemeinen die Bedingungen innerhalb der Prozessanlage, Bedieneranweisungen etc. an, wobei diese eine von einem SMFB 200 implementierten Zustandsautomaten zur Veränderung des Zustands veranlassen können. Die Datenausgänge können einen oder mehrere Indikatoren für den Zustand des Zustandsautomaten beinhalten, die dem SMFB 200 entspricht. So kann der STATE-Ausgang beispielsweise ein Indikator des Zustands (z.B. state 1, state 2, state 3 etc.) des Zustandsautomaten sein. Der Ausgang OUT_D1 kann ein Indikator dafür sein, ob sich die Zustandsautomat in dem Zustand „state 1“ befindet. In ähnlicher Weise können die Ausgänge OUT_D2, OUT_D3, ... OUT_D6 Indikatoren dafür sein, ob sich der Zustandsautomat entsprechend in den Zuständen „state 2“, „state 3“ .... „state 6“ befindet. Der SMFB kann außer den Dateneingängen noch weitere Eingänge, wie einen ENABLE-Eingang, einen Eingang TRK_VAL und einen Eingang TRK_IN_D besitzen und kann neben den Ausgängen, die den Zustand anzeigen, andere Ausgänge beinhalten. Die Eingänge ENABLE, TRK_VAL und TRK_IN_D werden nachstehend ausführlicher beschrieben. Obwohl der SMFB 200 in 4 mit sieben Dateneingängen und sieben Datenausgängen gezeigt wird, können andere Ausführungsbeispiele jede gewünschte Anzahl von Dateneingängen und Datenausgängen beinhalten. Die Anzahl von Dateneingängen und Datenausgängen des SMFB 200 kann konfigurierbar oder nicht konfigurierbar sein. In einem Ausführungsbeispiel entspricht die Anzahl von Ausgängen OUT_Dx generell der Anzahl möglicher Zustände der vom SMFB implementierten Zustandsautomat, und die Anzahl möglicher Zustände kann konfigurierbar sein. Die Anzahl der Ausgänge OUT_D1, OUT_D2 etc. muss jedoch nicht der Anzahl der möglichen Zustände der Zustandsautomat entsprechen. Wenn beispielsweise die Anzahl der Zustände geringer ist als die Anzahl der Ausgänge OUT_D1, OUT_D2 etc., können die zusätzlichen Ausgänge ungenutzt bleiben.
  • Mittels der dem Konfigurierungsprogramm zugeordneten Nutzerschnittstelle kann der Programmierer einen oder mehrere Funktionsblöcke wie den SMFB 200 konfigurieren. In Bezug auf die Konfigurierung des SMFB kann der Programmierer eine Anzahl möglicher Zustände und die Art und Weise vorgeben, in der die Eingännge den Zustandsautomaten zum Übergang zwischen den verschiedenen Zuständen veranlassen. Um einem Programmierer die Konfigurierung eines SMFB zu ermöglichen, kann eine Konfigurierungsapplikation auf der Display-Vorrichtung 120 eine Bedienerführung zur Anzeige bringen, wie z.B. ein dem Funktionsblock zugeordnetes Konfigurierungsfenster, einen Bildschirm etc.
  • 5 ist ein Beispiel einer Bedienerführung, die für die mindestens teilweise Konfigurierung eines SMFB, wie z.B. des SMFB 200 der 4 genutzt werden kann. Die Bedienerführung umfasst eine Tabelle oder Matrix 300 (im Folgenden als die „Matrix 300“ bezeichnet), die als Teil eines dem SMFB zugeordneten Konfigurierungsfensters, - bildschirms etc. zur Anzeige gebracht werden kann. Die Matrix 300 umfasst eine Vielzahl von in Reihen und Spalten angeordneten Zellen 304. Jede Spalte entspricht einem einer Vielzahl von möglichen Zuständen des Zustandsautomaten und jede Reihe entspricht einem Eingang des Zustandsautomaten, so dass jede Zelle 304 einem Zustand und einem Eingang entspricht. Obwohl die beispielhafte Matrix 300 Reihen für sieben Eingänge und sechs Zustände umfasst, können ähnliche Matrizen mit einer anderen Anzahl von Zuständen und Ausgängen für SMFBs verwendet werden, die unterschiedliche Anzahlen von Eingängen und Zuständen aufweisen. Die Anzahl von Eingängen und Zuständen kann konfigurierbar sein. In anderen Beispielen kann jede Reihe einem einer Vielzahl von möglichen Zuständen des Zustandsautomaten und jede Spalte einem Eingang der Zustandsautomaten entsprechen.
  • In 4 entsprechen die Eingänge „1“ bis „7“ der Matrix 300 jeweils den Eingängen IN_D1 bis IN_D7 des SMFB 200. In gleicher Weise entsprechen die Zustände „1“ bis „6“ der Matrix 300 jeweils den Ausgängen OUT_D1 bis OUT_D6 des SMFB 200. Außerdem kann es in diesem Beispiel einem Programmierer möglich sein, jeden möglichen Zustand und/oder jeden der Eingänge durch ein Etikett zu kennzeichnen. So ist beispielsweise in 5 „state 1“ mit dem Etikett „ABGESCHALTET“ (TRIPPED) versehen, und Eingang 1 hat das Etikett „ANFANG“ (INITIAL). Die Etikettierung von Eingängen und/oder Zuständen kann zum besseren Verständnis der Arbeitsweise der Zustandsautomat beitragen.
  • Ein Programmierer kann den SMFB durch Eingabe von Konfigurierungsinformation in die Zellen 304 konfigurieren. Insbesondere kann der Programmierer für eine bestimmte Zelle 304, die einem der Zustände und einem der Eingänge entspricht, Konfigurierungsdaten in die Zelle eingeben, die den Zustand angeben, in den der SMFB übergehen sollte. 6 ist ein Beispiel der Matrix 300, bei dem Konfigurierungsdaten in einige der Zellen 304 eingegeben wurden. Die Zelle 304A beinhaltet z.B. Konfigurierungsdaten, die den nächsten Zustand anzeigen, in den die Zustandsautomat übergehen sollte, wenn die Zustandsautomat sich im Zustand „ABGESCHALTET“ befindet und der Eingang „ANFANG“ aktiviert wird. Im Besonderen zeigen die Konfigurierungsdaten der Zelle 304A an, dass die Zustandsautomat in den Zustand „WARTEN AUF RESET“ (WAITING FOR RESET) übergehen sollte. In ähnlicher Weise beinhaltet die Zelle 304B Konfigurierungsdaten, die anzeigen, dass, wenn die Zustandsautomat sich im Zustand „WARTEN AUF RESET“ befindet und der Eingang „FREIGABE RESET“ (RESET PERMIT) aktiviert wird, die Zustandsautomat in den Zustand „BEREIT FÜR RESET“ (READY FOR RESET) übergehen sollte. Die Zelle 304C beinhaltet ebenfalls Konfigurierungsdaten, die anzeigen, dass, wenn die Zustandsautomat sich im Zustand „WARTEN AUF RESET“ befindet und der Eingang „ANFORDERUNG ABSCHALTUNG“ (TRIP REQUESTED) aktiviert wird, die Zustandsautomat in den Zustand „ABGESCHALTET“ übergehen sollte.
  • In diesem besonderen Beispiel kann - wenn der Programmierer keine Konfigurierungsdaten in eine Zelle 304 eingibt - angenommen werden, dass für diesen besonderen Zustand und den Eingang kein Zustandsübergang erfolgen sollte. So enthält Zelle 304D z.B. keine Konfigurierungsdaten, was anzeigt, dass, wenn die Zustandsautomat sich im Zustand „ABGESCHALTET“ befindet und der Eingang „START RECOVER“ (START WIEDERANLAUF) aktiviert wird, die Zustandsautomat im Zustand „ABGESCHALTET“ verbleiben sollte. In anderen Ausführungsbeispielen kann der Programmierer Konfigurierungsdaten eingeben, die anzeigen, dass die Zustandsautomat bei dieser speziellen Zustands-/Eingangskombination ihren Zustand nicht verändern sollte.
  • Der Programmierer kann Konfigurierungsdaten in die Matrix 300 unter Verwendung der verschiedensten Techniken eingeben, auch von solchen, wie sie dem Fachmann geläufig sind. Für die Eingabe von Konfigurierungsdaten in eine Zelle 304 kann der Programmierer beispielsweise die Zelle 304 mit einer Maus, einem Trackball, mit Hilfe eines Touchscreens etc. anwählen. Der Nutzer könnte dann die Konfigurierungsdaten direkt, z.B. mittels einer Tastatur in die Zelle 304 eingeben. Alternativ könnte der Programmierer die Zelle 304 anwählen und dann „edit“ (Editieren), „modify“ (Modifizieren) etc. in einem Pull-Down-Menü oder direkt eine Schaltfläche „Edit“, „Modify“ etc. anwählen. Dann kann die Nutzerschnittstelle dem Programmierer über ein Pull-Down-Menü, ein Fenster, einen Bildschirm etc. eine Liste von Zuständen anzeigen. Als Option kann die Liste von Zuständen den Zustand beinhalten, dem die Zelle entspricht, oder eine Wahlmöglichkeit „NO TRANSITION“ (KEIN ÜBERGANG). Anschließend kann der Programmierer mittels einer Tastatur, einer Maus, eines Trackballs, eines Touchscreens etc. einen der Zustände anwählen. Wählt der Programmierer den Zustand an, dem die Zelle entspricht, oder wählt er „NO TRANSITION“, so würden die Konfigurierungsdaten anzeigen, dass für diese Kombination aus Zustand und Eingang kein Übergang erfolgen sollte.
  • Die Konfigurierung des SMFB unter Verwendung einer Nutzerschnittstelle, die eine Matrix wie die Matrix 300 beinhaltet, kann die Implementierung einer Zustandsautomat einfacher gestalten als beispielsweise im Vergleich zur Verwendung eines sequentiellen Funktionsplans oder einer Programmiersprache wie z.B. C++. Die Implementierung eines Zustandsautomaten unter Verwendung eines C++-Programms würde wahrscheinlich zunächst die Erzeugung eines Zustandsübergangsdiagramms und sodann das Schreiben eines Programms zur Implementierung des Diagramms voraussetzen. Das Programm müsste dann getestet und von Fehlern bereinigt werden. Mit einem unter Verwendung einer Matrix wie der Matrix 300 konfigurierten SMFB braucht jedoch kein Programm geschrieben zu werden. Vielmehr müsste für die „Programmierung“ lediglich die Matrix ausgefüllt werden. Da kein Softwarecode geschrieben werden muss, können außerdem die Fehlerbereinigung und das Testen des Codes entfallen. Als Test kann vielmehr lediglich das Überprüfen der verschiedenen Kombinationen aus Zuständen und Eingängen erforderlich sein, um sicherzustellen, dass der SMFB in die jeweils richtigen nächsten Zustände übergeht.
  • Außerdem ist anhand einer Durchsicht der Matrix 300 die Arbeitsweise des SMFB leicht zu verstehen. Die Arbeitsweise eines konfigurierten SMFB könnte z.B. einfach durch das Ausdrucken einer Darstellung der Matrix dokumentiert werden.
  • Ein gemäß einer Matrix wie der Matrix 300 konfigurierter SMFB kann beispielsweise in einem Sicherheitssystem oder einem Prozesssteuerungssystem eingesetzt werden. Als ein Beispiel kann ein gemäß einer Matrix wie der Matrix 300 konfigurierter SMFB als Teil eines Sicherheitssystems für die Überwachung eines Brenners in einer Prozessanlage verwendet werden. Der SMFB könnte beispielsweise Zustände wie „IGNITE“ (ZÜNDEN), „SHUT OFF GAS“ (GASZUFUHR SPERREN), und „VENT“ (ENTLÜFTEN) umfassen. Beim Starten des Brenners sollte der SMFB zunächst in den Zustand VENT wechseln, damit etwa im Brenner vorhandenes Gas entlüftet wird. Anschließend könnte der SMFB in den Zustand IGNITE übergehen, um den Brenner zu zünden. Wenn die Flamme des Brenners erlischt, könnte der SMFB auch in den Zustand SHUT OFF GAS übergehen, um die Gaszufuhr zum Brenner zu sperren. Dann könnte der SMFB in den Zustand VENT wechseln.
  • Ein gemäß einer Matrix wie der Matrix 300 konfigurierter SMFB kann von einem oder mehreren der Steuerungsgeräte 12a, 16a, der I/O-Vorrichtungen 24, der Logiksolver 50, und der Vorrichtungen 22, 23, 60, 62 implementiert werden. In einigen Ausführungsbeispielen kann der SMFB von einem Prozessor implementiert werden, dessen Software durch eine programmierbare Logikschaltung, z.B. eine Vorrichtung, die ein Gate-Array, eine Standardzelle, ein feldprogrammierbares Gate-Array (FPGA), ein PROM, ein EPROM, ein EEPROM, einen programmierbaren Logikbaustein (PAL), eine programmierbares logisches Array (PLA) etc. oder Kombinationen dieser Elemente enthält, konfiguriert wurde.
  • Die einem SMFB zugeordneten Konfigurierungsdaten (z.B. die in eine Matrix wie die Matrix 300 eingegebenen Daten und wahlweise andere Konfigurierungsdaten) können in einem computerlesbaren Medium wie z.B. einer Festplatte, einem RAM, ROM, CD-ROM, EPROM, EEPROM, einer DVD, einem Flash-Speicher etc. und/oder einem mit einem Prozessor verbundenen Speicher abgelegt werden.
  • 7 ist ein Flussdiagramm einer beispielhaften Arbeitsweise eines konfigurierten SMFB. Die Arbeitsweise 350 kann periodisch und/oder beispielsweise als Reaktion auf ein auslösendes Ereignis implementiert werden. In einem Block 354 empfängt der SMFB die eingegebenen Daten. In 4 empfängt der SMFB z.B. die Eingänge IN_D1 bis IN_D7. In einem Block 358 ändert der SMFB, wenn erforderlich, einen Zustand seines Zustandsautomaten auf Basis der Dateneingänge, des momentanen Zustands des SMFB und der in einer Konfigurationsdatenbank gespeicherten Konfigurierungsdaten. Die Daten der Konfigurationsdatenbank können Daten beinhalten, die über eine Matrix wie die Matrix 300 eingegeben wurden. Der Zustand kann auch auf Basis anderer Faktoren geändert werden. Wie weiter unten ausführlicher beschrieben, kann der SMFB beispielsweise so konfiguriert werden, dass er einen oder mehrere der Dateneingänge ignoriert. Die Zustandsänderung kann also auch auf Konfigurierungsdaten basieren, die anzeigen, ob und welche der Dateneingänge ignoriert werden sollen. In einem weiteren Beispiel können zwei oder mehrere Dateneingänge anzeigen, dass eine Zustandsänderung von einem momentanen Zustand in zwei oder mehr nächste Zustände erfolgen sollte. Der SMFB kann so auf Basis von Prioritätsdaten, die die Priorität der Dateneingänge festlegen, eine der Dateneingänge auswählen, um zu bestimmen, in welchen der möglichen nächsten Zustände der SMFB übergehen sollte. Als weiteres Beispiel können in einigen Ausführungsbeispielen Eingänge in den SMFB einen Status (z.B. GOOD-Status (GUT-Status) oder BAD-Status(SCHLECHT-Status)) beinhalten. Die Änderung des Zustands kann also beispielsweise auch auf Konfigurierungsdaten basieren, die anzeigen, wie eine Eingang mit einem BAD-Status gehandhabt werden sollte.
  • In einem Block 366 kann der SMFB seine Datenausgänge dann auf Basis des momentanen Zustands des Zustandsautomaten setzen. Sollen die Datenausgänge beispielsweise den momentanen Zustand anzeigen, so können sie entsprechend gesetzt werden.
  • Wie in 4 gezeigt, kann der SMFB wahlweise einen Eingang „ENABLE“ umfassen. In einem Ausführungsbeispiel kann der SMFB zwangsläufig in einen gesperrten Zustand (z.B. Zustand 0) gebracht werden, wenn der Eingang ENABLE deaktiviert ist, und sollte in diesem Zustand verbleiben, bis der Eingang ENABLE aktiviert wird. Wenn der Eingang ENABLE dann aktiviert wird, kann der SMFB in einen Anfangszustand (z.B. Zustand 1) gebracht werden, und anschließend kann der SMFB gemäß den in eine Konfigurierungsmatrix wie die Matrix 300 der 5 eingegebenen Konfigurierungsdaten in andere Zustände übergehen.
  • Der SMFB kann zudem einen Eingang oder Eingänge beinhalten, um den Zustandsautomaten in einen gewünschten Zustand zu bringen. Der SMFB 200 beinhaltet beispielsweise einen Eingang TRK_IN_D und einen Eingang TRK_VAL. Wird der Eingang TRK_IN_D aktiviert, kann der SMFB in einen vom Eingang TRK_VAL vorgegebenen Zustand gebracht werden. Ist der Eingang TRK_VAL beispielsweise „6“ und der Eingang TRK_IN_D wird aktiviert, so kann der SMFB in den Zustand „6“ gebracht werden.
  • Für die Konfigurierung des SMFB gibt es wahlweise zusätzliche Wege. Beispielsweise kann der SMFB eine Eingangs- (oder Übergangs-)Maske beinhalten, die angibt, ob ggf. ein oder mehrere der Eingänge IN_D1, IN_D2 etc. ignoriert werden sollten. Der SMFB kann auch konfiguriert werden, um auf Eingänge zu reagieren, die eine Vielzahl von Zuständen haben können. So können beispielsweise einer oder alle der Eingänge des SMFB einen Status „GOOD“ oder einen Status „BAD“ haben und der SMFB kann konfiguriert werden, um je nach dem Status eines Eingangs unterschiedlich zu reagieren. In einem besonderen Beispiel kann der SMFB konfiguriert werden, um einen Eingang mit Status „BAD“ zu ignorieren, um den Eingang zu nutzen, selbst wenn dessen Status „BAD“ ist, oder um den letzten Wert des Eingangs mit Status „GOOD“ zu nutzen. Außerdem kann der SMFB einen Parameter RESET beinhalten, der im Fall logisch TRUE den SMFB zwangsläufig in den Zustand „1“ bringt.
  • Die verschiedenen vorstehend beschriebenen Konfigurierungsdaten und die Konfigurierungsdaten für den jeweils nächsten Zustand können im gleichen computerlesbaren Medium oder in verschiedenen computerlesbaren Medien gespeichert werden.
  • 8 ist ein Blockdiagramm eines Beispiels eines SMFB. Der SMFB 400 beinhaltet die Logik 404, die den nächsten Zustand mindestens teilweise auf Basis der Eingänge IN_D1, IN_D2 etc. und des momentanen Zustands des SMFB 400 bestimmt. Insbesondere greift die Logik 404 auf die Konfigurierungsdaten des nächsten Zustands zu, die in einer Konfigurationsdatenbank 406 für den nächsten Zustand abgelegt sind. Die Datenbank 406 kann in einem computerlesbaren Medium wie vorstehend beschrieben gespeichert werden. Die Konfigurierungsdaten des nächsten Zustands können Konfigurierungsdaten beinhalten, die in eine Matrix wie die Matrix 300 in 5 eingegeben wurden.
  • Der Ausgang der Logik 404 wird für die Schaltlogik 408 bereitgestellt. Die Schaltlogik 408 wählt auf Basis des Eingangs TRK_IN_D zwischen dem Ausgang der Logik 404 und dem Eingang TRK_VAL. Wenn beispielsweise der Eingang TRK_IN_D aktiviert ist, kann die Schaltlogik 408 den Eingang TRK_VAL wählen. Andernfalls kann die Schaltlogik 408 den Ausgang der Logik 404 wählen.
  • Der Ausgang der Schaltlogik 408 wird für die Schaltlogik 412 bereitgestellt, die auf Basis des Ausgangs der Freigabe- und Reset-Logik 416 zwischen dem Ausgang der Schaltlogik 408, dem Wert 0 und dem Wert 1 wählt. Der Ausgang der Freigabe- und Reset-Logik 416 zeigt an, ob der Zustand in einen gesperrten Zustand (Zustand 0) oder einen Anfangszustand (Zustand 1) gebracht werden sollte. Die Freigabe- und Reset-Logik 416 erzeugt diesen Ausgang auf Basis des Eingangs ENABLE. Wenn beispielsweise der Eingang ENABLE deaktiviert ist, kann der Ausgang der Freigabe- und Reset-Logik 416 anzeigen, dass der Zustand in den Zustand 0 gebracht werden sollte. Wechselt der Eingang ENABLE von inaktiv nach aktiv, so kann der Ausgang der Freigabe- und Reset-Logik 416 anzeigen, dass der Zustand in den Zustand 1 gebracht werden sollte. Wenn ENABLE aktiviert wird und schon vorher aktiviert war, so kann der Ausgang der Freigabe- und Reset-Logik 416 anzeigen, dass der Zustand nicht in den Zustand 0 oder 1 gebracht werden sollte.
  • Der Ausgang der Schaltlogik 412 ist der momentane Zustand des SMFB 400 und kann als ein Ausgang von SMFB 400 bereitgestellt werden. Der Ausgang der Schaltlogik 412 kann auch für die Logik 420 bereitgestellt werden, die einen entsprechenden Ausgang OUT_D1, OUT_D2 etc. setzt, der dem momentanen Zustand des SMFB entspricht.
  • Jeder der Blöcke 404, 408, 412, 416 und 420 kann durch Hardware und/oder Software und/oder Firmware implementiert werden. Außerdem können einige der Blöcke kombiniert, neu angeordnet, geändert oder weggelassen werden und zusätzliche Blöcke können hinzugefügt werden. Als ein Beispiel könnten die Blöcke 408 und 412 zu einem einzigen Block kombiniert werden.
  • 9 ist ein Flussdiagramm einer Arbeitsweise des beispielhaften SMFB 400. Die Arbeitsweise 450 der 9 kann beispielsweise periodisch und/oder bei einem auslösenden Ereignis implementiert werden. In einem Block 454 werden die Dateneingänge des SMFB 400 verarbeitet. Es kann z.B. festgestellt werden, ob einer der Dateneingänge IN_D1, IN_D2 etc. aktiviert wurde. In einem weiteren Beispiel kann, wenn einer oder mehrere der Dateneingänge einen Status „BAD“ haben, bestimmt werden, wie der oder die Eingänge „BAD“ zu handhaben sind. In einem Block 458 wird der Eingang ENABLE des SMFB 400 verarbeitet. Es kann beispielsweise festgestellt werden, ob der Eingang ENABLE aktiv ist und/oder ob sich sein Zustand seit der vorherigen Verarbeitung verändert hat.
  • In einem Block 462 kann, falls erforderlich, ein Zustand des SMFB 400 geändert werden. Zusätzlich können, falls erforderlich, einer oder mehrere Datenausgänge des SMFB 400 geändert werden. Es kann beispielsweise bestimmt werden, dass eine Änderung der Dateneingänge anzeigt, dass der Zustand des SMFB 400 geändert werden sollte. Wenn sich der Zustand ändert, kann es außerdem sein, dass einer oder mehrere der Datenausgänge des SMFB 400 geändert werden sollten.
  • Nunmehr werden einige beispielhafte Routinen beschrieben, die verwendet werden können, um die Arbeitsweise 450 wenigstens teilweise zu implementieren. 10 ist z.B. ein Flussdiagramm einer beispielhaften Routine 500, die genutzt werden kann, um die Dateneingänge IN_D1, IN_D2 etc. des SMFB zu verarbeiten. In einem Block 504 wird eine Variable z auf Eins gesetzt. In einem Block 508 wird festgestellt, ob der Status des Dateneingangs IN_Dz „BAD“ ist. Ist der Status nicht mit „BAD“ besetzt, so wird das Bit mit der Nummer z einer Variablen TRANSITIONS auf den Wert des Dateneingangs IN_Dz gesetzt. Ist der Status „BAD“, so kann bestimmt werden, wie der Dateneingang zu handhaben ist. In einem Beispiel kann der SMFB Eingänge mit Status „BAD“ auf eine von drei Arten handhaben: der mit „BAD“ belegte Eingang kann trotzdem genutzt werden (ALWAYS_USE), er kann ignoriert werden (IGNORE_IF_BAD) oder es kann der letzte mit „GOOD“ belegte Eingangswert genutzt werden (USE_LAST_GOOD). So kann in Block 516 festgestellt werden, ob der SMFB den letzten mit „GOOD“ belegten Dateneingang nutzen soll. Soll der SMFB den letzten Wert mit „GOOD“ nutzen, so kann der Block 512 übersprungen werden. Andernfalls kann dann in Block 520 bestimmt werden, ob der SMFB den Eingangswert mit „BAD“ ignorieren soll. Soll der SMFB den Wert mit „BAD“ nicht ignorieren, kann die Routine zu Block 512 übergehen. Soll der SMFB den Wert mit „BAD“ ignorieren, kann die Routine mit einem Block 524 fortfahren. In Block 524 wird das Bit Nummer „z“ der Variablen TRANSITIONS auf 0 gesetzt.
  • In einem Block 528 wird die Variable z inkrementiert und in einem Block 532 kann festgestellt werden, ob die Variable z größer ist als die Anzahl von Dateneingängen des SMFB. Ist z nicht größer als die Anzahl der Dateneingänge des SMFB, kann die Routine zu Block 508 zurückkehren, um den nächsten Dateneingang zu verarbeiten. Andernfalls kann die Routine enden.
  • 11 ist ein Flussdiagramm einer beispielhaften Routine 545, die für die Verarbeitung des Eingangs ENABLE des SMFB verwendet werden kann. In einem Block 550 kann festgestellt werden, ob ein Wert einer Variablen LASTENABLE der gleiche ist wie der Wert des Eingangs ENABLE. Die Variable LASTENABLE zeigt generell den Wert von ENABLE zu einem früheren Zeitpunkt an (z.B. den Wert der Variablen ENABLE während des vorherigen Ablaufs der Routine 545). Sind die Werte von LASTENABLE und ENABLE gleich, so kann die Routine 545 enden. Andernfalls kann die Routine zu einem Block 554 übergehen, in dem festgestellt werden kann, ob der Eingang ENABLE aktiviert ist. Ist das der Fall, so kann in einem Block 558 eine Variable RESET auf TRUE gesetzt werden.
  • Wird in Block 554 festgestellt, dass der Eingang ENABLE nicht aktiviert ist, so wird in Block 562 derjenige Ausgang OUT_D1, OUT_D2 etc. deaktiviert, der dem momentanen Wert einer Variablen STATE entspricht. Anschließend wird in einem Block 566 die Variable STATE auf 0 gesetzt. Nach den Blöcken 558 und 566 kann die Routine zu einem Block 570 übergehen, in dem die Variable LASTENABLE auf den Wert des Eingangs ENABLE gesetzt wird. Nach Block 570 kann die Routine enden.
  • 12 ist ein Flussdiagramm einer beispielhaften Routine 600, die verwendet werden kann, um einen nächsten Zustand des SMFB zu bestimmen und falls erforderlich einen entsprechenden Ausgang OUT_D1, OUT_D2 etc. zu setzen. In einem Block 604 kann festgestellt werden, ob der Eingang ENABLE aktiviert ist. Ist das nicht der Fall, so kann die Routine enden. Ist der Eingang ENABLE aktiviert, so kann die Routine zu einem Block 608 übergehen, in dem eine Variable NEWSTATE auf 0 gesetzt wird. Anschließend kann in einem Block 612 festgestellt werden, ob der Eingang TRK_IN_D aktiv ist. Trifft das zu, so kann die Routine zu einem Block 616 übergehen, in dem die Variable NEWSTATE auf den Wert des Eingangs TRK_VAL gesetzt wird.
  • Wird in Block 612 festgestellt, dass der Eingang TRK_IN_D nicht aktiv ist, kann die Routine zu einem Block 620 übergehen. In Block 620 kann festgestellt werden, ob die Variable RESET auf TRUE gesetzt ist. Ist das der Fall, kann die Routine zu einem Block 624 übergehen, in dem die Variable NEWSTATE auf 1 gesetzt werden kann. Anschließend kann in einem Block 626 die Variable RESET auf FALSE gesetzt werden.
  • Wird in Block 620 festgestellt, dass die Variable RESET nicht auf TRUE gesetzt ist, kann die Routine zu einem Block 632 wechseln. In Block 632 kann eine Variable TEMP bestimmt werden, und zwar durch bitweises logisches Und-Verknüpfen einer Variablen TRANSITION_MASK, der Variablen TRANSITIONS und eines Elements eines Arrays STATECHANGEMASK, auf das die Variable STATE verweist. Die Variable TRANSITION_MASK kann eine konfigurierbare Variable sein, die genutzt werden kann, um zu verhindern, dass bestimmte Eingänge IN_Dx einen Zustandswechsel herbeiführen können. Möchte ein Programmierer z.B. den Eingang IN_D3 daran hindern, einen Zustandswechsel des Zustandsautomat zu veranlassen, so könnte der Programmierer das dritte Bit der Variablen TRANSITION_MASK auf 0 setzen. Möchte der Programmierer zulassen, dass der Eingang IN_D3 einen Zustandswechsel der Zustandsautomat herbeiführen kann, könnte der Programmierer das dritte Bit der Variablen TRANSITION_MASK auf 1 setzen.
  • Jedes Element des Arrays STATECHANGEMASK kann eine Variable sein, die für einen der korrespondierenden Zustände anzeigt, welche Eingänge IN_D1, IN_D2 etc. einen Zustandswechsel veranlassen. Insbesondere kann jedes Element des Arrays einem der Zustände der Zustandsautomat entsprechen. STATECHANGEMASK[1] kann beispielsweise dem Zustand 1, STATECHANGEMASK[2] dem Zustand 2 etc. entsprechen. Außerdem kann jedes Bit eines jeden Elements einem der Eingänge IN_D1, IN_D2 etc. entsprechen. Bit 1 kann z.B. IN_D1, Bit 2 IN_D2 etc. entsprechen. In 6 hätte das Array STATECHANGEMASK für die Matrix 300 sechs Elemente und das Element STATECHANGEMASK[3] wäre 0x44.
  • Nach dem Block 628 kann die Routine zu einem Block 632 übergehen, in dem festgestellt werden kann, ob die Variable TEMP gleich 0 ist. Ist sie nicht gleich 0, kann die Routine zu einem Block 636 wechseln, in dem eine Variable z auf die Nummer des ersten Bits ungleich 0 (beginnend beispielsweise mit dem niederwertigsten Bit) in der Variablen TEMP gesetzt werden kann. Im Endeffekt setzt dies die Prioritäten der Eingänge auf Basis ihrer Reihenfolge, so dass IN_D1 die höchste Priorität, IN_D2 die nächstfolgende Priorität, IN_D3 die wiederum nächstfolgende Priorität usw. hat. In anderen Ausführungsbeispielen können andere Schemata für die Prioritätsordnung angewandt werden. Ein Programmierer könnte z.B. die Möglichkeit haben, den Eingängen Prioritäten zuzuweisen oder es könnte eine andere Prioritätsreihenfolge angewandt werden (in der z.B. IN_D1 die niedrigste Priorität, IN_D2 die nächsthöhere Priorität etc. hat). Die Prioritäten könnten für den SMFB als Ganzes oder für jeden Zustand gesetzt werden.
  • In einem Block 640 kann die Variable NEWSTATE dann auf den Wert der Zustandsübergangsmatrix in Reihe z und Spalte STATE gesetzt werden.
  • Nach den Blöcken 616, 626 und 640 kann die Routine zu einem Block 644 wechseln. Wird in Block 632 festgestellt, dass die Variable TEMP gleich 0 ist, kann die Routine ebenfalls zum Block 644 wechseln. In Block 644 kann festgestellt werden, ob die Variable NEWSTATE gleich 0 ist. Trifft das zu, so kann die Routine enden. Ist sie nicht gleich 0, kann die Routine zu einem Block 648 wechseln, in dem der Ausgang OUT_D1, OUT_D2 etc. der der Variablen STATE entspricht, deaktiviert wird. In einem Block 652 wird die Variable STATE dann auf den Wert der Variablen NEWSTATE gesetzt. In einem Block 656 wird der Ausgang OUT_D1, OUT_D2 etc., der der Variablen STATE entspricht, aktiviert und die Routine kann enden.
  • Selbstverständlich handelt es sich bei der Arbeitsweise 450 der 9 und den Routinen der 10-12 lediglich um Beispiele. In anderen Beispielen können Blöcke geändert, neue Blöcke hinzugefügt, Blöcke neu angeordnet, weggelassen und/oder kombiniert werden. In 10 können, nur als ein Beispiel, die Blöcke 508, 516, 520 und 524 wegfallen, wenn eine spezielle Handhabung der Eingänge mit einem Status „BAD“ nicht erforderlich ist oder nicht gewünscht wird.
  • In einem anderen Beispiel könnte der Block 636 so geändert werden, dass die Variable z auf die Nummer des letzten Bits ungleich 0 in TEMP gesetzt wird. In einem weiteren Beispiel könnte der Block 636 so geändert werden, dass z auf Basis von Prioritätsdaten entsprechend der Nummer eines der Bits ungleich 0 in TEMP besetzt wird.
  • Mit Bezug auf 4 müssen nicht alle der Datenausgänge Indikatoren des Zustands des Zustandsautomaten sein, die dem SMFB 200 entspricht. In einem Ausführungsbeispiel können beispielsweise die Werte für die Ausgänge OUT_D1, OUT_D2 etc., die den verschiedenen Zuständen des Zustandsautomaten entsprechen, konfigurierbar sein. So kann z.B. für bestimmte Zustände eine Vielzahl der Ausgänge OUT_D1, OUT_D2 etc. aktiviert werden. Damit ein Programmierer den SMFB konfigurieren kann, kann eine Konfigurierungsapplikation in der Display-Vorrichtung 120 eine dem Funktionsblock zugeordnete Bedienerführung zur Anzeige bringen, wie z.B. ein Konfigurierungsfenster, einen Bildschirm etc.
  • 13 ist ein Beispiel einer Bedienerführung, die für die mindestens teilweise Konfigurierung eines SMFB wie z.B. des SMFB 200 in 4 genutzt werden kann. Die Bedienerführung umfasst eine Tabelle oder Matrix 700 (im Folgenden als die „Matrix 700“ bezeichnet), die als Teil eines dem SMFB zugeordneten Konfigurierungsfensters, -bildschirms etc. angezeigt werden kann. Die Matrix 700 beinhaltet eine Vielzahl von in Reihen und Spalten angeordneten Zellen 704. Jede Spalte entspricht einem von einer Vielzahl von Ausgängen OUT_D1, OUT_D2 etc. des Zustandsautomat-Funktionsblocks und jede Reihe entspricht einem der möglichen Zustände des Zustandsautomaten. Somit entspricht jede Zelle 704 einem Zustand und einem Ausgang. In anderen Beispielen kann jede Spalte einem von einer Vielzahl von Ausgängen entsprechen, und jede Reihe kann einem der möglichen Zustände des Zustandsautomat entsprechen.
  • Die Ausgänge „1“ bis „4“ der Matrix 700 können jeweils den Ausgängen OUT_D1 bis OUT_D4 des SMFB entsprechen. In ähnlicher Weise können die Zustände „1“ bis „6“ der Matrix 700 den möglichen Zuständen des Zustandsautomaten entsprechen. Zusätzlich kann in diesem Beispiel ein Nutzer jeden der Ausgänge mit einem Etikett versehen. In 13 hat „output 1“ beispielsweise das Etikett „ÖFFNEN VENTIL VLV-101“ (OPEN VALVE VLV-101). Die Etikettierung von Ausgängen kann zum besseren Verständnis der Arbeitsweise des Zustandsautomaten und/oder zur einfacheren Kopplung des Zustandsautomaten mit der Prozessanlage beitragen.
  • Ein Programmierer kann den SMFB durch Eingabe von Konfigurierungsinformation in die Zellen 704 konfigurieren. Insbesondere kann der Programmierer für eine bestimmte Zelle 704, die einem der Zustände und einem der Ausgänge entspricht, Konfigurierungsdaten in die Zelle eingeben, die anzeigen, dass, wenn sich der Zustandsautomat in diesem Zustand befindet, der Ausgang aktiviert werden sollte. In der beispielhaften Matrix 700 wurden Konfigurierungsdaten in einige der Zellen 704 eingegeben. Die Zelle 704A beinhaltet beispielsweise Konfigurierungsdaten, die anzeigen, dass, wenn sich der Zustandsautomat im Zustand „ABGESCHALTET“ befindet, der Ausgang OUT_D3 aktiviert werden sollte. In ähnlicher Weise beinhaltet die Zelle 704B Konfigurierungsdaten, die anzeigen, dass, wenn der Zustandsautomat sich im Zustand „ABGESCHALTET“ befindet, der Ausgang OUT_D4 aktiviert werden sollte.
  • In diesem besonderen Beispiel kann, wenn der Programmierer keine Konfigurierungsdaten in eine Zelle 704 eingibt, davon ausgegangen werden, dass für diesen besonderen Zustand der korrespondierende Ausgang nicht aktiviert werden sollte. Die Zellen 704C und 704D beinhalten beispielsweise keine Einträge „X“, womit angezeigt wird, dass, wenn der Zustandsautomat sich im Zustand „ABGESCHALTET“ befindet, die Ausgänge OUT_D1 und OUT_D2 nicht aktiviert werden sollten. In anderen Ausführungsbeispielen kann der Programmierer Konfigurierungsdaten eingeben, die anzeigen, dass der Zustandsautomat bestimmte Ausgänge nicht aktivieren sollte, wenn er sich in einem bestimmten Zustand befindet. In ähnlicher Weise kann es möglich sein anzuzeigen, dass es bei einem bestimmten Zustand und Ausgang nicht wichtig ist, ob der Ausgang aktiviert wird oder nicht.
  • Der Programmierer kann Konfigurierungsdaten in die Matrix 700 unter Verwendung der verschiedensten Techniken eingeben, auch solcher, die dem Fachmann geläufig sind. Für die Eingabe von Konfigurierungsdaten in eine Zelle 704 kann der Programmierer beispielsweise die Zelle 704 mit einer Maus, einem Trackball, mit Hilfe eines Touchscreens etc. anwählen. Der Nutzer könnte dann die Konfigurierungsdaten direkt, z.B. mittels einer Tastatur in die Zelle 704 eingeben. Alternativ könnte der Programmierer die Zelle 704 anwählen und dann „edit“, „modify“ etc. in einem Pull-Down-Menü oder direkt eine Schaltfläche „Edit“, „Modify“ etc. anwählen. Dann kann die Nutzerschnittstelle dem Programmierer über ein Pull-Down-Menü, ein Fenster, einen Bildschirm etc. eine Liste von Auswahlmöglichkeiten anzeigen. Die Liste der Auswahlmöglichkeiten kann beispielsweise eine Wahl „assert output“ (Ausgang aktivieren), eine Wahl „deassert output“ (Ausgang deaktivieren) und als Option eine Wahl „don't care“ (Ausgang unmaßgeblich) beinhalten. Anschließend kann der Programmierer z.B. mittels einer Tastatur, einer Maus, eines Trackballs, eines Touchscreens etc. eine der Wahlmöglichkeiten anwählen. Wählt der Programmierer die Möglichkeit „assert output“, so können die Konfigurierungsdaten anzeigen, dass für den korrespondierenden Zustand der entsprechende Ausgang aktiviert werden sollte. In der Zelle kann z.B. ein „X“, eine „1“, das Wort „TRUE“, das Wort „ASSERT“ etc. angezeigt werden. Trifft der Programmierer die Wahl „deassert output“, so können die Konfigurierungsdaten anzeigen, dass für den korrespondierenden Zustand der entsprechende Ausgang deaktiviert werden sollte. Die Zelle beispielsweise leer belassen werden, es kann eine „0“, das Wort „FALSE“, das Wort „DEASSERT" etc. in der Zelle angezeigt werden.
  • Obwohl die beispielhafte Matrix 700 Reihen für sechs Zustände und vier Ausgänge umfasst, können ähnliche Matrizen mit einer anderen Anzahl von Zuständen und Ausgängen für SMFBs mit einer anderen Anzahl von Zuständen und Ausgängen verwendet werden. Die Anzahl der Zustände und Ausgänge kann konfigurierbar sein.
  • Nachdem der momentane Zustand in Block 362 festgestellt wurde, können, wie in 7 gezeigt und vorstehend beschrieben, die Datenausgänge des SMFB auf Basis des momentanen Zustands gesetzt werden (Block 366). Die Datenausgänge können beispielsweise gemäß den Konfigurierungsdaten gesetzt werden, die in eine Matrix wie die Matrix 700 der 13 eingegeben wurden. 14 ist ein Blockdiagramm eines anderen Beispiels eines SMFB. Der SMFB 750 ähnelt dem SMFB 400 in 8, umfasst jedoch die Logik 754, die auf Basis des momentanen Zustands des Zustandsautomaten die entsprechenden Ausgänge OUT_D1, OUT_D2 etc. setzt. Insbesondere greift die Logik 754 auf Zustands-/Ausgangskonfigurierungsdaten zu, die in einer Ausgangskonfigurationsdatenbank 758 gespeichert sind. Die Datenbank 758 und die Datenbank 406 können in einem gemeinsamen computerlesbaren Medium oder in unterschiedlichen computerlesbaren Medien abgelegt werden. Die Ausgangskonfigurierungsdaten können Konfigurierungsdaten beinhalten, die in eine Matrix wie die Matrix 700 in 13 eingegeben wurden.
  • 15 ist ein Flussdiagramm einer beispielhaften Routine 800, die verwendet werden kann, um einen nächsten Zustand eines SMFB festzustellen und ggf. die entsprechenden Ausgänge OUT_D1, OUT_D2 etc. anzusteuern. Die Routine 800 ähnelt der Routine 600 in 12. Nach dem Block 652 wechselt der Ablauf jedoch zu einem Block 804, in dem entsprechende Ausgänge OUT_D1, OUT_D2 etc. aktiviert werden können.
  • 16 ist ein Flussdiagramm einer beispielhaften Routine 850, die genutzt werden kann, um die entsprechenden Ausgänge OUT_D1, OUT_D2 etc. anzusteuern. In einem Block 854 wird eine Variable z auf 1 gesetzt. In einem Block 858 wird der Ausgang OUT_Dz auf den Wert des Bits z eines Elements der Arrayvariablen OUTPUT gesetzt, auf das die Variable STATE zeigt. Jedes Element des Arrays OUTPUT kann eine Variable sein, die für einen der korrespondierenden Zustände die Werte der Ausgänge OUT_D1, OUT_D2 etc. angibt. So kann z.B. OUTPUT[1] dem Zustand 1, OUTPUT[2] dem Zustand 2 etc. entsprechen. Außerdem kann jedes Bit eines jeden Elements einem der Ausgänge OUT_D1, OUT_D2 etc. entsprechen. Bit 1 kann beispielsweise OUT_D1, Bit 2 OUT_D2 etc. entsprechen. In 13 würde das Array OUTPUT für die Matrix 700 z.B. 6 Elemente haben und das Element OUTPUT[1] kann 0x06 sein.
  • In einem Block 862 wird die Variable z inkrementiert und in einem Block 866 kann festgestellt werden, ob der Wert von z größer ist als die Anzahl der Ausgänge OUT_D1, OUT_D2 etc. Ist z nicht größer als die Anzahl der Ausgänge OUT_D1, OUT_D2 etc., so kann die Routine zu Block 858 zurückkehren. Andernfalls kann die Routine enden.
  • Konfigurierungsdaten für den SMFB können auch über andere Arten grafischer Nutzerschnittstellen als die vorstehend beschriebenen eingegeben werden. Beispielsweise können Konfigurierungsdaten über eine grafische Nutzerschnittstelle eingegeben werden, die einem Zustandsübergangsdiagramm ähnlich ist. 17 ist ein beispielhaftes Zustandsübergangsdiagramm 900, das für die Konfigurierung eines SMFB genutzt werden könnte. Das Diagramm 900 umfasst eine Vielzahl von grafischen Elementen 904, 908, 912, 916, 920, 924, 928 und 932. Die Elemente 904, 908 und 912 repräsentieren jeweils die Zustände 1, 2, und 3 eines Zustandsautomaten. Element 916 zeigt an, dass der im Zustand 1 befindliche Zustandsautomat in den Zustand 2 übergehen sollte, wenn INPUT 2 aktiviert ist. Element 920 zeigt an, dass der im Zustand 1 befindliche Zustandsautomat in den Zustand 3 übergehen sollte, wenn INPUT 3 aktiviert ist. Element 924 zeigt an, dass der im Zustand 2 befindliche Zustandsautomat in den Zustand 1 übergehen sollte, wenn INPUT 1 aktiviert ist, und Element 928 zeigt an, dass der im Zustand 3 befindliche Zustandsautomat in den Zustand 1 übergehen sollte, wenn INPUT 1 aktiviert ist. In entsprechender Weise zeigt Element 932 an, dass die im Zustand 3 befindliche Zustandsautomat in den Zustand 2 übergehen sollte, wenn INPUT 4 aktiviert ist.
  • Generell kann ein SMFB durch Software, Firmware oder Hardware oder durch eine Kombination aus Software, Firmware und/oder Hardware implementiert werden. Ein SMFB kann z.B. durch ein oder mehrere der Steuerungsgeräte 12a, 16a, I/O-Vorrichtungen 24, Logiksolver 50 und die Vorrichtungen 22, 23, 60, 62 implementiert werden. In einem weiteren Beispiel kann ein SMFB durch eine oder mehrere der Workstations 18a und 20a implementiert werden. Der SMFB kann beispielsweise durch die Workstation 18a und/oder die Workstation 20a als Teil einer Simulation zum Testen des Betriebs der Prozessanlage oder zur Bedienerschulung implementiert werden. In einigen Ausführungsbeispielen kann der SMFB durch einen Prozessor implementiert werden, dessen Software durch eine programmierbare Logikschaltung, z.B. eine Vorrichtung, die ein Gate-Array, eine Standardzelle, ein feldprogrammierbares Gate-Array (FPGA), ein PROM, ein EPROM, ein EEPROM, einen programmierbaren Logikbaustein (PAL), eine programmierbares logisches Array (PLA) etc. enthält, konfiguriert wurde.
  • Jeder der Blöcke 404, 408, 412, 416 und 420 in 8 und Block 754 in 14 kann durch Software, Firmware oder Hardware oder durch eine Kombination aus Software, Firmware und/oder Hardware implementiert werden. Obwohl die Flussdiagramme in 10-12, 15 und 16 als Routinen beschrieben wurden, könnten diese Flussdiagramme außerdem durch Software, Hardware, Firmware oder eine durch Kombination aus Software, Firmware und/oder Hardware implementiert werden.
  • Ausführungsbeispiele einer Nutzerschnittstelle, wie die vorstehend beschriebenen Nutzerschnittstellen, können ganz oder teilweise durch einen beispielsweise mittels eines Softwareprogramms konfigurierten Prozessor implementiert werden. So kann beispielsweise die Workstation 18a oder 20a oder ein anderer Computer die vorstehend beschriebene Nutzerschnittstelle ganz oder teilweise implementieren. Ein Softwareprogramm für die Implementierung von Ausführungsbeispielen einer Nutzerschnittstelle kann als Software verwirklicht werden, die in einem physikalischen Medium abgelegt ist, wie z.B. auf einer Festplatte, in einem RAM, einem batteriegepufferten RAM, ROM, CD-ROM, PROM, EPROM, EEPROM, einer DVD, einem Flash-Speicher etc., oder in einem mit dem Prozessor verbundenen Speicher, wie z.B. einem RAM. Dem Fachmann ist klar, dass das gesamte Programm oder Teile davon auf bekannte Weise alternativ von einer anderen Vorrichtung als einem Prozessor ausgeführt und/oder in Firmware und/oder zweckgebundene Hardware integriert werden könnten.
  • Obwohl verschiedene Modifikationen und andere Ausführungsarten der Erfindung möglich sind, sind bestimmte Ausführungsbeispiele zur Verdeutlichung in den Zeichnungen dargestellt und werden hierin ausführlich beschrieben. Es ist jedoch klar, dass die Offenlegung nicht auf die spezifischen offengelegten Formen beschränkt sein soll, sondern dass im Gegenteil alle Modifikationen sowie andere Ausführungsarten und Äquivalente abgedeckt werden sollen, die dem Geist und Geltungsbereich der Offenlegung gemäß der Definition in den beigefügten Ansprüchen entsprechen.

Claims (56)

  1. Verfahren für die Konfigurierung eines einer Prozessanlage zugeordneten Zustandsautomaten, welcher als Funktionsblocks implementiert ist, über eine Rechenvorrichtung mit einer Display- und einer Eingabevorrichtung, wobei der Zustandsautomat auf der Grundlage von Konfigurationsdaten des Zustandsautomaten und einem oder mehreren Eingängen des Zustandsautomaten zwischen den Zuständen übergeht, wobei die Eingänge des Zustandsautomaten mit dem Betrieb der Prozessanlage verbunden sind, wobei das Verfahren aufweist: Bereitstellung einer grafischen Nutzerschnittstelle über die Display-Vorrichtung, wobei die grafische Nutzerschnittstelle eine Vielzahl von grafischen Elementen umfasst, wobei die grafischen Elemente eine erste Vielzahl von Zellen umfassen, die dem Funktionsblock zugeordnet sind, der in einer Matrix mit einer ersten Dimension und einer zweiten Dimension angeordnet ist, wobei Positionen entlang der ersten Dimension Zustandsmaschinenzuständen entsprechen und Positionen entlang der zweiten Dimension Eingänge des Zustandsautomaten entsprechen, so dass Zellen in der ersten Vielzahl von Zellen Eingangs-/Zustandspaare definieren, die der Position der Zellen relativ zu der ersten und zweiten Dimension entsprechen; Empfangen von Zustandsübergangsdaten, die mit einem oder mehreren der Vielzahl von grafischen Elementen über die Eingabevorrichtung verbunden sind, wobei die Zustandsübergangsdaten einen oder mehrere nächste Zustände feststellen, in die die Zustandsmaschine im Anschluss an Bedingungen in der Prozessanlage übergeht, die den Eingabe/Zustandspaaren entsprechen, die durch eine oder mehrere der Zellen der ersten Vielzahl von Zellen definiert sind; und Speichern der Zustandsübergangsdaten auf dem ersten computerlesbaren Medium, das mit dem Funktionsblock verbunden ist.
  2. Verfahren nach Anspruch 1, ferner aufweisend das Anzeigen der ersten Vielzahl von Zellen auf der Display-Vorrichtung und das Anzeigen von Angaben auf die Zustandsübergangsdaten in der einen oder mehreren der ersten Vielzahl von Zellen, für die Zustandsübergangsdaten empfangen wurden.
  3. Verfahren nach Anspruch 2, bei dem die Anzeige der ersten Vielzahl von Zellen auf der Display-Vorrichtung das Anzeigen der Matrix beinhaltet, wobei die erste Dimension mindestens eine Reihe von Zellen umfasst und die zweite Dimension eine Vielzahl von Spalten von Zellen umfasst, so dass jede der mindestens einen Reihe von Zellen mit einem Eingang des Zustandsautomaten verbunden ist und jede Spalte von Zellen mit einem der Vielzahl von Zuständen verbunden ist.
  4. Verfahren nach Anspruch 2, bei dem die Anzeige der ersten Vielzahl von Zellen auf der Display-Vorrichtung das Anzeigen der Matrix umfasst, wobei die erste Dimension mindestens eine Spalte von Zellen umfasst und die zweite Dimension eine Vielzahl von Reihen von Zellen umfasst, so dass jede Reihe von Zellen mit einem der Vielzahl von Zuständen verbunden ist, und wobei jede der mindestens einen Spalte von Zellen mit einem Eingang des Zustandsautomaten verbunden ist.
  5. Verfahren nach Anspruch 4, bei dem der spezifische Wert eine logische Eins, eine logische Null, ein logisches TRUE oder ein logisches FALSE ist.
  6. Verfahren nach Anspruch 1, das außerdem umfasst: Empfangen von Daten über die Eingangsvorrichtung, die eine Anzahl von Eingängen über den mindestens einen Eingang des Zustandsautomaten anzeigen; und die Feststellung einer Anzahl von Zellen in der ersten Vielzahl von Zellen auf Basis der Anzahl der Eingänge des Zustandsautomaten.
  7. Verfahren nach Anspruch 6, das weiter umfasst: Empfangen von Daten über die Eingangsvorrichtung, die eine Anzahl von Zuständen in der Vielzahl von Zuständen anzeigen; wobei die Feststellung der Anzahl von Zellen in der ersten Vielzahl von Zellen Feststellung der Anzahl von Zellen auf Basis der Anzahl von Eingängen und der Anzahl von Zuständen umfasst.
  8. Verfahren nach Anspruch 1, das ferner umfasst: Empfangen von Daten über die Eingangsvorrichtung, die eine Anzahl von Zuständen in einer Vielzahl von Zuständen anzeigen; und Feststellung einer Anzahl von Zellen in der ersten Vielzahl von Zellen auf Basis der Anzahl von Zuständen.
  9. Verfahren nach Anspruch 1, bei dem die Vielzahl von grafischen Elementen außerdem eine zweite Vielzahl von Zellen beinhaltet, die dem Funktionsblock zugeordnet sind, wobei jede Zelle der zweiten Vielzahl von Zellen jeweils einem einer Vielzahl von Ausgängen des Funktionsblocks und jeweils einem der Vielzahl von Zuständen des Zustandsautomaten entspricht; über die Eingangsvorrichtung erfolgenden Empfang von Ausgangskonfigurierungsdaten, die mindestens einigen der zweiten Vielzahl von Zellen zugeordnet sind, wobei die jeweiligen Ausgangskonfigurierungsdaten, die jeder Zelle von mindestens einigen der zweiten Vielzahl von Zellen zugeordnet sind, Daten enthalten, die einen Ausgangswert des Ausgangs anzeigen, der der Zelle entspricht, wenn der Zustandsautomat in dem der Zelle korrespondierenden Zustand ist; und Speicherung der Ausgangskonfigurierungsdaten in einem zweiten computerlesbaren, dem Funktionsblock zugeordneten Medium.
  10. Verfahren nach Anspruch 9, bei dem das erste computerlesbare Medium das zweite computerlesbare Medium beinhaltet.
  11. Verfahren nach Anspruch 1, das ferner umfasst: Empfang von Daten, die anzeigen, wie Eingänge mit einem Status „BAD“ zu handhaben sind; und Speicherung der Daten, die anzeigen, wie Eingänge mit dem Status „BAD“ zu handhaben sind.
  12. Verfahren nach Anspruch 1, bei dem der mindestens ein Eingang des Zustandsautomaten eine Vielzahl von Eingänge des Zustandsautomatenbeinhaltet, wobei das Verfahren ferner umfasst: Empfang von Daten über die grafische Nutzerschnittstelle, die die der Vielzahl von Eingängen des Zustandsautomatenzugeordneten Prioritäten anzeigen; und Speicherung der Daten, die anzeigen, wie Eingänge mit dem Status „BAD“ zu handhaben sind.
  13. Verfahren nach Anspruch 1, das ferner den Empfang von Daten umfasst, die anzeigen, ob ggf. ein oder mehrere des mindestens einen Eingangs des Zustandsautomaten von dem Zustandsautomaten ignoriert werden sollten; und Speicherung der Daten, die anzeigen, ob ggf. ein oder mehrere des mindestens einen Eingangs des Zustandsautomaten vom Zustandsautomaten ignoriert werden sollten.
  14. Verfahren nach Anspruch 1, bei dem der mindestens ein Eingang des Zustandsautomaten mit mindestens einem Prozesssteuerungssystem, einer Simulation eines Prozesssteuerungssystems, einem Sicherheitssystem oder einer Simulation eines Sicherheitssystems verbunden werden muss.
  15. Verfahren nach Anspruch 1, bei dem der mindestens ein Eingang des Zustandsautomaten von mindestens einem anderen, der Prozessanlage zugeordneten Funktionsblock erhalten werden muss.
  16. Verfahren nach Anspruch 1, bei dem der mindestens ein Eingang des Zustandsautomaten von einer Bedienerschnittstelle erhalten werden muss.
  17. Physikalisches Medium, das maschinenlesbare Anweisungen speichert, die umfassen: einen ersten Code zur Bereitstellung einer grafischen Nutzerschnittstelle über die Display-Vorrichtung zur Konfigurierung der Art und Weise, wie ein Zustandsautomat unter einer Vielzahl von Zuständen wechseln soll, wobei die grafische Nutzerschnittstelle eine Vielzahl von grafischen Elementen umfasst mit einer ersten Vielzahl von Zellen, die einem Funktionsblock zugeordnet sind, der in einer Matrix mit einer ersten Dimension und einer zweiten Dimension angeordnet ist, wobei Positionen entlang der ersten Dimension Zustandsmaschinenzuständen entsprechen und Positionen entlang der zweiten Dimension Eingänge des Zustandsautomaten entsprechen, so dass Zellen in der ersten Vielzahl von Zellen Eingangs-/Zustandspaare definieren, die der Position der Zellen relativ zu den ersten und zweiten Dimensionen entsprechen, die verwendet werden können, um gewünschte Übergänge zwischen Zuständen anzuzeigen; ein zweiter Code zum Empfangen von Zustandsübergangsdaten, die einen nächsten Zustand der Zustandsmaschine feststellen, der mit einem der grafischen Elemente über die grafische Benutzerschnittstelle verbunden ist; und einen dritten Code zum Speichern der Zustandsübergangsdaten in einem dem Funktionsblock zugeordneten computerlesbaren Medium, der eine Zustandsmaschine in einer Prozessanlage implementiert, so dass die Zustandsmaschine in den nächsten Zustand übergeht, wenn die Bedingungen in der Prozessanlage dem mit dem grafischen Element verbundenen Eingabe/Zustandspaar entsprechen.
  18. Physikalisches Medium nach Anspruch 17, wobei der zweite Code einen vierten Code beinhaltet, der zum Empfang der jeweiligen Daten über eine Eingangsvorrichtung der Rechenvorrichtung dient, die jeder von mindestens einigen der ersten Vielzahl von Zellen zugeordnet sind, wobei die jeweiligen Daten einen nächsten Zustand anzeigen, in den der Zustandsautomat übergehen sollte, wenn sich der Zustandsautomat in dem der Zelle korrespondierenden Zustand befindet und wenn der der Zelle entsprechende Eingang einen spezifischen Wert aufweist.
  19. Physikalisches Medium nach Anspruch 18, das ferner einen fünften Code enthält, um auf der Display-Vorrichtung Angaben zu den Zustandsübergangsdaten in den entsprechenden Zellen der ersten Vielzahl von Zellen anzuzeigen.
  20. Physikalisches Medium nach Anspruch 18, bei dem der erste Code einen fünften Code umfasst, um auf der Display-Vorrichtung die Matrix zur Anzeige zu bringen, wobei die erste Dimension mindestens eine Reihe von Zellen umfasst und die zweite Dimension eine Vielzahl von Spalten von Zellen umfasst, so dass jede Reihe der mindestens einen Reihe einem Eingang des Zustandsautomaten entspricht, und wobei jede Spalte der Vielzahl von Spalten mit einem Zustandsmaschinenzustand verbunden ist.
  21. Physikalisches Medium nach Anspruch 18, bei dem der erste Code einen fünften Code beinhaltet, um auf der Display-Vorrichtung eine Matrix zur Anzeige zu bringen, wobei die erste Dimension mindestens eine Spalte von Zellen umfasst und die zweite Dimension eine Vielzahl von Reihen von Zellen umfasst, so dass jede Reihe der Vielzahl von Reihen einem Maschinenzustand entspricht, und wobei jede Spalte der mindestens einen Spalte mit einem Maschinenzustandseingang verbunden ist.
  22. Physikalisches Medium nach Anspruch 18, bei dem der spezifische Wert eine logische Eins, eine logische Null, ein logisches TRUE oder ein logisches FALSE ist.
  23. Physikalisches Medium nach Anspruch 18, das ferner aufweist: einen fünften Code zum Empfang von Daten über die Eingangsvorrichtung, die eine Anzahl von Eingängen des Zustandsautomaten in dem mindestens einen Eingang anzeigen; und einen sechsten Code zur Feststellung einer Anzahl von Zellen in der ersten Vielzahl von Zellen auf Basis der Anzahl von Eingängen.
  24. Physikalisches Medium nach Anspruch 23, das außerdem aufweist: einen siebten Code zum Empfang von Daten über die Eingangsvorrichtung, die eine Anzahl von Zuständen in der Vielzahl von Zustandsautomaten-Zuständen anzeigen; wobei der sechste Code einen Code zur Feststellung der Anzahl von Zellen auf Basis der Anzahl von Eingängen des Zustandsautomaten und der Anzahl von Zustandsautomaten-Zuständen beinhaltet.
  25. Physikalisches Medium nach Anspruch 18, das außerdem aufweist: einen fünften Code zum Empfang von Daten über die Eingangsvorrichtung, die eine Anzahl von Zuständen in der Vielzahl der Zustandsautomaten-Zustände anzeigen; und einen sechsten Code zur Feststellung einer Anzahl von Zellen in der ersten Vielzahl von Zellen auf Basis der Anzahl von Zustandsautomaten-Zuständen.
  26. Physikalisches Medium nach Anspruch 18, bei dem die Vielzahl grafischer Elemente eine zweite Vielzahl von Zellen umfasst, die dem Funktionsblock zugeordnet sind, wobei jede Zelle der zweiten Vielzahl von Zellen jeweils einem einer Vielzahl von Ausgängen des Funktionsblocks und jeweils einem der Vielzahl von Zuständen des Zustandsautomaten entspricht; einen sechsten Code zum Empfang von Ausgangskonfigurierungsdaten über die Eingangsvorrichtung, die mindestens einigen der zweiten Vielzahl von Zellen zugeordnet sind, wobei die jeweiligen Ausgangskonfigurierungsdaten, die jeder Zelle von mindestens einigen der zweiten Vielzahl von Zellen zugeordnet sind, Daten beinhalten, die einen Ausgangswert für den der Zelle korrespondierenden Ausgang anzeigen, wenn der Zustandsautomat sich in dem der Zelle korrespondierenden Zustand befindet, und einen siebten Code zur Speicherung der Ausgangskonfigurierungsdaten.
  27. Physikalisches Medium nach Anspruch 17, bei dem der mindestens eine Eingang eine Vielzahl von Eingängen des Zustandsautomaten beinhaltet, wobei das physikalische Medium außerdem aufweist: einen vierten Code zum Empfang von Daten über die Eingangsvorrichtung, die der Vielzahl von Eingängen des Zustandsautomaten zugeordnete Prioritäten anzeigen; und einen fünften Code zur Speicherung der die Prioritäten anzeigenden Daten.
  28. Physikalisches Medium nach Anspruch 17, das ferner aufweist: einen vierten Code zum Empfang von Daten, die anzeigen, wie Eingänge des Zustandsautomaten mit einem Status „BAD“ zu handhaben sind; und einen fünften Code zur Speicherung der Daten, die anzeigen, wie Eingänge des Zustandsautomaten mit einem Status „BAD“ zu handhaben sind.
  29. Physikalisches Medium nach Anspruch 17, das außerdem aufweist: einen vierten Code zum Empfang von Daten, die anzeigen ob ggf. ein oder mehrere des mindestens einen Eingangs des Zustandsautomaten ignoriert werden sollen; und einen fünften Code zur Speicherung der Daten, die anzeigen ob ggf. ein oder mehrere des mindestens einen Eingangs des Zustandsautomaten ignoriert werden sollen.
  30. Physikalisches Medium nach Anspruch 17, bei dem der mindestens eine Eingang des Zustandsautomaten mindestens einem Prozesssteuerungssystem, einer Simulation eines Prozesssteuerungssystems, einem Sicherheitssystem oder einer Simulation eines Sicherheitssystems zuzuordnen ist.
  31. Physikalisches Medium nach Anspruch 17, bei dem der mindestens eine Eingang des Zustandsautomaten von mindestens einem anderen, der Prozessanlage zugeordneten Funktionsblock erhalten werden muss.
  32. Physikalisches Medium nach Anspruch 17, bei dem der mindestens eine Eingang des Zustandsautomaten von einer Bedienerschnittstelle erhalten werden muss.
  33. Verfahren zur Implementierung eines Zustandsautomaten, welcher als Funktionsblock implementiert ist, zur Nutzung bei der Steuerung oder der Steuerungssimulation einer oder mehrerer Feldvorrichtungen in einer Prozessanlage, wobei das Verfahren umfasst: Bereitstellung einer grafischen Nutzerschnittstelle über die Display-Vorrichtung, wobei die grafische Nutzerschnittstelle eine Vielzahl von grafischen Elementen umfasst zur mindestens teilweisen Konfigurierung der Art und Weise, wie ein Zustandsautomat unter einer Vielzahl von Zuständen wechseln soll, wobei die grafischen Elemente eine erste Vielzahl von Zellen umfassen, die dem Funktionsblock zugeordnet sind, der in einer Matrix mit einer ersten Dimension und einer zweiten Dimension angeordnet ist, wobei Positionen entlang der ersten Dimension Zustandsmaschinenzuständen entsprechen und Positionen entlang der zweiten Dimension Eingänge des Zustandsautomaten entsprechen, so dass Zellen in der ersten Vielzahl von Zellen Eingangs-/Zustandspaare definieren, die der Position der Zellen relativ zur ersten und zweiten Dimension entsprechen, wobei ein oder mehrere Eingänge des Zustandsautomaten einen oder mehrere Zustände innerhalb der Prozessanlage anzeigen; Empfang der Zustandsübergangsdaten, die einen nächsten Zustand der Zustandsmaschine feststellen, der mit mindestens einer der ersten Vielzahl von Zellen über eine Schnittstelleneingabe verbunden ist, die mit der grafischen Benutzerschnittstelle verbunden ist; Speicherung der Zustandsübergangsdaten in einem ersten, dem Funktionsblock zugeordneten computerlesbaren Medium; Empfang von mindestens einem Eingang der Zustandsmaschine,; Feststellung eines nächsten Zustands auf Basis mindestens eines des mindestens einen Eingangs, eines momentanen Zustands und der in einem ersten computerlesbaren Medium gespeicherten Zustandsübergangsdaten; Setzen des momentanen Zustands des Zustandautomaten auf den nächsten Zustand; und Bereitstellung mindestens eines Funktionsblockausgangs zur Verwendung bei der Steuerung der einen oder mehrerer Feldvorrichtungen für mindestens einen zweiten anderen Funktionsblock, wobei der mindestens eine Funktionsblockausgang auf dem momentanen Zustand des Zustandsautomaten basiert.
  34. Verfahren nach Anspruch 33, bei dem der mindestens eine Zustandsmaschinen-Eingang eine Vielzahl von Zustandsmaschinen-Eingängen umfasst; wobei die Feststellung des nächsten Zustands die Feststellung des nächsten Zustands auch auf Basis der der Vielzahl von Zustandsmaschinen-Eingängen zugeordneten Prioritäten umfasst.
  35. Verfahren nach Anspruch 34, bei dem die Feststellung des nächsten Zustands auf einer Reihenfolge basiert, die durch die Prioritäten bestimmt wird, die mit der Vielzahl der Eingänge des Zustandsautomaten verbunden sind.
  36. Verfahren nach Anspruch 33, das außerdem umfasst: Feststellung, ob ein Zustandsübergang auf Basis mindestens eines des mindestens einen Zustandsmaschinen-Eingangs und der im ersten computerlesbaren Medium gespeicherten Zustandsübergangsdaten erfolgen soll; wobei die Feststellung des nächsten Zustands die Feststellung des nächsten Zustands umfasst, wenn ein Zustandsübergang erfolgen soll; und wobei das Setzen des momentanen Zustands des Zustandsautomaten auf den nächsten Zustand das Setzen des momentanen Zustands des Zustandsautomaten auf den nächsten Zustand beinhaltet, wenn ein Zustandsübergang erfolgen soll.
  37. Verfahren nach Anspruch 33, bei dem die Feststellung des nächsten Zustands ggf. die Feststellung eines oder mehrerer des mindestens einen Zustandsmaschinen-Eingangs umfasst, die einen spezifischen Wert aufweisen.
  38. Verfahren nach Anspruch 37, bei dem die Feststellung des nächsten Zustands außerdem die Feststellung eines oder mehrerer des einen oder mehrerer des mindestens einen Zustandsmaschinen-Eingangs umfasst, die den spezifischen Wert aufweisen und die außerdem Zustandswechseln auf Basis der im ersten computerlesbaren Medium gespeicherten Zustandsübergangsdaten entsprechen.
  39. Verfahren nach Anspruch 38, das außerdem ggf. die Wahl eines des einen oder mehrerer des mindestens einen Zustandsmaschinen-Eingangs umfasst, die den spezifischen Wert aufweisen und den Zustandswechseln entsprechen.
  40. Verfahren nach Anspruch 39, bei dem der mindestens eine Eingang eine Vielzahl von Eingängen umfasst; wobei ggf. die Auswahl eines des einen oder mehrerer des mindestens einen Eingangs, die den spezifischen Wert aufweisen und den Zustandswechseln entsprechen, die Auswahl auf Basis von Prioritäten umfasst, die der Vielzahl von Eingängen zugeordnet sind.
  41. Verfahren nach Anspruch 40, bei dem ggf. die Auswahl eines des einen oder mehrerer des mindestens einen Eingangs, die den spezifischen Wert aufweisen und den Zustandswechseln entsprechen, die Auswahl auf Basis einer Reihenfolge umfasst, die der Vielzahl von Eingängen zugeordnet ist.
  42. Verfahren nach Anspruch 33, bei dem die Feststellung des nächsten Zustandsdie Feststellung eines oder mehrerer des mindestens einen Eingangs umfasst, denen mögliche Zustandswechsel aus dem momentanen Zustand auf Basis der im ersten computerlesbaren Medium gespeicherten Zustandsübergangsdaten zugeordnet sind.
  43. Verfahren nach Anspruch 42, bei dem die Feststellung des nächsten Zustands fernerdie Feststellung eines oder mehrerer des einen oder mehrerer des mindestens einen Eingangs umfasst, denen mögliche Zustandswechsel aus dem momentanen Zustand zugeordnet sind und die ebenfalls einen spezifischen Wert aufweisen.
  44. Verfahren nach Anspruch 33, bei dem die Bereitstellung des mindestens einen Funktionsblockausgangs die Bereitstellung einer Vielzahl von Funktionsblockausgängen beinhaltet.
  45. Verfahren nach Anspruch 44, bei dem jeder von mindestens einigen der Vielzahl von Funktionsblockausgängen anzeigt, ob der momentane Zustand des Zustandsautomaten jeweils einem einer Vielzahl von möglichen Zuständen des Zustandsautomaten entspricht.
  46. Verfahren nach Anspruch 44, bei dem die Bereitstellung der Vielzahl von Funktionsblockausgängen umfasst: Abruf von Daten auf Basis mindestens des momentanen Zustands, die entsprechende Werte für mindestens einige der Vielzahl von Zustandsautomat-Funktionsblockausgängen aus einer Ausgangskonfigurationsdatenbank anzeigen; und Setzen mindestens einiger der Vielzahl von Funktionsblockausgängen auf die entsprechenden Werte.
  47. Verfahren nach Anspruch 44, bei dem die Bereitstellung der Vielzahl von Funktionsblockausgängen die Bereitstellung eines Funktionsblockausgangs beinhaltet, der den momentanen Zustand des Zustandsautomaten anzeigt.
  48. Verfahren nach Anspruch 33, bei dem der mindestens eine Funktionsblockausgang einen Funktionsblockausgang umfasst, der den momentanen Zustand des Zustandsautomaten anzeigt.
  49. Verfahren nach Anspruch 33, das weiter umfasst: Empfang eines Eingangs, der anzeigt, ob der Zustandsautomat-Funktionsblock gesperrt werden soll; und wenn die Eingabe, die anzeigt, ob der Zustandsautomat-Funktionsblock gesperrt werden soll, anzeigt, dass der Zustandsautomat-Funktionsblock gesperrt werden soll, Setzen des momentanen Zustands des Zustandsautomaten auf einen gesperrten Zustand.
  50. Verfahren nach Anspruch 49, das außerdem umfasst: Empfang eines Eingangs, der anzeigt, ob der Zustandsautomat-Funktionsblock in einen Anfangszustand gebracht werden soll; und wenn die Eingabe, die anzeigt, ob der Zustandsautomat-Funktionsblock in den Anfangszustand gebracht werden soll, anzeigt, dass der Zustandsautomat-Funktionsblock in den Anfangszustand gebracht werden soll, Setzen des momentanen Zustands des Zustandsautomaten auf den Anfangszustand; wobei die Eingang, der anzeigt, ob der Zustandsautomat-Funktionsblock freigegeben werden soll, und der Eingang, der anzeigt, ob der Zustandsautomat-Funktionsblock in den Anfangszustand gebracht werden soll, einen einzigen Eingang bilden.
  51. Verfahren nach Anspruch 33, das außerdem umfasst: Empfang einer Eingabe, die anzeigt, ob der Zustandsautomat-Funktionsblock in einen Anfangszustand gebracht werden soll; und wenn die Eingabe, die anzeigt, ob der Zustandsautomat-Funktionsblock in den Anfangszustand gebracht werden soll, anzeigt, dass der Zustandsautomat-Funktionsblock in den Anfangszustand gebracht werden sollte, Setzen des momentanen Zustands des Zustandsautomaten auf den Anfangszustand.
  52. Verfahren nach Anspruch 33, bei dem der Empfang des mindestens einen Dateneingangs in den Zustandsautomat-Funktionsblock den Empfang von mindestens einem Signal umfasst, das mindestens einem Prozesssteuerungssystem, einer Simulation eines Prozesssteuerungssystems, einem Sicherheitssystem oder einer Simulation eines Sicherheitssystems zugeordnet ist.
  53. Verfahren nach Anspruch 33, bei dem der mindestens eine Zustandsmaschinen-Eingang von mindestens einem anderen, mit der Prozessanlage verbundenen Funktionsblock erhalten werden muss.
  54. Verfahren nach Anspruch 33, bei dem der mindestens eine Zustandsmaschinen-Eingang von einer Bedienerschnittstelle erhalten werden muss.
  55. Verfahren nach Anspruch 33, bei dem die Bereitstellung des mindestens einen Funktionsblockausgangs die Bereitstellung des mindestens einen Funktionsblockausgangs für einen Abschnitt eines Prozesssteuerungssystems umfasst, wobei der Abschnitt des Prozesssteuerungssystems die eine oder mehrere Feldvorrichtungen mindestens teilweise auf Basis des mindestens einen Funktionsblockausgangs steuert.
  56. Verfahren nach Anspruch 33, bei dem die Bereitstellung des mindestens einen Funktionsblockausgangs die Bereitstellung des mindestens einen Funktionsblockausgangs für einen Abschnitt eines Sicherheitssystems umfasst, wobei der Abschnitt des Sicherheitssystems die eine oder mehrere Feldvorrichtungen mindestens teilweise auf Basis des mindestens eines Funktionsblockausgangs steuert.
DE102004042550.7A 2003-09-05 2004-09-02 Zustandsautomat-Funktionsblock mit durch den Nutzer veränderlicher Konfigurationsdatenbank für Zustandsübergänge Expired - Lifetime DE102004042550B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/656,005 US7730415B2 (en) 2003-09-05 2003-09-05 State machine function block with a user modifiable state transition configuration database
US10/656,005 2003-09-05

Publications (2)

Publication Number Publication Date
DE102004042550A1 DE102004042550A1 (de) 2005-05-19
DE102004042550B4 true DE102004042550B4 (de) 2023-03-09

Family

ID=33160005

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004042550.7A Expired - Lifetime DE102004042550B4 (de) 2003-09-05 2004-09-02 Zustandsautomat-Funktionsblock mit durch den Nutzer veränderlicher Konfigurationsdatenbank für Zustandsübergänge

Country Status (6)

Country Link
US (2) US7730415B2 (de)
JP (1) JP4885435B2 (de)
CN (1) CN1598723B (de)
DE (1) DE102004042550B4 (de)
GB (2) GB2405705B (de)
HK (1) HK1074083A1 (de)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7730415B2 (en) 2003-09-05 2010-06-01 Fisher-Rosemount Systems, Inc. State machine function block with a user modifiable state transition configuration database
US7500209B2 (en) * 2005-09-28 2009-03-03 The Mathworks, Inc. Stage evaluation of a state machine
CN101009915B (zh) * 2006-01-26 2011-04-13 华为技术有限公司 媒体无关切换功能设备及其状态迁移方法
US20070233865A1 (en) * 2006-03-30 2007-10-04 Garbow Zachary A Dynamically Adjusting Operating Level of Server Processing Responsive to Detection of Failure at a Server
US7496579B2 (en) * 2006-03-30 2009-02-24 International Business Machines Corporation Transitioning of database service responsibility responsive to server failure in a partially clustered computing environment
JP4671131B2 (ja) 2006-08-10 2011-04-13 横河電機株式会社 安全計装システム
US8005553B2 (en) 2006-09-29 2011-08-23 Fisher-Rosemount Systems, Inc. Automatic configuration of synchronous block execution for control modules run in fieldbus networks
US7761171B2 (en) 2006-09-29 2010-07-20 Fisher-Rosemount Systems, Inc. Methods and apparatus to generate schedules to execute functions in a process control system
WO2008097912A2 (en) * 2007-02-06 2008-08-14 Progress Software Corporation Event-based process configuration
US8812052B2 (en) 2007-02-27 2014-08-19 Qualcomm Incorporated SPS receiver with adjustable linearity
EP2183690A1 (de) * 2007-09-07 2010-05-12 ABB Technology AG Konfiguration einer intelligenten elektronischen einrichtung
DE102007043328A1 (de) * 2007-09-12 2009-03-19 Endress + Hauser Process Solutions Ag Verfahren zur Überwachung einer Prozessanlage mit einem Feldbus der Prozessautomatisierungstechnik
CN101408761B (zh) * 2007-10-09 2011-09-28 研华股份有限公司 输入/输出模块系统利用图形操作设定的方法
EP2169489B1 (de) * 2008-09-30 2012-08-01 Siemens Aktiengesellschaft Verfahren zur Implementierung von Herstellungsprozessen
US9231630B2 (en) * 2009-05-05 2016-01-05 San Diego, CA Radio device having dynamic intermediate frequency scaling
US9256219B2 (en) * 2009-08-11 2016-02-09 Fisher-Rosemount Systems, Inc. System configuration using templates
DE102009054230A1 (de) * 2009-11-23 2011-05-26 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Steuern von Manipulatoren
US20110258125A1 (en) * 2010-04-16 2011-10-20 Vinay Rama Iyer Collaborative Social Event Planning and Execution
EP2820537A1 (de) 2012-02-15 2015-01-07 The Mathworks, Inc. Erzeugung eines zustandsdiagramms
WO2013123376A1 (en) * 2012-02-15 2013-08-22 The Mathworks, Inc. Unified state transition table describing a state machine model
JP2013207385A (ja) * 2012-03-27 2013-10-07 Toshiba Corp 状態遷移処理装置
US8744604B2 (en) * 2012-05-09 2014-06-03 Fisher Controls International Llc Method and apparatus for configuring a blackout period for scheduled diagnostic checks of a field device in a process plant
US20140280528A1 (en) * 2013-03-12 2014-09-18 Rockwell Automation Technologies, Inc. State machine configurator
US9086688B2 (en) * 2013-07-09 2015-07-21 Fisher-Rosemount Systems, Inc. State machine function block with user-definable actions on a transition between states
US9777856B2 (en) 2013-12-12 2017-10-03 Regulator Technologies Tulsa, Llc Pressure vacuum relief valve
CN103728957B (zh) * 2014-01-15 2017-02-01 浙江大学 一种基于实时数据库的hart现场设备管理方法及系统
US9130566B1 (en) * 2014-09-24 2015-09-08 Xilinx, Inc. Programmable IC with power fault tolerance
US20160116894A1 (en) * 2014-10-28 2016-04-28 Flow Data, Inc. Control system with a network of controllers using linked cause-and-effect matrices
CN104407591A (zh) * 2014-11-27 2015-03-11 杭州优稳自动化系统有限公司 一种基于实时数据库的Modbus设备主从站通讯管理方法及系统
US10438144B2 (en) 2015-10-05 2019-10-08 Fisher-Rosemount Systems, Inc. Method and apparatus for negating effects of continuous introduction of risk factors in determining the health of a process control system
GB2558817B (en) 2015-10-09 2022-03-02 Fisher Rosemount Systems Inc System and method for verifying the safety logic of a cause and effect matrix
GB2545719B (en) * 2015-12-23 2018-06-06 Moog Unna Gmbh System and method for controlling a wind turbine
US10447078B2 (en) 2017-10-02 2019-10-15 Fisher-Rosemount Systems, Inc. Smart function block for integration of PLCS into a control system and methods for the same
US10545470B2 (en) 2017-11-10 2020-01-28 Rockwell Automation Technologies, Inc. Configurable mode model
KR102412088B1 (ko) * 2021-11-08 2022-06-22 (주) 바우디움 상태 기계에 의하여 작업의 진행 상황을 관리하는 방법 및 이를 이용한 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999009498A1 (en) 1997-08-18 1999-02-25 National Instruments Corporation System and method for converting graphical programs into hardware implementations
US5903886A (en) 1996-04-30 1999-05-11 Smartlynx, Inc. Hierarchical adaptive state machine for emulating and augmenting software
DE19940078A1 (de) 1998-08-31 2000-03-30 Fisher Controls Int Verteiltes Stapelverarbeitungssystem und Verfahren
US20020194218A1 (en) 1998-04-23 2002-12-19 Klapper John P. System for graphically generating logic for a cause and effects matrix

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4607256A (en) * 1983-10-07 1986-08-19 Honeywell, Inc. Plant management system
JPS61253503A (ja) 1985-05-02 1986-11-11 Mitsubishi Electric Corp シ−ケンス制御装置
JPS63293604A (ja) 1987-05-27 1988-11-30 Fuji Electric Co Ltd シ−ケンステ−ブル式制御装置
JPS6419170A (en) 1987-07-10 1989-01-23 Shinnensho System Kenkyusho High pressure air supply device for internal combustion engine
JPS6441004A (en) * 1987-08-07 1989-02-13 Mitsubishi Electric Corp Programmable sequence controller
GB9011700D0 (en) * 1990-05-25 1990-07-18 Inmos Ltd Communication interface
JPH0589069A (ja) * 1991-09-30 1993-04-09 Toshiba Corp 分散形制御システム
JPH05346810A (ja) * 1991-10-09 1993-12-27 Yaskawa Electric Corp プログラマブルコントローラの出力異常処理方式
JP3275450B2 (ja) 1993-04-30 2002-04-15 オムロン株式会社 故障診断方法および装置
US5594858A (en) * 1993-07-29 1997-01-14 Fisher-Rosemount Systems, Inc. Uniform control template generating system and method for process control programming
US5530643A (en) 1993-08-24 1996-06-25 Allen-Bradley Company, Inc. Method of programming industrial controllers with highly distributed processing
JPH0798561A (ja) * 1993-09-29 1995-04-11 Yokogawa Electric Corp 分散形制御装置
US5576946A (en) * 1993-09-30 1996-11-19 Fluid Air, Inc. Icon based process design and control system
JPH08328613A (ja) * 1995-05-30 1996-12-13 Meidensha Corp シーケンス・プログラムの作成・データ設定方法
JPH09148852A (ja) 1995-11-24 1997-06-06 Matsushita Electric Ind Co Ltd 送信出力可変装置
US5838563A (en) * 1996-04-12 1998-11-17 Fisher-Rosemont Systems, Inc. System for configuring a process control environment
US5768119A (en) 1996-04-12 1998-06-16 Fisher-Rosemount Systems, Inc. Process control system including alarm priority adjustment
JP3550460B2 (ja) * 1996-04-25 2004-08-04 株式会社日立製作所 サーバレスプラント監視・制御装置
US5845063A (en) * 1996-09-11 1998-12-01 Elsag International N.V. Signal status propagation in a distributed control system
US6029181A (en) * 1996-09-26 2000-02-22 Honeywell, Inc. System and method for translating visual display object files from non-component object model (COM) objects to COM objects
US5818736A (en) * 1996-10-01 1998-10-06 Honeywell Inc. System and method for simulating signal flow through a logic block pattern of a real time process control system
US6421069B1 (en) * 1997-07-31 2002-07-16 Sony Corporation Method and apparatus for including self-describing information within devices
US6526566B1 (en) 1997-11-14 2003-02-25 National Instruments Corporation Graphical programming system and method including nodes for programmatically accessing data sources and targets
US6239800B1 (en) * 1997-12-15 2001-05-29 International Business Machines Corporation Method and apparatus for leading a user through a software installation procedure via interaction with displayed graphs
JP3651742B2 (ja) * 1998-01-21 2005-05-25 株式会社東芝 プラント監視システム
US7152027B2 (en) * 1998-02-17 2006-12-19 National Instruments Corporation Reconfigurable test system
US6161051A (en) * 1998-05-08 2000-12-12 Rockwell Technologies, Llc System, method and article of manufacture for utilizing external models for enterprise wide control
US6157864A (en) 1998-05-08 2000-12-05 Rockwell Technologies, Llc System, method and article of manufacture for displaying an animated, realtime updated control sequence chart
US6263255B1 (en) * 1998-05-18 2001-07-17 Advanced Micro Devices, Inc. Advanced process control for semiconductor manufacturing
US6505341B1 (en) * 1998-11-10 2003-01-07 Scientronix, Inc. System and method for programming a logic control unit
US6442512B1 (en) * 1998-10-26 2002-08-27 Invensys Systems, Inc. Interactive process modeling system
JP2002531899A (ja) 1998-11-30 2002-09-24 シーベル システムズ,インコーポレイティド プロセス監視用の状態モデル
EP1141813A4 (de) * 1998-12-23 2007-10-24 Triconex Corp Entwicklungs- und testsystem für die wartung eines programms mit ursache-wirkung-diagramm
US6718533B1 (en) * 1999-02-26 2004-04-06 Real-Time Innovations, Inc. Method for building a real-time control system with mode and logical rate
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
US6901560B1 (en) * 1999-07-01 2005-05-31 Honeywell Inc. Process variable generalized graphical device display and methods regarding same
US6577323B1 (en) * 1999-07-01 2003-06-10 Honeywell Inc. Multivariable process trend display and methods regarding same
US6834370B1 (en) * 1999-07-08 2004-12-21 Osi Software, Inc. Method for creating master recipes
JP3819639B2 (ja) 1999-07-09 2006-09-13 株式会社東芝 プログラミング装置
US6993456B2 (en) * 1999-09-30 2006-01-31 Rockwell Automation Technologies, Inc. Mechanical-electrical template based method and apparatus
US6556950B1 (en) * 1999-09-30 2003-04-29 Rockwell Automation Technologies, Inc. Diagnostic method and apparatus for use with enterprise control
US6489971B1 (en) 1999-12-07 2002-12-03 International Business Machines Corporation Graphical programming environment for deterministic finite state automata
US6917845B2 (en) * 2000-03-10 2005-07-12 Smiths Detection-Pasadena, Inc. Method for monitoring environmental condition using a mathematical model
WO2001095161A2 (en) * 2000-06-02 2001-12-13 Virtio Corporation Method and system for virtual prototyping
JP3494215B2 (ja) * 2000-06-23 2004-02-09 栗田工業株式会社 プログラム制御装置
US6742165B2 (en) * 2001-03-28 2004-05-25 Mips Technologies, Inc. System, method and computer program product for web-based integrated circuit design
US6931288B1 (en) * 2001-04-16 2005-08-16 Rockwell Automation Technologies, Inc. User interface and system for creating function block diagrams
US6668203B1 (en) * 2001-04-26 2003-12-23 Sandia Corporation State machine analysis of sensor data from dynamic processes
US6735596B2 (en) * 2001-06-07 2004-05-11 Guy Charles Corynen Computer method and user interface for decision analysis and for global system optimization
WO2003003235A1 (en) 2001-06-27 2003-01-09 4 Media, Inc. Improved media delivery platform
JP2003177804A (ja) * 2001-09-28 2003-06-27 Nippon Koei Power Systems Co Ltd シーケンス制御プログラム生成方法、その方法をコンピュータに実行させるプログラムおよびシーケンス制御プログラム生成装置
US20030086520A1 (en) * 2001-11-07 2003-05-08 Russell William Earl System and method for continuous optimization of control-variables during operation of a nuclear reactor
US6993706B2 (en) 2002-01-15 2006-01-31 International Business Machines Corporation Method, apparatus, and program for a state machine framework
US6941301B2 (en) * 2002-01-18 2005-09-06 Pavilion Technologies, Inc. Pre-processing input data with outlier values for a support vector machine
AU2003253594A1 (en) 2002-04-23 2003-11-10 Tokyo Electron Limited Method and apparatus for simplified system configuration
US7050863B2 (en) 2002-09-11 2006-05-23 Fisher-Rosemount Systems, Inc. Integrated model predictive control and optimization within a process control system
US6915235B2 (en) * 2003-03-13 2005-07-05 Csi Technology, Inc. Generation of data indicative of machine operational condition
US7685254B2 (en) * 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US7730415B2 (en) 2003-09-05 2010-06-01 Fisher-Rosemount Systems, Inc. State machine function block with a user modifiable state transition configuration database
US7269468B2 (en) * 2003-09-05 2007-09-11 Fisher-Rosemount Systems, Inc. State machine function block with a user modifiable output configuration database
US7487076B2 (en) * 2003-10-31 2009-02-03 The Mathworks, Inc. Simplified data signal support for diagramming environment languages

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903886A (en) 1996-04-30 1999-05-11 Smartlynx, Inc. Hierarchical adaptive state machine for emulating and augmenting software
WO1999009498A1 (en) 1997-08-18 1999-02-25 National Instruments Corporation System and method for converting graphical programs into hardware implementations
US20020194218A1 (en) 1998-04-23 2002-12-19 Klapper John P. System for graphically generating logic for a cause and effects matrix
DE19940078A1 (de) 1998-08-31 2000-03-30 Fisher Controls Int Verteiltes Stapelverarbeitungssystem und Verfahren

Also Published As

Publication number Publication date
GB0419583D0 (en) 2004-10-06
US8600524B2 (en) 2013-12-03
US20050055695A1 (en) 2005-03-10
HK1074083A1 (en) 2005-10-28
US7730415B2 (en) 2010-06-01
JP4885435B2 (ja) 2012-02-29
JP2005085271A (ja) 2005-03-31
GB0724070D0 (en) 2008-01-16
CN1598723A (zh) 2005-03-23
DE102004042550A1 (de) 2005-05-19
GB2405705A (en) 2005-03-09
US20110270418A1 (en) 2011-11-03
GB2405705B (en) 2009-10-28
CN1598723B (zh) 2014-07-09

Similar Documents

Publication Publication Date Title
DE102004042550B4 (de) Zustandsautomat-Funktionsblock mit durch den Nutzer veränderlicher Konfigurationsdatenbank für Zustandsübergänge
DE102004042549B4 (de) Zustandsautomat-Funktionsblock mit durch den Nutzer veränderlicher Ausgangskonfigurationsdatenbank
DE102004025875B4 (de) Funktionsblock mit Boolescher Logik
DE102014109569A1 (de) Zustandsmaschinen-funktionsblock mit benutzerdefinierbaren aktionen an einem übergang zwischen zuständen
EP0893746B1 (de) Prozessdiagnosesystem und -Verfahren
EP2356526B1 (de) Sicherheitssteuerung und verfahren zum steuern einer automatisierten anlage
EP2367083B1 (de) Vorrichtung zur Erstellung eines Programms für eine speicherprogrammierbare Steuerung, Programmiereinrichtung und Verfahren zur Programmierung einer speicherprogrammierbaren Steuerung
DE10352815B4 (de) Simulationsverfahren für eine Bearbeitung eines Werkstücks durch eine Werkzeugmaschine und korrespondierender Rechner
DE102009011679A1 (de) Verfahren und Vorrichtung zum Erstellen eines Anwenderprogrammes für eine Sicherheitssteuerung
DE102004015617A1 (de) Online-Geräteprüfblock, der in ein Prozeßsteuerungs-/Sicherheitssystem integriert ist
DE112016004614T5 (de) System und Verfahren zum Erstellen eines Satzes Überwachungs- und Wirkungsblöcke aus einer Ursache-Wirkungs-Tabelle
EP2098925A1 (de) Verfahren und Vorrichtung zum Programmieren und/oder Konfigurieren einer Sicherheitssteuerung
DE102017102014B4 (de) Bearbeitungsrobotersystem, in dem eine Bearbeitungsvorrichtung für die Bearbeitung mit einem Roboter verbunden ist
DE102006062555B4 (de) Verfahren zur Beobachtung eines Steuergeräts
WO2015117749A1 (de) Feldbusmodul, maschinensteuerung und verfahren zur parametrierung eines, insbesondere sicherheitsgerichteten, feldbusmoduls
AT412131B (de) Automatisierungssystem zur lösung einer prozesstechnischen aufgabenstellung und verfahren hierzu
EP0862763B1 (de) Simulatoreinheit zum simulieren einer peripherieeinheit einer modular aufgebauten speicherprogrammierbaren steuerung
DE102013101579A1 (de) Feldgerät zur Bestimmung oder Überwachung einer Prozessgröße in der Automatisierungstechnik
DE102013010783A1 (de) Verfahren und Steuergerät zum Testen einer Automatisierungslösung basierend auf einer PLC-Steuerung
DE10108233A1 (de) Steuereinheit für die Funktionalitätsprüfung eines technischen Aggregats und Verfahren für die Funktionalitätsprüfung
WO2001075535A2 (de) Zustandssteuerung von technischen systemen
AT522186B1 (de) Computerimplementiertes Verfahren zur rechnergestützten Erzeugung eines ausführbaren Steuerungsprogramms zur Steuerung und/oder Regelung eines technischen Prozesses
DE10107134C2 (de) Verfahren zur Verarbeitung von Daten und Datenverarbeitungsanlage
WO2024088531A1 (de) Verfahren zum automatisierten erstellen einer grafischen benutzeroberfläche und computerprogrammbasierter editor
EP4176579A1 (de) Verfahren zum betreiben eines automatisierungssystems einer maschine oder einer anlage

Legal Events

Date Code Title Description
R012 Request for examination validly filed

Effective date: 20110429

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R071 Expiry of right