DE102014109569A1 - Zustandsmaschinen-funktionsblock mit benutzerdefinierbaren aktionen an einem übergang zwischen zuständen - Google Patents

Zustandsmaschinen-funktionsblock mit benutzerdefinierbaren aktionen an einem übergang zwischen zuständen Download PDF

Info

Publication number
DE102014109569A1
DE102014109569A1 DE102014109569.3A DE102014109569A DE102014109569A1 DE 102014109569 A1 DE102014109569 A1 DE 102014109569A1 DE 102014109569 A DE102014109569 A DE 102014109569A DE 102014109569 A1 DE102014109569 A1 DE 102014109569A1
Authority
DE
Germany
Prior art keywords
transition
state
action
state machine
output
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.)
Pending
Application number
DE102014109569.3A
Other languages
English (en)
Inventor
Gary Keith Law
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 DE102014109569A1 publication Critical patent/DE102014109569A1/de
Pending 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/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], computer integrated manufacturing [CIM]
    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/402Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control arrangements for positioning, e.g. centring a tool relative to a hole in the workpiece, additional detection means to correct position
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • 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], 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], 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
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • 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
    • 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/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40585Chemical, biological sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range

Abstract

Ein Regelungssystem, ein Sicherheitssystem usw. innerhalb einer Prozessanlage können jeweils einen oder mehrere Zustandsmaschinen-Funktionsblöcke verwenden, die mühelos in eine Programmierumgebung mit Funktionsblockdiagramm zu integrieren ist. Ein derartiger Zustandsmaschinen-Funktionsblock kann eine oder mehrere Eingaben umfassen, die bewirken können, dass eine Zustandsmaschine, die durch den Zustandsmaschinen-Funktionsblock umgesetzt wird, einen nächsten Zustand sowie eine oder mehrere Übergangsaktionen, die gemäß dem Übergang von einem aktuellen. Zustand in den nächsten Zustand auszuführen ist bzw. sind, identifiziert. Konfigurationsdaten, die mit den Übergangsaktionen verknüpft sind, können basierend auf dem aktuellen und dem nächsten Zustand der Zustandsmaschine und mindestens einer der Eingaben aus einer Datenbank abgerufen werden. Der Zustandsmaschinen-Funktionsblock kann auch eine oder mehrere Ausgaben umfassen, die basierend auf dem Zustandsübergang generiert werden.

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Offenbarung betrifft im Allgemeinen Funktionsblöcke zur Verwendung in Prozessanlagen und genauer gesagt das Konfigurieren und Umsetzen einer Zustandsmaschine, die zu einer Prozessanlage gehört.
  • ALLGEMEINER STAND DER TECHNIK
  • Prozessregelungssysteme, wie sie bei Chemie-, Erdöl- oder anderen Prozessen verwendet werden, umfassen typischerweise einen oder mehrere Prozessregler, die mit mindestens einer Host- oder Bedienerarbeitsstation und mit einem oder mehreren Feldgeräten über analoge, digitale oder kombinierte Analog/Digital-Busse oder Leitungen kommunikationsmäßig gekoppelt sind. Die Feldgeräte, bei denen es sich beispielsweise um Ventile, Ventilpositionierer, Schalter, Transmitter (z. B. Temperatur-, Druck- und Durchsatzsensoren) handeln kann, erfüllen Funktionen innerhalb der Prozessanlage, wie etwa das Öffnen oder Schließen von Ventilen und das Messen von Prozessparametern. Die Prozessregler empfangen Signale, die Prozessmessungen, die von den Feldgeräten erstellt werden, und/oder andere Informationen, die sich auf die Feldgeräte beziehen, angeben, verwenden diese Informationen, um Regelungsroutinen umzusetzen, und generieren dann Regelsignale, die über die Busse oder Leitungen an die Feldgeräte gesendet werden, um den Betrieb des Prozesses zu regeln. Die Informationen von den Feldgeräten und den Reglern werden typischerweise einer oder mehreren Anwendungen zur Verfügung gestellt, die von der Bedienerarbeitsstation ausgeführt werden, um es einem Bediener zu ermöglichen, eine beliebige gewünschte Funktion mit Bezug auf den Prozess auszuführen, wie etwa das Konfigurieren des Prozesses, das Visualisieren des derzeitigen Zustands des Prozesses, das Ändern der Funktionsweise des Prozesses usw.
  • Zusätzlich wird in vielen Prozessen ein separates Sicherheitssystem bereitgestellt, um bedeutende sicherheitstechnische Probleme innerhalb der Prozessanlage zu ermitteln und automatisch Ventile zu schließen, Energie zu den Geräten abzuschalten, Strömungen innerhalb der Anlage umzuschalten usw., wenn ein Problem auftritt, das eine ernste Gefahr in der Anlage ergeben oder dazu führen könnte, wie etwa ein Überlaufen giftiger Chemikalien, eine Explosion usw. Diese Sicherheitssysteme verfügen typischerweise über einen oder mehrere separate Regler außer den standardmäßigen Reglern zur Prozessregelung, die genannten Logic Solver, die an Sicherheitsfeldgeräte über separate Busse oder Kommunikationsleitungen, die innerhalb der Prozessanlage installiert sind, angeschlossen sind. Die Logic Solver verwenden die Sicherheitsfeldgeräte, um Prozessbedingungen zu ermitteln, die mit bedeutenden Ereignissen verknüpft sind, wie etwa mit der Position von bestimmten Sicherheitsschaltern oder Abschaltventilen, Überläufen oder Unterläufen im Prozess, dem Betrieb wichtiger Energieerzeugungs- oder Regelgeräten, dem Betrieb von Fehlerdetektionsvorrichtungen usw., um dadurch „Ereignisse” innerhalb der Prozessanlage zu ermitteln. Wenn ein Ereignis (typischerweise als „Ursache” bezeichnet) ermittelt wird, trifft der Sicherheitsregler gewisse Maßnahmen (typischerweise als „Effekt” bezeichnet), um die schädliche Beschaffenheit des Ereignisses einzuschränken, wie etwa durch Schließen von Ventilen, Ausschalten von Vorrichtungen, Abschalten von Energie für Partien der Anlage usw. Im Allgemeinen umfassen diese Maßnahmen oder Effekte das Schalten von Sicherheitsvorrichtungen in einen ausgelösten oder „sicheren” Betriebsmodus, der ausgelegt ist, um einen ernsten oder gefährlichen Zustand innerhalb der Prozessanlage zu verhindern.
  • Systeme innerhalb einer Prozessanlage, wie etwa Prozessregelungssysteme und Sicherheitssysteme, können typischerweise die Zustände diverser Prozesse und/oder der Systeme selber verfolgen. Eingangssignale in ein System können bewirken, dass sich der Status, der von dem System verfolgt wird, ändert, und Ausgabesignale, die von dem System generiert werden, können von dem aktuellen Status des Systems zusätzlich zu den Eingabesignalen für das System abhängen. Das US-Patent Nr. 7,730,415 , das hiermit zur Bezugnahme vollständig übernommen wird, beschreibt ein Regelungssystem innerhalb einer Prozessanlage, das Zustandsmaschinen-Funktionsblöcke verwendet, die in eine Programmierumgebung mit Funktionsblockdiagramm integriert sind. Insbesondere umfasst ein derartiger Zustandsmaschinen-Funktionsblock eine oder mehrere Eingaben, die verwendet werden, um zu bewirken, dass sich der Zustand einer Zustandsmaschine, die von dem Zustandsmaschinen-Funktionsblock umgesetzt wird, ändert. Ferner bestimmt der Zustandsmaschinen-Funktionsblock einen nächsten Zustand, in den er übergehen soll, basierend auf Zustandsübergangs-Konfigurationsdaten, die den nächsten Zustand angeben. Die Zustandsübergangs-Konfigurationsdaten werden basierend auf dem derzeitigen Zustand der Zustandsmaschine und mindestens einer der Eingaben aus einer Datenbank abgerufen. Der Zustandsmaschinen-Funktionsblock umfasst auch eine oder mehrere Ausgaben, die basierend auf dem Zustand der Zustandsmaschine generiert wird bzw. werden. Die Eingaben des Zustandsmaschinen-Funktionsblocks sind beispielsweise mit einem Prozessregelungssystem oder einem Sicherheitssystem verknüpft, und die Ausgaben können beispielsweise zur Regelung von Feldgeräten in dem Prozessregelungssystem oder dem Sicherheitssystem verwendet werden.
  • Die derzeitigen Prozessregelungssysteme sind jedoch nicht in der Lage, diverse Aktionen oder Funktionen automatisch auszuführen, die mit einem Übergang aus einem aktuellen Zustand oder einem Übergang in einen nächsten Zustand verknüpft sind. Stattdessen müssen die Benutzer und Administratoren von derzeitigen Prozessregelungssystemen die Aktionen oder Funktionen während der Zustandsübergänge manuell ausführen oder umsetzen. Daher sind die derzeitigen Prozessregelungssysteme in ihrer Fähigkeit, gewisse Sicherheitsmaßnahmen, Regeltechniken und andere Merkmale auszuführen, die mit Zustandsübergängen verknüpft sind, eingeschränkt.
  • KURZDARSTELLUNG
  • Die Systeme und Verfahren, wie sie hier beschrieben werden, betreffen die Handhabung von Übergängen zwischen den Zuständen einer Prozessregelumgebung. Die Systeme und Verfahren zur Prozessregelung können eine Zustandsmaschine umsetzen, die eine Übergangstabelle umfasst, die Übergänge zwischen diversen Zuständen der Zustandsmaschine basierend auf bestätigten Eingaben identifiziert. Die Übergangstabelle kann ferner eine oder mehrere Übergangsaktionen für die Systeme und Verfahren zur Prozessregelung vorgeben, die in Zusammenhang mit dem Übergang von einem aktuellen Zustand in einen nächsten Zustand auszuführen sind. Gemäß den Ausführungsformen können die Übergangsaktionen in Form von Übergang-in-Aktionen und/oder Übergang-aus-Aktionen vorliegen. Die Systeme und Verfahren zur Prozessregelung können die Übergang-aus-Aktionen in Zusammenhang mit dem Übergang aus einem aktuellen Zustand ausführen und können die Übergang-in-Aktionen vor dem Stabilisieren in einen nächsten Zustand ausführen. Bei einigen Ausführungsformen können die Systeme und Verfahren zur Prozessregelung Konfigurationsdaten, die mit den Übergangsaktionen verknüpft sind, einem anderen Funktionsblock zur Ausführung durch diesen Funktionsblock bereitstellen. Die Systeme und Verfahren zur Prozessregelung können zusätzlich Ausgaben einstellen, die dem derzeitigen Zustand und den Übergangsaktionen entsprechen.
  • Gemäß den Ausführungsformen können die Systeme und Verfahren zur Prozessregelung die Übergangstabelle über Matrizen handhaben, die von einer grafischen Benutzerschnittstelle angezeigt werden können. Diverse Zellen der Matrizen können Zustandsübergangsdaten angeben, die diverse Zustandsübergänge, die mit bestätigten Eingaben verknüpft sind, zusammen mit Übergangsaktionen, die in Zusammenhang mit den Zustandsübergängen auszuführen sind, identifizieren. Die Matrizen können über einen Computer oder seinen Benutzer voll konfigurierbar sein, um Zustandsübergänge und Übergangsaktionen, die damit verknüpft sind, vorzugeben. Daher kann ein Funktionsblock auf die geeigneten Matrizen zugreifen, um Zustandsübergänge zu ermöglichen, automatisch die verknüpften Übergangsaktionen auszuführen und geeignete Ausgaben einzustellen.
  • Die Ausführungsformen der hier beschriebenen Systeme und Verfahren zur Prozessregelung können im Vergleich zu herkömmlichen Prozessregeltechniken zu wirksameren und effizienteren Prozessregeltechniken führen. Beispielsweise ermöglichen es die Übergangsaktionen den Systemen und Verfahren zur Prozessregelung, automatisch Aktionen auszuführen, die mit dem Übergang aus einem derzeitigen Zustand und dem Übergang in einen nächsten Zustand verknüpft sind, wodurch die Notwendigkeit vermindert wird, dass die Benutzer Prozesse, die mit Zustandsübergängen verknüpft sind, manuell ausführen müssen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Merkmale und Vorteile der hier beschriebenen Verfahren, Geräte und Systeme werden mit Bezug auf die folgende ausführliche Beschreibung und die beiliegenden Zeichnungen am besten verständlich werden. Es zeigen:
  • 1 ein Blockdiagramm einer beispielhaften Prozessanlage;
  • 2 ein Blockdiagramm einer beispielhaften Arbeitsstation, die in 1 schematisch abgebildet ist;
  • 3 eine beispielhafte Anzeige, die ein Regelmodul darstellt;
  • 4 ein Beispiel einer Darstellung eines Zustandsmaschinen-Funktionsblocks;
  • 5 eine beispielhafte Matrix zum Eingeben von Zustandskonfigurationsdaten und Übergangsaktionsdaten, die damit für einen Zustandsmaschinen-Funktionsblock verknüpft sind;
  • 6 die beispielhafte Matrix aus 5, bei der Zustandskonfigurationsdaten und Übergangsaktionsdaten, die damit verknüpft sind, in der Matrix angezeigt werden;
  • 7 ein Ablaufschema eines beispielhaften Verfahrens der Wirkungsweise eines Zustandsmaschinen-Funktionsblocks mit Übergangsaktionsfunktion;
  • 8 ein Blockdiagramm eines beispielhaften Zustandsmaschinen-Funktionsblocks, der eine Übergangsaktionsfunktion integriert;
  • 9 ein Ablaufschema eines anderen beispielhaften Verfahrens der Wirkungsweise eines Zustandsmaschinen-Funktionsblocks mit Übergangsaktionsfunktion;
  • 10 ein Ablaufschema einer beispielhaften Routine zum Verarbeiten von Dateneingaben in einen Zustandsmaschinen-Funktionsblock;
  • 11 ein Ablaufschema einer beispielhaften Routine zum Verarbeiten einer Freigabe-Eingabe für einen Zustandsmaschinen-Funktionsblock;
  • 12 ein Ablaufschema einer beispielhaften Routine zum Ändern eines Zustands und zum Einstellen von Ausgaben, wozu Übergangsaktionsausgaben eines Zustandsmaschinen-Funktionsblocks gehören;
  • 13 eine beispielhafte Matrix zum Eingeben von Ausgabekonfigurationsdaten, wozu Übergangsaktionen für einen Zustandsmaschinen-Funktionsblock gehören;
  • 14 ein Blockdiagramm eines anderen beispielhaften Zustandsmaschinen-Funktionsblocks; und
  • 15 ein beispielhaftes Zustandsübergangsdiagramm zum Eingeben von Zustandskonfigurationsdaten und Übergangsaktionsdaten, die damit verknüpft sind, für einen Zustandsmaschinen-Funktionsblock.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Beispielhafte Prozessanlage
  • 1 ist ein Blockdiagramm einer beispielhaften Prozessanlage 10, die ein oder mehrere Knoten 12, 16, 18 und 20 umfasst. In der beispielhaften Prozessanlage 10 aus 1 umfasst jeder der Knoten 12 und 16 einen Prozessregler 12a, 16a, der an ein oder mehrere Feldgeräte 22 und 23 über Ein-/Ausgabe-(E/A)Geräte 24 angeschlossen ist, die beispielsweise Foundation-Fieldbus-Schnittstellen, HART-Schnittstellen usw. sein können. Die Regler 12a und 16a sind auch mit einer oder mehreren Host- oder Bedienerarbeitsstationen 18a und 20a in dem Knoten 18 und 20 über ein Netzwerk 30, das beispielsweise einen oder mehrere von einem Bus, einem drahtgebundenen lokalen Netzwerk (LAN), wie etwa einem Ethernet-LAN, einem drahtlosen LAN, einem Großraumnetzwerk (WAN), einem Intranet usw. umfassen kann, gekoppelt. Während sich die Reglerknoten 12, 16 und die E/A-Geräte 24 und die damit verknüpften Feldgeräte 22, 23 typischerweise innerhalb der manchmal rauen Anlagenumgebung befinden und darin verteilt sind, befinden sich die Knoten 18 und 20 der Bedienerarbeitsstation gewöhnlich in Regelwarten oder anderen weniger rauen Umgebungen, die für das Reglerpersonal leicht zugänglich sind.
  • Im Allgemeinen können die Arbeitsstationen 18a und 20a der Knoten 18 und 20 verwendet werden, um Anwendungen zu speichern und auszuführen, die verwendet werden, um die Prozessanlage 10 zu konfigurieren und zu überwachen, und/oder um die Geräte 22, 23, 24 und Regler 12a, 16a in der Prozessanlage 10 zu verwalten. Ferner kann eine Datenbank 32 an das Netzwerk 30 angeschlossen sein und als Datenarchiv und/oder Konfigurationsdatenbank funktionieren, welche die aktuelle Konfiguration der Prozessanlage 10 speichert, wie sie innerhalb der Knoten 12, 16, 18, 20, 22, 23, 24, 50 und 70 heruntergeladen und/oder gespeichert wird.
  • Jeder der Regler 12a und 16a, der beispielsweise der Regler Delta VTM sein kann, der von Emerson Process Management vermarktet wird, kann eine Regleranwendung speichern und ausführen, die unter Verwendung einer gewissen Anzahl von unterschiedlichen, unabhängig ausgeführten Regelmodulen oder Blöcken eine Regelstrategie umsetzt. Die Regelmodule können jeweils aus dem bestehen, was man gewöhnlich als Funktionsblöcke bezeichnet, wobei jeder Funktionsblock ein Teil oder eine Nebenroutine einer globalen Regelungsroutine ist und in Zusammenhang mit anderen Funktionsblöcken (über Kommunikationsmittel, die als Verbindungen bezeichnet werden) funktioniert, um Prozessregelschleifen innerhalb der Prozessanlage 10 umzusetzen. Wie es wohlbekannt ist, führen die Funktionsblöcke typischerweise eine Eingabefunktion (wie etwa diejenige, die mit einem Transmitter, einem Sensor oder einer anderen Prozessparameter-Messvorrichtung verknüpft ist), eine Regelfunktion (wie etwa diejenige, die mit einer Regelungsroutine verknüpft ist, die diverse Regelungen ausführt, wie etwa PID, unscharfe Logik usw.) oder eine Ausgabefunktion, die den Betrieb eines Geräts (wie etwa eines Ventils) regelt, um eine gewisse physische Funktion innerhalb der Prozessanlage 10 auszuführen, aus. Natürlich gibt es hybride und andere Arten von Funktionsblöcken, die verwendet werden können. Obwohl ein Fieldbus-Protokoll und das Systemprotokoll Delta VTM Regelmodule und Funktionsblöcke verwenden können, die in einem objektorientierten Programmierprotokoll ausgelegt und umgesetzt sind, könnten die Regelmodule unter Verwendung einer beliebigen gewünschten Regelungsprogrammiermethode ausgelegt werden, wozu beispielsweise sequenzielle Funktionsblöcke, Strichleiterlogik usw. gehören, und sind nicht darauf eingeschränkt, unter Verwendung von Funktionsblöcken oder einer beliebigen anderen bestimmten Programmiertechnik ausgelegt zu werden. Typischerweise kann die Konfiguration der Regelmodule, wie sie in den Prozessregelknoten 12 und 16 gespeichert ist, in der Konfigurationsdatenbank 32 gespeichert werden, die für Anwendungen zugänglich ist, die von den Arbeitsstationen 18a und 20a ausgeführt werden. Die Funktionsblöcke können beispielsweise in dem Regler 12a, 16a gespeichert sein und ausgeführt werden, wie es typischerweise der Fall ist, wenn diese Funktionsblöcke für standardmäßige 4-20mA-Geräte und gewisse Arten von intelligenten Feldgeräten, wie etwa HART-Geräten, verwendet werden oder damit verknüpft sind, oder können in den Feldgeräten selber gespeichert sein und umgesetzt werden, wie es der Fall bei Fieldbus-Geräten sein kann.
  • Bei dem in 1 abgebildeten System können die Feldgeräte 22 und 23, die mit den Reglern 12a und 16a gekoppelt sind, standardmäßige 4-20mA-Geräte sein, oder können intelligente Feldgeräte sein, wie etwa HART-, Profibus- oder Foundation Fieldbus-Feldgeräte, die einen Prozessor und einen Speicher umfassen. Einige dieser Geräte, wie etwa Foundation Fieldbus-Feldgeräte (in 1 mit der Bezugszahl 23 bezeichnet), können Module oder Nebenmodule, wie etwa Funktionsblöcke, die mit der Regelstrategie verknüpft sind, die in den Reglern 12a und 16a umgesetzt wird, speichern und ausführen. Natürlich können die Feldgeräte 22, 23 beliebige Arten von Geräten sein, wie etwa Sensoren, Ventile, Transmitter, Positionierer usw., und die E/A-Geräte 24 können beliebige Arten von E/A-Geräten sein, die sich einem gewünschten Kommunikations- oder Reglerprotokoll anpassen, wie etwa HART, Foundation Fieldbus, Profibus usw.
  • Die Regler 12a und 16a umfassen jeweils einen Prozessor, der eine oder mehrere Prozessregelungsroutinen umsetzt oder beaufsichtigt, die in einem Speicher gespeichert sind und Regelschleifen umfassen können, die darin gespeichert sind oder anderweitig damit verknüpft sind. Die Regler 12a und 16a kommunizieren mit den Feldgeräten 22, 23, den Arbeitsstationen 18a, 20a und der Datenbank 32, um einen Prozess auf eine gewünschte Art und Weise zu regeln. Die Regler 12a und 16a können jeweils konfiguriert sein, um eine Regelstrategie oder eine Regelungsroutine auf beliebige Art und Weise umzusetzen. Es versteht sich, dass die Regler 12a und 16a mit den Feldgeräten 22, 23, den Arbeitsstationen 18a, 20a und der Datenbank 32 über eine drahtlose Verbindung in Verbindung stehen können.
  • Die Prozessanlage 10 kann auch ein Sicherheitssystem 14 (mit Punktlinien angegeben) umfassen, das mit den Prozessregelknoten 12 und 16 integriert ist. Das Sicherheitssystem 14 kann im Allgemeinen als sicherheitstechnisches System (SIS) funktionieren, um die Regelung zu überwachen oder zu übergehen, die von den Prozessregelknoten 12 und 16 bereitgestellt wird, um den wahrscheinlichen sicheren Betrieb der Prozessanlage 10 zu maximieren.
  • Jeder der Knoten 12 und 16 kann einen oder mehrere Logic Solver 50 des Sicherheitssystems umfassen. Jeder der Logic Solver 50 ist ein E/A-Gerät, das über einen Prozessor und einen Speicher verfügt, und ist konfiguriert, um logische Sicherheitsmodule auszuführen, die in dem Speicher abgelegt sind. Jeder Logic Solver 50 ist kommunikationsmäßig gekoppelt, um den Feldgeräten 60 und 62 des Sicherheitssystems Regelsignale bereitzustellen und/oder um Signale von ihnen zu empfangen. Zusätzlich umfasst jeder der Knoten 12 und 16 mindestens ein Nachrichtenverbreitungsgerät (MPD) 70, das über einen Ring- oder Busanschluss 74 (von dem in 1 nur ein Teil abgebildet ist) kommunikationsmäßig mit anderen MPD 70 verbunden ist. Der Logic Solver 50 des Sicherheitssystems, die Feldgeräte 60 und 62 des Sicherheitssystems, die MPD 70 und der Bus 74 bilden allgemein das Sicherheitssystem 14 aus 1.
  • Die Logic Solver 50 aus 1 können eine beliebige gewünschte Art von Sicherheitssystem-Regelgeräten sein, wozu ein Prozessor und ein Speicher gehören, der logische Sicherheitsmodule speichert, die geeignet sind, um auf dem Prozessor ausgeführt zu werden, um eine Regelfunktionalität, die mit dem Sicherheitssystem 14 verknüpft ist, unter Verwendung der Feldgeräte 60 und 62 bereitzustellen. Natürlich können die Sicherheitsfeldgeräte 60 und 62 eine beliebige gewünschte Art von Feldgeräten sein, die einem beliebigen bekannten oder gewünschten Kommunikationsprotokoll entsprechen oder dieses verwenden, wie etwa die zuvor erwähnten. Insbesondere können die Feldgeräte 60 und 62 sicherheitstechnische Feldgeräte von der Art sein, die herkömmlicherweise von einem separaten, dedizierten, sicherheitstechnischen Regelungssystem geregelt wird. In der Prozessanlage 10, die in 1 abgebildet ist, sind die Sicherheitsfeldgeräte 60 abgebildet, wie sie ein dediziertes oder Punkt-zu-Punkt-Kommunikationsprotokoll, wie etwa das HART- oder das 4-20mA-Protokoll, verwenden, während die Sicherheitsfeldgeräte 62 abgebildet sind, wie sie ein Buskommunikationsprotokoll, wie etwa ein Fieldbus-Protokoll, verwenden. Die Sicherheitsfeldgeräte 60 können eine beliebige gewünschte Funktion ausführen, wie etwa die eines Sperrventils, eines Ausschalters usw.
  • Eine gemeinsame Rückwandplatine (nicht gezeigt) kann in jedem der Knoten 12 und 16 verwendet werden, um die Regler 12a und 16a mit den E/A-Karten 24 der Prozessregelung, den Sicherheits-Logic-Solvern 50 und den MPD 70 kommunikationsmäßig zu koppeln. Die Regler 12a und 16a sind ebenfalls kommunikationsmäßig mit dem Netzwerk 30 gekoppelt. Die Regler 12a und 16a, die E/A-Geräte 24, die Logic Solver 50 und die MPD 70 können mit den Knoten 18 und 20 über das Netzwerk 30 kommunizieren.
  • Wie es der Fachmann verstehen wird, ermöglicht es die (nicht gezeigte) Rückwandplatine in dem Knoten 12, 16 den Logic Solvern 50, lokal miteinander zu kommunizieren, um die Sicherheitsfunktionen zu koordinieren, die von diesen Geräten umgesetzt werden, um einander Daten zu übermitteln und/oder um andere integrierte Funktionen auszuführen. Ähnlich ermöglicht es die (nicht gezeigte) Rückwandplatine in dem Knoten 16 den Logic Solvern 50, lokal miteinander zu kommunizieren, um die Sicherheitsfunktionen zu koordinieren, die von diesen Geräten umgesetzt werden, um einander Daten zu übermitteln und/oder um andere integrierte Funktionen auszuführen. Andererseits funktionieren die MPD 70, um es Teilen des Sicherheitssystems 14 zu ermöglichen, die in völlig verschiedenen Positionen der Anlage 10 angeordnet sind, weiterhin miteinander zu kommunizieren, um einen koordinierten Sicherheitsbetrieb an verschiedenen Knoten der Prozessanlage 10 bereitzustellen. Insbesondere ermöglichen es die MPD 70 zusammen mit dem Bus 74 den Logic Solvern 50, die mit verschiedenen Knoten 12 und 16 der Prozessanlage 10 verknüpft sind, kommunikationsmäßig zusammen kaskadiert zu sein, um die Kaskadierung von sicherheitstechnischen Funktionen innerhalb der Prozessanlage 10 gemäß einer zugewiesenen Priorität zu ermöglichen. Die MPD 70 und der Bus 74 versorgen das Sicherheitssystem mit einer Kommunikationsverbindung, die eine Alternative zu dem Netzwerk 30 ist.
  • Alternativ können zwei oder mehrere sicherheitstechnische Funktionen an unterschiedlichen Positionen innerhalb der Prozessanlage 10 miteinander zusammenhängen oder zusammengeschaltet sein, ohne dass eine dedizierte Leitung zu einzelnen Sicherheitsfeldgeräten in den getrennten Bereichen oder Knoten der Anlage 10 zu legen wäre. Mit anderen Worten ermöglicht es die Verwendung der MPD 70 und 72 und des Busses 74 einem Sicherheitstechniker, ein Sicherheitssystem 14 auszulegen und zu konfigurieren, das über die gesamte Prozessanlage 10 verteilt ist, doch dessen verschiedene Komponenten kommunikationsmäßig zusammengeschaltet sind, damit die ungleichartige sicherheitstechnische Hardware je nach Bedarf miteinander kommunizieren kann. Dieses Merkmal stellt auch eine Skalierbarkeit des Sicherheitssystems 14 bereit, indem es die Möglichkeit bietet, zusätzliche Sicherheits-Logic Solver zu dem Sicherheitssystem 14 hinzuzufügen, je nachdem wie sie benötigt werden, oder wenn neue Prozessregelknoten zu der Prozessanlage 10 hinzugefügt werden.
  • 2 ist ein Blockdiagramm einer beispielhaften Arbeitsstation 18a (die Arbeitsstation 20a kann die gleiche oder eine ähnliche Vorrichtung umfassen). Die Arbeitsstation 18a kann mindestens einen Prozessor 100, einen flüchtigen Speicher 104 und einen nicht flüchtigen Speicher 108 umfassen. Der flüchtige Speicher 104 kann beispielsweise einen Arbeitsspeicher (RAM) umfassen. Bei einigen Ausführungsformen kann der RAM mit einer oder mehreren Batterien gesichert werden, so dass die Daten bei einem Stromausfall nicht verloren gehen. Der nicht flüchtige Speicher 108 kann beispielsweise eines oder mehreres von einer Festplatte, einem Festspeicher (ROM), einer CD-ROM, einem programmierbaren ROM (PROM), einem löschbaren programmierbaren ROM (EPROM), einem elektrisch löschbaren programmierbaren ROM (EEPROM), einer DVD („Digital Versatile Disk”), einem Flash-Speicher usw. umfassen. Die Arbeitsstation 18a kann auch ein Arbeitsstation-E/A-Gerät 112 umfassen. Der Prozessor 100, der flüchtige Speicher 104, der nicht flüchtige Speicher 108 und das Arbeitsstation E/A-Gerät 112 können über einen Adressen-/Datenbus 116 zusammengeschaltet sein. Die Arbeitsstation 18a kann auch mindestens ein Anzeigegerät 120 und mindestens ein Benutzereingabegerät 124 umfassen, das beispielsweise ein oder mehreres von einer Tastatur, einem Tastenfeld, einer Maus, einer Steuerkugel, einem Berührungsbildschirm, einem Lichtgriffel usw. sein kann. Bei einigen Ausführungsformen kann bzw. können einer oder mehrere von dem flüchtigen Speicher 104, dem nicht flüchtigen Speicher 108 und der Arbeitsstation-E/A-Gerät 112 mit dem Prozessor 100 über einen Bus gekoppelt sein, der von dem Adressen-/Datenbus 116 getrennt ist (nicht gezeigt), oder kann bzw. können direkt mit dem Prozessor 100 gekoppelt sein.
  • Das Anzeigegerät 120 und das Benutzereingabegerät 124 sind mit dem Arbeitsstation-E/A-Gerät 112 gekoppelt. Zusätzlich ist die Arbeitsstation 18a mit dem Netzwerk 30 über das Arbeitsstation-E/A-Gerät 112 gekoppelt. Obwohl das Arbeitsstation-E/A-Gerät 112 in 2 als ein einziges Gerät abgebildet ist, kann es mehrere Geräte umfassen. Zusätzlich kann bzw. können bei einigen Ausführungsformen ein oder mehrere des Anzeigegeräts 120 und des Benutzereingabegeräts 124 direkt mit dem Adressen-/Datenbus 116 oder dem Prozessor 100 gekoppelt sein.
  • Nun mit Bezug auf 1 und 2 kann eine Anwendung zur Konfiguration der Prozessregelung, die mit einem oder mehreren der Regelknoten 12, 16 gekoppelt ist, auf einer oder mehreren der Arbeitsstationen 18a und 20a gespeichert sein und von dieser bzw. diesen ausgeführt werden. Beispielsweise könnte die Anwendung zur Konfiguration der Prozessregelung in dem nicht flüchtigen Speicher 108 und/oder dem flüchtigen Speicher 104 gespeichert sein und von dem Prozessor 100 ausgeführt werden. Soweit erwünscht, könnte diese Anwendung jedoch in anderen Computer gespeichert sein und ausgeführt werden, die mit der Prozessanlage 10 verknüpft sind. Im Allgemeinen ermöglicht es die Anwendung zur Konfiguration der Prozessregelung einem Programmierer, Regelungsroutinen, Regelmodule, Funktionsblöcke, Programme, Logik usw. zu erstellen und zu konfigurieren, die von den Reglern 12a, 16a, den E/A-Geräten 24 und/oder den Feldgeräten 22, 23 umzusetzen sind. Diese Regelungsroutinen, Regelmodule, Funktionsblöcke, Programme, Logik usw. können dann in ein entsprechendes Exemplar von den Reglern 12a, 16a, den E/A-Geräten 24 und/oder den Feldgeräten 22, 23 über das Netzwerk 30 heruntergeladen werden.
  • Ähnlich kann eine Anwendung zur Konfiguration des Sicherheitssystems, die mit dem Sicherheitssystem 14 verknüpft ist, auf einer oder mehreren der Arbeitsstationen 18a und 20a gespeichert sein und ausgeführt werden. Beispielsweise könnte die Anwendung zur Konfiguration des Sicherheitssystems in dem nicht flüchtigen Speicher 108 und/oder dem flüchtigen Speicher 104 gespeichert sein und von dem Prozessor 100 ausgeführt werden. Soweit erwünscht könnte diese Anwendung jedoch in anderen Computer gespeichert sein und ausgeführt werden, die mit der Prozessanlage 10 verknüpft sind. Im Allgemeinen ermöglicht es die Anwendung zur Konfiguration des Sicherheitssystems einem Programmierer, Regelungsroutinen, Regelmodule, Funktionsblöcke, Programme, Logik usw. zu erstellen und zu konfigurieren, die von den Reglern 12a, 16a, den Logic Solvern 50 und/oder den Geräten 60, 62 umzusetzen sind. Diese Regelungsroutinen, Regelmodule, Funktionsblöcke, Programme, Logik usw. können dann auf geeignete Exemplare von den Reglern 12a, 16a, den Logic Solvern 50 und/oder den Geräten 60, 62 über das Netzwerk 30 heruntergeladen werden.
  • Zustandsmaschinen-Funktionsblock
  • Eine Anwendung zur Konfiguration eines Regelungssystems oder Sicherheitssystems kann das Programmieren von Regelmodulen und/oder Regelungsroutinen unter Verwendung eines Funktionsblock-Programmierparadigmas ermöglichen. 3 bildet ein Beispiel einer Anzeige 150 ab, die ein Regelmodul 154 darstellt. Die Anzeige 150 kann Teil einer Benutzerschnittstelle sein, die mit der Konfigurationsanwendung verknüpft ist, und die Anzeige 150 kann einem Programmierer beispielsweise über das Anzeigegerät 120 der Arbeitsstation 18a präsentiert werden. Die Anzeige 150 stellt das Regelmodul 154 dar, das einen Satz kommunikationsmäßig zusammengeschalteter Funktionsblöcke aufweist, die auf entsprechenden Exemplaren von den Reglern 12a, 16a, den E/A-Geräten 24, den Logic Solvern 50 und/oder den Geräten 22, 23, 60, 62 erstellt und zum Umsetzen während der Funktionsweise einer Prozessanlage über das Netzwerk 30 darauf heruntergeladen werden können. Wie in 3 abgebildet, umfasst das Regelmodul 154 einen Zustandsmaschinen-Funktionsblock (SMFB) 160, eine Vielzahl von analogen Eingabe-(AI) und digitalen Eingabe-(DI)Funktionsblöcken, eine Vielzahl von analogen Ausgabe-(AO) und digitalen Ausgabe-(DO)Funktionsblöcken und anderen Funktionsblöcken (FB). Der SMFB 160 verfügt über Eingänge, die kommunikationsmäßig mit den Funktionsblöcken 114 zusammengeschaltet sind, die beispielsweise DI-Funktionsblöcke oder andere FB sein können. Der SMFB 160 verfügt auch über Ausgänge, die an die Funktionsblöcke 118 angeschlossen sind, die beispielsweise DO-Funktionsblöcke oder andere FB sein können. Das Regelmodul 154 kann eines von einer Vielzahl von Regelmodulen, die zusammen Geräte, wie etwa Schalter, Ventile usw. regeln, als Teil eines Regelungssystems, eines Sicherheitssystems usw. regeln oder eines davon sein. Natürlich ist das Regelmodul 154 nur ein Beispiel eines Regelmoduls, das SMFB verwendet. Im Allgemeinen kann ein Regelmodul auf beliebige gewünschte Art und Weise programmiert sein, um beliebige Arten von Funktionsblöcken zu umfassen, die kommunikationsmäßig mit einer beliebigen Anzahl von SMFB auf beliebige Art und Weise gekoppelt sind, und auf beliebige gewünschte oder nützliche Art und Weise konfiguriert sind, um eine beliebige gewünschte Funktion auszuführen. Falls es beispielsweise in einem Fieldbus-Netzwerk verwendet wird, kann ein Regelmodul eine beliebige Art von Fieldbus-Funktionsblöcken umfassen.
  • Bei einigen Ausführungsformen kann bzw. können ein oder mehrere der Eingaben für den SMFB 160 anders als von einem Funktionsblock empfangen werden. Beispielsweise kann bzw. können mehrere der Eingänge zu dem SMFB 160 kommunikationsmäßig gekoppelt sein, um Eingaben von einem Bediener beispielsweise über eine Bedienerschnittstelle zu empfangen. Beispielsweise könnte ein Bediener unter Verwendung einer Bedienerschnittstelle, die an einem Knoten umgesetzt wird, wie etwa dem Knoten 18 oder 20, Eingaben für den SMFB 160 bereitstellen.
  • Der SMFB kann ein Funktionsblock sein, der eine Zustandsmaschine umsetzt. Bei einigen Ausführungsformen kann eine Zustandsmaschine eine Entität (z. B. ein Gerät, eine Software, die von einem Prozessor umgesetzt wird, usw.) umfassen, die sich in einem von einer Vielzahl von Zuständen befinden kann. Die Zustandsmaschine kann von einem Zustand in einen andern Zustand übergehen, falls eine bestimmte Eingabe für die Zustandsmaschine erfolgt. Der SMFB kann Ausgaben bereitstellen, die auf dem aktuellen Zustand der Zustandsmaschine basieren. Als nur ein Beispiel kann der SMFB eine oder mehrere Ausgaben bereitstellen, die den aktuellen Zustand der Zustandsmaschine angibt bzw. angeben. Noch allgemeiner kann eine Zustandsmaschine eine Entität umfassen (z. B. ein Gerät, eine Software, die von einem Prozessor umgesetzt wird, usw.), die einen Status der Entität oder einer gewissen anderen Entität (z. B. eine Prozessanlage, einen Nebenteil einer Prozessanlage, eine Komponente einer Prozessanlage usw.) zu einem bestimmten Zeitpunkt speichert und die den Status ändern kann und/oder bewirken kann, dass eine Aktion oder eine Ausgabe basierend auf den Eingaben in die Zustandsmaschine erfolgt.
  • Unter Verwendung der Benutzerschnittstelle, die mit der Konfigurationsanwendung verknüpft ist, kann der Programmierer ein Regelmodul, wie etwa das Regelmodul 154, auslegen. Als nur ein Beispiel kann die Benutzerschnittstelle einen Mechanismus bereitstellen, damit ein Programmierer gewünschte Funktionsblöcke beispielsweise aus einer Schablone oder einer Palette, die eine Vielzahl von standardmäßigen oder spezifisch angepassten Funktionsblockschablonen umfasst, auswählt. Zusätzlich kann die Benutzerschnittstelle ein grafisches Diagramm bereitstellen, auf dem der Programmierer Abbildungen von Funktionsblöcken einfügen oder einsetzen kann. Der Programmierer kann beispielweise eine Maus, eine Steuerkugel, eine Tastatur, ein Tastenfeld, einen Berührungsbildschirm usw. verwenden, um einen Funktionsblock aus der Schablone oder der Palette auszuwählen und dann den Funktionsblock auf das grafische Diagramm zu „ziehen und abzulegen”. Der Programmierer kann zusätzlich Funktionsblöcke kommunikationsmäßig koppeln, indem er beispielsweise unter Verwendung beispielsweise einer Maus, einer Steuerkugel, einer Tastatur, eines Tastenfeldes, eines Berührungsbildschirms usw. eine Linie zwischen einem Ausgang eines Funktionsblocks und einem Eingang eines anderen Funktionsblocks zieht.
  • Sobald es konfiguriert ist, kann das Regelmodul 154 beispielsweise durch einen oder mehrere der Regler 12a, 14a, 16a, der E/A-Geräte 24, der Logic Solver 50 und der Geräte 22, 23, 60, 62 umgesetzt werden.
  • 4 ist ein Beispiel einer Darstellung eines SMFB 200, der beispielsweise an einer Benutzerschnittstellenanzeige, wie etwa der Anzeige 150 aus 3, angezeigt werden kann. Die Darstellung des SMFB 200 gibt an, dass der SMFB 200 sieben Dateneingaben (IN_D1 bis IN_D7) und sieben Datenausgaben (TRANS_OUT, TRANS_IN, STATE und OUT_D1 bis OUT_D6) umfasst. Die Dateneingaben können im Allgemeinen Bedingungen innerhalb der Prozessanlage angeben, können Bedienerbefehle usw. angeben und können bewirken, dass sich die Zustände einer Zustandsmaschine, die von dem SMFB 200 umgesetzt wird, ändern. Die Datenausgaben können einen oder mehrere Indikatoren des Zustandes der Zustandsmaschine, die dem SMFB 200 entsprechen, sowie Konfigurationselemente, die Funktionen oder Aktionen entsprechen, die basierend auf dem Zustand auszuführen sind, umfassen. Beispielsweise kann die Ausgabe STATE ein Indikator des Zustands (z. B. Zustand 1, Zustand 2, Zustand 3 usw.) der Zustandsmaschine sein. Die Ausgabe OUT_D1 kann ein Indikator dafür sein, ob sich die Zustandsmaschine in einem Zustand „Zustand 1” befindet. Ähnlich können die Ausgaben OUT_D2, OUT_D3, ... OUT_D6 Indikatoren dafür sein, ob sich die Zustandsmaschine jeweils in den Zuständen „Zustand 2”, „Zustand 3” ... „Zustand 6” befindet. Zusätzlich kann die Ausgabe TRANS_OUT ein Konfigurationselement angeben, das auszuführen ist, wenn die Zustandsmaschine einen Übergang aus einem bestimmten Zustand vornimmt, und die Ausgabe TRANS_IN kann ein Konfigurationselement angeben, das auszuführen ist, wenn die Zustandsmaschine einen Übergang in einen bestimmten Zustand vornimmt. Bei einigen Ausführungsformen kann der SMFB 200 eine Vielzahl von Ausgaben TRANS_OUT und eine Vielzahl von Ausgaben TRANS_IN umfassen. Beispielsweise kann der SMFB 200 eine Anzahl von Ausgaben TRANS_OUT und eine Anzahl von Ausgaben TRANS_IN umfassen, die gleich der Anzahl von Zuständen sind (d. h. eine Ausgabe TRANS_OUT und eine Ausgabe TRANS_IN pro Zustand). Es versteht sich, dass der SMFB 200 eine beliebige Anzahl von Ausgaben TRANS_OUT und TRANS_IN umfassen kann.
  • Der SMFB 200 kann auch andere Eingaben neben Dateneingaben umfassen, wie etwa eine Eingabe ENABLE, eine Eingabe TRK_VAL und eine Eingabe TRK_IN_D. Beispielsweise kann der SMFB 200 eine Eingabe von einem anderen SMFB aufweisen. Ferner kann der SMFB 200 auch andere Ausgaben neben den Ausgaben umfassen, die den Zustand oder damit verknüpfte Konfigurationselemente angeben. Die Eingaben ENABLE, TRK_VAL und TRK_IN_D werden nachstehend ausführlicher beschrieben. Obwohl der SMFB 200 in 4 gezeigt wird, wie er sieben Dateneingaben und neun Datenausgaben aufweist, können andere Ausführungsformen eine beliebige gewünschte Anzahl von Dateneingaben und Datenausgaben umfassen. Die Anzahl von Dateneingaben und die Anzahl von Datenausgaben des SMFB 200 können konfigurierbar sein oder nicht. Bei einer Ausführungsform entspricht die Anzahl der Ausgaben OUT_Dx im Allgemeinen der Anzahl von möglichen Zuständen der Zustandsmaschine, die von dem SMFB 200 umgesetzt wird, und die Anzahl von möglichen Zuständen kann konfigurierbar sein. Die Anzahl von Ausgaben OUT_D1, OUT_D2 usw. muss jedoch nicht unbedingt der Anzahl von möglichen Zuständen der Zustandsmaschine entsprechen. Falls es beispielweise weniger Zustände als die Anzahl von Ausgaben OUT_D1, OUT_D2 usw. gibt, können die übrigen Ausgaben unbenutzt bleiben.
  • Unter Verwendung der Benutzerschnittstelle, die mit dem Konfigurationsprogramm verknüpft ist, kann der Programmierer einen oder mehrere Funktionsblöcke, wie etwa den SMFB 200, konfigurieren. Mit Bezug auf das Konfigurieren des SMFB kann der Programmierer eine Anzahl von möglichen Zuständen vorgeben, wie die Eingaben bewirken, dass die Zustandsmaschine zwischen Zuständen übergeht, und beliebige Funktionen oder Aktionen, die bevor, während oder nachdem die Zustandsmaschine zwischen den Zuständen übergeht bzw. übergegangen ist, auszuführen sind. Um es einem Programmierer zu erlauben, den SMFB 200 zu konfigurieren, kann eine Konfigurationsanwendung auf dem Anzeigegerät 120 einen Benutzerschnittstellen-Mechanismus, wie etwa ein Konfigurationsfenster, einen Bildschirm usw., anzeigen, der mit dem Funktionsblock verknüpft ist.
  • 5 ist ein Beispiel eines Benutzerschnittstellen-Mechanismus, der verwendet werden kann, um einen SMFB, wie etwa den SMFB 200 aus 4, mindestens teilweise zu konfigurieren. Der Benutzerschnittstellen-Mechanismus umfasst eine Tabelle oder Matrix 300 (nachstehend einfach als „Matrix 300” bezeichnet), die als Teil eines Konfigurationsfensters, eines Bildschirms usw., das bzw. der mit dem SMFB verknüpft ist, angezeigt werden kann. Die Matrix 300 umfasst eine Vielzahl von Zellen (302, 303, 304), die in Reihen und Spalten angeordnet sind. Wie gezeigt, sind die Spalten in Dreiergruppen angeordnet, wobei jede Gruppe einem von einer Vielzahl möglicher Zustände einer Zustandsmaschine entsprechen kann. Insbesondere entspricht die mittlere Spalte innerhalb jeder Gruppe einem bestimmten Zustand der Zustandsmaschine, wie er in herkömmlichen Zustandsdiagrammen enthalten ist. Beispielsweise wie in 5 gezeigt, ist der mit „1” bezeichnete Zustand der Zustand „AUSGELÖST”, der mit „2” bezeichnete Zustand ist der Zustand „WARTEN AUF ZURÜCKSETZEN” und so weiter. Gemäß den Ausführungsformen entspricht die linke Spalte in jeder Gruppe einem Konfigurationselement, das die Zustandsmaschine ausführen soll, wenn sie in einen nächsten Zustand übergeht („Übergang-in-Aktion”), und die rechte Spalte in jeder Gruppe entspricht einem Konfigurationselement, das die Zustandsmaschine ausführen soll, wenn sie aus einem derzeitigen Zustand übergeht („Übergang-aus-Aktion”). Ferner entspricht jede Reihe einer Eingabe in die Zustandsmaschine (z. B. „ANFANG”, ”ZURÜCKSETZEN ERLAUBNIS” usw.). Entsprechend gibt jede der Zellen 302 (die sich für jede Reihe und Spaltengruppe wiederholen) eine Übergang-in-Aktion vor, jede der Zellen 303 (die sich für jede Reihe und Spaltengruppe wiederholen) gibt ein Eingabe/Zustands-Paar an, und jede der Zellen 304 (die sich für jede Reihe und Spaltengruppe wiederholen) gibt eine Übergang-aus-Aktion an. Es versteht sich, dass eine Gruppe von Zellen 302, 303, 304 zu einer einzigen Zelle zusammengefasst werden kann. Ferner versteht es sich, dass jede der Zellen 302, 303, 304 eine Teilzelle für eine Zelle sein kann, die einem bestimmten Zustand entspricht. Obwohl die beispielhafte Matrix 300 Reihen für sieben Eingaben und sechs Zustandsgruppen umfasst, können ähnliche Matrizen, die andere Anzahlen von Gruppen von Zuständen und Ausgaben aufweisen, für SMFB verwendet werden, die andere Anzahlen von Eingaben und Gruppen von Zuständen aufweisen. Die Anzahl von Eingaben und Gruppen von Zuständen kann konfigurierbar sein. Bei anderen Beispielen können die Reihen einem von einer Vielzahl von möglichen Zuständen der Zustandsmaschine entsprechen (sowie den damit verknüpften Übergang-in- und Übergang-aus-Aktionen), und jede Spalte kann einer Eingabe für die Zustandsmaschine entsprechen.
  • Im Betrieb kann die Zustandsmaschine in Abhängigkeit von einer Eingabe, die an der Zustandsmaschine bestätigt wird, wenn sie sich in dem aktuellen Zustand befindet, von einem aktuellen Zustand in einen nächsten Zustand übergehen. Beispielsweise kann die Matrix 300 vorgeben, dass wenn sich die Zustandsmaschine in dem Zustand „NORMALER BETRIEB” befindet (aktueller Zustand) und die Eingabe „AUSLÖSUNG ANGEFRAGT” bestätigt ist, die Zustandsmaschine in den Zustand „AUSGELÖST” (nächsten Zustand) übergehen soll. In manchen Fällen können gewisse Zustände eventuell keinen nächsten Zustandsübergang für eine gewisse Eingabe vorgeben.
  • Gemäß den Ausführungsformen kann die Übergang-aus-Aktion, die von der rechten Spalte in jeder Gruppe vorgegeben wird, einem oder mehreren Konfigurationselementen entsprechen, das bzw. die der SMFB gemäß dem Übergang aus einem aktuellen Zustand ausführt, und die Übergang-in-Aktion, die von der linken Spalte in der Gruppe vorgegeben wird, kann einem oder mehreren Konfigurationselementen entsprechen, das bzw. die der SMFB gemäß dem Übergang in einen nächsten Zustand ausführt. Bei einigen Ausführungsformen kann das eine Konfigurationselement oder können die mehreren Konfigurationselemente eine Logik in der Form von strukturiertem Text oder einer übergeordneten Computerkonstruktion (z. B. C, C++, JAVA usw.), der bzw. die auszuführende Aktionen definiert, vorliegen. Es versteht sich, dass das eine oder die mehreren Konfigurationselemente in Form einer beliebigen Art von Code oder ausführbarer Logik vorliegen kann. Das eine oder die mehreren Konfigurationselemente kann bzw. können ein einziges „Einmal-”Element sein, das der SMFB bei einem Übergang von einem aktuellen Zustand in einen nächsten Zustand ausführt, wodurch in manchen Fällen das eine oder die mehreren Konfigurationselemente nicht weiter funktioniert bzw. funktionieren, sobald der nächste Zustand erreicht ist. Der SMFB kann zuerst die Übergang-aus-Aktion (d. h. das Verlassen des aktuellen Zustands bewirkt, dass der SMFB die Übergang-aus-Aktion ausführt) unabhängig davon ausführen, wohin der Übergang des SMFB geht, und der SMFB kann, bevor er sich in dem nächsten Zustand stabilisiert, unabhängig davon, woher der Übergang des SMFB kommt, die Übergang-in-Aktion ausführen (d. h. das Eintreten in den nächsten Zustand bewirkt, dass der SMFB die Übergang-in-Aktion ausführt). In manchen Fällen können die Konfigurationselemente (d. h. die Übergang-in- und Übergang-aus-Aktionen) auf andere Komponenten oder Entitäten außerhalb des SMFB einwirken (z. B. auf einen anderen Funktionsblock). Es versteht sich, dass andere zeitliche Komponenten, die mit den Übergang-in-Aktionen, den Übergang-aus-Aktionen und Zustandsänderungen verknüpft sind, in Betracht gezogen werden.
  • Mit Bezug auf 4 entsprechen die Eingaben „1” bis „7” der Matrix 300 jeweils den Eingaben IN_D1 bis IN_D7 des SMFB 200. Ähnlich entsprechen die Zustände „1” bis „6” der Matrix 300 jeweils den Ausgaben OUT_D1 bis OUT_D6 des SMFB 200. Zusätzlich kann bei diesem Beispiel ein Programmierer in der Lage sein, jeden möglichen Zustand und/oder jede der Eingaben zu bezeichnen. Beispielsweise ist in 5 der „Zustand 1” mit „AUSGELÖST” bezeichnet, und die Eingabe 1 ist mit „ANFANG” bezeichnet. Das Bezeichnen der Eingaben und/oder Zustände kann dazu beitragen, das Verständnis der Funktionsweise der Zustandsmaschine zu erleichtern.
  • Ein Programmierer kann den SMFB 200 konfigurieren, indem er Konfigurationsinformationen in die Zellen 302, 303, 304 einträgt. Insbesondere für eine bestimmte Zelle, die einem Eingabe/Zustands-Paar entspricht, kann der Programmierer Konfigurationsdaten in die bestimmte Zelle eintragen, die den Zustand angeben, in den der SMFB 200 übergehen soll. Ferner kann der Programmierer für eine bestimmte Zelle, die einer Übergang-in-Aktion entspricht, Konfigurationsdaten in die bestimmte Zelle eintragen, die eine Aktion angeben, die der SMFB 200 ausführen soll, wenn er in einen nächsten Zustand übergeht. Ferner kann der Programmierer noch für eine bestimmte Zelle, die einer Übergang-aus-Aktion entspricht, Konfigurationsdaten in die bestimmte Zelle eintragen, die eine Aktion angeben, die der SMFB 200 ausführen soll, wenn er aus einem aktuellen Zustand übergeht.
  • Der SMFB 200 kann die Ausgabe TRANS_OUT basierend auf entsprechenden Übergang-aus-Konfigurationsdaten bestätigen, um eine Funktion auszuführen, nachdem die Zustandsmaschine aus einem aktuellen Zustand übergegangen ist. Bei einigen Ausführungsformen kann der SMFB 200 die Ausgabe TRANS_OUT bestätigen, bevor die Zustandsmaschine aus dem aktuellen Zustand übergeht. Der SMFB 200 kann die Ausgabe TRANS_IN basierend auf entsprechenden Übergang-in-Konfigurationsdaten bestätigen, nachdem die Zustandsmaschine aus einem aktuellen Zustand übergegangen ist (oder ansonsten bevor sie aus dem aktuellen Zustand übergeht) und bevor sich die Zustandsmaschine in dem nächsten Zustand stabilisiert. Bei einigen Ausführungsformen kann der SMFB 200 die Ausgabe TRANS_IN bestätigen, nachdem sich die Zustandsmaschine in dem nächsten Zustand stabilisiert hat. In manchen Fällen kann der SMFB 200 ein Konfigurationselement bereitstellen, das einer Übergang-aus-Aktion oder einer Übergang-in-Aktion als Eingabe in einen zusätzlichen SMFB oder ein Prozessregelgerät entspricht, um zu bewirken, dass der zusätzliche SMFB oder das zusätzliche Prozessregelgerät eine Funktion erfüllt, während der SMFB 200 entweder aus dem aktuellen Zustand übergeht oder in den nächsten Zustand übergeht. Entsprechend kann eine Aktivierung einer Ausgabe TRANS_OUT eines ersten SMFB bewirken, dass ein zweiter SMFB in einen nächsten Zustand übergeht. Beispielsweise kann in einer Prozessanlage, in welcher der erste SMFB einen Dampfkessel regelt, eine Ausgabe TRANS_OUT des ersten SMFB, die angibt, dass der erste SMFB von einem abgeschalteten Zustand in einen Anheizzustand übergeht, bewirken, dass ein zweiter SMFB, der ein Kesselentlüftungsgebläse regelt, während eines Zeitraums, bevor der erste SMFB den Kessel startet, von einem abgeschalteten Gebläsezustand in einen laufenden Gebläsezustand übergeht. Folglich wird ein eventueller Stau von explosiven Gasen im Innern des Kessels entlüftet, bevor der Kessel angeheizt wird.
  • 6 ist ein Beispiel der Matrix 300, bei der Konfigurationsdaten in einigen Zellen eingetragen sind. Beispielsweise umfasst die Zelle 303A Konfigurationsdaten, die den nächsten Zustand angeben, in den Zustandsmaschine übergehen soll, wenn sich die Zustandsmaschine in dem Zustand „AUSGELÖST” befindet, und wenn die Eingabe „ZURÜCKSETZEN ERLAUBNIS” bestätigt ist. Insbesondere geben die Konfigurationsdaten der Zelle 303A an, dass die Zustandsmaschine in den Zustand „BEREIT ZUM ZURÜCKSETZEN” übergehen soll. Ferner umfasst die Zelle 302A Konfigurationsdaten, die der „AKTION A” entsprechen, die der SMFB ausführen soll, wenn er in den Zustand „BEREIT ZUM ZURÜCKSETZEN” übergeht, und die Zelle 304A umfasst Konfigurationsdaten, die der „AKTION B” entsprechen, die der SMFB ausführen soll, wenn er aus dem Zustand „AUSGELÖST” übergeht. Ähnlich umfasst die Zelle 303B Konfigurationsdaten, die angeben, dass die Zustandsmaschine in den Zustand „WARTEN AUF START” übergehen soll (von „BEREIT ZUM ZURÜCKSETZEN”), wenn die Eingabe „RESET” bestätigt ist, die Zelle 302B umfasst Konfigurationsdaten, die der „AKTION C” entsprechen, welche die Zustandsmaschine ausführen soll, wenn sie in den Zustand „WARTEN AUF START” übergeht, und die Zelle 304B umfasst Konfigurationsdaten, die der „AKTION D” entsprechen, welche die Zustandsmaschine ausführen soll, wenn sie von dem Zustand „BEREIT ZUM ZURÜCKSETZEN” übergeht. Es versteht sich, dass AKTION A, AKTION B, AKTION C, AKTION D usw. einer beliebigen Funktion oder Aktion entsprechen können, die von dem SMFB oder anderen Komponenten ausführbar ist, wie hier besprochen.
  • Zusätzlich kann eine bestimmte Zelle oder Gruppe von Zellen eine Übergang-in-Aktion ohne Übergang-aus-Aktion oder umgekehrt umfassen. Beispielsweise umfasst die Zelle 303C Konfigurationsdaten, die angeben, dass die Zustandsmaschine in den Zustand „AUSGELÖST” (von „WARTEN AUF START”) übergehen soll, wenn die Eingabe „AUSLÖSUNG ANGEFRAGT” bestätigt ist, und die Zelle 302C umfasst Konfigurationsdaten, die der „AKTION E” entsprechen, welche die Zustandsmaschine ausführen soll, wenn sie in den Zustand „AUSGELÖST” übergeht. Die Zelle 303C verfügt jedoch nicht über ein entsprechendes Konfigurationselement TRANS_OUT. Falls sich demnach die Zustandsmaschine in dem Zustand „WARTEN AUF START” befindet und die Eingabe „AUSLÖSUNG ANGEFRAGT” bestätigt ist, kann der SMFB die „AKTION E” gemäß dem Übergang von „WARTEN AUF START” auf „AUSGELÖST” ausführen. Ähnlich kann ein Eingabe/Zustands-Paar (wie etwa das in der Zelle 303D) auch kein entsprechendes Konfigurationselement TRANS_IN oder TRANS_OUT aufweisen. Entsprechend kann die Zustandsmaschine von einem aktuellen Zustand in einen nächsten Zustand übergehen, ohne ein Konfigurationselement entweder TRANS_IN oder TRANS_OUT auszuführen.
  • Falls der Programmierer bei einigen Ausführungsformen keine Konfigurationsdaten in eine Zelle einträgt, kann man davon ausgehen, dass für diesen bestimmten Zustand und die Eingabe kein Zustandsübergang erfolgen soll. Beispielsweise umfassen die Zellen 302E, 303E und 304E keine Konfigurationsdaten, die angeben, dass wenn sich die Zustandsmaschine in dem Zustand „AUSGELÖST” befindet, und wenn die Eingabe „WIEDERHERSTELLUNG STARTEN” bestätigt ist, die Zustandsmaschine in dem Zustand „AUSGELÖST” bleiben soll und keine Aktionen ausführen soll. Bei anderen Ausführungsformen kann der Programmierer Konfigurationsdaten eintragen, die angeben, dass die Zustandsmaschine für diese bestimmte Zustand/Eingabe-Kombination ihre Zustände nicht ändern soll.
  • Der Programmierer kann Konfigurationsdaten in die Matrix 300 unter Verwendung einer beliebigen von diversen Techniken eintragen, wozu Techniken gehören, die dem Fachmann wohlbekannt sind. Um beispielsweise Konfigurationsdaten in eine Zelle einzutragen, kann der Programmierer die Zelle unter Verwendung einer Maus, einer Steuerkugel, eines Berührungsbildschirms usw. auswählen. Dann könnte der Benutzer beispielsweise über eine Tastatur oder ein anderes Eingabegerät Konfigurationsdaten direkt in die Zelle eintragen. Alternativ könnte der Programmierer die Zelle auswählen und dann eine Auswahl „Bearbeiten”, „Ändern” usw. aus einem Aktionsmenü treffen oder eine Schaltfläche „Bearbeiten”, „Ändern” usw. auswählen. Dann kann die Benutzerschnittstelle dem Programmierer eine Liste von Zuständen über ein Aktionsmenü, ein Fenster, einen Bildschirm usw. vorlegen. Wahlweise kann die Zustandsliste den Zustand, dem die Zelle entspricht, oder eine Auswahl „KEIN ÜBERGANG” umfassen. Anschließend kann der Programmierer beispielsweise unter Verwendung einer Tastatur, einer Maus, einer Steuerkugel, eines Berührungsbildschirms usw. einen der Zustände auswählen. Falls der Programmierer den Zustand auswählt, welcher der Zelle oder der Auswahl „KEIN ÜBERGANG” entspricht, würden die Konfigurationsdaten angeben, dass für diese Kombination aus Zustand und Eingabe kein Übergang erfolgen soll.
  • Das Konfigurieren des SMFB unter Verwendung einer Benutzerschnittstelle, die eine Matrix umfasst, wie etwa die Matrix 300, kann das Umsetzen einer Zustandsmaschine im Vergleich beispielsweise mit einem sequenziellen Funktionsdiagramm oder einer Programmiersprache, wie etwa C++, erleichtern. Beispielsweise würde das Umsetzen einer Zustandsmaschine unter Verwendung eines Programms in C++ wahrscheinlich zuerst das Erstellen eines Zustandsübergangsdiagramms mit verknüpften Übergangsaktionen und dann das Schreiben eines Programms, um das Diagramm umzusetzen, bedingen. Dann müsste das Programm getestet und auf Fehler untersucht werden, manchmal bevor es in einem Prozessregelungssystem umgesetzt wird. Mit einem SMFB, der unter Verwendung einer Matrix, wie etwa der Matrix 300, konfiguriert ist, ist es jedoch nicht notwendig, ein Programm zu schreiben. Stattdessen würde das „Programmieren” einfach das Ausfüllen der Matrix mit den Zuständen und den damit verknüpften Übergangsaktionen bedingen. Weil zusätzlich kein Software-Code geschrieben werden muss, ist kein Debugging und Testen des Codes notwendig. Stattdessen kann das Testen einfach das Testen diverser Kombinationen von Zuständen, Übergang-in-Aktionen, Übergang-aus-Aktionen und Eingaben bedingen, um zu überprüfen, dass der SMFB in die richtigen nächsten Zustände übergeht und die gewünschten Übergangsaktionen ausführt. In manchen Fällen ist die Funktionsweise des SMFB einfach zu verstehen, indem man einfach die Matrix 300 kontrolliert. Somit könnte die Funktionsweise eines konfigurierten SMFB ohne Weiteres dokumentiert werden, indem beispielsweise eine Darstellung der Matrix gedruckt wird.
  • Ein SMFB, der gemäß einer Matrix, wie etwa der Matrix 300, konfiguriert ist, kann beispielsweise in einem Sicherheitssystem oder einem Prozessregelungssystem verwendet werden. Als nur ein Beispiel kann ein SMFB, der gemäß einer Matrix, wie etwa der Matrix 300, konfiguriert ist, als Teil eines Sicherheitssystems verwendet werden, um einen Brenner in einer Prozessanlage zu verwalten. Beispielweise könnte der SMFB Zustände umfassen, wie etwa „ANHEIZEN”, „GAS ABSCHALTEN” und „LÜFTEN”. Wenn der Brenner hochgefahren wird, könnte der SMFB zuerst in den Zustand LÜFTEN gehen, um zu bewirken, dass eventuelles Gas in dem Brenner entlüftet wird. Dann könnte der SMFB in den Zustand ANHEIZEN gehen, um den Brenner anzuheizen. Auch falls die Flamme des Brenners erlischt, könnte der SMFB in den Zustand GAS ABSCHALTEN gehen, um das Gas zum Brenner abzuschalten. Dann könnte der SMFB in den Zustand LÜFTEN gehen. Zusätzlich kann der SMFB Übergang-in- und Übergang-aus-Aktionen umfassen, um das Sicherheitssystem zu ermöglichen. Beispielsweise kann der SMFB eine Übergang-in-Aktion umfassen, die mit dem Übergang in den Zustand LÜFTEN verknüpft ist, wodurch die Übergang-in-Aktion einen Bedienerindikator aktiviert, um einen Bediener darüber zu informieren, dass der Brenner entlüftet wird. Zusätzlich kann der SMFB eine Übergang-aus-Aktion umfassen, die mit dem Übergang aus dem Zustand LÜFTEN verknüpft ist, wodurch die Übergang-aus-Aktion den Bediener darüber informiert, dass der Brenner entsprechend entlüftet wird. Alternativ kann die Ausgabe TRANS_OUT oder TRANS_IN eines ersten SMFB (z. B. eines SMFB zur Kesselregelung) als eine Eingabe für einen anderen SMFB (z. B. einen SMFB zur Regelung einer Kesselbelüftungsanlage) oder ein anderes Prozessregelgerät bereitgestellt werden, um zu bewirken, dass der andere SMFB oder das andere Prozessregelgerät eine Funktion ausführt, während der erste SMFB einen Übergang aus dem aktuellen Zustand und/oder in einen nächsten Zustand vornimmt.
  • Ein SMFB, der gemäß einer Matrix, wie etwa der Matrix 300, konfiguriert ist, kann von einem oder mehreren der Regler 12a, 16a, der E/A-Geräte 24, der Logic Solver 50 und der Geräte 22, 23, 60, 62 umgesetzt werden. Bei einigen Ausführungsformen kann der SMFB durch einen Prozessor, der gemäß einer Software konfiguriert ist, durch einen programmierbaren Logikbaustein, z. B. ein Gerät, das ein oder mehrere von einem Gate-Array, einer Standardzelle, einem anwenderprogrammierbaren Gate-Array (FPGA), einem PROM, einem EPROM, einem EEPROM, einer programmierbaren Array-Logik (PAL), eines programmierbaren logischen Arrays (PLA) usw. umfasst, umgesetzt werden.
  • Die Konfigurationsdaten, die mit einem SMFB verknüpft sind (beispielsweise Daten, die in eine Matrix, wie etwa die Matrix 300, eingetragen werden, und wahlweise andere Konfigurationsdaten), können auf einem computerlesbaren Medium gespeichert werden, wie etwa auf einer Festplatte, einem RAM, einem ROM, einer CD-ROM, einem EPROM, einem EEPROM, einer DVD, einem FLASH-Speicher usw. und/oder einem Speicher, der mit einem Prozessor verknüpft ist.
  • 7 ist ein Ablaufschema eines beispielhaften Verfahrens 350 der Funktionsweise eines konfigurierten SMFB. Das Verfahren 350 kann regelmäßig und/oder beispielsweise als Reaktion auf ein Auslöseereignis umgesetzt werden. In einem Block 354 empfängt der SMFB seine Dateneingabe(n). Mit Bezug auf 4 empfängt der SMFB beispielsweise eine der Eingaben IN_D1 bis IN_D7. In einem Block 356 führt der SMFB eine geeignete Übergang-aus-Aktion basierend auf dem aktuellen Zustand und/oder der oder den Dateneingabe(n) aus. Insbesondere kann der SMFB die Übergang-aus-Aktion unter Verwendung der verknüpften Übergang-aus-Konfigurationsdaten ausführen, die in einer Konfigurationsdatenbank gespeichert sind. In einem Block 357 führt der SMFB eine geeignete Übergang-in-Aktion basierend auf dem nächsten Zustand aus (wie durch den aktuellen Zustand und die Dateneingabe(n) angegeben). Insbesondere kann der SMFB die Übergang-in-Aktion unter Verwendung der verknüpften Daten zum Konfigurieren eines Übergangs-in, die in einer Konfigurationsdatenbank gespeichert sind, ausführen.
  • In einem Block 358 ändert der SMFB gegebenenfalls einen Zustand seiner Zustandsmaschine basierend auf der oder den Dateneingabe(n), dem aktuellen Zustand des SMFB und den Konfigurationsdaten, die in einer Konfigurationsdatenbank gespeichert sind. Beispielsweise stellt der SMFB den aktuellen Zustand als den bestimmten nächsten Zustand ein. Die Daten der Konfigurationsdatenbank können Daten umfassen, die über eine Matrix, wie etwa die Matrix 300, eingetragen werden. Der Zustand kann auch basierend auf anderen Faktoren geändert werden. Wie es beispielsweise nachstehend ausführlicher beschrieben wird, kann der SMFB konfiguriert sein, um eine oder mehrere der Dateneingaben zu ignorieren. Somit kann das Ändern des Zustands auch auf Konfigurationsdaten basieren, die angeben, welche der Dateneingabe(n) gegebenenfalls zu ignorieren sind. Als ein anderes Beispiel können zwei oder mehrere Dateneingaben angeben, dass eine Zustandsänderung von einem aktuellen Zustand in zwei oder mehrere nächste Zustände erfolgen soll. Somit kann der SMFB eine der Dateneingaben auswählen, um zu bestimmen, in welchen der möglichen nächsten Zustände der SMFB übergehen soll, basierend auf Prioritätsdaten, welche die Dateneingaben priorisieren. Als noch ein anderes Beispiel kann bzw. können die Dateneingabe(n) für den SMFB einen Status umfassen (z. B. einen Status RICHTIG oder einen Status FALSCH). Somit kann das Ändern des Zustands beispielsweise auch auf Konfigurationsdaten basieren, die angeben, wie eine Eingabe mit einem Status FALSCH zu handhaben ist.
  • Dann kann der SMFB in einem Block 366 seine Datenausgaben basierend auf dem aktuellen Zustand der Zustandsmaschine einstellen. Beispielsweise kann der SMFB die Ausgabe STATE (sowie eine geeignete Ausgabe OUT_Dx) auf den aktuellen Zustand der Zustandsmaschine einstellen. Ferner kann der SMFB die Ausgabe TRANS_OUT einstellen, um eine Übergang-aus-Aktion anzugeben, die auszuführen ist, wenn die Zustandsmaschine einen Übergang aus dem aktuellen Zustand vornimmt, und kann die Ausgabe TRANS_IN einstellen, um eine Übergang-in-Aktion anzugeben, die auszuführen ist, wenn die Zustandsmaschine in einen nächsten Zustand übergeht.
  • Noch einmal mit Bezug auf 4 kann der SMFB wahlweise eine Eingabe „ENABLE” umfassen. Falls bei einer Ausführungsform die Eingabe ENABLE nicht mehr bestätigt ist, kann der SMFB in einen gesperrten Zustand (z. B. den Zustand 0) gezwungen werden und muss in diesem Zustand bleiben, bis die Eingabe ENABLE bestätigt wird. Wenn die Eingabe ENABLE bestätigt wird, kann der SMFB in einen Anfangszustand (z. B. den Zustand 1) gezwungen werden, nach dem der SMFB gemäß den Konfigurationsdaten, die in eine Konfigurationsmatrix, wie etwa die Matrix 300 aus 5, eingetragen wurden, in andere Zustände übergehen kann.
  • Der SMFB kann zusätzlich eine Eingabe oder mehrere Eingaben umfassen, um die Zustandsmaschine in einen gewünschten Zustand zu zwingen. Beispielsweise umfasst der SMFB 200 eine Eingabe TRK_IN_D und eine Eingabe TRK_VAL. Wenn die Eingabe TRK_IN_D bestätigt wird, kann der SMFB in einen Zustand gezwungen werden, der durch die Eingabe TRK_VAL vorgegeben wird. Falls beispielweise die Eingabe TRK_VAL gleich „6” ist und die Eingabe TRK_IN_D bestätigt wird, kann der SMFB in den Zustand „6” gezwungen werden.
  • Wahlweise gibt es für das Konfigurieren des SMFB zusätzliche Möglichkeiten. Beispielsweise kann der SMFB eine Eingabe-(oder Übergangs-)Maske umfassen, die angibt, ob gegebenenfalls eine oder mehrere der Eingaben IN_D1, IN_D2 usw. zu ignorieren ist. Auch kann der SMFB konfiguriert sein, um auf Eingaben zu reagieren, die eine Vielzahl von Status aufweisen können. Beispielsweise kann eine oder können alle der Eingaben für den SMFB einen Status „richtig” oder einen Status „falsch” aufweisen, und der SMFB kann konfiguriert sein, um in Abhängigkeit von dem Status einer Eingabe unterschiedlich zu reagieren. Bei einem bestimmten Beispiel kann der SMFB konfiguriert sein, um eine Eingabe zu ignorieren, die „falsch” ist, die Eingabe zu verwenden, auch wenn sie „falsch” ist, oder den letzten „guten” Wert der Eingabe zu verwenden. Ferner kann der SMFB einen Parameter RESET umfassen, der, wenn er wahr ist, den SMFB in den Zustand „1” zwingt.
  • Die zuvor beschriebenen diversen Konfigurationsdaten und die Konfigurationsdaten des nächsten Zustands können auf dem gleichen computerlesbaren Medium oder auf verschiedenen computerlesbaren Medien gespeichert sein.
  • 8 ist ein Blockdiagramm eines Beispiels eines SMFB 400. Der SMFB 400 umfasst eine Logik 404, die einen nächsten Zustand bestimmt, der mindestens teilweise auf den Eingaben IN_D1, IN_D2 usw. und dem aktuellen Zustand des SMFB 400 basiert. Insbesondere greift die Logik 404 auf die Daten zur Konfiguration des nächsten Zustands zu, die in einer Datenbank zur Konfiguration des nächsten Zustands 406 gespeichert sind. Die Logik 404 bestimmt auch Funktionen von Übergang-in- und Übergang-aus-Aktionen, die von dem SMFB 400 auszuführen sind. Die Übergang-in-Aktion kann mindestens teilweise auf den Übergang-in-Konfigurationsdaten aus einer Datenbank zum Konfigurieren des Übergangs-aus 405 basieren. Die Übergang-aus-Aktion kann mindestens teilweise auf Daten zum Konfigurieren des Übergangs-aus aus einer Datenbank zum Konfigurieren des Übergangs-aus 407 basieren. Gemäß den Ausführungsformen, wie sie hier besprochen werden, können die Daten zum Konfigurieren des Übergangs-in Funktionen definieren, die der SMFB ausführt, bevor sich der SMFB in einem nächsten Zustand stabilisiert, und die Daten zum Konfigurieren des Übergangs-aus können Funktionen definieren, die der SMFB ausführt, bevor er aus einem aktuellen Zustand übergeht (oder ansonsten vor dem Übergang in einen nächsten Zustand). Die Datenbanken 405, 406, 407 können auf einem computerlesbaren Medium gespeichert sein, etwa wie es hier beschrieben wird. Die Daten zum Konfigurieren des nächsten Zustands, des Übergangs-in und des Übergangs-aus können Konfigurationsdaten umfassen, die in eine Matrix, wie etwa in die Matrix 300 aus 5, eingetragen werden. Es versteht sich, dass diverse Komponenten, Logikelemente oder Module die Daten zum Konfigurieren des Übergangs-in und/oder des Übergangs-aus ausführen können. Beispielsweise kann der SMFB 400 die Daten zum Konfigurieren des Übergangs-in und/oder des Übergangs-aus ausführen. Als weiteres Beispiel kann der SMFB 400 Befehle an eine getrennte Komponente oder ein getrenntes Modul senden, um die Daten zum Konfigurieren des Übergangs-in und/oder des Übergangs-aus auszuführen.
  • Gemäß einigen Ausführungsformen wird die Ausgabe der Logik 404 der Schaltlogik 408 bereitgestellt. Die Schaltlogik 408 wählt zwischen der Ausgabe der Logik 404 und der Eingabe TRK_VAL basierend auf der Eingabe TRK_IN_D aus. Falls beispielsweise die Eingabe TRK_IN_D bestätigt wird, kann die Schaltlogik 408 die Eingabe TRK_VAL auswählen. Ansonsten kann die Schaltlogik 408 die Ausgabe der Logik 404 auswählen.
  • Die Ausgabe der Schaltlogik 408 wird der Schaltlogik 412 bereitgestellt, die basierend auf der Ausgabe der Freigabe- und Rücksetzlogik 416 zwischen der Ausgabe der Schaltlogik 408, dem Wert 0 und dem Wert 1 auswählt. Die Ausgabe der Freigabe- und Rücksetzlogik 416 gibt an, ob der Zustand in einen gesperrten Zustand (Zustand 0) oder einen Anfangszustand (Zustand 1) zu zwingen ist. Die Freigabe- und Rücksetzlogik 416 generiert diese Ausgabe basierend auf der Eingabe ENABLE. Falls beispielsweise die Bestätigung der Eingabe ENABLE aufgehoben wird, kann die Ausgabe der Freigabe- und Rücksetzlogik 416 angeben, dass der Zustand auf 0 zu zwingen ist. Falls sich die Eingabe ENABLE von unbestätigt auf bestätigt ändert, kann die Ausgabe der Freigabe- und Rücksetzlogik 416 angeben, dass der Zustand auf 1 zu zwingen ist. Falls ENABLE bestätigt wird und zuvor bestätigt war, kann die Ausgabe der Freigabe- und Rücksetzlogik 416 angeben, dass der Zustand nicht auf 0 oder 1 gezwungen werden soll.
  • Die Ausgabe der Schaltlogik 412 ist der aktuelle Zustand des SMFB 400 und kann als Ausgabe des SMFB 400 bereitgestellt werden. Die Ausgabe der Schaltlogik 412 kann auch der Logik 420 bereitgestellt werden, die eine entsprechende Ausgabe OUT_D1, OUT_D2, TRANS_IN, TRANS_OUT usw. einstellt, die dem aktuellen Zustand des SMFB entspricht. Wie in 8 abgebildet, kann die Logik 420 optional auf Zustands-/Ausgabe-Konfigurationsdaten zugreifen, die in einer optionalen Ausgabekonfigurationsdatenbank 458 gespeichert sind. Die Datenbank 458 und die Datenbank 406 können auf demselben computerlesbaren Medium oder auf verschiedenen computerlesbaren Medien gespeichert sein. Die Ausgabekonfigurationsdaten können Konfigurationsdaten umfassen, die in eine Matrix, wie etwa die Matrix 700 aus 13, eingetragen sind, wie es hier besprochen wird.
  • Jeder der Blöcke 404, 408, 412, 416 und 420 kann von einem oder mehreren von Hardware, Software und Firmware umgesetzt werden. Zusätzlich können einige der Blöcke kombiniert, umgestellt, geändert oder ausgelassen werden, und es können zusätzliche Blöcke hinzugefügt werden. Rein beispielhaft könnten die Blöcke 408 und 412 zu einem einzigen Block kombiniert werden.
  • 9 ist ein Ablaufschema eines Verfahrens 450 der Funktionsweise des beispielhaften SMFB 400. Das Verfahren 450 aus 9 kann beispielsweise regelmäßig und/oder bei einem Auslöseereignis umgesetzt werden. In einem Block 454 werden die Dateneingaben des SMFB 400 verarbeitet. Beispielsweise kann bestimmt werden, ob einige der Dateneingaben IN_D1, IN_D2 usw. bestätigt wurden. Falls eine oder mehrere der Dateneingaben einen Status „FALSCH” aufweist, kann als anderes Beispiel bestimmt werden, wie eine oder mehrere „FALSCHE” Eingaben zu handhaben sind. In einem Block 458 wird die Eingabe ENABLE des SMFB 400 verarbeitet. Beispielsweise kann bestimmt werden, ob die Eingabe ENABLE bestätigt wird und/oder ob sie sich geändert hat, seit sie zuvor verarbeitet wurde.
  • In einem Block 459 führt der SMFB eine geeignete Übergang-aus-Aktion basierend auf dem aktuellen Zustand und/oder den Dateneingaben aus, indem er beispielsweise auf die verknüpften Daten zum Konfigurieren des Übergangs-aus zugreift, die in einer Konfigurationsdatenbank gespeichert sind. In einem Block 460 führt der SMFB eine geeignete Übergang-in-Aktion basierend auf dem nächsten Zustand und/oder den Dateneingaben aus, indem er beispielsweise auf die verknüpften Daten zum Konfigurieren des Übergangs-in zugreift, die in einer Konfigurationsdatenbank gespeichert sind. Beispielsweise kann der SMFB konfiguriert sein, um eine Einrichtung innerhalb einer Prozessanlage zu regeln. Wenn sich die Einrichtung in einem abgeschalteten Zustand (d. h. dem aktuellen Zustand) befindet, können die Daten zum Konfigurieren des nächsten Zustands ausgeführt werden, wenn eine Einrichtungsstart-Eingabe aktiviert wird und die Einrichtung in einen Betriebszustand (d. h. den nächsten Zustand) übergeht. Bevor er tatsächlich aus dem abgeschalteten Zustand übergeht, kann der SMFB die Daten zum Konfigurieren des Übergangs-aus ausführen, um einen Alarm zu aktivieren, der angibt, dass die Einrichtung im Begriff ist zu starten. Zusätzlich kann der SMFB, bevor er sich in dem Betriebszustand stabilisiert, die Daten zum Konfigurieren des Übergangs-in ausführen, um den Alarm auszuschalten.
  • Als weiteres Beispiel kann der SMFB konfiguriert sein, um mehrere Heizeinrichtungen in einer Lagerhalle zu regeln. Wenn sich die Prozessanlage in einem Heizzustand (d. h. dem aktuellen Zustand) befindet, kann eine Eingabe bestätigt werden, um einen Ventilator zu starten, was einem Übergang in einen Lüftungszustand entspricht. Während des Übergangs aus dem Heizzustand kann der SMFB automatisch einen Ofen oder eine andere Heizquelle sperren, um zu verhindern, dass die Heizquelle weiter Wärme generiert. Entsprechend wird der Ofen daran gehindert, nach dem Übergang in den Lüftungszustand zu funktionieren. Ferner kann der SMFB vor dem Übergang in den Lüftungszustand automatisch eine Reihe von Lüftungslöchern aktivieren, die mit dem Ventilator verknüpft sind, um zum Belüften der entsprechenden Maschine beizutragen.
  • In einem Block 462 kann ein Zustand des SMFB 400 bei Bedarf geändert werden. Zusätzlich kann bzw. können eine oder mehrere Datenausgaben des SMFB 400 bei Bedarf geändert oder eingestellt werden. Beispielsweise kann bestimmt werden, dass eine Änderung der Dateneingaben angibt, dass der Zustand des SMFB 400 zu ändern ist. Falls sich zusätzlich der Zustand ändert, kann es sein, dass eine oder mehrere Datenausgaben, wie etwa die Ausgaben TRANS_IN und TRANS_OUT, des SMFB 400 zu ändern sind.
  • Mehrere beispielhafte Routinen, die man verwenden kann, um das Verfahren 450 mindestens teilweise umzusetzen, werden nun beschrieben. Beispielsweise ist 10 ein Ablaufschema einer beispielhaften Routine 500, die verwendet werden kann, um die Dateneingaben IN_D1, IN_D2 usw. in den SMFB zu verarbeiten. In einem Block 504 wird eine Variable z auf eins gesetzt. In einem Block 508 wird bestimmt, ob der Status der Dateneingabe IN_Dz „FALSCH” ist. Falls der Status nicht falsch ist, dann wird das Bit Nummer z einer Variablen TRANSITIONS auf den Wert der Dateneingabe IN_Dz gesetzt. Falls der Status falsch ist, kann dann bestimmt werden, wie die Dateneingabe zu handhaben ist. Bei einem Beispiel kann der SMFB die Eingaben „FALSCH” auf drei Arten handhaben: die Eingabe FALSCH kann trotzdem verwendet werden (IMMER_VERWENDEN), sie kann ignoriert werden (IGNORIEREN_WENN_FALSCH), oder der letzte Eingabewert „RICHTIG” kann verwendet werden (LETZTEN_RICHTIGEN_VERWENDEN). Somit kann in einem Block 516 bestimmt werden, ob der SMFB die letzte Dateneingabe „RICHTIG” verwenden soll. Falls der SMFB den letzten Wert „RICHTIG” verwenden soll, dann kann man den Block 512 überspringen. Ansonsten kann dann in Block 520 bestimmt werden, ob der SMFB den Eingabewert FALSCH ignorieren soll. Falls der SMFB den Wert FALSCH nicht ignorieren soll, kann die Routine dann mit Block 512 fortfahren. Falls der SMFB den Wert FALSCH ignorieren soll, kann die Routine dann 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 bestimmt werden, ob die Variable z größer als die Anzahl der Dateneingaben in den SMFB ist. Falls z nicht größer als die Anzahl der Dateneingaben in den SMFB ist, kann die Routine zu Block 508 zurückkehren, um die nächste Dateneingabe zu verarbeiten. Ansonsten kann die Routine enden.
  • 11 ist ein Ablaufschema einer beispielhaften Routine 545, die man verwenden kann, um die Eingabe ENABLE für den SMFB zu verarbeiten. In einem Block 550 kann bestimmt werden, ob ein Wert einer Variable LASTENABLE der gleiche Wert ist wie die Eingabe ENABLE. Die Variable LASTENABLE gibt im Allgemeinen den Wert von ENABLE zu einem vorhergehenden Zeitpunkt an (beispielsweise den Wert der Variablen ENABLE während des vorhergehenden Ablaufs der Routine 545). Falls die Werte von LASTENABLE und ENABLE gleich sind, kann die Routine 545 enden. Ansonsten kann die Routine mit einem Block 554 fortfahren, in dem bestimmt werden kann, ob die Eingabe ENABLE bestätigt ist. Falls die Eingabe ENABLE bestätigt ist, kann in einem Block 558 eine Variable RESET auf WAHR gesetzt werden.
  • Falls in dem Block 554 bestimmt wird, dass die Eingabe ENABLE nicht bestätigt ist, dann wird in Block 562 die Bestätigung der Ausgabe OUT_D1, OUT_D2 usw., die dem aktuellen Wert einer Variablen STATE entspricht, aufgehoben. In einem Block 566 wird dann die Variable STATE auf 0 gesetzt. Nach den Blöcken 558 und 566 kann die Routine mit einem Block 570 fortfahren, in dem die Variable LASTENABLE auf den Wert der Eingabe ENABLE gesetzt wird. Nach dem Block 570 kann die Routine enden.
  • 12 ist ein Ablaufschema einer beispielhaften Routine 600, die man verwenden kann, um einen nächsten Zustand des SMFB zu bestimmen und um bei Bedarf eine geeignete Ausgabe OUT_D1, OUT_D2, TRANS_IN, TRANS_OUT usw. einzustellen. In einem Block 604 kann bestimmt werden, ob die Eingabe ENABLE bestätigt ist. Falls nicht, kann die Routine enden. Falls die Eingabe ENABLE bestätigt ist, kann die Routine mit einem Block 608 fortfahren, in dem eine Variable NEWSTATE auf 0 gesetzt wird. Dann kann in einem Block 612 bestimmt werden, ob die Eingabe TRK_IN_D bestätigt ist. Wenn sie bestätigt ist, kann die Routine mit einem Block 616 fortfahren, in dem die Variable NEWSTATE auf den Wert der Eingabe TRK_VAL gesetzt wird.
  • Falls in Block 612 bestimmt wird, dass die Eingabe TRK_IN_D nicht bestätigt ist, kann die Routine mit einem Block 620 fortfahren. In Block 620 kann bestimmt werden, ob die Variable RESET WAHR ist. Wenn ja, kann die Routine mit einem Block 624 fortfahren, in dem die Variable NEWSTATE auf 1 gesetzt werden kann. In einem Block 626 kann dann die Variable RESET auf FALSCH gesetzt werden.
  • Falls in dem Block 620 bestimmt wird, dass die Variable RESET nicht WAHR ist, dann kann die Routine mit einem Block 632 fortfahren. In dem Block 632 kann eine Variable TEMP dadurch bestimmt werden, dass Bit für Bit eine Variable TRANSITION_MASK, die Variable TRANSITIONS und ein Element eines Arrays STATECHANGEMASK, auf das die Variable STATE weist, mit „AND” addiert werden. Die Variable TRANSITION_MASK kann eine konfigurierbare Variable sein, die man verwenden kann, um zu verhindern, dass gewisse Eingaben IN_Dx das Vorkommen einer Zustandsänderung verursachen. Falls beispielsweise ein Programmierer verhindern möchte, dass die Eingabe IN_D3 verursacht, dass sich der Zustand der Zustandsmaschine ändert, könnte der Programmierer das dritte Bit der Variablen TRANSITION_MASK auf 0 setzen. Wenn der Programmierer zulassen möchte, dass die Eingabe D3 bewirkt, dass sich der Zustand der Zustandsmaschine ändert, 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 entsprechenden der Zustände angibt, welche Eingaben IN_D1, IN_D2 usw. eine Zustandsänderung bewirken. Insbesondere kann jedes Element des Arrays einem der Zustände der Zustandsmaschine entsprechen. Beispielsweise kann STATECHANGEMASK[1] dem Zustand 1 entsprechen, STATECHANGEMASK[2] kann dem Zustand 2 entsprechen, usw. Zusätzlich kann jedes Bit von jedem Element einer der Eingaben IN_D1, IN_D2 usw. entsprechen. Beispielsweise kann das Bit 1 IN_D1 entsprechen, das Bit 2 kann IN_D2 entsprechen usw. Beispielsweise mit Bezug auf 6 hätte das Array STATECHANGEMASK für die Matrix 300 6 Elemente und das Element STATECHANGEMASK[3] wäre 0×44.
  • Nach dem Block 628 kann die Routine mit einem Block 632 fortfahren, in dem bestimmt werden kann, ob die Variable TEMP gleich 0 ist. Wenn sie nicht gleich 0 ist, kann die Routine mit einem Block 636 fortfahren, in dem eine Variable z auf die Zahl des ersten Bits (d. h. ausgehend von dem niedrigstwertigen Bit) in der Variablen TEMP gesetzt werden kann, das nicht gleich null ist. Dies stellt nämlich die Prioritäten der Eingaben basierend auf ihrer Reihenfolge derart ein, dass IN_D1 die höchste Priorität ist, IN_D2 die nächsthöhere Priorität ist, IN_D3 die nächsthöhere Priorität ist, usw. Bei anderen Ausführungsformen könnten andere Priorisierungsmethoden verwendet werden. Beispielsweise könnte man es einem Programmierer erlauben, den Eingaben Prioritäten zuzuweisen, oder es könnte eine andere Prioritätsreihenfolge verwendet werden (z. B. ist IN_D1 die niedrigste Priorität, IN_D2 ist die nächstniedrigere Priorität usw.). Die Prioritäten könnten für den SMFB insgesamt oder für jeden Zustand eingestellt werden. Dann kann in einem Block 640 die Variable NEWSTATE auf den Wert der Zustandsübergangsmatrix in der Reihe z und der Spalte ZUSTAND gesetzt werden.
  • Nach den Blöcken 616, 626 und 640 kann die Routine mit einem Block 644 fortfahren. Falls in dem Block 632 bestimmt wird, dass die Variable TEMP gleich 0 ist, kann die Routine auch mit dem Block 644 fortfahren. In dem Block 644 kann bestimmt werden, ob die Variable NEWSTATE gleich 0 ist. Wenn sie gleich 0 ist, kann die Routine enden. Wenn sie nicht gleich 0 ist, kann die Routine mit einem Block 645 fortfahren, in dem die Übergang-aus-Aktion ausgeführt werden kann. Dann kann in einem Block 646 die Übergang-in-Aktion ausgeführt werden. In einem Block 648 wird die Bestätigung der Ausgaben OUT_D1, OUT_D2, TRANS_IN, TRANS_OUT usw., die der Variablen STATE entsprechen, aufgehoben. Es versteht sich, dass die Ausgaben, deren Bestätigung aufzuheben ist, nicht unbedingt der Variablen STATE entsprechen müssen. In einem Block 652 wird die Variable STATE auf den Wert der Variable NEWSTATE gesetzt. In einem Block 656 werden die Ausgaben OUT_D1, OUT_D2, TRANS_IN, TRANS_OUT usw., die der Variablen STATE entsprechen, bestätigt und die Routine kann enden. Es versteht sich, dass die zu bestätigenden Ausgaben nicht unbedingt der Variablen STATE entsprechen müssen.
  • Es versteht sich, dass das Verfahren 450 aus 9 und die Routinen aus 10 bis 12 rein beispielhaft sind und dass die Blöcke bei anderen Beispielen geändert werden können, neue Blöcke hinzugefügt werden können, die Blöcke umgestellt werden können, Blöcke ausgelassen werden können und/oder die Blöcke kombiniert werden können. Mit Bezug auf 10 können rein beispielhaft die Blöcke 508, 516, 520 und 524 ausgelassen werden, wenn keine spezielle Handhabung der Eingaben mit einem Status „FALSCH” benötigt oder erwünscht ist.
  • Als anderes Beispiel könnte der Block 636 derart geändert werden, dass die Variable z auf die Zahl des letzten Bits in TEMP, das nicht gleich 0 ist, gesetzt wird. Als noch ein anderes Beispiel könnte der Block 636 geändert werden, um z auf die Zahl zu setzen, die einem der Bits in TEMP entspricht, das nicht gleich 0 ist, basierend auf gewissen Prioritätsdaten.
  • Noch einmal mit Bezug auf 4 sind nicht alle Datenausgaben unbedingt Indikatoren des Zustands der Zustandsmaschine, die dem SMFB 200 entspricht. Beispielsweise können bei einer Ausführungsform die Werte für die Ausgaben OUT_D1, OUT_D2 usw., die diversen Zuständen der Zustandsmaschine entsprechen, konfigurierbar sein. Somit kann beispielsweise für bestimmte Zustände eine Vielzahl der Ausgaben OUT_D1, OUT_D2 usw. bestätigt werden. Damit ein Programmierer den SMFB konfigurieren kann, kann eine Konfigurationsanwendung auf dem Anzeigegerät 120 einen Benutzerschnittstellen-Mechanismus anzeigen, wie etwa ein Konfigurationsfenster, einen Bildschirm usw., der mit dem Funktionsblock verknüpft ist.
  • 13 ist ein Beispiel eines Benutzerschnittstellen-Mechanismus, der verwendet werden kann, um mindestens teilweise einen SMFB zu konfigurieren, wie etwa den SMFB 200 aus 4. Der Benutzerschnittstellen-Mechanismus umfasst eine Tabelle oder Matrix 700 (nachstehend als „Matrix 700” bezeichnet), die als Teil eines Konfigurationsfensters, eines Bildschirms usw., das bzw. der mit dem SMFB verknüpft ist, angezeigt werden kann. Die Matrix 700 umfasst eine Vielzahl von Zellen 704, die in Reihen und Spalten angeordnet sind. Jede Spalte entspricht einer Ausgabe von einer Vielzahl von Ausgaben OUT_D1, OUT_D2 usw., TRANS_IN und TRANS_OUT des Zustandsmaschinen-Funktionsblocks, und jede Reihe entspricht einem der möglichen Zustände der Zustandsmaschine. Somit entspricht jede Zelle 704 einem Zustand und einer Ausgabe. Bei anderen Beispielen kann jede Spalte einer der Vielzahl von Ausgaben entsprechen, und jede Spalte kann einem der möglichen Zustände der Zustandsmaschine entsprechen.
  • Die Ausgaben „1” bis „4” der Matrix 700 können jeweils den Ausgaben OUT_D1 bis OUT_D4 des SMFB entsprechen, und die Ausgaben „5” und „6” können jeweils den Ausgaben TRANS_IN und TRANS_OUT entsprechen. Ähnlich können die Zustände „1” bis „6” der Matrix 700 den möglichen Zuständen der Zustandsmaschine entsprechen. Zusätzlich kann ein Benutzer bei diesem Beispiel in der Lage sein, jede der Ausgaben zu bezeichnen. Beispielsweise ist in 13 „Ausgabe 1” mit „VENTIL VLV-101 ÖFFNEN” bezeichnet. Das Bezeichnen der Ausgaben kann dazu beitragen, das Verständnis der Funktionsweise der Zustandsmaschine und/oder das Erstellen einer Schnittstelle zwischen der Zustandsmaschine und der Prozessanlage zu erleichtern.
  • Ein Programmierer kann den SMFB konfigurieren, indem er Konfigurationsinformationen in die Zellen 704 einträgt. Insbesondere kann der Programmierer für eine bestimmte Zelle 704, die einem der Zustände und einer der Ausgaben entspricht, Konfigurationsdaten in die Zelle eintragen, die angeben, dass wenn sich die Zustandsmaschine in diesem Zustand befindet, die Ausgabe zu bestätigen ist. Bei der beispielhaften Matrix 700 wurden Konfigurationsdaten in einige der Zellen 704 eingetragen. Beispielsweise umfasst die Zelle 704A Konfigurationsdaten, die angeben, dass wenn sich die Zustandsmaschine in dem Zustand „AUSGELÖST” befindet, die Ausgabe OUT_D3 zu bestätigen ist, die Zelle 704B umfasst Konfigurationsdaten, die angeben, dass wenn sich die Zustandsmaschine ist dem Zustand „AUSGELÖST” befindet, die Ausgabe TRANS_IN nicht zu bestätigen ist, und die Zelle 704C umfasst Konfigurationsdaten, die angeben, dass wenn sich die Zustandsmaschine in dem Zustand „WIEDERHERGESTELLT” befindet, die Ausgabe TRANS_OUT zu bestätigen ist.
  • Wenn der Programmierer bei diesem bestimmten Beispiel keine Konfigurationsdaten in eine Zelle 704 einträgt, kann man davon ausgehen, dass für diesen bestimmten Zustand die entsprechende Ausgabe nicht zu bestätigen ist. Beispielsweise umfassen die Zellen 704D und 704E kein X, was angibt, dass wenn sich die Zustandsmaschine in dem Zustand „AUSGELÖST” befindet, die Ausgaben OUT_D1 und OUT_D2 nicht zu bestätigen sind. Bei anderen Ausführungsformen kann der Programmierer Konfigurationsdaten eintragen, die angeben, dass die Zustandsmaschine bestimmte Ausgaben nicht bestätigen soll, falls sie sich in einem bestimmten Zustand befindet. Ähnlich kann es möglich sein anzugeben, dass es für einen bestimmten Zustand und eine bestimmte Ausgabe unwichtig ist, ob die Ausgabe bestätigt ist oder nicht.
  • Der Programmierer kann unter Verwendung einer von diversen Techniken, einschließlich der Techniken, die dem Fachmann wohlbekannt sind, Konfigurationsdaten in die Matrix 700 eintragen. Um beispielsweise Konfigurationsdaten in eine Zelle 704 einzutragen, kann der Programmierer die Zelle 704 unter Verwendung einer Maus, einer Steuerkugel, eines Berührungsbildschirms usw. auswählen. Dann könnte der Benutzer, beispielsweise über eine Tastatur, Konfigurationsdaten direkt in die Zelle 704 eintragen. Alternativ könnte der Programmierer die Zelle 704 auswählen und dann eine Auswahl „Bearbeiten”, „Ändern” usw. aus einem Aktionsmenü treffen oder eine Schaltfläche „Bearbeiten”, eine Schaltfläche „Ändern” usw. auswählen. Dann kann die Benutzerschnittstelle für den Programmierer eine Auswahlliste über ein Aktionsmenü, ein Fenster, einen Bildschirm usw. anzeigen. Beispielsweise kann die Auswahlliste eine Auswahl „Ausgabe bestätigen”, eine Auswahl „Bestätigung der Ausgabe aufheben” und wahlweise eine Auswahl „unwichtig” umfassen. Dann kann der Programmierer, beispielsweise unter Verwendung einer Tastatur, einer Maus, einer Steuerkugel, eines Berührungsbildschirms usw., eine der Auswahlmöglichkeiten auswählen. Falls der Programmierer die Auswahl „Ausgabe bestätigen” trifft, können die Konfigurationsdaten angeben, dass für den entsprechenden Zustand die entsprechende Ausgabe zu bestätigen ist. Beispielsweise kann ein „X” in der Zelle angezeigt werden, eine „1” kann in der Zelle angezeigt werden, das Wort „WAHR” kann in der Zelle angezeigt werden, das Wort „BESTÄTIGEN” kann in der Zelle angezeigt werden, usw. Falls der Programmierer die Auswahl „Bestätigung der Ausgabe aufheben” trifft, können die Konfigurationsdaten angeben, dass für den entsprechenden Zustand die entsprechende Ausgabe nicht zu bestätigen ist. Beispielsweise kann die Zelle leer bleiben, eine „0” kann in der Zelle angezeigt werden, das Wort „FALSCH” kann in der Zelle angezeigt werden, die Wörter „BESTÄTIGUNG AUFHEBEN” können in der Zelle angezeigt werden usw.
  • Obwohl die beispielhafte Matrix 700 Reihen für sechs Zustände und sechs Ausgaben umfasst, können ähnliche Matrizen mit anderen Anzahlen von Zuständen und Ausgaben für SMFB verwendet werden, die andere Anzahlen von Zuständen und Ausgaben aufweisen. Die Anzahl von Zuständen und Ausgaben kann konfigurierbar sein.
  • Noch einmal mit Bezug auf 7, und wie zuvor beschrieben, können die Datenausgaben des SMFB, nachdem der aktuelle Zustand bestimmt wurde, basierend auf dem aktuellen Zustand eingestellt werden (Block 366). Beispielsweise können die Datenausgaben gemäß den Konfigurationsdaten eingestellt werden, die in eine Matrix, wie etwa in die Matrix 700 aus 13, eingetragen wurden.
  • 14 ist ein Ablaufschema einer beispielhaften Routine 850, die verwendet werden kann, um die geeigneten Ausgaben OUTD1_D1, OUT_D2 usw. zu bestätigen. In einem Block 854 wird eine Variable z auf eins gesetzt. In einem Block 858 wird die Ausgabe OUT_Dz auf den Wert der Bitanzahl z eines Elements einer Array-Variablen OUTPUT eingestellt, auf welche die Variable STATE zeigt. Jedes Element des Arrays OUTPUT kann eine Variable sein, die für einen entsprechenden der Zustände die Werte der Ausgaben OUT_D1, OUT_D2 usw. angibt. Beispielsweise kann OUTPUT[1] einem Zustand 1 entsprechen, OUTPUT[2] kann einem Zustand 2 entsprechen, usw. Zusätzlich kann jedes Bit von jedem Element einer der Ausgaben OUT_D1, OUT_D2 usw. entsprechen. Beispielsweise kann das Bit 1 OUT_D1 entsprechen, das Bit 2 kann OUT_D2 entsprechen, usw. Mit Bezug auf 13 würde das Array OUTPUT beispielsweise für die Matrix 700 6 Elemente aufweisen, und das Element OUTPUT[1] kann 0 × 06 sein.
  • In einem Block 862 wird die Variable z inkrementiert, und in einem Block 866 kann bestimmt werden, ob der Wert von z größer als die Anzahl der Ausgaben OUT_D1, OUT_D2 usw. ist. Falls z nicht größer als die Anzahl der Ausgaben OUT_D1, OUT_D2 usw. ist, kann die Routine zu Block 858 zurückkehren. Andernfalls kann die Routine enden.
  • Die Konfigurationsdaten für den SMFB können über andere Arten von grafischen Benutzerschnittstellen zusätzlich zu den zuvor beschriebenen eingetragen werden. Beispielsweise können Konfigurationsdaten über eine grafische Benutzerschnittstelle, die ähnlich wie ein Zustandsübergangsdiagramm ist, eingetragen werden. 15 ist ein beispielhaftes Zustandsübergangsdiagramm 900, das man verwenden könnte, um einen SMFB, wie etwa den SMFB 200, zu konfigurieren, wie mit Bezug auf 4 beschrieben. Das Diagramm 900 umfasst eine Vielzahl von grafischen Elementen 904, 908, 912, 916, 920, 924, 928 und 932. Die Elemente 904, 908 und 912 stellen jeweils die Zustände 1, 2, und 3 einer Zustandsmaschine dar. Das Element 916 gibt an, dass wenn sich die Zustandsmaschine in Zustand 1 befindet, sie in Zustand 2 übergehen soll, falls INPUT 2 bestätigt ist. Das Element 920 gibt an, dass wenn sich die Zustandsmaschine in Zustand 1 befindet, sie in Zustand 3 übergehen soll, falls INPUT 3 bestätigt ist. Das Element 924 gibt an, dass wenn sich die Zustandsmaschine in Zustand 2 befindet, sie in Zustand 1 übergehen soll, falls INPUT 1 bestätigt ist, und das Element 928 gibt an, dass wenn sich die Zustandsmaschine in Zustand 3 befindet, sie in Zustand 1 übergehen soll, falls INPUT 1 bestätigt ist. Ähnlich gibt das Element 932 an, dass wenn sich die Zustandsmaschine in Zustand 3 befindet, sie in Zustand 2 übergehen soll, falls INPUT 4 bestätigt wird.
  • Das Zustandsübergangsdiagramm 900 umfasst ferner die Übergang-in-Elemente 902, 903 und ein Übergang-aus-Element 905, die mit Zustand 1 verknüpft sind; die Übergang-in-Elemente 906, 907 und ein Übergang-aus-Element 909, die mit Zustand 2 verknüpft sind; und ein Übergang-in-Element 911 und die Übergang-aus-Elemente 913, 914, die mit Zustand 3 verknüpft sind. Falls sich insbesondere die Zustandsmaschine in Zustand 1 befindet und INPUT 3 bestätigt ist, soll die Zustandsmaschine das Übergang-aus-Element 905 ausführen, in den Zustand 3 übergehen und das Übergang-in-Element 911 von Zustand 3 ausführen. Falls sich ferner die Zustandsmaschine in Zustand 2 befindet und INPUT 1 bestätigt ist, soll die Zustandsmaschine das Übergang-aus-Element 909 ausführen, in den Zustand 1 übergehen und das Übergang-in-Element 902 ausführen. Es versteht sich, dass die Übergang-in-Elemente und/oder die Übergang-aus-Elemente für beliebige Zustände gemeinsam sein können. Beispielsweise können die Übergang-in-Elemente 902, 903 gleich sein, wodurch die Zustandsmaschine die verknüpfte Übergang-in-Aktion als Reaktion darauf ausführt, dass die Zustandsmaschine entweder aus Zustand 2 oder Zustand 3 in den Zustand 1 übergeht. Als weiteres Beispiel können die Übergang-aus-Elements 913, 914 gleich sein, wodurch die Zustandsmaschine die verknüpfte Übergang-aus-Aktion als Reaktion darauf ausführt, dass die Zustandsmaschine entweder in den Zustand 1 (als Reaktion darauf, dass INPUT 1 bestätigt ist) oder den Zustand 2 (als Reaktion darauf, dass INPUT 4 bestätigt ist) übergeht.
  • Im Allgemeinen kann ein SMFB durch Software, Firmware oder Hardware oder eine Kombination aus Software, Firmware und/oder Hardware umgesetzt werden kann. Beispielsweise kann ein SMFB durch einen oder mehrere der Regler 12a, 16a, der E/A-Geräte 24, der Logic Solver 50 und der Geräte 22, 23, 60, 62 umgesetzt werden. Als anderes Beispiel kann ein SMFB durch eine oder mehrere der Arbeitsstationen 18a und 20a umgesetzt werden. Beispielsweise kann der SMFB durch die Arbeitsstation 18a und/oder die Arbeitsstation 20a als Teil einer Simulation umgesetzt werden, um die Funktionsweise der Prozessanlage zu testen oder ein Bedienertraining bereitzustellen. Bei einigen Ausführungsformen kann der SMFB durch einen Prozessor, der gemäß einer Software konfiguriert ist, durch einen programmierbaren Logikbaustein, z. B. ein Gerät, das ein oder mehrere von einem Gate-Array, einer Standardzelle, einem anwenderprogrammierbaren Gate-Array (FPGA), einem PROM, einem EPROM, einem EEPROM, einer programmierbaren Array-Logik (PAL), eines programmierbaren logischen Arrays (PLA) usw. umfasst, umgesetzt werden.
  • Jeder der Blöcke 404, 408, 412, 416, 420 und 458 aus 8 kann durch Software, Firmware oder Hardware oder eine Kombination von Software, Firmware und/oder Hardware umgesetzt werden. Obwohl zusätzlich die Ablaufschemata aus 10 bis 12 und 14 als Routinen beschrieben wurden, könnten diese Ablaufschemata durch Software, Hardware, Firmware oder eine Kombination aus Software, Firmware und/oder Hardware umgesetzt werden.
  • Ausführungsformen einer Benutzerschnittstelle, wie etwa der zuvor beschriebenen Benutzerschnittstellen, können insgesamt oder teilweise durch einen Prozessor umgesetzt werden, der beispielsweise gemäß einem Software-Programm konfiguriert ist. Beispielsweise kann die Arbeitsstation 18a oder 20a oder ein anderer Computer die zuvor beschriebene Benutzerschnittstelle vollständig oder teilweise umsetzen. Ein Software-Programm zum Umsetzen von Ausführungsformen einer Benutzerschnittstelle kann als Software auf einem materiellen Medium, wie etwa auf einer Festplatte, einem RAM, einem batteriegestützten RAM, einem ROM, einer CD-ROM, einem PROM, einem EPROM, einem EEPROM, einer DVD, einem Flash-Speicher usw. oder einem Speicher, wie etwa einem RAM, der mit dem Prozessor verknüpft ist, umgesetzt werden, doch der Fachmann wird ohne Weiteres verstehen, dass das gesamte Programm oder Teile desselben alternativ von einer anderen Vorrichtung als einem Prozessor ausgeführt werden könnte und/oder als Firmware und/oder dedizierte Hardware auf wohlbekannte Art und Weise ausgebildet sein könnte.
  • Ebenfalls hierin offenbart sind die folgenden Gegenstände:
    • 1) Materielles Medium, das maschinenlesbare Anweisungen speichert, umfassend:
    • – ersten Code, um eine grafische Benutzerschnittstelle über ein Anzeigegerät zum Konfigurieren von Übergängen zwischen den Zustandsmaschinenzuständen einer Zustandsmaschine bereitzustellen, wobei die grafische Benutzerschnittstelle eine erste Vielzahl von Zellen angibt, die in einer Matrix angeordnet ist, die eine erste Dimension und eine zweite Dimension aufweist, wobei die Positionen entlang der ersten Dimension die Zustandsmaschinenzustände und die damit verknüpften Übergangsaktions-Kennungen angeben, und die Positionen entlang der zweiten Dimension Eingaben der Zustandsmaschine entsprechen, so dass die erste Vielzahl von Zellen Eingabe/Zustands-Paare und ihre Übergangsaktionen basierend auf den Positionen der ersten Vielzahl von Zellen mit Bezug auf die ersten und zweiten Dimensionen definiert;
    • – zweiten Code, um Zustandsübergangsdaten, die mit einer Zelle der ersten Vielzahl von Zellen verknüpft sind, über die grafische Benutzerschnittstelle zu empfangen, wobei die Zustandsübergangsdaten einen nächsten Zustand identifizieren, in den die Zustandsmaschine gemäß dem Eingabe/Zustands-Paar, das von der Zelle definiert wird, übergeht;
    • – dritten Code, um Übergangsaktionsdaten über die grafische Benutzerschnittstelle zu empfangen, wobei die Übergangsaktionsdaten mindestens eine Übergangsaktion identifizieren, die gemäß den Zustandsübergangsdaten auszuführen ist; und
    • – vierten Code, um auf einem computerlesbaren Medium die Zustandsübergangsdaten und die Übergangsaktionsdaten zu speichern, die mit einem Funktionsblock verknüpft sind, der die Zustandsmaschine in einer Prozessanlage umsetzt, so dass die Zustandsmaschine in den nächsten Zustand übergeht, wenn eine Bedingung in der Prozessanlage dem Eingabe/Zustands-Paar entspricht, das mit der Zelle verknüpft ist.
    • 2) Materielles Medium nach Gegenstand 1) Anspruch 14, wobei die Übergangsaktionsdaten 1) eine Übergang-aus-Aktion, die beim Übergang aus dem Zustand der Zustandsmaschine, welcher der Zelle entspricht, auszuführen ist, und/oder 2) eine Übergang-in-Aktion, die beim Übergang in den nächsten Zustand auszuführen ist, identifiziert.
    • 3) Materielles Medium nach Gegenstand 2), ferner umfassend:
    • – fünften Code, um die erste Vielzahl von Zellen auf dem Anzeigegerät anzuzeigen; und
    • – sechsten Code, um in der Zelle eine Angabe des nächsten Zustands, eine Angabe der Übergang-aus-Aktion und eine Angabe der Übergang-in-Aktion anzuzeigen.
    • 4) Materielles Medium nach Gegenstand 3), wobei der sechste Code in der Zelle die Angabe des nächsten Zustands, die Angabe der Übergang-aus-Aktion und die Angabe der Übergang-in-Aktion anzeigt durch:
    • – Anzeigen der Angabe des nächsten Zustands in einer ersten Teilzelle der Zelle;
    • – Anzeigen der Angabe der Übergang-aus-Aktion in einer zweiten Teilzelle der Zelle; und
    • – Anzeigen der Angabe der Übergang-in-Aktion in einer dritten Teilzelle der Zelle.
    • 5) Materielles Medium nach Gegenstand 3), wobei der fünfte Code die erste Vielzahl von Zellen auf dem Anzeigegerät durch Anzeigen der Matrix angibt, wobei die erste Dimension mindestens eine Zellenreihe aufführt und die zweite Dimension eine Vielzahl von Zellenspalten aufführt, so dass jede der mindestens einen Zellenreihe mit einer der Eingaben der Zustandsmaschine verknüpft ist, und jede der Vielzahl von Zellenspalten mit einem der Zustandsmaschinenzustände und mit einer der Übergangsaktions-Kennungen verknüpft ist.
    • 6) Materielles Medium nach Gegenstand 3), wobei der fünfte Code die erste Vielzahl von Zellen auf dem Anzeigegerät durch Anzeigen der Matrix anzeigt, wobei die erste Dimension mindestens eine Zellenspalte anzeigt und die zweite Dimension eine Vielzahl von Zellenreihen anzeigt, so dass jede der Vielzahl von Zellenreihen mit einem der Zustandsmaschinenzustände und mit einer der Übergangsaktions-Kennungen verknüpft ist, und jede der mindestens einen Zellenspalte mit einer der Eingaben der Zustandsmaschine verknüpft ist.
    • 7) Materielles Medium nach einem der Gegenstände 1) bis 6), wobei ein bestimmter Wert jeder der Eingaben der Zustandsmaschine eines von einer logischen Eins, einer logischen Null, einem logischen WAHR oder einem logischen FALSCH ist.
    • 8) Materielles Medium nach einem der Gegenstände 1) bis 7), wobei die grafische Benutzerschnittstelle ferner eine zweite Vielzahl von Zellen angibt, die mit jedem Funktionsblock verknüpft ist, wobei jede der zweiten Vielzahl von Zellen einer jeweiligen Ausgabe von einer Vielzahl von Ausgaben des Funktionsblocks und einem jeweiligen der Zustandsmaschinenzustände entspricht, und wobei das materielle Medium ferner Folgendes umfasst:
    • – fünften Code, um Ausgabe-Konfigurationsdaten, die mit einer zusätzlichen Zelle der zweiten Vielzahl von Zellen verknüpft ist, über das Eingabegerät zu empfangen, wobei die Ausgabe-Konfigurationsdaten einen Ausgabewert, welcher der zusätzlichen Zelle entspricht, wenn sich die Zustandsmaschine in dem Zustandsmaschinen-Zustand befindet, welcher der zusätzlichen Zelle entspricht, und mindestens eine Ausgabeübergangsaktion, die mit der zusätzlichen Zelle verknüpft ist, angeben.
    • 9) Materielles Medium nach einem der Gegenstände 1) bis 8), wobei die Eingaben der Zustandsmaschine mit mindestens einem von einem Prozessregelungssystem, einer Simulation eines Prozessregelungssystems, einem Sicherheitssystem und einer Simulation eines Sicherheitssystems verknüpft sind.
    • 10) Materielles Medium nach einem der Gegenstände 1), 2), 7) und 9), ferner umfassend fünften Code zum Empfangen der Eingaben der Zustandsmaschine entweder von einem zusätzlichen Funktionsblock, der mit der Prozessanlage verknüpft ist, oder von einer Bedienerschnittstelle.
  • Obwohl die Erfindung zu diversen Änderungen und alternativen Konstruktionen fähig ist, wurden gewisse erläuternde Ausführungsformen derselben in den Zeichnungen gezeigt und werden hier ausführlich beschrieben. Es versteht sich jedoch, dass es keineswegs beabsichtigt ist, die Offenbarung auf die spezifischen offenbarten Formen einzuschränken, sondern dass es vielmehr beabsichtigt ist, dass die Erfindung alle Änderungen, alternativen Konstruktionen und Äquivalente abdeckt, die in Geist und Umfange der Offenbarung fallen, wie sie durch die beiliegenden Ansprüche definiert wird.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 7730415 [0004]

