-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung bezieht sich im Allgemeinen auf das Überprüfen der Integrität von Kommunikationen in einer Prozesssteuerungsumgebung und insbesondere auf das Überprüfen der Integrität von Variablenwerten (wie sie in Sicherheitssystemen verwendet werden) in solchen Kommunikationen auf einer Variable-für-Variable-Basis, um die Zuverlässigkeit und Vertrauenswürdigkeit der Variablenwerte für Geräte, die die Kommunikationen empfangen, zu verbessern.
-
HINTERGRUND
-
Dezentrale Prozesssteuerungssysteme, z. B. dezentrale oder skalierbare Prozesssteuerungssysteme wie jene, die bei Energieerzeugungs-, Chemie-, Erdöl- oder anderen Prozessen verwendet werden, beinhalten typischerweise eine oder mehrere Prozesssteuerungen, die miteinander über ein Prozesssteuerungsnetzwerk mit mindestens einer Host- oder Bedienerarbeitsstation und über analoge, digitale oder kombinierte analoge/digitale Busse mit einem oder mehreren Instrumentierungs- oder Feldgeräten kommunikativ gekoppelt sind.
-
Die Feldgeräte führen Funktionen innerhalb des Prozesses oder der Anlage aus, z. B. Öffnen oder Schließen von Ventilen, Ein- und Ausschalten von Geräten und Messen von Prozessparametern. Beispielhafte Feldgeräte beinhalten Ventile, Ventilstellungsregler, Switches und Messwertgeber (z. B. Geräte, die Sensoren zum Messen von Temperatur, Druck oder Durchflussrate beinhalten, und Messwertgeber zum Übertragen der erfassten Temperaturen, Drücke und Durchflussraten).
-
Die Prozesssteuerungen, die sich typischerweise in der Anlagenumgebung befinden, empfangen Signale, die für die von den Feldgeräten durchgeführten Prozessmessungen (oder andere die Feldgeräte betreffende Informationen) kennzeichnend sind, und führen eine Steuerungsanwendung aus, in der zum Beispiel verschiedene Steuermodule laufen, die Entscheidungen zur Prozesssteuerung treffen, auf der Grundlage der empfangenen Informationen Steuersignale erzeugen und sich mit den Steuermodulen oder Blöcken koordinieren, die in den intelligenten Feldgeräten implementiert werden (z. B. HART®-, WirelessHART®- und FOUNDATION®-Fieldbus-Feldgeräte).
-
Die Ausführung der Steuermodule bewirkt, dass die Prozesssteuerungen die Steuersignale über die Kommunikationsverbindungen oder Signalwege zu den Feldgeräten senden, um dadurch den Betrieb mindestens eines Abschnitts der Prozessanlage oder des Systems zu steuern (z. B. um mindestens einen Abschnitt eines oder mehrerer industrieller Prozesse zu steuern, die innerhalb der Anlage oder des Systems laufen oder ausgeführt werden). Zum Beispiel kann ein erster Satz von Steuerung(en) und Feldgeräten einen ersten Abschnitt eines Prozesses steuern, der von der Prozessanlage oder dem System gesteuert wird, und ein zweiter Satz von Steuerung(en) und Feldgeräten kann einen zweiten Abschnitt des Prozesses steuern.
-
Eingangs-/Ausgangs-Karten (E/A-Karten) (manchmal als „E/A-Geräte“ oder „E/A-Module“ bezeichnet), die sich typischerweise ebenfalls innerhalb der Anlagenumgebung befinden, sind typischerweise kommunikativ zwischen einer Steuerung und einem oder mehreren Feldgeräten angeordnet, wodurch sie die Kommunikation dazwischen ermöglichen (z. B. durch Umwandlung elektrischer Signale in digitale Werte und umgekehrt). Typischerweise fungiert eine E/A-Karte als Zwischenknoten zwischen einer Prozesssteuerung und einem oder mehreren Ein- oder Ausgängen von Feldgeräten, die für dasselbe Kommunikationsprotokoll oder dieselben Kommunikationsprotokolle, wie die von der E/A-Karte verwendeten, konfiguriert sind. Insbesondere sind Ein- und Ausgänge von Feldgeräten typischerweise entweder für analoge oder diskrete Kommunikation konfiguriert. Um mit einem Feldgerät zu kommunizieren, benötigt eine Steuerung im Allgemeinen eine E/A-Karte, die für dieselbe Art von Ein- oder Ausgang konfiguriert ist, der vom Feldgerät verwendet wird. Das heißt, für ein Feldgerät, das zum Empfangen von analogen Steuerausgangssignalen (z. B. einem 4-20-mA-Signal) konfiguriert ist, benötigt die Steuerung eine E/A-Karte mit analogem Ausgang (analog output - AO), um das entsprechende analoge Steuerausgangssignal zu übertragen, und für ein Feldgerät, das dazu konfiguriert ist, Messungen oder andere Informationen über ein analoges Signal zu übertragen, benötigt die Steuerung typischerweise eine analoge Eingangskarte (analog input [analoger Eingang] - AI), um die übertragenen Informationen zu empfangen. Auf ähnliche Weise benötigt die Steuerung für ein Feldgerät, das konfiguriert ist, um diskrete Steuerausgangssignale zu empfangen, eine E/A-Karte mit diskretem Ausgang (discrete output -DO), um das geeignete diskrete Steuerausgangssignal zu übertragen, und für ein Feldgerät, das konfiguriert ist, um Informationen über ein diskretes Steuereingangssignal zu übertragen, benötigt die Steuerung eine diskrete Eingangs-E/A-Karte (discrete input [diskreter Eingang] - DI). Ferner sind einige E/A-Karten für Widerstandsthermometer (resistance temperature detectors - RTD) (bei denen sich der Widerstand eines Kabels mit der Temperatur ändert) oder Thermoelemente (thermocouples - TC) (die eine zu einer Temperatur proportionale Spannung erzeugen) konfiguriert. Im Allgemeinen kann jede E/A-Karte mit mehreren Ein- oder Ausgängen von Feldgeräten verbunden werden, wobei jede Kommunikationsverbindung zu einem bestimmten Eingang oder Ausgang als „ein E/A-Kanal“ (oder allgemeiner als „Kanal“) bezeichnet wird. Beispielsweise kann eine 120-Kanal-DO-E/A-Karte über 120 verschiedene DO-E/A-Kanäle kommunikativ mit 120 verschiedenen diskreten Feldgeräteeingängen verbunden sein, wodurch die Steuerung (über die DO-E/A-Karte) diskrete Steuerausgangssignale an die 120 verschiedenen diskreten Feldgeräteeingänge senden kann.
-
Dabei werden, wie hierin genutzt, Feldgeräte, Steuerungen und E/A-Geräte allgemein als „Prozesssteuergeräte“ bezeichnet und sind im Allgemeinen in einer Feldumgebung eines Prozesssteuerungssystems oder einer Anlage platziert, angeordnet oder installiert. Das Netzwerk, das von einer oder mehreren Steuerungen, den Feldgeräten, die kommunikativ mit der einen oder den mehreren Steuerungen verbunden sind, und den Zwischenknoten gebildet wird, die die Kommunikation zwischen den Steuerungen und Feldgeräten ermöglichen, kann als ein „E/A-Netzwerk“ oder „E/A-Subsystem“ bezeichnet werden.
-
Informationen von dem/den E/A-Netzwerk(en) können über eine Datenautobahn oder ein Kommunikationsnetzwerk (das „Prozesssteuerungsnetzwerk“) einem oder mehreren anderen Hardwaregeräten, z. B. Bedienerarbeitsstationen, Personal Computern oder Rechengeräten, tragbaren Geräten, Datenhistorikern, Berichtsgeneratoren, zentralisierten Datenbanken oder anderen zentralisierten administrativen Rechengeräten, die typischerweise in Leitstellen oder an anderen Standorten außerhalb der raueren Feldumgebung der Anlage, z. B. in einer Back-End-Umgebung der Prozessanlage, aufgestellt sind, zur Verfügung gestellt werden.
-
Die über das Prozesssteuerungsnetzwerk kommunizierten Informationen ermöglichen es einem Bediener oder einer Wartungsperson, die gewünschten Funktionen in Bezug auf den Prozess über ein oder mehrere an das Netzwerk angeschlossene Hardwaregeräte auszuführen. Auf diesen Hardwaregeräten können Anwendungen laufen, die es einem Bediener ermöglichen, z. B. Einstellungen der Prozesssteuerroutine(n) zu ändern, den Betrieb der Steuermodule innerhalb der Prozesssteuerungen oder der intelligenten Feldgeräte zu modifizieren, den aktuellen Status des Prozesses oder den Status bestimmter Geräte innerhalb der Prozessanlage anzuzeigen, Alarme anzuzeigen, die von Feldgeräten und Prozesssteuerungen erzeugt wurden, den Betrieb des Prozesses zu simulieren, um Personal zu schulen oder die Prozesssteuerungssoftware zu testen, Probleme oder Hardwarefehler innerhalb der Prozessanlage zu diagnostizieren usw. Das von den Hardwaregeräten, Steuerungen und Feldgeräten genutzte Prozesssteuerungsnetzwerk oder die Datenautobahn kann einen drahtbegrenzten Kommunikationsweg, einen drahtlosen Kommunikationsweg oder eine Kombination aus drahtbegrenzten und drahtlosen Kommunikationswegen beinhalten.
-
Darüber hinaus wird in vielen Prozessen ein Sicherheitssystem (manchmal ebenso als ein „sicherheitsinstrumentiertes System“ oder „SIS“ bezeichnet) bereitgestellt, um signifikante sicherheitsbezogene Probleme innerhalb der Prozessanlage zu erkennen und automatisch Ventile zu schließen, die Stromversorgung von Geräten zu unterbrechen, Flüsse innerhalb der Prozessanlage umzuschalten usw., wenn ein Problem auftritt, das zu einer ernsthaften Gefahr in der Anlage führen kann, z. B. das Verschütten giftiger Chemikalien, eine Explosion usw. Was ein Sicherheitssystem oder SIS tun soll (die funktionalen Anforderungen) und wie gut es funktionieren muss (die Anforderungen an die Sicherheitsintegrität) können aus Gefahren- und Betriebsfähigkeitsstudien (HAZOP), Layer of Protection Analysis (LOPA), Risikographen usw. bestimmt werden. Beispieltechniken werden in IEC 61511 und IEC 61508 erwähnt. Während des Entwurfs, der Konstruktion, der Installation und des Betriebs von Sicherheitssystemen oder SIS überprüft das Sicherheitspersonal typischerweise, dass diese Anforderungen erfüllt werden. Die funktionalen Anforderungen können durch Entwurfsüberprüfung verifiziert werden, z. B. Fehlermodi, Auswirkungen und Kritikalitätsanalyse (FMECA) und verschiedene Arten von Tests (z. B. Beispielfabrikabnahmetests, Standortabnahmetests und regelmäßige Funktionstests).
-
Im Allgemeinen ist ein Sicherheitssystem oder SIS derart konstruiert, dass es „spezifische Steuerfunktionen“ ausführt, um eine Ausfallsicherheit zu gewährleisten oder den sicheren Betrieb eines Prozesses aufrechtzuerhalten, wenn inakzeptable oder gefährliche Bedingungen auftreten. Typischerweise ist ein Sicherheitssystem relativ unabhängig von anderen Steuerungssystemen, um sicherzustellen, dass die Funktionalität des Sicherheitssystems nicht beeinträchtigt wird. Ein Sicherheitssystem besteht typischerweise aus denselben Arten von Steuerelementen (einschließlich Sensoren, Logiklösern oder Steuerungen, Aktoren und anderer Steuerungsausrüstung) wie ein grundlegendes Steuerungssystem (BPCS). Bei herkömmlichen Implementierungen sind die Steuerelemente in einem Sicherheitssystem jedoch ausschließlich dem ordnungsgemäßen Funktionieren des Sicherheitssystems gewidmet (z. B. eher als der ordnungsgemäßen Steuerung des durch das Steuersystem gesteuerten Prozesses).
-
Im Allgemeinen ist eine „sicherheitsinstrumentierte Funktion“ oder „SIF“ eine bestimmte Ausrüstung in einem Sicherheitssystem, die das einer bestimmten Gefahr zugeordnete Risiko reduzieren soll, und kann als Sicherheitssystemregelkreis oder „Sicherheitskreis“ betrachtet oder bezeichnet werden. Eine SIF soll (1) einen industriellen Prozess automatisch in einen sicheren Zustand bringen, wenn bestimmte Bedingungen verletzt werden; (2) einem Prozess erlauben, auf sichere Weise voranzuschreiten, wenn bestimmte Bedingungen dies zulassen (permissive Funktionen); oder (3) Maßnahmen ergreifen, um die Folgen einer industriellen Gefahr zu mindern. Eine SIF wird typischerweise als Teil einer Gesamtstrategie zur Risikoreduktion implementiert, die die Wahrscheinlichkeit eines zuvor identifizierten Sicherheits-, Gesundheits- und Umweltereignisses (Safety, Health and Environmental - SH&E) beseitigen soll, das von geringfügigen Ausrüstungsschäden bis hin zu einem Ereignis, das eine unkontrollierte katastrophale Freisetzung von Energie und/oder Materialien einschließt, reichen kann.
-
Typischerweise wird jeder SIF oder jedem Sicherheitskreis ein bestimmtes Schutzniveau zugewiesen, das durch das „Sicherheitsintegritätsniveau“ oder „safety integrity level - SIL“ (1, 2, 3 oder 4) definiert wird, wobei eine der in IEC 61508/61511 als „Risikograph“, „Risikomatrix“ oder LOPA definierten Methodologien verwendet wird. Die Zuweisung von SIL ist eine Übung der Risikoanalyse, bei der das einer bestimmten Gefahr zugeordnete Risiko, gegen das eine SIF geschützt werden soll, ohne die vorteilhafte risikoreduzierende Wirkung der SIF berechnet wird. Dieses uneingeschränkte Risiko wird dann mit einem tolerierbaren Risikoziel verglichen. Die Differenz zwischen dem ungeminderten Risiko und dem tolerierbaren Risiko, wenn das ungeminderte Risiko höher als tolerierbar ist, muss durch eine Risikoreduktion der SIF ausgeglichen werden. Dieser Betrag der erforderlichen Risikoreduktion korreliert mit dem SIL-Ziel. Im Wesentlichen korreliert jede erforderliche Größenordnung der Risikoreduktion mit einer Erhöhung einer der erforderlichen SIL-Zahlen. In einem typischen Beispiel repräsentiert SIL-1 eine Risikoreduktion von bis zu 100x; SIL-2 repräsentiert eine Risikoreduktion von bis zu 1000x; SIL-3 repräsentiert eine Risikoreduktion von bis zu 10.000x; und SIL-4 repräsentiert eine Risikoreduktion von bis zu 100.000x.
-
Die Norm IEC 61508 der Internationalen Elektrotechnischen Kommission (International Electrotechnical Commission - IEC) definiert SIL unter Verwendung von Anforderungen, die in zwei große Kategorien gruppiert sind: Hardware-Sicherheitsintegrität und systematische Sicherheitsintegrität. Ein Gerät oder System sollte im Allgemeinen die Anforderungen für beide Kategorien erfüllen, um ein bestimmtes SIL zu erreichen. Die SIL-Anforderungen für die Hardware-Sicherheitsintegrität basieren auf einer probabilistischen Analyse des Geräts. Zum Erreichen eines bestimmten SIL erfüllt das Gerät typischerweise die Ziele für die maximale Wahrscheinlichkeit eines gefährlichen Ausfalls und einen minimalen Anteil an sicheren Ausfällen. Typischerweise wird das Konzept des „gefährlichen Ausfalls“ für das jeweilige System definiert, normalerweise in der Form von Anforderungsbeschränkungen, deren Integrität während der gesamten Systementwicklung überprüft wird. Die tatsächlich erforderlichen Ziele variieren in Abhängigkeit von der Wahrscheinlichkeit eines Bedarfs, der Komplexität des Geräts/der Geräte und der verwendeten Redundanzarten.
-
In Bezug auf die Kommunikation geben die IEC61508-Standards an, dass die Sicherheitskommunikation 1 % der zulässigen Wahrscheinlichkeit eines gefährlichen Ausfalls pro Stunde für das gewünschte SIL nicht überschreiten sollte. Die Wahrscheinlichkeit eines gefährlichen Ausfalls aufgrund der Sicherheitskommunikation muss, um für eine Verwendung in SIL-3-Anwendungen akzeptabel zu sein, weniger als 10-9 pro Stunde betragen. Kurz gesagt, die Fähigkeit, die Integrität einer über eine Kommunikation empfangenen gegebenen Information zu überprüfen, kann einen großen Einfluss darauf haben, ob sich ein Sicherheitssystem auf die Information auf eine Weise verlassen kann, die mit typischen Sicherheitsstandards übereinstimmt. Anders gesagt, ohne die Fähigkeit, die Integrität einer Information zu überprüfen, kann die erwartete Fehlerrate, die der Kommunikation zugeordnet ist, akzeptable Schwellenwerte überschreiten, was die Informationen für das Sicherheitssystem unbrauchbar macht.
-
Wie bereits erwähnt, weisen Sicherheitssysteme typischerweise einen oder mehrere separate Logiklöser oder Steuerungen (manchmal als „Sicherheitssteuerungen“ bezeichnet) auf, abgesehen von den Prozesssteuerungssteuerungen, die über separate Busse oder Kommunikationsleitungen, die innerhalb der Prozessanlage angeordnet sind, mit Sicherheitsfeldgeräten verbunden sind. Die Sicherheitssteuerungen verwenden die Sicherheitsfeldgeräte zur Erfassung von Prozesszuständen, die signifikanten Ereignissen zugeordnet sind, z. B. die Stellung bestimmter Sicherheitsschalter oder Abschaltventile, Über- oder Unterläufe im Prozess, dem Betrieb wichtiger Leistungserzeugungs- oder Steuergeräte, dem Betrieb von Fehlererfassungsvorrichtungen usw., um dadurch „Ereignisse“ innerhalb der Prozessanlage zu erfassen. Wenn ein Ereignis erfasst wird, ergreift die Sicherheitssteuerung einige Maßnahmen, um die schädlichen Auswirkungen des Ereignisses zu begrenzen, z. B. Übertragen eines Befehls, ein oder mehrere Ventile zu schließen, ein oder mehrere Geräte zu deaktivieren oder abzuschalten, Strom von Bereichen der Anlage abzuschalten usw.
-
Zu beachten ist, dass diese Beschreibung des Hintergrunds einen Kontext bereitstellt, um das Verständnis und die Wertschätzung der folgenden detaillierten Beschreibung zu erleichtern. Arbeiten der hier genannten Erfinder werden in dem in diesem Hintergrundabschnitt beschriebenen Umfang (sowie Aspekte der Hintergrundbeschreibung, die zum Zeitpunkt der Einreichung möglicherweise nicht als Stand der Technik gelten) weder ausdrücklich noch stillschweigend als Stand der Technik in Bezug auf die vorliegende Offenbarung zugelassen.
-
KURZDARSTELLUNG
-
Die beschriebenen Verfahren und Systeme ermöglichen es Prozesssteuergeräten, Gerätevariablenwerte auf eine Weise zu übertragen und zu empfangen, die es dem empfangenden Gerät ermöglicht, die Integrität der empfangenen Werte auf einer Variable-für-Variable-Basis zu überprüfen.
-
In einer Ausführungsform beinhaltet ein Verfahren zum Übertragen von Nachrichten, die Werte für Gerätevariablen beinhalten, das Übertragen der Nachrichten, sodass die Integrität der Werte auf einer Variable-für-Variable-Basis überprüft werden kann. Das Verfahren kann eines oder mehrere von Folgendem umfassen: Erfassen durch eine erste Prozesssteuerungsvorrichtung in einer Prozesssteuerungsumgebung zum Steuern eines Prozesses eines erfassten Werts für eine Gerätvariable; Berechnen durch das Prozesssteuergerät einer ersten Datenintegritätsprüfung mittels Durchführen einer Datenintegritätsberechnung unter Verwendung des erfassten Werts und eines Startwerts als Eingaben; Codieren einer Nachricht, um den erfassten Wert und die erste Datenintegritätsprüfung für den erfassten Wert zu beinhalten; oder Übertragen der Nachricht. Das Übertragen der Nachricht kann das Übertragen der Nachricht umfassen, sodass sie von einem zweiten Prozesssteuergerät empfangen werden kann, das für Folgendes konfiguriert ist: (i) Empfangen der Nachricht, (ii) Berechnen einer zweiten Datenintegritätsprüfung für einen Kandidatenwert in der Nachricht für die Gerätevariable; (iii) Aktualisieren oder Nichtaktualisieren an dem zweiten Prozesssteuergerät einer Prozessvariablen, die auf die Gerätevariable mit dem Kandidatenwert abgebildet ist, basierend darauf, ob die erste und die zweite Datenintegritätsprüfung übereinstimmen oder nicht, und (iv) Implementieren einer Funktion als Teil eines Steuerschemas für den Prozess gemäß der Prozessvariablen.
-
In einer Ausführungsform ist ein System konfiguriert, um Nachrichten zu übertragen, die Werte für Prozessvariablen beinhalten, die auf Parameter- oder Variablenebene authentifiziert werden können (z. B. auf einer Variable-für-Variable-Basis). Das System kann ein erstes Prozesssteuergerät umfassen, das konfiguriert ist, um kommunikativ mit einem oder mehreren anderen Prozesssteuergeräten in einem Eingabe/Ausgabe-(E/A)-Netzwerk einer Prozesssteuerungsumgebung zum Steuern eines Prozesses gekoppelt zu werden. Das erste Prozesssteuergerät kann eines oder mehrere von Folgendem umfassen: (A) eine Kommunikationsschnittstelle, die konfiguriert ist, um das Feldgerät mit der einen oder den mehreren Steuerungen zu koppeln; oder (B) einen Satz von Schaltkreisen, die kommunikativ mit der Kommunikationsschnittstelle gekoppelt sind. Der Satz von Schaltkreisen kann für Folgendes konfiguriert sein: Erfassen eines erfassten Wert für eine Gerätevariable; Berechnen einer ersten Datenintegritätsprüfung durch Durchführen einer Datenintegritätsberechnung unter Verwendung des erfassten Werts und eines Startwerts als Eingaben; Codieren einer Nachricht, um den erfassten Wert und die erste Datenintegritätsprüfung für den erfassten Wert zu beinhalten; oder Übertragen über die Kommunikationsschnittstelle der Nachricht an ein zweites Prozesssteuergerät. Das zweite Prozesssteuergerät kann konfiguriert sein, um eines oder mehrere der Folgenden auszuführen: (i) Empfangen der Nachricht, (ii) Berechnen einer zweiten Datenintegritätsprüfung für einen Kandidatenwert in der Nachricht für die Gerätevariable; (iii) Aktualisieren oder Nichtaktualisieren an dem zweiten Prozesssteuergerät einer Prozessvariablen, die auf die Gerätevariable mit dem Kandidatenwert abgebildet ist, basierend darauf, ob die erste und die zweite Datenintegritätsprüfung übereinstimmen oder nicht; oder (iv) Implementieren einer Funktion als Teil eines Steuerschemas für den Prozess gemäß der Prozessvariablen.
-
In einer Ausführungsform kann ein Verfahren zum Verifizieren der Integrität von Gerätevariablenwerten, die in einer Nachricht von einem Prozesssteuergerät beinhaltet sind, implementiert werden. Das Verfahren kann eines oder mehrere von Folgendem umfassen: (1) Empfangen einer Nachricht, die von einem ersten Prozesssteuergerät übertragen wird, an einem zweiten Prozesssteuergerät in einer Prozesssteuerungsumgebung zum Steuern eines Prozesses; (2) Decodieren der Nachricht, um innerhalb der Nachricht Folgendes zu identifizieren: (i) einen Kandidatenwert für eine Gerätevariable und (ii) eine erste Datenintegritätsprüfung für die Gerätevariable; (3) Berechnen einer zweiten Datenintegritätsprüfung mittels Durchführen einer zweiten Datenintegritätsberechnung unter Verwendung des Kandidatenwerts und eines Startwerts als Eingaben; (4) Vergleichen der zweiten Datenintegritätsprüfung mit der ersten Datenintegritätsprüfung, um zu bestimmen, ob die zweite Datenintegritätsprüfung mit der ersten Datenintegritätsprüfung übereinstimmt oder nicht, und um dadurch zu bestimmen, ob der Kandidatenwert mit einem erfassten Wert übereinstimmt oder nicht, der zum Berechnen der ersten Datenintegritätsprüfung verwendet wurde; (5) Reagieren auf das Bestimmen, dass die zweite Datenintegritätsprüfung nicht mit der ersten Datenintegritätsprüfung übereinstimmt, durch Verwerfen des Kandidatenwerts, sodass eine auf die Gerätevariable abgebildete Prozessvariable einen vorherigen Wert beibehält; (6) Reagieren auf das Bestimmen, dass die zweite Datenintegritätsprüfung mit der ersten Datenintegritätsprüfung übereinstimmt, durch Aktualisieren der Prozessvariablen mit dem Kandidatenwert an dem zweiten Prozesssteuergerät; oder (7) Implementieren einer Funktion gemäß der Prozessvariablen als Teil eines Steuerungsschemas für den Prozess.
-
In einer Ausführungsform kann ein System zum Verifizieren der Integrität von Gerätevariablenwerten, die in einer Nachricht von einem Prozesssteuergerät beinhaltet sind, implementiert werden. Das System kann ein zweites Prozesssteuergerät umfassen, das konfiguriert ist, um kommunikativ mit einem ersten Prozesssteuergerät in einer Prozesssteuerungsumgebung gekoppelt zu werden. Das zweite Prozesssteuergerät kann eines oder mehrere von Folgendem umfassen: (A) eine Kommunikationsschnittstelle, die konfiguriert ist, um das zweite Prozesssteuergerät kommunikativ mit dem ersten Prozesssteuergerät zu koppeln; oder (B) einen Satz von Schaltkreisen, die kommunikativ mit der Kommunikationsschnittstelle gekoppelt sind. Der Satz von Schaltkreisen kann für Folgendes konfiguriert sein: Empfangen einer Nachricht, die von dem ersten Prozesssteuergerät übertragen wird, über die Kommunikationsschnittstelle, Decodieren der Nachricht, um innerhalb der Nachricht Folgendes zu identifizieren: (i) einen Kandidatenwert für eine Gerätevariable und (ii) eine erste Datenintegritätsprüfung für die Gerätevariable; Berechnen einer zweiten Datenintegritätsprüfung mittels Durchführen einer zweiten Datenintegritätsberechnung unter Verwendung des Kandidatenwerts und eines Startwerts als Eingaben; Vergleichen der zweiten Datenintegritätsprüfung mit der ersten Datenintegritätsprüfung, um zu bestimmen, ob die zweite Datenintegritätsprüfung mit der ersten Datenintegritätsprüfung übereinstimmt oder nicht, und um dadurch zu bestimmen, ob der Kandidatenwert mit einem erfassten Wert übereinstimmt oder nicht, der zum Berechnen der ersten Datenintegritätsprüfung verwendet wurde; Reagieren auf das Bestimmen, dass die zweite Datenintegritätsprüfung nicht mit der ersten Datenintegritätsprüfung übereinstimmt, durch Verwerfen des Kandidatenwerts, sodass eine auf die Gerätevariable abgebildete Prozessvariable einen vorherigen Wert beibehält; Reagieren auf das Bestimmen, dass die zweite Datenintegritätsprüfung mit der ersten Datenintegritätsprüfung übereinstimmt, durch Aktualisieren der Prozessvariablen mit dem Kandidatenwert; oder Implementieren einer Funktion gemäß der Prozessvariablen als Teil eines Steuerungsschemas für den Prozess.
-
Figurenliste
-
- 1 ist ein Blockdiagramm einer beispielhaften Prozesssteuerungsanlage, in der die beschriebenen Techniken implementiert werden können.
- 2 ist ein Blockdiagramm eines beispielhaften Feldgeräts und einer beispielhaften Steuerung, die gemäß den beschriebenen Techniken kommunizieren können.
- 3 zeigt beispielhafte Schichten eines beispielhaften Protokollstapels, die von den hierin beschriebenen Prozesssteuergeräten genutzt werden können, um Gerätvariablenwerte auf eine Weise zu übertragen und zu empfangen, die es dem empfangenden Gerät ermöglicht, die Integrität der empfangenen Werte auf einer Variable-für-Variable-Basis zu überprüfen.
- 4 stellt eine beispielhafte Nachrichtennutzlast dar, die einen oder mehrere Variablenwerte oder Kandidatenwerte mit entsprechenden Datenintegritätsprüfungen beinhalten kann, um es einem empfangenden Gerät zu ermöglichen, die Integrität der beinhalteten Werte auf einer Variable-für-Variable-Basis zu überprüfen.
- 5 stellt eine zusätzliche beispielhafte Nachrichtennutzlast dar, die einen oder mehrere Variablenwerte oder Kandidatenwerte mit entsprechenden Datenintegritätsprüfungen beinhalten kann, um es einem empfangenden Gerät zu ermöglichen, die Integrität der beinhalteten Werte auf einer Variable-für-Variable-Basis zu überprüfen.
- 6 zeigt ein beispielhaftes Verfahren zum Übertragen von Nachrichten, die Variablenwerte beinhalten, auf eine Weise, die es einem empfangenden Gerät ermöglicht, die Integrität der beinhalteten Werte auf einer Variable-für-Variable-Basis zu überprüfen.
- 7 zeigt ein beispielhaftes Verfahren 700 zum Empfangen von Nachrichten, die Variablenwerte beinhalten, auf eine Weise, die die Überprüfung der Integrität der empfangenen Werte auf einer Variable-für-Variable-Basis ermöglicht.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die beschriebenen Verfahren und Systeme ermöglichen es Prozesssteuergeräten, Gerätevariablenwerte auf eine Weise zu übertragen und zu empfangen, die es dem empfangenden Gerät ermöglicht, die Integrität der empfangenen Werte auf einer Variable-für-Variable-Basis zu überprüfen. Jede gewünschte Anzahl von Variablen in einer Nachricht kann, um die Überprüfung der Integrität zu erleichtern, eine Datenintegritätsprüfung in der Nachricht aufweisen. Für jeden empfangenen Wert, der eine Datenintegritätsprüfung aufweist, kann das empfangende Gerät seine eigene Datenintegritätsprüfung basierend auf dem empfangenen Wert und einem Startwert (der sowohl dem übertragenden als auch dem empfangenden Gerät bekannt ist) berechnen. Für jeden Prozessvariablenwert, für den eine Nichtübereinstimmung zwischen den empfangenen und berechneten Datenintegritätsprüfungen besteht, kann das empfangende Gerät annehmen, dass der empfangene Wert nicht mit dem ursprünglich übertragenen Wert übereinstimmt (und kann somit den empfangenen Wert verwerfen). Wenn andererseits die empfangenen und berechneten Datenintegritätsprüfungen für eine bestimmte Gerätevariable übereinstimmen, kann das empfangende Gerät die Integrität des empfangenen Werts überprüfen (d. h. überprüfen, dass er mit dem ursprünglich übertragenen Wert übereinstimmt). Als ein Ergebnis kann das empfangende Gerät sicher auf den empfangenen Wert reagieren (z. B. durch Aktualisieren einer lokalen oder systemweiten Prozessvariablen entsprechend der Gerätevariablen, Implementieren einer Steuerung gemäß dem empfangenen Wert usw.). Im Vergleich dazu, soweit herkömmliche Systeme die Überprüfung der Datenintegrität ermöglichen, tun sie dies typischerweise auf Paket- oder Nachrichtenbasis. In einem solchen System macht eine Änderung beliebiger Daten in der Nachricht die gesamte Nachricht unüberprüfbar. Wenn also ein einzelner Gerätevariablenwert (oder ein beliebiges anderes Datenelement) nach der Übertragung beschädigt wird, müssen die empfangenden Geräte die gesamte Nachricht verwerfen (oder mit Werten fortfahren, deren Integrität nicht überprüft werden kann).
-
Wie hierin verwendet, bezieht sich der Begriff „Nachricht“ auf eine Kommunikationseinheit, die durch einen Datensatz dargestellt wird, der von einem Knoten (z. B. über eine Verbindung) übertragen oder empfangen wird. Der Datensatz, der die Nachricht darstellt, kann Nutzlastdaten (d. h. den zuzustellenden Inhalt) und einen Protokoll-Overhead beinhalten. Der Overhead kann Routing-Informationen und Metadaten beinhalten, die sich auf das Protokoll oder die Nutzlastdaten beziehen (die z. B. das Protokoll für die Nachricht, den beabsichtigten Empfängerknoten, den Ursprungsknoten, die Größe der Nachricht oder der Nutzdaten, Datenintegritätsinformationen zum Prüfen der Integrität der Nachricht usw. angeben). In einigen Fällen kann ein Paket oder eine Folge von Paketen als Nachricht betrachtet werden.
-
Auf jeden Fall werden verschiedene Techniken, Systeme und Verfahren nachstehend unter Bezugnahme auf 1-7 erläutert.
-
I. Beispielhafte Prozesssteuerungsumgebung
-
1 stellt eine Prozessanlage 10 dar, in der jede/jedes der gezeigten Sicherheitssteuerungen, Prozesssteuerungen und Feldgeräte (falls gewünscht) konfiguriert sein kann, um Nachrichten einschließlich variabler Werte auf eine Weise zu übertragen und zu empfangen, die es einem empfangenden Gerät ermöglicht, die Integrität der empfangene Werte auf einer Variable-für-Variable-Basis zu überprüfen. Diese Verbesserung bei der Überprüfung der Datenintegrität auf einer Variable-für-Variable-Basis kann für Sicherheitssysteme (wie das in 1 gezeigte Sicherheitssystem) besonders vorteilhaft sein, da sie sich auf Kommunikationen verlassen können, die Variablenwerte tragen, die ansonsten für Implementierungen von Sicherheitssystemen zu fehleranfällig wären.
-
Wie hierin verwendet, ist ein „Prozesssteuergerät“ jedes Gerät, das für die Implementierung in der Prozessanlage 10 konfiguriert ist und konfiguriert ist, um Nachrichten, die Prozessvariablen gemäß einem oder mehreren Protokollen, die in der Prozessanlage 10 implementiert sind, tragen, zu übertragen oder zu empfangen, sodass die Nachrichten von einem oder mehreren Geräten in der Prozessanlage 10 empfangen, decodiert und bearbeitet werden.
-
Wie gezeigt, beinhaltet die Prozessanlage 10 ein Prozesssteuerungssystem 12, das in ein Sicherheitssystem 14 integriert ist (durch gepunktete Linien angegeben), das im Allgemeinen als ein sicherheitsinstrumentiertes System (SIS) arbeitet, um die vom Prozesssteuerungssystem 12 bereitgestellte Steuerung zu überwachen und zu überschreiben, um die Wahrscheinlichkeit eines sicheren Betriebs der Prozessanlage 10 zu maximieren.
-
A. Beispielhafte Komponenten eines beispielhaften Prozesssteuerungssystems und eines beispielhaften Sicherheitssystems
-
Auf einer hohen Ebene kann die Anlage 10 eine Feldumgebung, die Prozesssteuergeräte (z. B. Feldgeräte, Steuerungen und E/A-Geräte) beinhaltet, die typischerweise in einem Bereich befindlich, angeordnet oder installiert sind, in dem der gesteuerte Prozess gemessen und gesteuert wird (z. B. die Komponenten in den in 1 gezeigten Knoten 18 und 20) und eine Back-End-Umgebung beinhalten, die Komponenten beinhalten kann, die von der Feldumgebung isoliert oder von dieser entfernt sind (z. B. in Büroumgebungen, entfernten Umgebungen usw.), z. B. die Komponenten 21 und 16, die in 1 gezeigt sind.
-
Genauer gesagt beinhaltet die Prozessanlage 10 ebenso eine oder mehrere Host-Arbeitsstationen, Computer oder Benutzerschnittstellen 16 (die jede Art von Personalcomputern, Arbeitsstationen usw. sein können), auf die das Anlagenpersonal, z. B. Prozesssteuerungsbediener, Wartungspersonal, Konfigurationsingenieure usw., zugreifen kann. In dem in 1 veranschaulichten Beispiel sind drei Benutzerschnittstellen 16 als mit zwei getrennten Prozesssteuerungs-/Sicherheitssteuerungsknoten 18 und 20 und mit einer Konfigurationsdatenbank 21 über eine gemeinsame Kommunikationsleitung oder einen gemeinsamen Bus 22 verbunden gezeigt. Das Kommunikationsnetzwerk 22 kann unter Verwendung einer beliebigen gewünschten Bus-basierten oder nicht Bus-basierten Hardware unter Verwendung einer beliebigen fest verdrahteten oder drahtlosen Kommunikationsstruktur und unter Verwendung eines beliebigen oder geeigneten Kommunikationsprotokolls, z. B. eines Ethernet-Protokolls, implementiert werden.
-
Im Allgemeinen, wie hierin verwendet und sofern nicht anders angegeben, bezieht sich der Begriff „Netzwerk“ auf eine Sammlung von Knoten (z. B. Geräte oder Systeme, die Informationen senden, empfangen oder weiterleiten können) und Verbindungen, die verbunden sind, um die Telekommunikation zwischen den Knoten zu ermöglichen. In Abhängigkeit von der Ausführungsform (und sofern nicht anders angegeben) kann jedes der beschriebenen Netzwerke dedizierte Router, Switches oder Hubs, die für die Weiterleitung von Leitdatenverkehr zwischen Knoten verantwortlich sind, und optional dedizierte Geräte, die für das Konfigurieren und Verwalten des Netzwerks verantwortlich sind, beinhalten. Einige oder alle Knoten in den beschriebenen Netzwerken können ebenso derart angepasst sein, dass sie als Router fungieren, um den zwischen anderen Netzwerkgeräten gesendeten Datenverkehr zu leiten. Knoten der beschriebenen Netzwerke können drahtgebunden oder drahtlos miteinander verbunden sein, und sie können unterschiedliche Routing- und Transferfunktionen aufweisen.
-
Im Allgemeinen beinhaltet jeder der Knoten 18 und 20 der Prozessanlage 10 sowohl Prozesssteuerungssystemgeräte als auch Sicherheitssystemgeräte, die über eine Busstruktur miteinander verbunden sind, die auf einer Rückwandplatine bereitgestellt sein kann, in die die verschiedenen Geräte angebracht sind. Der Knoten 18 ist in 1 derart dargestellt, dass er eine Prozesssteuerung 24 (die ein redundantes Steuerungspaar sein kann) sowie eine oder mehrere Eingangs/Ausgangs-(E/A)-Geräte 28, 30 und 32 des Prozesssteuerungssystems beinhaltet, während der Knoten 20 derart dargestellt ist, dass er eine Prozesssteuerung 26 (die ein redundantes Steuerungspaar sein kann) sowie ein oder mehrere Eingangs/Ausgangs-(E/A)-Geräte 34 und 36 des Prozesssteuerungssystems beinhaltet. Jedes der E/A-Geräte 28, 30, 32, 34 und 36 des Prozesssteuerungssystems ist kommunikativ mit einem Satz prozesssteuerungsbezogener Feldgeräte verbunden, die in 1 als Feldgeräte 40 und 42 dargestellt sind. Die Prozesssteuerungen 24 und 26, die I/O-Geräte 28-36 und die Steuerungsfeldgeräte 40 und 42 bilden im Allgemeinen das Prozesssteuerungssystem 12 von 1.
-
Eines oder mehrere der Feldgeräte 40, 42, 60 und 62 können Aktoren für ein Gerät, z. B. ein Ventil, sein und können auf Befehle reagieren, die von der Steuerung empfangen werden, mit der es gekoppelt ist (z. B. konfiguriert, um ein Ventil zu betätigen, um das Ventil als Reaktion auf Befehle von einer Steuerung zu öffnen oder zu schließen). Ebenso können eines oder mehrere der Feldgeräte 40, 42, 60 und 62 Sender sein, die konfiguriert sind, um eine Messung (z. B. Durchfluss, Temperatur, Druck usw.) über einen Sensor zu erfassen und die Messungen an eine Steuerung zu übertragen. Eines oder mehrere der Feldgeräte können „intelligente“ Feldgeräte sein, die konfiguriert sind, um einen oder mehrere „sekundäre“ Variablenwerte zu übertragen, die sich von einer primären Prozessvariablen unterscheiden, zu deren Ansteuern oder Messen das Feldgerät konfiguriert ist. Beispielsweise kann in einer HART-Implementierung die primäre Variable vom Feldgerät über ein 4-20-mA-Signal übertragen oder empfangen werden, und die eine oder die mehreren sekundären Variablen können über ein digitales Signal übertragen oder empfangen werden, das dem 4-20-mA-Signal überlagert ist.
-
Im Allgemeinen ist eine „Feldgerätevariable“ eine feldgeräteinterne Variable, die das Feldgerät zu erfassen (z. B. über eine Sensormessung oder über eine Berechnung) oder einzustellen (z. B. als Reaktion auf eine von einer Steuerung empfangene Nachricht) konfiguriert ist. In einer typischen Implementierung beinhaltet das relevante Prozesssteuerungssystem oder Sicherheitssystem, von dem die Feldgerätevariable ein Teil ist, eine oder mehrere Prozessvariablen, die auf die Feldgerätevariablen abgebildet sind (z. B. über das Konfigurationssystem 80). Allgemeiner gesagt, wenn eine „Gerätevariable“ in Bezug auf ein bestimmtes Gerät erläutert wird, bezieht sich dies im Allgemeinen auf eine Variable, die von dem bestimmten Gerät erfasst, berechnet, eingestellt, aktualisiert usw. wird.
-
Der Knoten 18 beinhaltet einen oder mehrere Sicherheitssystemlogiklöser 50, 52, während der Knoten 20 die Sicherheitssystemlogiklöser 54 und 56 beinhaltet. Jeder der Logiklöser 50-56 ist ein E/A-Gerät mit einem Prozessor 57, der Sicherheitslogikmodule 58 ausführt, die in einem Speicher gespeichert sind, und er ist kommunikativ verbunden, um Steuersignale an die Sicherheitssystemfeldgeräte 60 und 62 bereitzustellen und/oder Signale von ihnen zu empfangen.
-
Im Allgemeinen bezieht sich der Ausdruck „Speicher“ oder „Speichergerät“, wie hierin verwendet, auf ein System oder Gerät, das computerlesbare Medien oder ein Medium („CRM“) beinhaltet. „CRM“ bezieht sich auf ein Medium oder Medien, auf die das betreffende Computersystem zugreifen kann, um Informationen zu platzieren, zu behalten oder abzurufen (z. B. Daten, computerlesbare Anweisungen, Programmmodule, Anwendungen, Routinen usw.). Man beachte, dass sich „CRM“ auf Medien bezieht, die nichtflüchtiger Art sind, und sich nicht auf körperlose transitorische Signale wie Funkwellen bezieht. Das CRM der beschriebenen Speicher kann in jeder Technologie, jedem Gerät oder jeder Gruppe von Geräten implementiert werden, die in dem relevanten Computersystem beinhaltet sind oder mit dem relevanten Computersystem in Kommunikation stehen. Das CRM der beschriebenen Speicher kann flüchtige oder nichtflüchtige Medien und Wechselmedien oder nichtentfernbare Medien beinhalten.
-
In jedem Fall beinhaltet jeder der Knoten 18 und 20 wenigstens ein Nachrichtenverbreitungsgerät (MPD) 70 oder 72, die über eine Busverbindung 74 des Ringtyps kommunikativ miteinander gekoppelt sind. Die Sicherheitssystemlogiklöser 50-56, die Sicherheitssystemfeldgeräte 60 und 62, die MPDs 70 und 72 und der Bus 74 bilden im Allgemeinen das Sicherheitssystem 14 der 1.
-
In einigen Ausführungsformen können die Sicherheitssystemfeldgeräte 60 und 62 Feldgeräte sein, die speziell für die Implementierung des Sicherheitssystems und nicht für den typischen Prozesssteuerungsbetrieb gestaltet sind. Andererseits können in einigen Ausführungsformen die Sicherheitssystemfeldgeräte 40 und 60 Feldgeräte sein, die in einem typischen Prozesssteuerungssystem (z. B. dem System 12) implementiert werden können, und sie können beispielsweise gleichzeitig als Feldgeräte sowohl in dem Prozesssteuerungssystem 12 als auch in dem Sicherheitssystem 14 fungieren. In einer solchen Ausführungsform müsste das Feldgerät jedoch wahrscheinlich die erhöhten Standards erfüllen, die typischerweise für die Implementierung in einem Sicherheitssystem erforderlich sind (z. B. in Bezug auf erhöhte Anforderungen an die überprüfbare Integrität von Daten, die von den Geräten übertragen und empfangen werden). Als ein Ergebnis können die hierin offenbarten Techniken für die Überprüfung der Datenintegrität Variable für Variable in einem Sicherheitssystem, z. B. dem Sicherheitssystem 14, besonders nützlich sein.
-
Die Prozesssteuerungen 24 und 26, bei denen es sich beispielsweise nur um von Emerson Process Management vertriebene DeltaV™-Steuerungen oder einen anderen gewünschten Typ von Prozesssteuerungen handeln kann, sind derart programmiert, dass sie Prozesssteuerungsfunktionen (unter Verwendung dessen, was üblicherweise als Steuermodule bezeichnet wird) unter Verwendung der E/A-Geräte 28, 30 und 32 (für die Steuerung 24), der E/A-Geräte 34 und 36 (für die Steuerung 26) und der Feldgeräte 40 und 42 bereitstellen. Insbesondere implementiert oder überwacht jede der Steuerungen 24 und 26 eine oder mehrere darin gespeicherte oder anderweitig diesen zugeordnete Prozesssteuerungsroutinen und kommuniziert mit den Feldgeräten 40 und 42 und den Arbeitsstationen 14, um den Prozess 10 oder einen Abschnitt des Prozesses 10 auf jede gewünschte Weise zu steuern. Die Feldgeräte 40 und 42 können alle gewünschten Typen von Feldgeräten sein, z. B. Sensoren, Ventile, Sender, Stellungsregler usw., und sie können jedem gewünschten offenen, proprietären oder anderen Kommunikations- oder Programmierprotokoll entsprechen, einschließlich beispielsweise des HART®- oder des 4-20-mA-Protokolls (wie für die Feldgeräte 40 veranschaulicht), jedes Feldbusprotokolls wie des FOUNDATION®-Fieldbus-Protokolls (wie für die Feldgeräte 42 veranschaulicht) oder des CAN-, Profibus-, AS-Schnittstellen-Protokolls, um nur einige zu nennen. Auf ähnliche Weise können die E/A-Geräte 28-36 beliebige bekannte Typen von Prozesssteuerungs-E/A-Geräten sein, die (ein) beliebige(s) geeignete(s) Kommunikationsprotokoll/Kommunikationsprotokolle verwenden. Im Allgemeinen implementieren die Prozesssteuerungen die Steuerung des gesteuerten Prozesses durch Implementieren einer Steuerroutine (Teil einer größeren Steuerstrategie zum Steuern eines Prozesses), um einen oder mehrere Steuerungsausgangswerte (d. h. von der Steuerung übertragene Befehle) zu bestimmen, um einen oder mehrere Prozesseingaben anzutreiben (d. h. manipulierte Variablen, z. B. eine Steuerventilposition, die auf die Steuerungsbefehle reagieren), um eine Prozessausgabe (d. h. eine gesteuerte Variable z. B. eine Temperatur, Durchflussrate usw.) auf einen gewünschten Wert (d. h. ein Sollwert) basierend auf einer oder mehreren gemessenen Prozesseingaben (z. B. gemessenen Temperaturen, Flüssen, Drücken usw.) zu bringen, die an der Steuerung als Steuerungseingaben empfangen werden.
-
Die Sicherheitslogiklöser 50-56 von 1 können jeder gewünschte Typ von Sicherheitssystemsteuergeräten sein, die einen Prozessor 57 und einen Speicher beinhalten, der Sicherheitslogikmodule oder -routinen 58 speichert, die zur Ausführung auf dem Prozessor 57 angepasst sind, um Steuerfunktionen bereitzustellen, die dem Sicherheitssystem 14 unter Verwendung der Feldgeräte 60 und 62 zugeordnet sind. Die von den Logiklösern implementierte Logik zur Implementierung einer sicheren Steuerung des gesteuerten Prozesses kann als „Sicherheitsschema“ oder „Sicherheitssystemschema“ bezeichnet werden. Das Sicherheitsschema kann einschließen, einem oder mehreren der Feldgeräte 40, 42, 60 oder 62 zu befehlen, in einen sicheren Zustand überzugehen (z. B. durch Betätigen eines zugeordneten Ventils, um es in einen sicheren Zustand zu bringen) basierend auf einer oder mehreren unsicheren Bedingungen, die basierend auf einer Bewertung eines oder mehrerer Prozessvariablenwerte (z. B. Sensormessungen, Diagnoseindizes usw.) und der Logik des Sicherheitsschemas erfasst werden. Die Art eines sicheren Zustands hängt im Allgemeinen von der jeweiligen Art des jeweiligen Prozesses und Feldgeräts ab. Wenn beispielsweise ein Tank überzulaufen droht, kann ein Logiklöser ein Einlassventil durch Schließen des Ventils in einen sicheren Zustand bringen (wodurch verhindert wird, dass mehr Flüssigkeit in den Tank gelangt). Im Gegensatz dazu kann der Logiklöser ein Auslassventil durch Öffnen des Auslassventils in einen sicheren Zustand bringen (wodurch der Tank entleert wird). Mit anderen Worten kann in diesem bestimmten Beispiel der sichere Zustand für das Einlassventil 0 % offen sein und der sichere Zustand für das Auslassventil kann 100 % offen sein.
-
Natürlich können die Sicherheitsfeldgeräte 60 und 62 jeder gewünschte Typ von Feldgeräten sein, die einem bekannten oder gewünschten Kommunikationsprotokoll entsprechen oder dieses verwenden, z. B. jene vorstehend genannten. Insbesondere können die Feldgeräte 60 und 62 sicherheitsrelevante Feldgeräte des Typs sein, die herkömmlicherweise durch ein separates, dediziertes sicherheitsrelevantes Steuerungssystem gesteuert werden. In der in 1 veranschaulichten Prozessanlage 10 sind die Sicherheitsfeldgeräte 60 derart dargestellt, dass sie ein dediziertes oder Punkt-zu-Punkt-Kommunikationsprotokoll verwenden, z. B. das HART- oder das 4-20-mA-Protokoll, während die Sicherheitsfeldgeräte 62 derart dargestellt sind, dass sie ein Buskommunikationsprotokoll verwenden, z. B. ein Feldbusprotokoll. Wie jedoch angemerkt, können die Sicherheitsfeldgeräte 60 und 62 in einer Ausführungsform typische Feldgeräte sein, die sowohl im Prozesssteuerungssystem 12 als auch im Sicherheitssystem 14 eingesetzt und verwendet werden können.
-
In jedem der Knoten 18 und 20 wird eine gemeinsame Rückwandplatine 76 (angezeigt durch eine gepunktete Linie durch die Steuerung 24, 26, die E/A-Geräte 28-36, die Sicherheitslogiklöser 50-56 und die MPDs 70 und 72) verwendet, um die Steuerung 24 und 26 mit den Prozesssteuerungs-E/A-Karten 28, 30 und 32 oder 34 und 36 sowie mit den Sicherheitslogiklösern 52 und 54 oder 56 und 58 und mit den MPDs 70 oder 72 zu verbinden. Die Steuerungen 24 und 26 sind ebenso kommunikativ mit dem Bus 22 verbunden und arbeiten als Bus-Arbiter für diesen, um jedem der E/A-Geräte 28-36, den Logiklösern 52-56 und den MPDs 70 und 72 die Kommunikation mit jeder der Arbeitsstationen 16 über den Bus 22 zu ermöglichen.
-
Wie zu verstehen ist, beinhaltet jede der Arbeitsstationen 16 einen Prozessor 77 und einen Speicher 78, der eine oder mehrere Konfigurations- und/oder Anzeigeanwendungen speichert, die zur Ausführung auf dem Prozessor 78 angepasst sind.
-
Eine Konfigurationsanwendung 80 und eine Anzeigeanwendung 82 sind in einer Explosionsansicht in 1 als in einer der Arbeitsstationen 14 gespeichert veranschaulicht. Falls gewünscht, könnten diese Anwendungen jedoch auf verschiedenen Arbeitsstationen 14 oder auf anderen Computern gespeichert und ausgeführt werden, die der Prozessanlage 10 zugeordnet sind. Im Allgemeinen stellt die Konfigurationsanwendung 80 einem Konfigurationsingenieur Konfigurationsinformationen bereit und ermöglicht es dem Konfigurationsingenieur, einige oder alle Elemente der Prozessanlage 10 zu konfigurieren und diese Konfiguration in der Konfigurationsdatenbank 21 zu speichern. Als Teil der Konfigurationsaktivitäten, die von der Konfigurationsanwendung 80 durchgeführt werden, kann der Konfigurationsingenieur Steuerroutinen oder Steuermodule für die Prozesssteuerungen 24 und 26 erstellen, kann Sicherheitslogikmodule für alle Sicherheitslogiklöser 50-56 erstellen und kann diese verschiedenen Steuer- und Sicherheitsmodule auf die entsprechenden der Prozesssteuerungen 24 und 26 und die Sicherheitslogiklöser 50-56 über den Bus 22 und die Steuerungen 24 und 26 herunterladen. Auf ähnliche Weise kann die Konfigurationsanwendung 80 verwendet werden, um andere Programme und Logik zu erstellen und auf die E/A-Geräte 28-36, eines der Feldgeräte 40, 42, 60 und 62 usw. herunterzuladen.
-
Die Konfigurationsanwendung 80 kann eine Konfigurationsdatenbank beinhalten oder auf andere Weise darauf Zugriff haben, die Daten und andere Informationen speichert, die speziell die verschiedenen Geräte oder Komponenten und ihre Verbindungen identifizieren und/oder ansprechen, die für die Implementierung auf dem Boden der Prozessanlage oder in der Feldumgebung geplant oder gewünscht sind. Die Konfigurationsdatenbank kann als ein Beispiel eine Anzahl von logischen Kennungen von Komponenten in der Feldumgebung speichern, wodurch die Steuerungen und andere Geräte die den Komponenten zugeordneten Komponenten und Signale über die logischen Kennungen referenzieren können. Beispielsweise kann die Konfigurationsdatenbank für ein gegebenes Feldgerät eine Informationsabbildung speichern oder eine logische Kennung an eine bestimmte Hardwareadresse oder einen bestimmten E/A-Kanal binden. Die Hardwareadresse kann eine bestimmte Steuerung, eine bestimmte E/A-Karte, die mit der bestimmten Steuerung verbunden ist, oder eine bestimmte Adresse für den E/A-Kanal identifizieren, der die bestimmte E/A-Karte mit dem Feldgerät verbindet. In einigen Fällen kann diese Abbildung oder Bindung in der Steuerung, dem Benutzeroberflächengerät, der Bedienerarbeitsstation oder einem anderen gewünschten Gerät (z. B. einem Gerät, das die logische Kennung auflösen muss) gespeichert werden.
-
Nachdem eine logische Kennung an eine Hardwareadresse oder einen E/A-Kanal gebunden wurde, wird die Kennung als „zugewiesen“ betrachtet. In einigen Fällen beinhaltet das System 10 „nicht zugewiesene“ logische Kennungen, die Kennungen sind, auf die ein Softwareelement (z. B. eine Steuerroutine oder ein Funktionsblock) verweist, die jedoch keine Bindung aufweisen. Das heißt, eine logische Kennung wird als „nicht zugewiesen“ betrachtet, wenn das System 10 und die Konfigurationsdatenbank keine Hardwareadresse oder keinen E/A-Kanal aufweisen, der an das Tag gebunden wurde. Wenn also eine nicht zugewiesene logische Kennung von einer Steuerroutine referenziert wird, wird kein Wert gelesen, der von einem Signal in der Anlage 10 getragen wird, und es wird kein Befehl über ein Signal an ein Feldgerät in der Anlage 10 übertragen.
-
Beispielhafte logische Kennungen beinhalten Geräte-Tags (Device Tags - DTs), von denen jedes ein bestimmtes Instrument, eine bestimmte Steuerung, ein bestimmtes Ventil oder ein anderes physisches Feldgerät darstellt (z. B. das Feldgerät 60A), und Geräte-Signal-Tags (Device Signal Tags - DSTs), von denen jedes ein bestimmtes Signal darstellt, das von einem bestimmten Gerät empfangen oder erzeugt wird und das typischerweise einem bestimmten Parameter entspricht, der von dem Feldgerät genutzt wird (z. B. ein Befehl, der durch das Feldgerät 60A von der Steuerung 52 empfangen wurde, oder eine Messung, die durch das Feldgerät 60A an die Steuerung 52 übertragen wird). Bei einigen Geräten umfasst ein DST eine Kombination aus dem DT eines Geräts und einer Kennung eines bestimmten Signals, das von diesem Gerät empfangen oder erzeugt wird, z. B. einer Kennung eines bestimmten Parameters, der durch ein Steuermodul referenziert wird. Bei einigen Geräten, typischerweise älteren oder „nicht intelligenten“ Geräten, stellt ein DT sowohl das physische Gerät als auch ein vom Gerät erzeugtes Signal dar. Im Allgemeinen wird die logische Kennung eines Geräts von der Prozessanlage 10 sowohl in der Feldumgebung als auch in der Back-End-Umgebung dazu verwendet, das Gerät eindeutig zu identifizieren. Die DTs und DSTs können als „System-Tags“ oder „Systemkennungen“ bezeichnet werden. Die durch die „System-Tags“ dargestellten Variablen können als „Systemvariablen“ bezeichnet werden.
-
In einigen Fällen können ein oder mehrere intelligente Feldgeräte (z. B. eines oder mehrere der Feldgeräte 40, 42, 60 oder 62) ebenso logische Kennungen speichern, die für die intelligenten Feldgeräte 22 eindeutig sind. Diese logischen Kennungen können sich von den System-Tags unterscheiden, die von der Anlage 10 zur Identifizierung der Feldgeräte und deren zugeordneten Signalen verwendet werden, und sie können als „Quellkennungen“ „Quell-Tags“ bezeichnet werden. Quell-Tags können in Abhängigkeit von der Implementierung in der vorstehend erwähnten Konfigurationsdatenbank gespeichert sein oder nicht.
-
Im Allgemeinen sind die hierin erörterten „Feldgerätevariablen“ Variablen, die für die beschriebenen Feldgeräte lokal sind. Als ein Beispiel kann ein intelligentes Feldgerät ein lokales „Quell-Tag“ aufweisen, das eine Feldgerätevariable lokal für das intelligente Feldgerät eindeutig identifiziert. Falls gewünscht, kann das intelligente Feldgerät konfiguriert sein, um den Variablenwert des Feldgeräts an eine entsprechende Steuerung zu übertragen, die dann den empfangenen Wert auf ein System-Tag abbilden kann, das auf das Quellen-Tag von Interesse abbilden soll. In einigen Fällen kann das Steuersystem 10 derart konfiguriert sein, dass ein oder mehrere Quell-Tags eines Feldgeräts nicht auf ein System-Tag abgebildet werden (und somit die dargestellte Variable nicht in das relevante Prozesssteuerungssystem oder Sicherheitssystem integriert oder nicht von diesem berücksichtigt werden kann). Einige Quell-Tags können vom Prozesssteuerungssystem oder Sicherheitssystem ignoriert werden, da die Variable, die es darstellt, für die Betriebsziele oder die Sicherheitsziele des Prozesssteuerungssystems oder Sicherheitssystems nur eine geringe Bedeutung haben kann.
-
Die Anzeigeanwendung 82 kann dazu verwendet werden, einem Benutzer eine oder mehrere Anzeigen bereitzustellen, z. B. einem Prozesssteuerungsbediener, einem Sicherheitsbediener usw., die Informationen über den Zustand des Prozesssteuerungssystems 12 und des Sicherheitssystems 14 entweder in separaten Ansichten oder auf Wunsch in derselben Ansicht beinhalten. Beispielsweise kann die Anzeigeanwendung 82 eine Alarmanzeigeanwendung sein, die Alarmangaben empfängt und einem Bediener anzeigt. Eine solche Alarmanzeige kann Alarme sowohl vom Prozesssteuerungssystem 12 als auch vom Sicherheitssystem 14 in einer integrierten Alarmanzeige empfangen und anzeigen, da die Alarme von den beiden Systemen 12 und 14 an die Bedienerarbeitsstation 14 gesendet werden, die die Alarmanzeigeanwendung ausführt, und als Alarme von verschiedenen Geräten erkannt werden. Ebenso kann ein Bediener in einem Alarmbanner angezeigte Sicherheitsalarme auf dieselbe Weise wie Prozesssteuerungsalarme behandeln. Beispielsweise kann der Bediener oder Benutzer mittels der Alarmanzeige Sicherheitsalarme bestätigen, Sicherheitsalarme ausschalten usw., die Nachrichten an die entsprechende Prozesssteuerung 24, 26 innerhalb des Sicherheitssystems 14 unter Verwendung von Kommunikationen über den Bus 22 und die Rückwandplatine 76 übertragen, um die entsprechenden Maßnahmen in Bezug auf den Sicherheitsalarm zu ergreifen. Auf ähnliche Weise zeigen andere Anzeigeanwendungen Informationen oder Daten sowohl vom Prozesssteuerungssystem 12 als auch vom Sicherheitssystem 14 an, da diese Systeme die gleichen Typen und Arten von Parametern, Sicherheit und Referenzieren verwenden können, sodass jegliche Daten von einem der Systeme 12 und 14 in eine Anzeige oder Ansicht integriert werden können, die traditionell für ein Prozesssteuerungssystem bereitgestellt ist.
-
In jedem Fall können die Anwendungen 80 und 82 separate Konfigurations- und andere Signale an jede der Prozesssteuerungen 24 und 26 senden und von ihnen sowie von jedem der Sicherheitssystemlogiklöser 50-56 empfangen. Diese Signale können Nachrichten auf Prozessebene beinhalten, die sich auf das Steuern der Betriebsparameter der Prozessfeldgeräte 40 und 42 beziehen, und sie können Nachrichten auf Sicherheitsebene beinhalten, die sich auf das Steuern der Betriebsparameter der sicherheitsrelevanten Feldgeräte 60 und 62 beziehen. Während die Sicherheitslogiklöser 50-56 derart programmiert sein können, dass sie sowohl die Nachrichten auf Prozessebene als auch die Nachrichten auf Sicherheitsebene erkennen, können die Sicherheitslogiklöser 50-56 zwischen den zwei Typen von Nachrichten unterscheiden und können nicht durch Konfigurationssignale auf Prozessebene programmiert oder aktiviert werden. In einem Beispiel können die an die Geräte des Prozesssteuerungssystems übertragenen Programmierungsnachrichten bestimmte Felder oder Adressen beinhalten, die von den Geräten des Sicherheitssystems erkannt werden und die verhindern, dass diese Signale zum Programmieren der Geräte des Sicherheitssystems verwendet werden.
-
Falls gewünscht, können die Sicherheitslogiklöser 50-56 dieselbe oder eine andere Hardware- oder Softwaregestaltung verwenden als die Hardware- und Softwaregestaltung, die für die Prozesssteuerungs-E/A-Karten 28-36 verwendet wird. Die Verwendung alternativer Technologien für die Geräte innerhalb des Prozesssteuerungssystems 12 und Geräte innerhalb des Sicherheitssystems 14 kann allerdings Hardware- oder Softwarefehler mit häufigen Ursachen minimieren oder beseitigen.
-
Darüber hinaus können die Sicherheitssystemgeräte, einschließlich der Logiklöser 50-56, beliebige gewünschte Isolations- und Sicherheitstechniken verwenden, um die Wahrscheinlichkeit zu reduzieren oder zu eliminieren, dass nicht autorisierte Änderungen an den dadurch implementierten sicherheitsrelevanten Funktionen vorgenommen werden. Beispielsweise können die Sicherheitslogiklöser 50-56 und die Konfigurationsanwendung 80 erfordern, dass eine Person mit einer bestimmten Berechtigungsebene oder eine Person, die sich an einer bestimmten Arbeitsstation befindet, Änderungen an den Sicherheitsmodulen innerhalb der Logiklöser 50-56 vornimmt, wobei diese Berechtigungsebene oder dieser Standort sich von der Berechtigungs- oder Zugriffsebene oder dem Standort unterscheidet, die/der erforderlich ist, um Änderungen an den Prozesssteuerungsfunktionen vorzunehmen, die von den Steuerungen 24 und 26 und den E/A-Geräten 28-36 ausgeführt werden. In diesem Fall haben nur diejenigen Personen, die in der Sicherheitssoftware benannt sind oder sich an Arbeitsstationen befinden, die zur Durchführung von Änderungen am Sicherheitssystem 14 berechtigt sind, die Berechtigung, sicherheitsrelevante Funktionen zu ändern, wodurch die Wahrscheinlichkeit einer Beschädigung des Betriebs des Sicherheitssystems 14 minimiert wird. Es versteht sich, dass, um diese Sicherheit zu implementieren, die Prozessoren in den Sicherheitslogiklösern 50-56 die eingehenden Nachrichten auf korrekte Form und Sicherheit bewerten und bei Änderungen an den Steuerungsmodulen 58 der Sicherheitsebene, die in den Sicherheitslogiklösern 50-56 ausgeführt werden, als Gatekeeper fungieren.
-
Darüber hinaus kann, wenn sicherheitsrelevante Funktionen innerhalb der Logiklöser 50-56 aktiviert sind, keine Statusänderung der Sicherheitsfunktionen über die Bedienerarbeitsplätze 14 ohne entsprechende Zugriffsrechte vorgenommen werden, was der dem Prozesssteuerungssystem 12 zugeordneten Kommunikationsstruktur ermöglicht, verwendet zu werden, um eine Initialisierung für das Sicherheitssystem 14 bereitzustellen und verwendet zu werden, um eine Laufzeitberichterstattung über den Betrieb des Sicherheitssystems 14 bereitzustellen, jedoch dennoch das Prozesssteuerungssystem 12 vom Sicherheitssystem 14 in dem Sinne zu isolieren, dass Änderungen am Prozesssteuersystem 12 den Betrieb des Sicherheitssystems 14 nicht beeinträchtigen können.
-
Wie zu verstehen ist, ermöglicht die Verwendung der Rückwandplatine 76 in jedem der Knoten 18 und 20, dass die Sicherheitslogiklöser 50 und 52 und die Sicherheitslogiklöser 54 und 56 lokal miteinander kommunizieren, um die von jedem dieser Geräte implementierten Sicherheitsfunktionen zu koordinieren, um einander Daten zu kommunizieren oder um andere integrierte Funktionen durchzuführen. Andererseits arbeiten die MPDs 70 und 72 derart, dass Abschnitte des Sicherheitssystems 14, die an sehr unterschiedlichen Standorten der Anlage 10 angeordnet sind, weiterhin miteinander kommunizieren können, um einen koordinierten Sicherheitsbetrieb an verschiedenen Knoten der Prozessanlage 10 bereitzustellen. Insbesondere ermöglichen die MPDs 70 und 72 in Verbindung mit dem Bus 74, dass die Sicherheitslogiklöser, die verschiedenen Knoten 18 und 20 der Prozessanlage 10 zugeordnet sind, kommunikativ zueinander kaskadiert werden, um die Kaskadierung sicherheitsrelevanter Funktionen innerhalb der Prozessanlage 10 gemäß einer zugewiesenen Priorität zu ermöglichen. Alternativ können zwei oder mehr sicherheitsrelevante Funktionen an verschiedenen Standorten innerhalb der Prozessanlage 10 miteinander verriegelt oder verbunden sein, ohne dass eine dedizierte Leitung zu einzelnen Sicherheitsfeldgeräten in den getrennten Bereichen oder dem Knoten der Anlage 10 verlegt werden muss. Mit anderen Worten ermöglicht es die Verwendung der MPDs 70 und 72 und des Busses 74 einem Konfigurationsingenieur, ein Sicherheitssystem 14 zu gestalten und zu konfigurieren, das physisch über die Prozessanlage 10 verteilt ist, dessen verschiedene Komponenten jedoch kommunikativ miteinander verbunden sind, um zu ermöglichen, dass ungleichartige sicherheitsrelevante Hardware nach Bedarf miteinander kommuniziert. Dieses Merkmal stellt ebenso Skalierbarkeit des Sicherheitssystems 14 bereit, indem es das Hinzufügen von zusätzlichen Sicherheitslogiklösern zu dem Sicherheitssystem 14 ermöglicht, wenn sie benötigt werden oder wenn neue Prozesssteuerungsknoten zur Prozessanlage 10 hinzugefügt werden.
-
B. Beispielhaftes Feldgerät und beispielhafte Steuerung
-
2 ist ein Blockdiagramm, das beispielhafte Komponenten des Feldgeräts 60A und der Steuerung 52 (ebenso in 1 gezeigt) darstellt, die kommunikativ über eine Verbindung 199 gekoppelt sind, wenn das E/A-Netzwerk 1 in 1 gezeigt wird, wobei jede von diesen konfiguriert sein kann, um Nachrichten, einschließlich Variablenwerte, auf eine Weise zu übertragen und zu empfangen, die es dem empfangenden Gerät ermöglicht, die Integrität der empfangenen Werte auf einer Variable-für-Variable-Basis zu überprüfen.
-
Eine „Kommunikationsverbindung“ oder „Verbindung“ ist ein Weg oder ein Medium, um zwei oder mehr Knoten zu verbinden. Eine Verbindung kann eine physische Verbindung oder eine logische Verbindung sein. Eine physische Verbindung ist die Schnittstelle oder das/die Medium/Medien, über die/das Informationen übertragen werden, und kann drahtgebunden oder drahtlos sein. Beispielhafte physische Verbindung beinhalten (i) drahtgebundene Verbindungen wie Kabel mit einem Leiter zur Übertragung elektrischer Energie oder eine Glasfaserverbindung zur Übertragung von Licht und (ii) drahtlose Verbindungen wie drahtlose elektromagnetische Signale, die Informationen über Änderungen an einer oder mehreren Eigenschaften elektromagnetischer Wellen führen. Eine logische Verbindung zwischen zwei oder mehr Knoten stellt eine Abstraktion der zugrunde liegenden physischen Verbindungen oder Zwischenknoten dar, die die zwei oder mehr Knoten verbinden. Beispielsweise können zwei oder mehr Knoten über eine logische Verbindung logisch gekoppelt sein. Die logische Verbindung kann über eine beliebige Kombination von physischen Verbindungen und Zwischenknoten (z. B. Router, Switches oder andere Vernetzungsausrüstung) hergestellt werden.
-
Wie gezeigt, beinhaltet das Feldgerät 60A einen Satz von Schaltkreisen 102, eine Kommunikationsschnittstelle 104 zum Koppeln des Feldgeräts 60A mit der Steuerung 52 über die Verbindung 199, einen Aktor 106 (z. B. zum Betätigen eines Ventils) und/oder einen Sensor (z. B. zum Erfassen oder Messen eines Prozessvariablenwerts, z. B. Druck, Durchflussrate, Tankfüllstand, Temperatur usw.). Der Satz von Schaltkreisen 102 beinhaltet einen Prozessor 113, der an einen Speicher 111 gekoppelt ist. Der Speicher 111 kann Logik oder Anweisungen 121 beinhalten, die bei Ausführung durch den Prozessor 113 bewirken, dass das Feldgerät eine oder mehrere der hierin beschriebenen Funktionen (z. B. jene, die in Bezug auf 6 und 7 beschrieben sind) durchführt. Insbesondere kann die Logik 121 eine Datenintegritätsformel 132 zum Berechnen einer Datenintegritätsprüfung und Aktor-/Sensorlogik 134 beinhalten. Der Speicher 111 kann ebenso einen Startwert 123 und eine Gerätevariable 125 beinhalten (die eine beliebige geeignete Variable sein kann, die über den Sensor 108 oder über eine Berechnung durch den Prozessor 113 durch das Feldgerät 60A erfasst wird).
-
Ferner beinhaltet die Steuerung 52 einen Satz von Schaltkreisen 152 und eine Kommunikationsschnittstelle 154 zum (i) Koppeln der Steuerung 52 an das Feldgerät 60A über die Verbindung 199 und (ii) Koppeln der Steuerung 52 an das Kommunikationsnetzwerk 22. Der Satz von Schaltkreisen 152 beinhaltet einen Prozessor 163 und einen Speicher 161, der Logik oder Anweisungen 171 beinhaltet, die, wenn sie durch den Prozessor 163 ausgeführt werden, bewirken, dass die Steuerung 52 eine oder mehrere der hierin beschriebenen Funktionen (z. B. jene, die in Bezug auf 6 und 7 beschrieben sind) durchführt. Der Speicher 152 beinhaltet die gleiche Datenintegritätsformel 132 und den gleichen Startwert 123, der von dem Feldgerät 60A verwendet wird, was es der Steuerung 52 ermöglicht, Datenintegritätsprüfungen für die von dem Feldgerät 60A empfangenen Werte zu berechnen. Die Steuerung 52 beinhaltet eine Prozessvariable 175, die der Gerätevariablen 125 entspricht oder diese abbildet.
-
Im Betrieb implementiert das Feldgerät 60A die Logik 134, um eine Steuerfunktion in Bezug auf den Aktor 106 (z. B. Betätigen eines Ventils als Reaktion auf einen Befehl von der Steuerung 52) und/oder einen Sensor 108 (z. B. Erfassen eines Prozessvariablenwerts über den Sensor 108 und Übertragen des Wertes an die Steuerung 52) durchzuführen. Ferner kann das Feldgerät 60A die Datenintegritätsformel 132 implementieren, um eine Datenintegritätsprüfung für die Gerätevariable 125 durch Eingeben des Wertes der Variablen 125 und des Startwerts 123 in die Formel 132 zu erzeugen. Der Startwert 123 kann jede relativ eindeutige Information sein, die dem Feldgerät 160 und den beabsichtigten Empfängern der Nachricht (z. B. dem Steuerung 52) bekannt ist. In einigen Fällen kann die Datenintegritätsprüfung unter Verwendung zusätzlicher Eingaben berechnet werden, z. B. eines Sequenzparameters, der jedes Mal aktualisiert wird, wenn die Variable 125 aktualisiert wird, eines variablen Statusparameters, der einen Status der Variablen 125 angibt, usw.
-
Wenn der Wert der Gerätevariablen 125 über eine Nachricht an die Steuerung 52 übertragen wird, kann das Feldgerät 60A die berechnete Datenintegritätsprüfung beinhalten, um es der Steuerung 52 zu ermöglichen, die Integrität des empfangenen Werts zu überprüfen. Im Allgemeinen ist die Steuerung 52 (oder ein beliebiger gewünschter Empfänger) konfiguriert, um die Datenintegritätsprüfung basierend auf dem bekannten Startwert 123 (ebenso der Steuerung 52 bekannt) und dem in der empfangenen Nachricht beinhalteten Wert neu zu berechnen. Die Formel 132 ist derart aufgebaut, dass jede Änderung einer der Eingaben zu einer anderen Datenintegritätsprüfung führt. Wenn sich der Wert der Variablen 125 (oder des Sequenzparameters oder des variablen Statusparameters, falls genutzt) während der Übertragung auf eine beliebige Weise ändert, wird sich die von der Steuerung 52 berechnete Datenintegritätsprüfung von der in der Nachricht empfangenen unterscheiden, sie weiß also, dass eine der Eingaben (z. B. der Wert der Variablen 125) von dem, was übertragen wird, abweicht.
-
Im Allgemeinen aktualisiert die Steuerung 52 die Prozessvariable 175 mit dem Wert der Gerätevariablen 125, die von dem Feldgerät 60A als Reaktion auf das Überprüfen der Integrität des empfangenen Wertes empfangen wird. Wenn die von der Steuerung 52 berechnete Datenintegritätsprüfung nicht mit der empfangenen Datenintegritätsprüfung übereinstimmt, verwirft die Steuerung 52 den empfangenen Wert, anstatt die Prozessvariable 175 mit dem empfangenen Wert zu aktualisieren. Abhängig von der Ausführungsform kann die Prozessvariable 175 eine lokale Variable oder eine Systemvariable sein. Ferner kann die Steuerung 52 eine Steuerlogik 182 zum Implementieren von Funktionen als Teil eines Sicherheitsschemas (z. B. Bewirken eines oder mehrerer Feldgeräte als Reaktion auf das Erfassen unsicherer Zustände in einen sicheren Zustand überzugehen) beinhalten. Abhängig von der speziellen Konfiguration kann die Steuerlogik 182 den Wert der Prozessvariablen 175 berücksichtigen (und kann somit von der Gerätevariablen 125 abhängen). Weitere Einzelheiten bezüglich Variable-für-Variable-Datenintegritätsprüfungen werden nachstehend unter Bezugnahme auf die in den 6 und 7 gezeigten Verfahren beschrieben.
-
Falls gewünscht, kann das Feldgerät 60A eine Datenintegritätsprüfung für einen beliebigen einer gewünschten Anzahl von Variablenwerten berechnen und übertragen und kann auf Wunsch mehrere Datenintegritätsprüfungen für einen einzelnen Variablenwert übertragen (z. B. wobei jeder für einen anderen Empfänger bestimmt ist). Ferner kann jedes geeignete Prozesssteuergerät konfiguriert sein, um Variablenwerte in einer Nachricht zu übertragen, die eine Variable-für-Variable-Datenintegritätsprüfung durch Implementieren einer Datenintegritätsformel, z. B. der Formel 132, und eines Startwerts, z. B. des Startwerts 123, ermöglicht.
-
II. Beispielhafte Protokolle
-
3 zeigt beispielhafte Schichten eines beispielhaften Protokollstapels 300, die von den hierin beschriebenen Prozesssteuergeräten genutzt werden können, um Gerätvariablenwerte auf eine Weise zu übertragen und zu empfangen, die es dem empfangenden Gerät ermöglicht, die Integrität der empfangenen Werte auf einer Variable-für-Variable-Basis zu überprüfen.
-
Der Protokollstapel 300 beinhaltet fünf Schichten: eine physische Schicht 303, eine Sicherungsschicht 305, eine Netzwerkschicht 307, eine Transportschicht 309 und eine Anwendungsschicht 311. Protokolle, die von den beschriebenen Systemen verwendet werden, können zusätzliche oder alternative Schichten zu den beschriebenen beinhalten. Jede Schicht 303 bis 311 des Protokolls 300 kann einen Satz von Regeln aufweisen, denen Protokolldateneinheiten (PDUs) oder Nachrichten entsprechen müssen, damit Knoten im Netzwerk den Inhalt der Nachrichten richtig verstehen. PDUs auf jeder Schicht können eine Nutzlast sowie Metadaten aufweisen (z. B enthalten in Kopfzeilen, Fußzeilen, Präambeln usw.). Im Allgemeinen sind die Nutzlastdaten der Inhalt oder die Daten einer PDU und die Metadaten sind die „Daten über die Daten“ (z. B. bezüglich Formatierung, Sequenzierung, Zeitplanung, Ziel- und Quelladressen, Kommunikationshandshakes usw.).
-
Im Allgemeinen kann jede der Schichten 303-311 ein beliebiges geeignetes Protokoll sein, das in der Internetprotokollsuite gefunden wird (z. B. TCP, UDP, IP usw.) oder ein beliebiges geeignetes Protokoll oder ein beliebiger geeigneter Standard, der in typischen Prozessteuerungskommunikationsprotokollen, z. B. HART-IP, WirelessHART, Ethernet/IP, Fieldbus, ControlNet usw. gefunden wird. In einer Ausführungsform entsprechen die hierin beschriebenen Nachrichten dem HART-Protokoll auf der Anwendungsschicht 311, wobei Standard-HART-Befehle, -Antworten und -Formatierung verwendet werden. In einer Ausführungsform können die beschriebenen Nachrichten anderen Protokollen entsprechen, z. B. Open Platform Communications United Architecture („OPC UA“), einem Maschine-zu-Maschine-Kommunikationsprotokoll für die industrielle Automatisierung. Die ALPDU kann über jede geeignete NLDU übertragen werden.
-
III. Beispielhafte Nachrichtennutzlasten
-
4 und 5 zeigen beispielhafte Nachrichtennutzlastdaten 400 und 500, die jeweils ein Beispiel der in 3 gezeigten Nachrichtennutzlastdaten 352 darstellen und wobei jede einen oder mehrere Variablenwerte mit entsprechenden Datenintegritätsprüfungen beinhaltet, um es einem empfangenden Gerät zu ermöglichen, die Integrität der beinhalteten Werte auf einer Variable-für-Variable-Basis zu überprüfen. Eines oder mehrere der in 1 gezeigten Prozesssteuergeräte kann konfiguriert sein, um Nachrichten zu übertragen oder zu empfangen, einschließlich Nutzlasten, die auf ähnliche Weise wie die Nutzlasten 400 und 500 formatiert sind.
-
Die Nutzlast 400 beinhaltet Nachrichtenabschnitte 402-410. Im Allgemeinen sind die Variablenabschnitte 402-406 „Variablenabschnitte“, die jeweils für eine bestimmte Variable spezifisch sind und konfiguriert sind, um einen Wert für diese bestimmte Variable zu tragen. Beispielsweise beinhaltet der Variablenabschnitt 402 einen Gerätevariablenwert 411 (z. B. einen Wert für die in 2 gezeigte Gerätevariable 125). Falls gewünscht, kann der Abschnitt 402 andere Daten beinhalten, die für die Variable relevant sind.
-
Die Integritätsabschnitte 408 und 410 beinhalten Datenintegritätsprüfungen entsprechend den in den Variablenabschnitten getragenen Werten. Jeder der Abschnitte 408 und 410 kann einen Parameter beinhalten, der den Variablenabschnitt anzeigt, dem die Datenintegritätsprüfung entspricht. Beispielsweise beinhaltet der Integritätsabschnitt 408 eine Datenintegritätsprüfung 425 und einen Parameter 423, der den Nachrichtenabschnitt identifiziert, dem die Datenintegritätsprüfung 421 entspricht. Bezugnehmend beispielsweise auf 2 kann die Datenintegritätsprüfung 425 ein Wert sein, der über die Datenintegritätsformel 132 berechnet wird, wobei der Wert 411 und der Startwert 123 als Eingaben verwendet werden. Der Abschnittsparameter 423 kann einen Wert „402“ (oder jede andere geeignete ID, die den Abschnitt 402 oder den Wert 411 identifiziert) beinhalten, der anzeigt, dass die Prüfung 421 in dem Abschnitt 408 dem Abschnitt 402 (und somit dem Wert 411) entspricht.
-
Ebenso kann der Integritätsabschnitt 410 eine Datenintegritätsprüfung (nicht gezeigt) und einen Parameter beinhalten, der einen Abschnitt anzeigt, dem er entspricht. Beispielsweise kann der Integritätsabschnitt 410 dem Variablenabschnitt 406 oder dem Variablenabschnitt 402 entsprechen (z. B. wenn der Wert 411 von zwei verschiedenen Empfängern empfangen werden soll, entspricht jeder der Abschnitte 408/410 einem anderen Empfänger.
-
In Bezug nun auf 5 entsprechen die Abschnitte 502-510 den in 4 gezeigten Abschnitten 402-410. Ebenso entspricht der Gerätevariablenwert 514 dem Wert 411, die Datenintegritätsprüfung 525 entspricht der Datenintegritätsprüfung 425 und der Abschnittsparameter 523 entspricht dem Abschnittsparameter 423.
-
Die Abschnitte 502-510 beinhalten jedoch zusätzliche Daten, die nicht unbedingt in den Abschnitten 402-410 der Nutzlast 400 beinhaltet sind. Beispielsweise beinhaltet der Variablenabschnitt 502 (i) einen Gerätevariablencode 511, der einen Wert beinhaltet, der für die fragliche Variable eindeutig ist (z. B. eindeutig die in 2 gezeigte Variable 125 identifiziert); (ii) eine Gerätevariablenklassifizierung 512, die einen Wert beinhaltet, der für einen Variablentyp eindeutig ist (z. B. Prozessvariable; Integritätsvariable usw.); (iii) einen Gerätevariableneinheitscode 513, der einen Wert beinhaltet, der eindeutig für die Einheiten ist, die der in Frage kommenden Variablen entsprechen (z. B. Fahrenheit, Celsius, Kelvin usw.); und (iv) einen Gerätevariablenstatus 515, der einen Wert beinhaltet, der einen Status für den Wert 514 anzeigt (z. B. gut oder zuverlässig, schlecht oder unzuverlässig, unbekannt usw.).
-
Ferner kann der Integritätsabschnitt 508 Daten beinhalten, die für die Datenintegritätsprüfung 525 relevant sind. Sie kann beispielsweise Folgendes beinhalten: (i) einen Gerätevariablencode 521, der einen Wert beinhaltet, der für die in Frage kommende Datenintegritätsprüfung eindeutig ist; (ii) eine Gerätevariablenklassifizierung 522, die einen Wert beinhaltet, der für einen Variablentyp eindeutig ist (z. B. angibt, dass die in Frage kommende Variable eine Datenintegritätsprüfung ist); (iii) einen Abschnitt 523, der den Nachrichtenabschnitt identifiziert, dem die Datenintegritätsprüfung 525 entspricht; (iv) einen Sequenzparameter 524, der jedes Mal erhöht wird, wenn der Wert 514 aktualisiert wird; (v) eine Datenintegritätsprüfung 526, z. B. eine CRC, von Konfigurationsdaten, die in dem Abschnitt 502 (d. h. dem relevanten Abschnitt) und in dem Abschnitt 508 beinhaltet sind; und (vi) einen Gerätevariablenstatus, der den Status oder die Zuverlässigkeit der Datenintegritätsprüfung 525 angibt. Die Datenintegritätsprüfung 526 der Konfigurationsdaten kann sicherstellen, dass die Prüfung 525 die beabsichtigten Informationen betrifft. Man betrachte beispielsweise eine Situation, in der die Konfiguration von Grad C auf Grad F geändert wurde oder der Thermoelementtyp geändert wurde. Abhängig von der Ausführungsform wird diese Änderung möglicherweise nicht von der Prüfung 525 des Wertes 514 erfasst. Somit kann die Prüfung 526 beispielsweise Änderungen an Metadaten erfassen, die dem Variablenwert 411/514 zugeordnet sind.
-
IV. Ein beispielhaftes Verfahren zum Übertragen von Nachrichten, die Datenintegritätsprüfungen auf Variablenebene ermöglichen.
-
6 zeigt ein beispielhaftes Verfahren zum Übertragen von Nachrichten, die Variablenwerte beinhalten, auf eine Weise, die es einem empfangenden Gerät ermöglicht, die Integrität der beinhalteten Werte auf einer Variable-für-Variable-Basis zu überprüfen. Das Verfahren 600 kann ganz oder teilweise durch ein oder mehrere geeignete Prozesssteuergeräte implementiert werden, wie sie in den 1 und 2 (z. B. die Steuerungen 24, 26, 50, 52, 54 oder 56; oder die Feldgeräte 40, 42, 60 oder 62) gezeigt sind, und es kann über einen Satz von Schaltkreisen (z. B. des Feldgeräts 60A) implementiert werden, das permanent oder semi-permanent konfiguriert ist, um das Verfahren 600 durchzuführen. In einer Ausführungsform kann das Verfahren 600 durch einen Satz von Anweisungen oder Routinen, die im Speicher gespeichert und von einem Prozessor ausführbar sind, um die Funktionalität des Verfahrens 600 zu implementieren, ausgeführt werden. Es sei darauf hingewiesen, dass sich die folgende Erläuterung zwar auf die in den 1 und 2 gezeigte Struktur beziehen kann, aber es gilt zu beachten, dass das Verfahren 600 durch jedes geeignete Prozesssteuergerät implementiert werden kann, das konfiguriert ist, um Nachrichten einschließlich Prozessvariablenwerte und Variable-für-Variable-Datenintegritätsprüfungen zu übertragen, wie sie hierin beschrieben sind.
-
Das Verfahren 600 beginnt mit einem Schritt 605, bei dem ein erstes Prozesssteuergerät (z. B. das Feldgerät 60A) einen Wert für eine Gerätevariable erfasst. Der Wert kann über eine Sensormessung (z. B. Fluss, Temperatur, Druck, Viskosität, Füllstand, Licht, Schall usw.) oder über eine Berechnung erfasst werden. Ein Beispiel für einen durch Berechnung erfassten Wert ist ein Diagnoseparameter, der den Zustand des ersten Prozesssteuergeräts oder eines Geräts betrifft, das es betätigt (z. B. ein Ventil) oder für Messungen verwendet (z. B. einen Sensor).
-
In einem Schritt 610 berechnet das erste Prozesssteuergerät (z. B. das Feldgerät 60A) eine Datenintegritätsprüfung für jeden erfassten Wert, für den eine verbesserte Datenintegrität erwünscht ist. Die Datenintegritätsprüfung kann ein beliebiger geeigneter Fehlererfassungscode zum Prüfen der Datenintegrität sein, z. B. eine zyklische Redundanzprüfung (CRC), eine Prüfsumme oder ein Hash.
-
Falls gewünscht, können einige der erfassten Werte keine entsprechende Datenintegritätsprüfung aufweisen. Die Datenintegritätsprüfung kann über die in 1B gezeigte Datenintegritätsformel 132 berechnet werden. Im Allgemeinen verwendet die erste Prozesssteuervorrichtung zum Berechnen der Datenintegritätsprüfung den erfassten Wert und einen Startwert als Eingaben in die Formel 132. Der Startwert kann ein beliebiger geeigneter Startwert sein, der dem ersten Prozesssteuergerät und dem beabsichtigten empfangenden Gerät (z. B. der Steuerung 52) bekannt ist. In einer Ausführungsform ist der Startwert ausreichend eindeutig, um die Erfassung einer Maskerade zu ermöglichen.
-
Der Startwert kann beispielsweise eine Kombination aus Folgendem sein: einem Geräte-Tag, das von dem Prozesssteuerungssystem 12 und/oder dem Sicherheitssystem 14 für das Feldgerät 60A verwendet wird; einem Geräte-Tag für die beabsichtigte Steuerung 52; einer Seriennummer des Feldgeräts 60A; einer Seriennummer für die Steuerung 52; einer Hardwareadresse (z. B. einer MAC-Adresse) des Feldgeräts 60A; einer Hardwareadresse der Steuerung 52; einer Standort-ID für die Prozesssteuerungsumgebung 10; einem zufällig erzeugten eindeutigen Wert; oder einer Kombination davon. In einer beispielhaften Ausführungsform ist der Startwert eine Kombination aus einem Geräte-Tag für das Feldgerät 60A und einer Seriennummer für das Feldgerät 60A.
-
In einer Ausführungsform beinhaltet das erste Prozesssteuergerät einen Sequenzparameter für jeden erfassten Wert, der jedes Mal aktualisiert wird, wenn der jeweilige Wert aktualisiert wird. Falls gewünscht, kann dieser Sequenzparameter als eine Eingabe für die Datenintegritätsformel verwendet werden.
-
In einer Ausführungsform erzeugt das erste Prozesssteuergerät einen variablen Status für jeden erfassten Wert, der die relative Zuverlässigkeit des Wertes anzeigt (z. B. gut, schlecht, unbekannt usw.). Falls gewünscht, kann dieser Variablenstatus als eine Eingabe für die Datenintegritätsformel verwendet werden.
-
Falls gewünscht, kann das erste Prozesssteuergerät mehrere Datenintegritätsprüfungen für jeden erfassten Wert berechnen. Dies kann nützlich sein, wenn mehrere andere Prozesssteuergeräte den erfassten Wert empfangen und sich darauf verlassen (z. B. weil der in der Nachricht übertragene erfasste Wert möglicherweise beschädigt wird, wenn die Nachricht ein Gerät über einen ersten Kommunikationspfad erreicht, j edoch nicht beschädigt sein kann, wenn er an einem anderen Gerät über einen zweiten Kommunikationsweg empfangen wird). Ferner kann dies nützlich sein, wenn man einen zweiten Startwert für einen zweiten Verbraucher der Daten wünscht (z. B. ein System höherer Ebene, mit dem man den Startwert aus Sicherheitsgründen nicht teilen möchte).
-
In einem Schritt 615 kodiert das erste Prozesssteuergerät (z. B. das Feldgerät 60A) eine Nachricht mit jedem erfassten Wert und jeder entsprechenden Datenintegritätsprüfung (sofern eine existiert). Die Nachricht kann gemäß Formaten wie denen der Nachrichten 400 und 500 in 4 und 5 codiert werden. Die Nachricht kann derart codiert sein, dass sie jede Eingabe beinhaltet, die zum Berechnen der Datenintegritätsberechnungen verwendet wird. Somit kann in Ausführungsformen, in denen die Datenintegritätsformel für eine gegebene Variable basierend auf dem Variablenwert, der Sequenznummer der Variablen, dem Status der Variablen und dem Startwert berechnet wird, die Nachricht den Variablenwert, die Sequenznummer und den Variablenstatus für die angegebene Variable beinhalten.
-
Beispielsweise kann die Nachricht eine Nutzlast mit mehreren Abschnitten beinhalten, von denen jeder einer anderen Variablen entspricht (siehe z. B. die Abschnitte 402-406, die in 4 gezeigt sind). Für jeden Wert mit einer Datenintegritätsprüfung kann die Nachricht dann einen zusätzlichen Abschnitt beinhalten, der der Datenintegritätsprüfung entspricht (siehe z. B. die Abschnitte 408 und 410 in 4).
-
Zur Veranschaulichung kann die Nachricht einen ersten, zweiten und dritten Abschnitt beinhalten, der einer ersten, zweiten beziehungsweise dritten Variablen entspricht. Wenn Datenintegritätsprüfungen für die erste und dritte Variable, jedoch nicht für die zweite (beispielsweise) erwünscht sind, kann die Nachricht ebenso vierte und fünfte Abschnitte beinhalten, einschließlich Datenintegritätsprüfungen für die erste Variable (z. B. im vierten Abschnitt) und eine Datenintegritätsprüfung für die dritte Variable (z. B. im fünften Abschnitt).
-
Die Nachricht kann ein Mittel zum Bestimmen von Variablenwerten oder Nachrichtenabschnitten beinhalten, denen die Integritätsabschnitte und Datenintegritätsprüfungen entsprechen. Beispielsweise kann jeder Integritätsabschnitt in der Nachricht einen Parameter „Abschnittsnummer“ beinhalten, der die Position des Abschnitts innerhalb der Nachricht angibt, der den entsprechenden Variablenwert trägt. Zur Veranschaulichung kann der Parameter 422 auf „402“ eingestellt werden, wenn der Integritätsabschnitt 408 dem Variablenwert in dem Abschnitt 402 entspricht. Wenn die Nachricht mehrere Datenintegritätsprüfungen für einen einzelnen erfassten Wert beinhaltet, können mehrere Integritätsabschnitte einen Parameter „Abschnittsnummer“ beinhalten, der denselben variablen Wertabschnitt identifiziert.
-
In einigen Ausführungsformen können bis zu acht Abschnitte pro Nachricht erwartet werden und die „Abschnittnummer“ in den Integritätsabschnitten kann auf 0-7 eingestellt werden, um den Variablenabschnitt anzugeben, dem sie entspricht. Falls gewünscht, können die Variablen- und Integritätsabschnitte mit zusätzlichen und/oder alternativen Informationen codiert werden, z. B. den unter Bezugnahme auf 5 erörterten.
-
In einem Schritt 620 überträgt das erste Prozesssteuergerät (z. B. das Feldgerät 60A) die Nachricht derart, dass die Nachricht von einem zweiten Prozesssteuergerät (z. B. einer der Steuerung 50-56 oder 24/26, einem der Feldgeräte 40/42/60/62, der Arbeitsstation 16, einem Historiker usw.) empfangen werden kann. Abhängig von der Ausführungsform kann das erste Prozesssteuergerät die Nachricht über eine drahtgebundene oder drahtlose Verbindung übertragen. Im Allgemeinen ist das zweite Prozesssteuergerät ein Gerät, das konfiguriert ist, um eine Funktion als Teil eines Steuerschemas für den in der Prozesssteuerungsumgebung (z. B. der Anlage 10) gesteuerten Prozess zu implementieren. Das Steuerschema kann ein Sicherheitssystemschema (z. B. implementiert über das Sicherheitssystem 14) sein, das für die Aufrechterhaltung des sicheren Betriebs der Ausrüstung in der Umgebung verantwortlich ist (z. B. das für das Antreiben eines oder mehrerer Prozesssteuergeräte in der Umgebung als Reaktion auf das Erfassen instabiler oder anderweitig potenziell gefährlicher Bedingungen verantwortlich ist). In einer Ausführungsform ist das Steuerschema ein Prozesssteuerschema oder eine Prozesssteuerstrategie (z. B. implementiert über das Prozesssteuerungssystem 12) zum Steuern des Prozesses, um ein Steuerungsziel zu erreichen (z. B. ein gewünschtes Produkt oder eine Chemikalie z. B. Ethanol herzustellen, Strom zu erzeugen, etc.). Während das Sicherheitssystemschema als „passives“ System gekennzeichnet werden kann, das nur eingreift, wenn potenziell unsichere Bedingungen auftreten, ist das Prozesssteuerungssystem typischerweise aktiver, reagiert kontinuierlich auf Prozessbedingungen und versucht, verschiedene Aspekte des Prozesses in gewünschte Zustände zu bringen, um das gewünschte Ziel zu erreichen.
-
Das erste und das zweite Prozesssteuergerät können konfiguriert sein, um die Nachricht über ein Veröffentlichungs-/Abonnementmodell zu übertragen und zu empfangen (z. B. wenn das erste Gerät die Nachricht regelmäßig ohne Aufforderung durch das zweite Gerät überträgt) oder um die Nachricht gemäß einer Anfrage-/Antwortnachricht (z. B. wobei das erste Gerät die Nachricht als Reaktion auf eine Anfrage von dem zweiten Gerät überträgt) zu übertragen. In einer Ausführungsform sind das erste und das zweite Prozesssteuergerät jeweils derart konfigurierbar, dass sie nach Wunsch entweder das Anfrage-/Antwortmodell oder das Veröffentlichungs-/Abonnementmodell implementieren.
-
Das erste und das zweite Prozesssteuergerät können konfiguriert sein, um die Nachricht gemäß jedem geeigneten Protokoll zu übertragen und zu empfangen, das in einer Prozesssteuerungsumgebung implementiert werden kann, vorausgesetzt, dass solche Protokolle die hierin beschriebenen Variable-für-Variable-Datenintegritätsprüfungen aufnehmen können oder modifiziert werden können, um sie aufzunehmen. Beispielhafte Protokolle, die von dem ersten und dem zweiten Prozesssteuergerät verwendet werden können, beinhalten HART, HART-IP, WirelessHART, Profibus, FOUNDATION™-Fieldbus, Ethernet/IP, ControlNet, DeviceNet, Modbus, OPC UA usw.
-
In einigen Fällen wird das Verfahren 600 mit einer Rate implementiert, die proportional zu einem Abtastzyklus ist (z. B. jeder Abtastzyklus, jeder zweite Abtastzyklus usw.). Im Allgemeinen tritt ein Abtastzyklus während jeder Abtastzykluszeit auf (die jede beliebige Zeit sein kann, z. B. 1 ms, 100 ms, 1 Sekunde usw.). Der Abtastzyklus ist im Allgemeinen ein Zyklus, während dem die relevante Steuerung Eingaben sammelt, einen Steueralgorithmus ausführt und Ausgaben entsprechend aktualisiert. Dementsprechend kann das Feldgerät 60A in Fällen, in denen die Steuerung 52 konfiguriert ist, um einen Abtastzyklus während einer gegebenen Abtastzeit zu implementieren, konfiguriert sein, um das Verfahren 600 mit einer Rate gleich der Abtastrate oder mit einer schnelleren Rate (z. B. harmonische Periode relativ zur Abtastzeit) (z. B. wobei dadurch der Steuerung 52 die aktuellsten Feldgerätevariablenwerte bereitgestellt werden) zu implementieren.
-
In einigen Fällen wird das Verfahren 600 jedes Mal implementiert, wenn eine Änderung in einer relevanten Feldgerätevariable erfasst wird (z. B. einer Variablen, für die das Feldgerät 60A konfiguriert ist, Werte zu übertragen).
-
Falls gewünscht, kann das Verfahren 600 durch ein beliebiges geeignetes Gerät implementiert werden, um eine Nachricht, die einen oder mehrere Variablenwerte beinhaltet, auf eine Weise zu übertragen, die die Überprüfung der Datenintegrität auf einer Variable-für-Variable-Basis ermöglicht. In einigen Fällen beispielsweise kann eine Steuerung (z. B. der Logiklöser 50-56 oder die Prozesssteuerung 24/26), eine Arbeitsstation (entfernt oder lokal in der Prozesssteuerungsumgebung 10), ein Historiker, ein Gerät in einem Postenverwaltungssystem (AMS), ein Netzwerkgerät oder ein beliebiges anderes gewünschtes Gerät, das in einer Prozesssteuerungsumgebung implementiert werden könnte, das Verfahren 600 implementieren, um Nachrichten zu übertragen, die die Überprüfung der Datenintegrität auf einer Variable-für-Variable-Basis ermöglichen. Als ein Ergebnis kann jedes derartige Prozesssteuergerät in einer Ausführungsform die vorstehend beschriebene Funktionalität implementieren, die von dem Feldgerät 60A durchgeführt wird. Ebenso kann das zweite Prozesssteuergerät (d. h. der Empfänger der übertragenen Nachricht) eines dieser Geräte sein.
-
V. Ein beispielhaftes Verfahren zum Empfangen von Nachrichten, die Datenintegritätsprüfungen auf Variablenebene ermöglichen.
-
7 zeigt ein beispielhaftes Verfahren 700 zum Empfangen von Nachrichten, die Variablenwerte beinhalten, auf eine Weise, die die Überprüfung der Integrität der empfangenen Werte auf einer Variable-für-Variable-Basis ermöglicht. Das Verfahren 700 kann ganz oder teilweise durch ein oder mehrere geeignete Prozesssteuergeräte implementiert werden, wie sie in den 1 und 2 (z. B. die Steuerungen 24, 26, 50, 52, 54 oder 56; oder die Feldgeräte 40, 42, 60 oder 62) gezeigt sind, und es kann über einen Satz von Schaltkreisen (z. B. die Steuerung 52) implementiert werden, die permanent oder semipermanent konfiguriert sind, um das Verfahren 700 durchzuführen. In einer Ausführungsform kann das Verfahren 700 durch einen Satz von Anweisungen oder Routinen, die im Speicher gespeichert und von einem Prozessor ausführbar sind, um die Funktionalität des Verfahrens 700 zu implementieren, ausgeführt werden. Es sei darauf hingewiesen, dass die folgende Erläuterung zwar das Verfahren 700 in Bezug auf die in den 1 und 2 gezeigte Struktur beschreibt, aber es gilt zu beachten, dass das Verfahren 600 durch jedes geeignete Prozesssteuergerät implementiert werden kann, das konfiguriert ist, um Nachrichten einschließlich Prozessvariablenwerte und Variable-für-Variable-Datenintegritätsprüfungen zu empfangen, wie sie hierin beschrieben sind.
-
Das Verfahren 700 kann implementiert sein, um eine Nachricht zu handhaben, die von einem ersten Prozesssteuergerät übertragen wird, das (einen) Prozessvariablenwert(e) und (eine) Variable-für-Variable-Datenintegritätsprüfung(en) beinhaltet. Insbesondere kann das Verfahren 700 durch ein zweites Prozesssteuergerät implementiert werden, z. B. die Steuerung 52, die in 1 und 2 gezeigt ist.
-
Das Verfahren beginnt bei einem Schritt 705 damit, dass das zweite Prozesssteuergerät (z. B. die Steuerung 52) die Nachricht von dem ersten Prozesssteuergerät (z. B. dem Feldgerät 60A) empfängt. In einigen Fällen kann das zweite Prozesssteuergerät die Nachricht von einem beliebigen geeigneten Gerät (Feldgerät oder anderweitig) empfangen, das konfiguriert ist, um Nachrichten auf eine Weise zu übertragen, die eine Variabel-für-Variable-Datenintegritätsprüfung auf eine Weise ermöglicht, die mit den beschriebenen Techniken übereinstimmt. Die Nachricht kann über eine drahtgebundene oder drahtlose Verbindung empfangen werden.
-
In einem Schritt 710 decodiert das zweite Prozesssteuergerät (z. B. die Steuerung 52) die empfangene Nachricht, um (i) Kandidatenwerte für Gerätevariablen und (ii) Datenintegritätsprüfung(en) für jeden der Kandidatenwerte zu identifizieren. In einigen Fällen kann die Nachricht variable Werte beinhalten, für die keine Datenprüfung existiert. Das heißt, falls gewünscht, kann die Nachricht eine Kombination von Feldgerätwerten mit einer Datenintegritätsprüfung und Feldgerätewerten ohne Datenintegritätsprüfung beinhalten.
-
Ferner kann die Nachricht in einigen Fällen mehrere Datenintegritätsprüfungen für einen gegebenen Kandidatenwert beinhalten (z. B. wobei jede Datenintegritätsprüfung für einen anderen Empfänger der Nachricht bestimmt ist). In solchen Fällen muss das zweite Prozesssteuergerät bestimmen, welche Datenintegritätsprüfung dem gegebenen Kandidatenwert entspricht. In einigen Ausführungsformen ist das zweite Prozesssteuergerät derart vorkonfiguriert, dass es annimmt, dass ihm eine der Datenintegritätsprüfungen zugewiesen ist (z. B. kann sich die Datenintegritätsprüfung für das zweite Prozesssteuergerät immer an derselben relativen Position oder demselben relativen Abschnitt der Nachricht befinden). In einigen Ausführungsformen beinhaltet die Nachricht einen Parameter für jede der Datenintegritätsprüfungen, um das empfangende Gerät, dem sie entspricht, zu identifizieren (z. B. einen Parameter für jede Datenintegritätsprüfung, der das Tag des vorgesehenen empfangenden Geräts, die Seriennummer, die eindeutige Kennung, IP-Adresse usw. identifiziert).
-
Beim Decodieren der Nachricht kann das zweite Prozesssteuergerät (z. B. die Steuerung 52) die Nachricht analysieren, um zu bestimmen, welche Abschnitte der Nachricht Variablenabschnitte sind (d. h. Abschnitte, die einen Gerätevariablenwert tragen) und welche Abschnitte Integritätsabschnitte sind (d. h. Abschnitte, die Datenintegritätsprüfungen für die Gerätevariablenwerte durchführen). Zu diesem Zweck kann jeder Abschnitt der Nachricht einen Parameter oder ein Feld beinhalten, das seinen Typ angibt (z. B. einen Gerätevariablencode, der anzeigt, dass ein Abschnitt ein Variablenabschnitt ist, ein Integritätsabschnitt usw.). Das zweite Prozesssteuergerät analysiert dann die Integritätsabschnitte, um die Variablenabschnitte zu bestimmen, denen die Integritätsabschnitte entsprechen. Dies kann das Analysieren eines Parameters „Abschnittnummer“ in jedem Integritätsabschnitt beinhalten, der den Abschnitt in der Nachricht anzeigt, dem der Integritätsabschnitt entspricht.
-
In einem Schritt 715 berechnet das zweite Prozesssteuergerät (z. B. die Steuerung 52) eine zweite Datenintegritätsprüfung für die Kandidatenwerte. Unter Bezugnahme auf die 2 und 4 kann die Steuerung 52 beispielsweise einen Kandidatenwert 411 im Abschnitt 402 und eine entsprechende Datenintegritätsprüfung 421 im Abschnitt 408 identifizieren. Sie kann dann eine zweite Datenintegritätsprüfung unter Verwendung des Wertes 411 und eines vorbestimmten Startwerts als Eingaben in die Formel 132 berechnen. Sie kann dann die zweite Integritätsprüfung dauerhaft oder temporär speichern. Auf ähnliche Weise kann das zweite Prozesssteuergerät eine zweite Datenintegritätsprüfung für jede der anderen in der Nachricht beinhalteten Datenintegritätsprüfungen berechnen.
-
In einem Schritt 720 wählt das zweite Prozesssteuergerät (z. B. die Steuerung 52) erste und zweite Datenintegritätsprüfungen für einen gegebenen Kandidatenwert zum Vergleichen aus. Um beispielsweise beim vorherigen Beispiel zu bleiben, kann die Steuerung 52 den Wert 411 und die Datenintegritätsprüfung 421 entsprechend dem Wert 411 auswählen.
-
In einem Schritt 725 vergleicht das zweite Prozesssteuergerät (z. B. die Steuerung 52) die ersten und zweiten Datenintegritätsprüfungen. Für den Wert 411 kann die Steuerung 52 beispielsweise die empfangene Datenintegritätsprüfung 421 mit der von der Steuerung 52 berechneten Datenintegritätsprüfung unter Verwendung des Wertes 411 und des Startwertes als Eingaben vergleichen. Wenn sich der Wert 411 seit der Datenintegritätsprüfung 421 nicht geändert hat, sollten die erste und die zweite Datenintegritätsprüfung übereinstimmen. Wenn sich der Wert 411 geändert hat (oder wenn sich die Sequenznummer in Ausführungsformen geändert hat, die die Sequenznummer zum Berechnen von Integritätsprüfungen verwenden), stimmen die ersten und zweiten Integritätsprüfungen nicht überein.
-
In einem Schritt 730 geht das zweite Prozesssteuergerät (z. B. die Steuerung 52) zu einem Schritt 740, wenn die erste und die zweite Datenintegritätsprüfung übereinstimmen (was anzeigt, dass sich der Kandidatenwert seit der Berechnung der ersten Datenintegritätsprüfung nicht geändert hat, und wodurch angezeigt wird, dass der empfangene Kandidatenwert der erfasste Wert ist, den das Feldgerät 60A übertragen soll) und zu einem Schritt 735 über, wenn dies nicht der Fall ist (wodurch angezeigt wird, dass der Wert 411 irgendwie anders ist als der ursprüngliche Wert, der von dem Feldgerät 60A übertragen wurde).
-
In Schritt 735 verwirft das zweite Prozesssteuergerät (z. B. die Steuerung 52) als Reaktion auf das Bestimmen, dass eine Nichtübereinstimmung der Datenintegritätsprüfung existiert, den gegebenen Kandidatenwert, der der ersten und der zweiten Datenintegritätsprüfung entspricht. Das heißt, es wird fortgesetzt, ohne die entsprechende Prozessvariable mit dem Wert 411 zu aktualisieren. Das zweite Prozesssteuergerät und das größere Steuersystem oder Sicherheitssystem können den Betrieb unter der Annahme fortsetzen, dass der Wert der in Frage kommenden Variablen der Wert ist, den sie vor dem Empfang der Nachricht hatte. In einigen Fällen kann das zweite Prozesssteuergerät einen Alarm (z. B. über eine Arbeitsstation) als Reaktion auf das Erfassen, dass eine Nichtübereinstimmung besteht (oder auf den Empfang einer bestimmten Anzahl von Nichtübereinstimmungen im Verlauf einer bestimmten Zeitperiode oder über den Zeitraum einer bestimmten Anzahl von Nachrichten) erzeugen. In einigen Fällen kann das zweite Prozesssteuergerät bestimmen, dass es zu riskant ist, den Betrieb in einem solchen Zustand fortzusetzen, und es kann eine Nachricht an das erste Feldgerät (z. B. das Feldgerät 60A) übertragen, um zu bewirken, dass es in einen sicheren Zustand (z. B. durch Öffnen oder Schließen eines Ventils) übergeht.
-
In Schritt 740 aktualisiert das zweite Prozesssteuergerät (z. B. die Steuerung 52) als Reaktion auf das Bestimmen, dass eine Übereinstimmung der Datenintegritätsprüfung existiert, eine Prozessvariable, die der Feldgerätevariable mit dem Kandidatenwert entspricht.
-
Beispielsweise kann ein Ventil CV001 vor dem Implementieren des Verfahrens 700 eine Position von 25 % offen aufweisen. In der empfangenen Nachricht kann die in Frage kommende Variable eine Ventilstellung für CV001 sein, und der Kandidatenwert in der Nachricht kann 50 % offen sein (was anzeigt, dass sich die Ventilstellung geändert hat). Als Reaktion auf das Erfassen einer Nichtübereinstimmung der Datenintegrität kann die Steuerung 52 den Kandidatenwert verwerfen und z. B. den Betrieb unter der Annahme fortsetzen, dass das Ventil immer noch zu 25 % geöffnet ist, dass die Ventilstellung unbekannt ist usw.
-
Als Reaktion auf das Überprüfen der Integrität des empfangenen Werts kann die Steuerung 52 jedoch eine Systemvariable aktualisieren, die die Ventilstellung auf 50 % darstellt. Dementsprechend können die Steuerung 52, das Steuersystem 12 und/oder das Sicherheitssystem 14 basierend auf dieser aktualisierten Steuerventilstellung arbeiten (z. B. Steuerroutinen implementieren). In einigen Ausführungsformen ist die aktualisierte Prozessvariable eine Systemvariable, auf die Komponenten des Steuersystems 12 und/oder des Sicherheitssystems 14 zugreifen können. In einigen Ausführungsformen ist die aktualisierte Prozessvariable eine lokale Variable an der Steuerung 52.
-
In einem Schritt 745 bestimmt das zweite Prozesssteuergerät (z. B. die Steuerung 52), ob die empfangene Nachricht zusätzliche Kandidatenwerte beinhaltet, für die Datenintegritätsprüfungen in den Schritten 725 und 730 nicht analysiert wurden. Wenn in der Nachricht zusätzliche Kandidatenwerte vorhanden sind, geht die Steuerung zu Schritt 720 über; andernfalls geht sie zu Schritt 750 über. Bezugnehmend beispielsweise auf 4 kann die Steuerung 52 bestimmen, dass der Variablenabschnitt 406 der Nachricht 400 ebenso einen Integritätsabschnitt (z. B. Abschnitt 408) aufweist. Als ein Ergebnis kann die Steuerung 52 mit Schritt 720 fortfahren, um die Integrität des im Variablenabschnitt 406 beinhalteten Werts zu analysieren.
-
In Schritt 750 beendet das zweite Prozesssteuergerät (z. B. die Steuerung 52) die Analyse der empfangenen Nachricht und geht zu einer nächsten Aufgabe (z. B. Handhabung einer neuen Nachricht, die während einer zukünftigen Abtastung empfangen wurde) über.
-
In einigen Fällen ist die Steuerung 52 (oder jedes andere Gerät, das das Verfahren 700 implementiert) konfiguriert, um einen Abtastzyklus zu Beginn einer vorbestimmten Abtastperiode oder -zeit zu implementieren. In solchen Fällen wird das Verfahren 600 in jedem Abtastzyklus von der Steuerung 52 implementiert. Es ist zu beachten, dass das Verfahren 600 durch jedes geeignete Gerät implementiert werden kann, das konfiguriert ist, um Nachrichten zu empfangen und die Integrität der beinhalteten Variablenwerte auf einer Variablen-für-Variablen-Basis zu überprüfen. Beispielsweise kann in einigen Fällen ein intelligentes Feldgerät das Verfahren 600 implementieren.
-
Ferner, wie mit Bezug auf 6 erläutert, können das erste und das zweite Prozesssteuergerät konfiguriert sein, um die Nachricht über ein Abonnement/Veröffentlichungsmodell zu übertragen und zu empfangen (z. B. wenn das erste Gerät die Nachricht regelmäßig ohne Aufforderung durch das zweite Gerät überträgt) oder um die Nachricht gemäß einer Anfrage-/Antwortnachricht (z. B. wobei das erste Gerät die Nachricht als Reaktion auf eine Anfrage von dem zweiten Gerät überträgt) zu übertragen. In einer Ausführungsform sind das erste und das zweite Prozesssteuergerät jeweils derart konfigurierbar, dass sie nach Wunsch entweder das Anfrage-/Antwortmodell oder das Veröffentlichungs-/Abonnementmodell implementieren. Zusätzlich, wie mit Bezug auf 6 angemerkt, können das erste und das zweite Prozesssteuergerät konfiguriert sein, um die Nachricht gemäß jedem geeigneten Protokoll zu übertragen und zu empfangen, das in einer Prozesssteuerungsumgebung implementiert werden kann, vorausgesetzt, dass solche Protokolle die hierin beschriebenen Variable-für-Variable-Datenintegritätsprüfungen aufnehmen können oder modifiziert werden können, um sie aufzunehmen.
-
VI. Weitere Überlegungen
-
In einer Ausführungsform kann der Restfehler für einen einzelnen Nachrichtenabschnitt (manchmal als SLOT bezeichnet) berechnet werden. Abhängig von der Ausführungsform können die folgenden Annahmen verwendet werden (jedoch nicht notwendigerweise): Einschränkung, dass der Datenpfad für die Kommunikation abgeschirmtes verdrilltes Paar verwendet, die Bitfehlerrate im schlimmsten Fall auf 10-4 begrenzt; das 0x9eb2-16-Bit-CRC-(CRC-16-DNP)-Polynom eine Hamming-Distanz von 6 für Nachrichten mit weniger als 135 Bit (oder 16 Byte) aufweist; sogar Bitfehler von mehr als der Hamming-Distanz ein vernachlässigbarer Beitrag zum Ergebnis sind (ungerade Fehler werden erfasst); das Datenwort 6 Bytes - 48 Bits (Gleitkomma + Status + Seq.-Nr.) ist; das Codewort 8 Bytes - 64 Bits (Datenwort + 2 Bytes CRC) ist; die Wahrscheinlichkeit eines 6-Bit-Fehlers in einem 64-Bit-Codewort 7,45408-17 für eine gegebene BER beträgt. Unter diesen Annahmen kann es für das 0x9eb2-16-Bit-CRC-Polynom 2051 mögliche 6-Bit-Fehler für die Datenwortgröße geben. Unter solchen Annahmen beträgt die Wahrscheinlichkeit eines nicht erfassten 6-Bit-Fehlers 2,83214-24. Unter der Annahme einer Transferrate von 40 Hz kann ein PFH 4,07828-19 betragen.
-
In einigen Ausführungsformen kann die Implementierung der beschriebenen Systeme sowohl eine sichere Netzwerkverbindung als auch eine benutzerbasierte oder rollenbasierte Autorisierung beinhalten. HART-IP unterstützt beispielsweise den Aufbau einer sicheren Verbindung unter Verwendung von TLS und DTLS. Eine rollenbasierte Autorisierung kann wünschenswert sein, da der „Benutzer“ eine Steuerung oder eine Sicherheitsanwendung sein kann. In einigen Ausführungsformen kann das beschriebene System ohne benutzer-/rollenbasierte Autorisierung implementiert werden.
-
Es folgen Beschreibungen verschiedener Aspekte, Vorrichtungen, Systeme, Komponenten, Geräte, Verfahren und Techniken zum Verwalten diskreter Prozesssteuerungselemente (z. B. diskreter Geräte, diskreter Kommunikationskanäle, diskreter Signale usw.) und zur intelligenten Inbetriebnahme diskreter Elemente im Steuerungssystem 5.
-
Wenn sie in Software implementiert sind, können alle der hierin beschriebenen Anwendungen, Dienste und Maschinen in jedem materiellen, nichtflüchtigen, computerlesbaren Speicher, z. B. auf einer Magnetplatte, einer Laserplatte, einem Festkörper-Speichergerät, einem molekularen Speichergerät oder einem anderen Speichermedium, in einem RAM oder ROM eines Computers oder Prozessors usw., gespeichert werden. Obwohl die hierin offenbarten Beispielsysteme derart offenbart werden, dass sie neben anderen Komponenten auf Hardware ausgeführte Software oder Firmware beinhalten, sei darauf hingewiesen, dass solche Systeme rein beispielhaft sind und nicht als einschränkend angesehen werden sollten. Beispielsweise wird in Betracht gezogen, dass einige oder alle dieser Hardware-, Software- und Firmwarekomponenten ausschließlich in Hardware, ausschließlich in Software oder in einer beliebigen Kombination aus Hardware und Software eingeschlossen sein können. Dementsprechend werden die hierin beschriebenen beispielhaften Systeme zwar als in Software implementiert beschrieben, die auf einem Prozessor eines oder mehrerer Computergeräte ausgeführt wird, aber ein Fachmann wird leicht verstehen, dass die angegebenen Beispiele nicht die einzige Möglichkeit sind, solche Systeme zu implementieren.
-
Unter besonderer Bezugnahme auf die Verfahren 600 und 700 können die beschriebenen Funktionen ganz oder abschnittweise durch die Geräte, Schaltkreise oder Routinen des in 1 und 2 gezeigten Systems 10 implementiert werden. Jedes der beschriebenen Verfahren kann durch einen Satz von Schaltkreisen ausgeführt sein, die permanent oder semipermanent konfiguriert sind (z. B. ein ASIC oder FPGA), um logische Funktionen des jeweiligen Verfahrens durchzuführen, oder die wenigstens temporär konfiguriert sind (z. B. ein oder mehrere Prozessoren und ein Satz von Anweisungen oder Routinen, die die logischen Funktionen darstellen und in einem Speicher gespeichert sind), um die logischen Funktionen des jeweiligen Verfahrens durchzuführen.
-
In dieser gesamten Patentschrift können mehrere Instanzen Komponenten, Vorgänge oder Strukturen implementieren, die als einzelne Instanz beschrieben sind. Obwohl einzelne Vorgänge von einem oder mehreren Verfahren als separate Vorgänge dargestellt und beschrieben sind, können einer oder mehrere der einzelnen Vorgänge bei gewissen Ausführungsformen gleichzeitig ausgeführt werden.
-
Wie hierin verwendet, bedeutet jede Bezugnahme auf „eine Ausführungsform“, dass ein bestimmtes Element, ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, wie in Verbindung mit der Ausführungsform beschrieben, in wenigstens einer Ausführungsform beinhaltet ist. Die Verwendungen des Ausdrucks „in einer Ausführungsform“ an verschiedenen Stellen in der Patentschrift beziehen sich nicht notwendigerweise alle auf dieselbe Ausführungsform.
-
Wie hierin verwendet, sollen die Begriffe „umfasst“, „umfassend“, „beinhaltet“, „beinhaltend“, „aufweist“, „aufweisend“ oder eine andere Variation davon eine nicht ausschließliche Einbeziehung abdecken. Beispielsweise ist ein Prozess, ein Verfahren, ein Artikel oder eine Vorrichtung, der/das/die eine Liste von Elementen umfasst, nicht notwendigerweise nur auf diese Elemente eingeschränkt, sondern kann auch andere Elemente beinhalten, die nicht ausdrücklich aufgeführt sind oder einem solchen Prozess, Verfahren, Artikel oder einer solchen Vorrichtung nicht ausdrücklich inhärent sind. Sofern nicht ausdrücklich anders angegeben, bezieht sich „oder“ auf ein inklusives Oder und nicht auf ein exklusives Oder. Beispielsweise wird eine Bedingung A oder B durch eine beliebige der folgenden Bedingungen erfüllt: A ist wahr (oder vorhanden) und B ist falsch (oder nicht vorhanden), A ist falsch (oder nicht vorhanden) und B ist wahr (oder vorhanden) und sowohl A als auch B sind wahr (oder vorhanden).
-
Ferner bedeutet der Ausdruck „wobei das System X, Y und/oder Z beinhaltet“, dass das System ein X, ein Y, ein Z oder eine Kombination davon beinhaltet. Ebenso bedeutet der Ausdruck „wobei die Komponente für X, Y oder Z konfiguriert ist“, dass die Komponente für X konfiguriert ist, für Y konfiguriert ist, für Z konfiguriert ist oder für eine Kombination von X, Y und Z konfiguriert ist.
-
Zusätzlich wird die Verwendung von „ein“, „eine“, „einer“, „eines“, „einem“ oder „einen“ verwendet, um Elemente und Komponenten der Ausführungsformen hierin zu beschreiben. Diese Beschreibung und die folgenden Ansprüche sollten so gelesen werden, dass sie eines oder wenigstens eines davon beinhalten. Der Singular beinhaltet ebenso den Plural, sofern nicht offensichtlich ist, dass dies anders gemeint ist.
-
In verschiedenen Ausführungsformen können hierin beschriebene Hardwaresysteme mechanisch oder elektronisch implementiert werden. Beispielsweise kann ein Hardwaresystem eine dedizierte Schaltung oder Logik beinhalten, die permanent konfiguriert ist (z. B. als Spezialprozessor, z. B. ein feldprogrammierbares Gate-Array (FPGA) oder ein anwendungsspezifischer integrierter Schaltkreis (ASIC), um bestimmte Vorgänge auszuführen). Ein Hardwaresystem kann ebenso eine programmierbare Logik oder Schaltung (z. B. wie sie in einem Universalprozessor oder einem anderen programmierbaren Prozessor beinhaltet ist) beinhalten, die temporär durch die Software konfiguriert wird, um bestimmte Vorgänge durchzuführen. Es versteht sich, dass die Entscheidung, ein Hardwaresystem mechanisch, in dedizierten und permanent konfigurierten Schaltungen oder in vorübergehend konfigurierten Schaltungen (z. B. durch Software konfiguriert) zu implementieren, aus Kosten- und Zeitgründen erfolgen kann.