Claims (32)

  1. Verfahren zum Konfigurieren über ein Computergerät, das ein Anzeigegerät und ein Eingabegerät aufweist, eines Funktionsblocks, der mit einer Prozessanlage verknüpft ist, wobei der Funktionsblock dazu vorgesehen ist, eine Zustandsmaschine umzusetzen, wobei das Verfahren folgende Schritte umfasst: – Bereitstellen einer grafischen Benutzerschnittstelle, die von dem Anzeigegerät angezeigt wird, wobei die grafische Benutzerschnittstelle eine erste Vielzahl von Zellen angibt, die mit dem Funktionsblock verknüpft ist und in einer Matrix angeordnet ist, die eine erste Dimension und eine zweite Dimension aufweist, wobei die Positionen entlang der ersten Dimension Zustände einer Zustandsmaschine und damit verknüpfte Kennungen von Übergangsaktionen angeben, und Positionen entlang der zweiten Dimension den Eingaben der Zustandsmaschine entsprechen, so dass die erste Vielzahl von Zellen Eingabe/Zustands-Paare und ihre Übergangsaktionen basierend auf den Positionen der ersten Vielzahl von Zellen mit Bezug auf die ersten und zweiten Dimensionen definieren; – Empfangen von Zustandsübergangsdaten, die mit einer Zelle der ersten Vielzahl von Zellen über das Eingabegerät verknüpft sind, wobei die Zustandsübergangsdaten einen nächsten Zustand identifizieren, in den die Zustandsmaschine nach einer Bedingung in der Prozessanlage, die dem Eingabe/Zustands-Paar entspricht, das durch die Zelle definiert wird, übergeht; – Empfangen von Übergangsaktionsdaten über das Eingabegerät, wobei die Übergangsaktionsdaten mindestens eine Übergangsaktion identifizieren, die gemäß den Zustandsübergangsdaten auszuführen ist; und – Speichern der Zustandsübergangsdaten und der Übergangsaktionsdaten auf einem computerlesbaren Medium, das mit dem Funktionsblock verknüpft ist.
  2. Verfahren nach Anspruch 1, wobei die Übergangsaktionsdaten mindestens eine identifizieren von 1) einer Übergang-aus-Aktion, die beim Übergang aus dem Zustand der Zustandsmaschine, welcher der Zelle entspricht, auszuführen ist, und 2) einer Übergang-in-Aktion, die beim Übergang in den nächsten Zustand auszuführen ist.
  3. Verfahren nach Anspruch 1 oder 2, ferner umfassend folgende Schritte: – Anzeigen der ersten Vielzahl von Zellen an dem Anzeigegerät; und – Anzeigen einer Angabe des nächsten Zustands, einer Angabe der Übergang-aus-Aktion und einer Angabe der Übergang-in-Aktion in der Zelle.
  4. Verfahren nach Anspruch 3, wobei das Anzeigen der Angabe des nächsten Zustands, der Angabe der Übergang-aus-Aktion und der Angabe des Übergang-in-Aktion in der Zelle folgende Schritte umfasst: – Anzeigen der Angabe des nächsten Zustands in einer ersten Teilzelle der Zelle; – Anzeigen der Angabe der Übergang-aus-Aktion in einer zweiten Teilzelle der Zelle; und – Anzeigen der Angabe der Übergang-in-Aktion in einer dritten Teilzelle der Zelle.
  5. Verfahren nach Anspruch 3, wobei das Anzeigen der ersten Vielzahl von Zellen auf dem Anzeigegerät das Anzeigen der Matrix umfasst, wobei die erste Dimension mindestens eine Reihe von Zellen aufführt und die zweite Dimension eine Vielzahl von Spalten von Zellen aufführt, so dass jede der mindestens einen Zellenreihe mit einer der Eingaben der Zustandsmaschinen verknüpft ist, und jede der Vielzahl von Zellenspalten mit einem der Zustände der Zustandsmaschine und mit einer der Kennungen der Übergangsaktion verknüpft ist.
  6. Verfahren nach Anspruch 3, wobei das Anzeigen der ersten Vielzahl von Zellen auf dem Anzeigegerät das Anzeigen der Matrix umfasst, wobei die erste Dimension mindestens eine Zellenspalte aufführt und die zweite Dimension eine Vielzahl von Zellenreihen aufführt, so dass jede der Vielzahl von Zellenreihen mit einem der Zustände der Zustandsmaschine und mit einer der Kennungen der Übergangsaktion verknüpft ist und jede der mindestens einen Zellenspalte mit einer der Eingaben der Zustandsmaschine verknüpft ist.
  7. Verfahren nach einem der vorhergehenden Ansprüche, wobei ein bestimmter Wert jeder der Eingaben der Zustandsmaschine eine logische Eins, eine logische Null, ein logisches WAHR oder ein logisches FALSCH ist.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei die grafische Benutzerschnittstelle ferner eine zweite Vielzahl von Zellen angibt, die mit dem Funktionsblock verknüpft ist, wobei jede der zweiten Vielzahl von Zellen einer jeweiligen Ausgabe von einer Vielzahl von Ausgaben des Funktionsblocks und einem jeweiligen Zustand von den Zuständen der Zustandsmaschine entspricht, und wobei das Verfahren ferner folgenden Schritt umfasst: – Empfangen von Ausgabe-Konfigurationsdaten, die mit einer zusätzlichen Zelle der zweiten Vielzahl von Zellen über das Eingabegerät verknüpft sind, wobei die Ausgabe-Konfigurationsdaten einen Ausgabewert, welcher der zusätzlichen Zelle entspricht, wenn sich die Zustandsmaschine in dem Zustand der Zustandsmaschine befindet, welcher der zusätzlichen Zelle entspricht, und mindestens eine Ausgabe-Übergangsaktion, die mit der zusätzlichen Zelle verknüpft ist, angeben.
  9. Verfahren nach einem der vorhergehenden Ansprüche, wobei die mindestens eine Übergangsaktion von dem Funktionsblock auszuführen ist.
  10. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend folgende Schritte: – Empfangen von Prioritätsdaten, die mit Eingaben der Zustandsmaschine verknüpft sind; und – Speichern der Prioritätsdaten, die mit den Eingaben der Zustandsmaschine verknüpft sind.
  11. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend folgende Schritte: – Empfangen von Daten, die angeben, ob gegebenenfalls eine oder mehrere der Eingaben der Zustandsmaschine von der Zustandsmaschine ignoriert werden soll(en); und – Speichern der Daten, die angeben, ob gegebenenfalls eine oder mehrere der Eingaben der Zustandsmaschine von der Zustandsmaschine ignoriert werden soll(en).
  12. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Eingaben der Zustandsmaschine mit mindestens einem von einem Prozessregelungssystem, einer Simulation eines Prozessregelungssystems, einem Sicherheitssystem und einer Simulation eines Sicherheitssystems verknüpft sind.
  13. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend das Empfangen der Eingaben der Zustandsmaschine von einem zusätzlichen Funktionsblock, der mit der Prozessanlage verknüpft ist oder von einer Bedienerschnittstelle.
  14. Materieller Träger, der maschinenlesbare Anweisungen gespeichert hat, die, wenn sie auf einem Prozessor ausgeführt werden, ein Verfahren nach einem der Ansprüche 1–13 durchführen.
  15. Verfahren zum Betreiben eines ersten Funktionsblocks, der mit einer Prozessanlage verknüpft ist, wobei der erste Funktionsblock eine Zustandsmaschine umsetzt, die eine Übergangstabelle und einen aktuellen Zustand aufweist, wobei das Verfahren folgende Schritte umfasst: – Empfangen einer Eingabe für die Zustandsmaschine, wobei die Eingabe eine Bedingung innerhalb der Prozessanlage angibt; – Kontrollieren der Übergangstabelle, um basierend auf dem aktuellen Zustand und der Eingabe einen nächsten Zustand und mindestens eine Übergangsaktion zu identifizieren; – Einleiten durch den ersten Funktionsblock der mindestens einen Übergangsaktion; – Einstellen des aktuellen Zustands der Zustandsmaschine auf den nächsten Zustand; und – Bereitstellen einer Funktionsblockausgabe für einen zweiten Funktionsblock zur Verwendung beim Regeln eines Feldgeräts, wobei die Funktionsblockausgabe auf dem aktuellen Zustand der Zustandsmaschine basiert.
  16. Verfahren nach Anspruch 15, wobei die mindestens eine Übergangsaktion eine Übergang-aus-Aktion und eine Übergang-in-Aktion vorgibt, und wobei das Einleiten der mindestens einen Übergangsaktion folgende Schritte umfasst: – Einleiten der Übergang-aus-Aktion durch den ersten Funktionsblock; und – Einleiten der Übergang-in-Aktion durch den ersten Funktionsblock.
  17. Verfahren nach Anspruch 16, wobei der erste Funktionsblock die Übergang-aus-Aktion einleitet, bevor er die Übergang-in-Aktion einleitet.
  18. Verfahren nach Anspruch 16, wobei der erste Funktionsblock die Übergang-in-Aktion einleitet, bevor er den aktuellen Zustand der Zustandsmaschine auf den nächsten Zustand einstellt.
  19. Verfahren nach Anspruch 16, wobei der erste Funktionsblock die Übergang-aus-Aktion einleitet, bevor er den aktuellen Zustand der Zustandsmaschine auf den nächsten Zustand setzt.
  20. Verfahren nach Anspruch 15–19, wobei das Einleiten der mindestens einen Übergangsaktion das Bereitstellen einer zusätzlichen Funktionsblockausgabe für einen dritten Funktionsblock umfasst, wobei die zusätzliche Funktionsblockausgabe die mindestens eine Übergangsaktion angibt.
  21. Verfahren nach Anspruch 15–20, wobei das Einleiten der mindestens einen Übergangsaktion folgende Schritte umfasst: – Abrufen aus einer Datenbank mindestens eines Übergangs-Konfigurationselements, das mit der mindestens einen Übergangsaktion verknüpft ist; und – Ausführen des mindestens einen Übergangs-Konfigurationselements.
  22. Verfahren nach Anspruch 15–20, ferner umfassend: – als Reaktion darauf, dass der aktuelle Zustand auf den nächsten Zustand eingestellt wird, Einstellen mindestens einer Ausgabe, die mit dem aktuellen Zustand verknüpft ist.
  23. Verfahren nach Anspruch 22, wobei das Einstellen der mindestens einen Ausgabe das Einstellen einer Zustandsangabe-Ausgabe und/oder einer Übergangsausgabe umfasst.
  24. Zustandsmaschinen-Reglereinheit zur Verwendung in einer Prozessanlage, wobei die Zustandsmaschinen-Reglereinheit kommunikativ mit einem Feldgerät gekoppelt ist und eine Zustandsmaschine umsetzt, die eine Übergangstabelle und einen aktuellen Zustand aufweist, und wobei die Zustandsmaschinen-Reglereinheit Folgendes umfasst: – ein Eingabemodul, um eine Eingabe zu empfangen, die eine Bedingung innerhalb der Prozessanlage angibt; und – ein Ausführungsmodul, das konfiguriert ist zum: – Untersuchen der Übergangstabelle, um basierend auf dem aktuellen Zustand und der Eingabe einen nächsten Zustand und mindestens eine Übergangsaktion zu identifizieren, – Einleiten der mindestens einen Übergangsaktion, – Einstellen des aktuellen Zustands der Zustandsmaschine auf den nächsten Zustand, und – Bereitstellen einer Ausgabe zur Verwendung beim Steuern des Feldgeräts, wobei die Ausgabe auf dem aktuellen Zustand der Zustandsmaschine basiert.
  25. Zustandsmaschinen-Reglereinheit nach Anspruch 24, wobei die mindestens eine Übergangsaktion eine Übergang-aus-Aktion und eine Übergang-in-Aktion vorgibt, und wobei das Ausführungsmodul die mindestens eine Übergangsaktion dadurch einleitet, dass es die Übergang-aus-Aktion und die Übergang-in-Aktion einleitet.
  26. Zustandsmaschinen-Reglereinheit nach Anspruch 25, wobei das Ausführungsmodul die Übergang-aus-Aktion einleitet, bevor es die Übergang-in-Aktion einleitet.
  27. Zustandsmaschinen-Reglereinheit nach Anspruch 25, wobei das Ausführungsmodul die Übergang-in-Aktion einleitet, bevor es den aktuellen Zustand der Zustandsmaschine auf den nächsten Zustand einstellt.
  28. Zustandsmaschinen-Reglereinheit nach Anspruch 25, wobei das Ausführungsmodul die Übergang-aus-Aktion einleitet, bevor es den aktuellen Zustand der Zustandsmaschine auf den nächsten Zustand einstellt.
  29. Zustandsmaschinen-Reglereinheit nach einem der Ansprüche 24–28, wobei das Ausführungsmodul die mindestens eine Übergangsaktion durch Bereitstellen einer zusätzlichen Ausgabe für ein zusätzliches Modul einleitet, wobei die zusätzliche Ausgabe die mindestens eine Übergangsaktion angibt.
  30. Zustandsmaschinen-Reglereinheit nach einem der Ansprüche 24–29, wobei das Ausführungsmodul die mindestens eine Übergangsaktion einleitet durch: – Abrufen aus einer Datenbank mindestens eines Übergangs-Konfigurationselements, das mit der mindestens einen Übergangsaktion verknüpft ist, und – Ausführen des mindestens einen Übergangs-Konfigurationselements.
  31. Zustandsmaschinen-Reglereinheit nach einem der Ansprüche 24–30, wobei das Ausführungsmodul ferner konfiguriert ist, um mindestens eine Ausgabe einzustellen, die mit dem aktuellen Zustand verknüpft ist, als Reaktion auf das Einstellen des aktuellen Zustands auf den nächsten Zustand.
  32. Zustandsmaschinen-Reglereinheit nach Anspruch 31, wobei das Ausführungsmodul die mindestens eine Ausgabe dadurch einstellt, dass es mindestens entweder eine Zustandsangabe-Ausgabe und/oder eine Übergangsausgabe einstellt.
DE102014109569.3A 2013-07-09 2014-07-09 Zustandsmaschinen-funktionsblock mit benutzerdefinierbaren aktionen an einem übergang zwischen zuständen Pending DE102014109569A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/937,805 2013-07-09
US13/937,805 US9086688B2 (en) 2013-07-09 2013-07-09 State machine function block with user-definable actions on a transition between states

Publications (1)

Publication Number Publication Date
DE102014109569A1 true DE102014109569A1 (de) 2015-01-15

Family

ID=51410648

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014109569.3A Pending DE102014109569A1 (de) 2013-07-09 2014-07-09 Zustandsmaschinen-funktionsblock mit benutzerdefinierbaren aktionen an einem übergang zwischen zuständen

Country Status (5)

Country Link
US (2) US9086688B2 (de)
JP (2) JP6437224B2 (de)
CN (1) CN104298189B (de)
DE (1) DE102014109569A1 (de)
GB (2) GB2581273B (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10248099B2 (en) 2015-05-19 2019-04-02 Mitsubishi Electric Corporation Programmable logic controller, engineering tool, and engineering tool program
DE102018220287A1 (de) * 2018-11-26 2020-05-28 Lenze Automation Gmbh Verfahren zum Betreiben eines Systems und System

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11237705B2 (en) * 2013-03-15 2022-02-01 Bmc Software, Inc. Configurable user interface interactions using a state machine combined with event orchestration
US9599970B2 (en) 2013-03-27 2017-03-21 The United States Of America As Represented By The Secretary Of The Navy Safety critical control system that includes control logic or machine readable instructions that selectively locks or enables the control system based on one or more machine implemented state machines that includes states associated with detection or matching of one or more predetermined signals on distinct conduction paths between elements of the control system and related methods
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
US20170004226A1 (en) * 2015-07-05 2017-01-05 Sas Institute Inc. Stress testing by avoiding simulations
CN105138332A (zh) * 2015-08-26 2015-12-09 上海联影医疗科技有限公司 状态机的实现方法和装置
CN106547274B (zh) * 2015-09-16 2019-11-15 中国航空工业第六一八研究所 一种基于场景矩阵的状态机测试方法
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
DE112016004614T5 (de) 2015-10-09 2018-06-28 Fisher-Rosemount Systems, Inc. System und Verfahren zum Erstellen eines Satzes Überwachungs- und Wirkungsblöcke aus einer Ursache-Wirkungs-Tabelle
WO2017126480A1 (ja) * 2016-01-18 2017-07-27 日本電気株式会社 手順生成システム、手順生成方法および手順生成プログラムを格納した記憶媒体
JP6477553B2 (ja) 2016-03-14 2019-03-06 オムロン株式会社 プログラム開発支援装置、プログラム開発支援プログラムおよびプログラム開発支援方法
US10671038B2 (en) * 2016-07-15 2020-06-02 Fisher-Rosemount Systems, Inc. Architecture-independent process control
US11467569B2 (en) * 2016-10-14 2022-10-11 Mitsubishi Electric Corporation Simulation device
US20180124183A1 (en) * 2016-11-03 2018-05-03 Futurewei Technologies, Inc. Method and Apparatus for Stateful Control of Forwarding Elements
CN109922930B (zh) * 2016-11-09 2022-05-17 Abb瑞士股份有限公司 用于确定系统状态的可能转换的方法
CN108572611B (zh) * 2017-03-13 2021-01-22 欧姆龙株式会社 信息处理装置、信息处理方法及计算机可读取记录媒体
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
CN109858721B (zh) * 2017-11-30 2023-01-06 中广核(北京)仿真技术有限公司 一种控制计算策略生成方法以及系统
EP3647889A1 (de) * 2018-10-31 2020-05-06 Siemens Aktiengesellschaft Fehlersichere sequenzkontrolle von prozessen
EP3671442A1 (de) * 2018-12-17 2020-06-24 Physik Instrumente (PI) GmbH & Co. Kg System und verfahren zur umschaltung von betriebszuständen von physikalischen vorrichtungen
AT522186B1 (de) * 2019-05-20 2020-09-15 Dipl Ing Dipl Ing Fh Markus Gruber Computerimplementiertes Verfahren zur rechnergestützten Erzeugung eines ausführbaren Steuerungsprogramms zur Steuerung und/oder Regelung eines technischen Prozesses
US10824443B1 (en) 2019-09-19 2020-11-03 Hewlett Packard Enterprise Development Lp State machine communication
US11513490B2 (en) * 2020-03-24 2022-11-29 Honeywell International Inc. I/O mesh architecture for a safety instrumented system
US11762742B2 (en) 2020-03-31 2023-09-19 Honeywell International Inc. Process control system with different hardware architecture controller backup
US11874938B2 (en) 2020-11-03 2024-01-16 Honeywell International Inc. Admittance mechanism
EP4002236A1 (de) * 2020-11-11 2022-05-25 ABB Schweiz AG Reverse engineering eines moduls für eine modulare industrieanlage
CN113189968B (zh) * 2021-05-08 2022-08-26 哈尔滨工业大学 互联工业过程的分布式故障诊断方法

Citations (1)

* 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

Family Cites Families (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4067256A (en) 1976-10-07 1978-01-10 General Electric Company Fastener anchor formed in thermoplastic sheet
US4607256A (en) * 1983-10-07 1986-08-19 Honeywell, Inc. Plant management system
JP2526709B2 (ja) * 1990-05-08 1996-08-21 三菱電機株式会社 プログラマブルコントロ―ラおよびプログラマブルコントロ―ラのsfcプログラム実行方法
JPH0589069A (ja) * 1991-09-30 1993-04-09 Toshiba Corp 分散形制御システム
US5265212A (en) * 1992-04-01 1993-11-23 Digital Equipment Corporation Sharing of bus access among multiple state machines with minimal wait time and prioritization of like cycle types
JP2994926B2 (ja) * 1993-10-29 1999-12-27 松下電器産業株式会社 有限状態機械作成方法とパターン照合機械作成方法とこれらを変形する方法および駆動方法
US5530643A (en) 1993-08-24 1996-06-25 Allen-Bradley Company, Inc. Method of programming industrial controllers with highly distributed processing
US5576946A (en) * 1993-09-30 1996-11-19 Fluid Air, Inc. Icon based process design and control system
JPH08129483A (ja) * 1994-10-31 1996-05-21 Matsushita Electric Ind Co Ltd イベント駆動型プロセス制御装置
JP3505018B2 (ja) * 1994-11-22 2004-03-08 株式会社ルネサステクノロジ 半導体集積回路
JPH09148852A (ja) 1995-11-24 1997-06-06 Matsushita Electric Ind Co Ltd 送信出力可変装置
US5764883A (en) * 1996-03-28 1998-06-09 Hewlett-Packard Co. System and method for checking for dynamic resource misuse in a computer program
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
US5828851A (en) * 1996-04-12 1998-10-27 Fisher-Rosemount Systems, Inc. Process control system using standard protocol control of standard devices and nonstandard devices
JP3550460B2 (ja) * 1996-04-25 2004-08-04 株式会社日立製作所 サーバレスプラント監視・制御装置
US5903886A (en) * 1996-04-30 1999-05-11 Smartlynx, Inc. Hierarchical adaptive state machine for emulating and augmenting software
US5995963A (en) * 1996-06-27 1999-11-30 Fujitsu Limited Apparatus and method of multi-string matching based on sparse state transition list
US5909369A (en) * 1996-07-24 1999-06-01 Network Machines, Inc. Coordinating the states of a distributed finite state machine
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
US5970430A (en) * 1996-10-04 1999-10-19 Fisher Controls International, Inc. Local device and process diagnostics in a process control network having distributed control functions
JPH1124907A (ja) * 1997-06-27 1999-01-29 Toshiba Corp ソフトウエア開発支援方法およびソフトウエア開発支援装置
US6219628B1 (en) 1997-08-18 2001-04-17 National Instruments Corporation System and method for configuring an instrument to perform measurement functions utilizing conversion of graphical programs into hardware implementations
US6317638B1 (en) * 1997-08-22 2001-11-13 Honeywell Inc. Multi-layer state machine for a hybrid real-time control system and method of operation thereof
US6182024B1 (en) * 1997-10-14 2001-01-30 International Business Machines Corporation Modeling behaviors of objects associated with finite state machines and expressing a sequence without introducing an intermediate state with the arc language
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 株式会社東芝 プラント監視システム
US6097988A (en) * 1998-02-10 2000-08-01 Advanced Micro Devices, Inc. Logic system and method employing multiple configurable logic blocks and capable of implementing a state machine using a minimum amount of configurable logic
US7152027B2 (en) * 1998-02-17 2006-12-19 National Instruments Corporation Reconfigurable test system
US6448982B1 (en) 1998-04-23 2002-09-10 Siemens Energy & Automation, Inc. System for graphically generating logic for a cause and effects matrix
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
US6691183B1 (en) * 1998-05-20 2004-02-10 Invensys Systems, Inc. Second transfer logic causing a first transfer logic to check a data ready bit prior to each of multibit transfer of a continous transfer operation
US6289252B1 (en) * 1998-08-31 2001-09-11 Fisher-Rosemount Systems, Inc. Distributed batch processing system and methods
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 シーベル システムズ,インコーポレイティド プロセス監視用の状態モデル
WO2000038040A1 (en) 1998-12-23 2000-06-29 Triconex Corporation Cause effect diagram program maintenance development and test system
US6774786B1 (en) 2000-11-07 2004-08-10 Fisher-Rosemount Systems, Inc. Integrated alarm display in a process control network
US7206646B2 (en) * 1999-02-22 2007-04-17 Fisher-Rosemount Systems, Inc. Method and apparatus for performing a function in a plant using process performance monitoring with process equipment monitoring and control
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
US6385496B1 (en) * 1999-03-12 2002-05-07 Fisher-Rosemount Systems, Inc. Indirect referencing in process control routines
US6903728B1 (en) * 1999-03-19 2005-06-07 Avaya Technology Corp. State-based control of a terminal user interface containing soft-labeled keys
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
US6556950B1 (en) * 1999-09-30 2003-04-29 Rockwell Automation Technologies, Inc. Diagnostic method and apparatus for use with enterprise control
US6993456B2 (en) * 1999-09-30 2006-01-31 Rockwell Automation Technologies, Inc. Mechanical-electrical template based method and apparatus
US6445963B1 (en) * 1999-10-04 2002-09-03 Fisher Rosemount Systems, Inc. Integrated advanced control blocks in process control systems
US7636915B1 (en) * 1999-12-02 2009-12-22 Invensys Systems, Inc. Multi-level multi-variable control process program execution scheme for distributed process control systems
US6489971B1 (en) 1999-12-07 2002-12-03 International Business Machines Corporation Graphical programming environment for deterministic finite state automata
DE60113073T2 (de) 2000-03-10 2006-08-31 Smiths Detection Inc., Pasadena Steuerung für einen industriellen prozes mit einer oder mehreren multidimensionalen variablen
AU2001266660A1 (en) * 2000-06-02 2001-12-17 Virtio Corporation Method and system for virtual prototyping
NZ508052A (en) * 2000-11-09 2003-06-30 Derek Ward Programmable controller
US6742136B2 (en) * 2000-12-05 2004-05-25 Fisher-Rosemount Systems Inc. Redundant devices in a process control system
US6742165B2 (en) * 2001-03-28 2004-05-25 Mips Technologies, Inc. System, method and computer program product for web-based integrated circuit design
US7010052B2 (en) * 2001-04-16 2006-03-07 The Ohio University Apparatus and method of CTCM encoding and decoding for a digital communication system
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
CA2809894C (en) 2001-06-27 2017-12-12 Skky Incorporated Improved media delivery platform
US6747247B2 (en) * 2001-09-19 2004-06-08 Illinois Tool Works Inc. Welding-type power supply with a state-based controller
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
EP1497701B1 (de) 2002-04-23 2006-05-31 Tokyo Electron Limited Verfahren und vorrichtung zur vereinfachten systemkonfiguration
DE10229676B4 (de) * 2002-06-27 2013-05-29 Robert Bosch Gmbh Verfahren zur Steuerung des Ablaufs eines multitaskingfähigen Computerprogramms
US7050863B2 (en) 2002-09-11 2006-05-23 Fisher-Rosemount Systems, Inc. Integrated model predictive control and optimization within a process control system
EP1413937A1 (de) * 2002-10-21 2004-04-28 ABB Schweiz AG Anzeige eines endlichen Automaten zur Bedienerführung
GB0226805D0 (en) * 2002-11-16 2002-12-24 Koninkl Philips Electronics Nv State machine modelling
US7159083B2 (en) * 2002-12-13 2007-01-02 Texas Instruments Incorporated Programmable transition state machine
US6915235B2 (en) * 2003-03-13 2005-07-05 Csi Technology, Inc. Generation of data indicative of machine operational condition
US6898468B2 (en) * 2003-03-28 2005-05-24 Fisher-Rosemount Systems, Inc. Function block implementation of a cause and effect matrix for use in a process safety system
US7685254B2 (en) * 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
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
JP2007536634A (ja) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
WO2005124491A1 (en) * 2004-06-12 2005-12-29 Fisher-Rosemount Systems, Inc. System and method for detecting an abnormal situation associated with a process gain of a control loop
CN100524301C (zh) * 2004-12-09 2009-08-05 三菱电机株式会社 字符串对照装置
WO2007028226A1 (en) * 2005-09-09 2007-03-15 Ibm Canada Limited - Ibm Canada Limitee Method and system for state machine translation
US7500209B2 (en) * 2005-09-28 2009-03-03 The Mathworks, Inc. Stage evaluation of a state machine
US8527888B2 (en) * 2006-04-11 2013-09-03 Invensys Systems, Inc. Method and supporting configuration user interfaces for streamlining installing replacement field devices
CA2631747A1 (en) * 2005-12-02 2007-06-07 Kohler Co. Interactive graphic operator interface panel for switchgear systems
JP4528728B2 (ja) * 2006-01-31 2010-08-18 株式会社東芝 デジタル回路の自動設計装置、自動設計方法、および自動設計プログラム
DE102006021767A1 (de) * 2006-05-10 2007-11-15 Siemens Ag Bediengerät zum Informationsaustausch mit einem Feldgerät in einem Automatisierungssystem
US8145358B2 (en) * 2006-07-25 2012-03-27 Fisher-Rosemount Systems, Inc. Method and system for detecting abnormal operation of a level regulatory control loop
US7668608B2 (en) * 2006-09-01 2010-02-23 Fisher-Rosemount Systems, Inc. Graphical programming language object editing and reporting tool
JP5024294B2 (ja) * 2006-11-01 2012-09-12 日本電気株式会社 状態遷移表の情報記憶検索方法と装置およびプログラム
US7716610B2 (en) * 2007-01-05 2010-05-11 International Business Machines Corporation Distributable and serializable finite state machine
US8656350B2 (en) * 2007-02-06 2014-02-18 Software Ag Event-based process configuration
US8214796B2 (en) * 2007-04-20 2012-07-03 National Instruments Corporation Event firing node for asynchronously passing events from a graphical data flow program to a statechart
JP5014899B2 (ja) * 2007-07-02 2012-08-29 ルネサスエレクトロニクス株式会社 再構成可能デバイス
US7944234B2 (en) * 2008-03-19 2011-05-17 Micron Technology, Inc. Programmable on-chip logic analyzer apparatus, systems, and methods
US8307342B2 (en) * 2008-05-14 2012-11-06 Honeywell International Inc. Method, apparatus, and system for automatic test generation from statecharts
EP2169489B1 (de) * 2008-09-30 2012-08-01 Siemens Aktiengesellschaft Verfahren zur Implementierung von Herstellungsprozessen
EP2172883A1 (de) * 2008-09-30 2010-04-07 Siemens Aktiengesellschaft Verfahren zur Verwaltung und Steuerung von Herstellungsverfahren, die von einer Unternehmensressourcenplanung geplant und von einer Maschinenhalle hergestellt werden
DE102008043094A1 (de) * 2008-10-22 2010-04-29 Endress + Hauser Process Solutions Ag Verfahren zur dynamischen Anpassung eines Diagnosesystems
US8583412B2 (en) * 2008-11-06 2013-11-12 Honeywell International Inc. Systems and methods for providing a simulation environment having a simulation user interface
US8903520B2 (en) * 2009-04-14 2014-12-02 General Electric Company Method for executing sequential function charts as function blocks in a control system
US9021235B2 (en) * 2009-08-25 2015-04-28 Nec Corporation Data processing device
US9494931B2 (en) * 2009-09-23 2016-11-15 Fisher-Rosemount Systems, Inc. Dynamic hyperlinks for process control systems
US8578059B2 (en) * 2010-02-01 2013-11-05 Invensys Systems, Inc. Deploying a configuration for multiple field devices
US8706263B2 (en) * 2010-06-08 2014-04-22 Rockwell Automation Technologies, Inc. Synchronization of execution of sequential function charts using transition groups
US9059604B2 (en) * 2011-06-27 2015-06-16 Sunpower Corporation Methods and apparatus for controlling operation of photovoltaic power plants
WO2013123373A1 (en) * 2012-02-15 2013-08-22 The Mathworks, Inc. Generating a state diagram
WO2013123376A1 (en) * 2012-02-15 2013-08-22 The Mathworks, Inc. Unified state transition table describing a state machine model
US9020873B1 (en) * 2012-05-24 2015-04-28 The Travelers Indemnity Company Decision engine using a finite state machine for conducting randomized experiments
US9507888B1 (en) * 2012-06-06 2016-11-29 The Mathworks, Inc. Active state visualization for finite state machine models
US9389596B2 (en) * 2013-02-20 2016-07-12 General Electric Company Systems and methods for field device feedback
US20140280528A1 (en) * 2013-03-12 2014-09-18 Rockwell Automation Technologies, Inc. State machine configurator
US9079039B2 (en) * 2013-07-02 2015-07-14 Medtronic, Inc. State machine framework for programming closed-loop algorithms that control the delivery of therapy to a patient by an implantable medical device
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

Patent Citations (1)

* 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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10248099B2 (en) 2015-05-19 2019-04-02 Mitsubishi Electric Corporation Programmable logic controller, engineering tool, and engineering tool program
DE102018220287A1 (de) * 2018-11-26 2020-05-28 Lenze Automation Gmbh Verfahren zum Betreiben eines Systems und System

Also Published As

Publication number Publication date
GB202004282D0 (en) 2020-05-06
GB2581273B (en) 2020-12-30
GB2581273A (en) 2020-08-12
JP2019050022A (ja) 2019-03-28
CN104298189B (zh) 2019-09-27
US9086688B2 (en) 2015-07-21
US20150018977A1 (en) 2015-01-15
JP2015018553A (ja) 2015-01-29
GB201411958D0 (en) 2014-08-20
GB2517581B (en) 2020-08-26
US10274926B2 (en) 2019-04-30
CN104298189A (zh) 2015-01-21
JP6437224B2 (ja) 2018-12-12
JP6820306B2 (ja) 2021-01-27
GB2517581A (en) 2015-02-25
US20150277425A1 (en) 2015-10-01

Similar Documents

Publication Publication Date Title
DE102014109569A1 (de) Zustandsmaschinen-funktionsblock mit benutzerdefinierbaren aktionen an einem übergang zwischen zuständen
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
EP0813126B1 (de) Einrichtung und Verfahren zur Steuerung und/oder Regelung von Prozessgrössen einer Anlage
EP2399174B1 (de) Verfahren und vorrichtung zum erstellen eines anwenderprogrammes für eine sicherheitssteuerung
DE102004025875A1 (de) Funktionsblock mit Boolescher Logik
DE102008017843A1 (de) Verfahren und Vorrichtungen zur Verwaltung von Prozessanlagenalarmen
EP2422244B1 (de) Sicherheitssteuerung und verfahren zum steuern einer automatisierten anlage
DE102008010864A1 (de) Verfahren zum Betreiben eines Feldgerätes
EP3347169B1 (de) Verfahren und system zum steuern einer roboteranordnung
DE102008008500B3 (de) Verfahren zur rechnergestützten Konfiguration eines technischen Systems
DE112016004638T5 (de) System und verfahren zum repräsentieren einer ursache-wirkungs-tabelle als satz numerischer repräsentationen
DE102015122002A1 (de) Verfahren und Apparatur zur Bereitstellung einer rollenbasierten Benutzerschnittstelle
DE102018124263A1 (de) Integrator-funktionsblock
WO2014154281A1 (de) Objektbasierte konfiguration einer prozess- und/oder fertigungsanlage
DE102014016819A1 (de) Verfahren und Einrichtung zur Verwaltung und Konfiguration von Feldgeräten einer Automatisierungsanlage
DE102013101516A1 (de) Verfahren und Vorrichtung, um multiple Auslösegrenzwerte auf ein Gerät in einem Prozesssteuersystem anzuwenden
DE102022112439B3 (de) Sicherer Roboter
EP4176579A1 (de) Verfahren zum betreiben eines automatisierungssystems einer maschine oder einer anlage
DE102021120477A1 (de) Verfahren und Anordnung zur Analyse eines Feldgeräts
EP3876047A1 (de) Verfahren und sicherheitsgerichtete steuerungseinrichtung zur ermittlung und/oder auswahl eines sicheren zustands
DE102018103725A1 (de) Verfahren und system zur steuerung einer technischen anlage im bereich der automation eines gebäudes
DE202012100635U1 (de) Steuerungseinrichtung
EP3850520A1 (de) Schnittstellenanordnung für einen triebwerksregler

Legal Events

Date Code Title Description
R012 Request for examination validly filed