-
VERWANDTE ANMELDUNG
-
Diese Anmeldung ist eine Teilfortführungsanmeldung der US-Patentanmeldung Nr. 12/730,895, eingereicht am 24. März 2010, auf die hier in vollem Umfang Bezug genommen wird.
-
GEBIET DER OFFENBARUNG
-
Die vorliegende Offenbarung betrifft allgemein Prozesssteuerungssysteme und insbesondere Verfahren und eine Vorrichtung zum Anzeigen von Prozessdaten.
-
HINTERGRUND
-
Datensysteme wie Steuerungssysteme, Fertigungsautomationssysteme und andere industrielle Systeme wie jene, die in chemischen, Erdöl- und anderen Prozessen verwendet werden, können Daten auf einem Server speichern, um autorisierten Benutzern von jedem Ort aus den Zugriff auf die Daten zu gestatten. Die Daten können typischerweise auf Servern gespeichert werden, die sich an ein Interoperabilitäts-Datenpackungsformat halten, wie beispielsweise OPC. Das OPC ist ein Satz von Standards, die protokollbasierte Schnittstellen für Server definieren, die Zugriff auf industrielle Prozessdaten, Automatisierungsdaten, Fertigungsdaten und/oder Chargendaten bereitstellen.
-
Clients können zurzeit die Verbindung zu einem Server herstellen, der mit einem Interoperabilitäts-Datenpackungsformat assoziiert ist, indem eine Anwendung erstellt wird, die für den Server oder einen auf dem Server gespeicherten Datentyp spezifisch ist. Eine Anwendung kann beispielsweise als ausführbares Programm in einer prozeduralen Programmiersprache geschrieben werden, die auf einer bestimmten Betriebsplattform läuft und sich an ein Kommunikationsprotokoll eines entsprechenden Interoperabilitäts-Datenpackungsformats hält, das von einem Server verwendet wird. Die Anwendung kann von einem Server-Anbieter oder einem Client-Anbieter erstellt werden, der die Anwendung speziell für den bestimmten Server konfiguriert. In Beispielen, in denen ein Client auf Daten zugreifen muss, die auf mehreren Servern gespeichert sind, muss möglicherweise eine separate Anwendung für jeden Server erstellt werden, um den spezifischen Schnittstellenanforderungen der Server zu entsprechen. Jede dieser Anwendungen muss möglicherweise außerdem modifiziert werden, wenn die auf dem entsprechenden Server gespeicherten Daten auf einen anderen Server migriert werden und/oder wenn die Schnittstellenanforderungen des Servers geändert werden.
-
ZUSAMMENFASSUNG
-
Es werden beispielhafte Verfahren und Vorrichtungen zur Anzeige von Prozessdaten beschrieben. In einem Beispiel umfasst ein Verfahren das Empfangen einer Anforderung zum Betrachten von Prozessdaten über einen Webbrowser und Identifizieren eines Servers, der die Prozessdaten speichert, wobei der Server die Prozessdaten von einem Prozesssteuerungssystem empfängt. Das beispielhafte Verfahren umfasst auch das Abrufen der Prozessdaten von dem Server und Auswählen einer Extensible Stylesheet Language Transformation(XSLT)-Vorlage basierend auf einer Eigenschaft der Prozessdaten. Das beispielhafte Verfahren umfasst ferner das Generieren einer Anzeigedatei, die einem Webbrowserformat entspricht, basierend auf der XSLT-Vorlage, der Eigenschaft und den Prozessdaten, wobei die Anzeigedatei spezifiziert, wie die Prozessdaten über den Webbrowser angezeigt werden sollen.
-
Eine beispielhafte Vorrichtung schließt einen Adapter zum Identifizieren eines Servers ein, der angeforderte Prozessdaten speichert, wobei der Server die Prozessdaten von einem Prozesssteuerungssystem empfängt. Der beispielhafte Adapter dient auch zum Zugreifen auf die Prozessdaten von dem Server. Die beispielhafte Vorrichtung umfasst auch einen Datenprozessor zum Auswählen einer Vorlage basierend auf einer Eigenschaft der Prozessdaten. Die beispielhafte Vorrichtung umfasst ferner eine webbasierte Schnittstelle zum Generieren einer Anzeigedatei, die einem Webbrowserformat entspricht, basierend auf der Vorlage, der Eigenschaft und den Prozessdaten, wobei die Anzeigedatei spezifiziert, wie die Prozessdaten über eine Client-Anwendung angezeigt werden sollen.
-
Ein Aspekt der Erfindung betrifft ein maschinenlesbares Medium mit darauf gespeicherten Anweisungen, die bei Ausführung bewirken, dass eine Maschine mindestens folgendes ausführt:
Empfangen einer Anforderung zum Betrachten von Prozessdaten über einen Webbrowser;
Identifizieren eines Servers, der die Prozessdaten speichert, wobei der Server die Prozessdaten von einem Prozesssteuerungssystem empfängt, wobei der Server mit einem Interoperabilitäts-Datenpackungsformat assoziiert ist;
Abrufen der Prozessdaten von dem Server;
Auswählen einer Extensible Stylesheet Language Transformation(XSLT)-Vorlage basierend auf einer Eigenschaft der Prozessdaten, und
Generieren einer Anzeigedatei, die einem Webbrowserformat entspricht, basierend auf der XSLT-Vorlage, der Eigenschaft und den Prozessdaten, wobei die Anzeigedatei spezifiziert, wie die Prozessdaten über den Webbrowser angezeigt werden sollen.
-
Besonders bevorzugt wird ein maschinenlesbares Medium, bei dem die maschinenlesbaren Anweisungen bei Ausführung bewirken, dass die Maschine die Anzeigedatei generiert durch:
Kombinieren der XSLT-Vorlage mit den Prozessdaten und
Konvertieren der kombinierten XSLT-Vorlage und der Prozessdaten in das Webbrowserformat.
-
Besonders bevorzugt wird ein maschinenlesbares Medium, bei dem die maschinenlesbaren Anweisungen bei Ausführung bewirken, dass die Maschine die XSLT-Vorlage mit den Prozessdaten kombiniert durch:
Identifizieren eines Parameters in der XSLT-Vorlage;
Identifizieren von Teilen der Prozessdaten, die dem Parameter entsprechen, und
Referenzieren der Parameter auf die entsprechenden Teile der Prozessdaten.
-
Besonders bevorzugt wird ein maschinenlesbares Medium, bei dem die maschinenlesbaren Anweisungen bei Ausführung bewirken, dass die Maschine folgendes ausführt:
Auswählen der XSLT-Vorlage basierend auf einem Vorrichtungstyp, der die Anforderung überträgt; und
Generieren der Anzeigedatei basierend auf der gewählten XSLT-Vorlage, um einem Anzeigebereich der Vorrichtung zu entsprechen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Blockdiagramm, das eine Steuerungsumgebung mit einem beispielhaften Steuerungssystem veranschaulicht, das kommunikativ an einen externen Server gekoppelt ist, auf den ein Client über einen Webseitenserver, der einen Wrapper einschließt, zugreifen kann.
-
2 ist ein Funktionsdiagramm des beispielhaften Wrappers von 1.
-
3 ist ein Blockdiagramm eines beispielhaften dienstorientierten Frameworks, das zum Implementieren des beispielhaften Wrappers der 1 und 2 verwendet werden kann.
-
4 zeigt eine beispielhafte Schnittstelle für Serveridentifizierungs-Prozessdaten, die in einem Webbrowser angezeigt werden.
-
5 zeigt eine beispielhafte Schnittstelle für Prozessdaten, die in einem Webbrowser angezeigt werden.
-
6 zeigt eine beispielhafte Schnittstelle, die mit dem beispielhaften Wrapper der 1 und/oder 2 kommuniziert, um Prozessdaten in einem Webbrowser anzuzeigen.
-
7A und 7B zeigen eine beispielhafte Schnittstelle, die auf einer Drahtlos-Vorrichtung angezeigt wird, die mit dem beispielhaften Wrapper der 1 und/oder 2 kommuniziert, um Prozessdaten in einer Client-Anwendung anzuzeigen.
-
8 zeigt eine beispielhafte Schnittstelle, um Prozessdaten in einem Webbrowser anzuzeigen.
-
9A–9C sind Flussdiagramme eines beispielhaften Verfahrens, das zum Implementieren des beispielhaften Wrappers der 1 und/oder 2 verwendet werden kann.
-
10 ist ein Blockdiagramm eines beispielhaften Prozessorsystems, das zum Implementieren der beispielhaften Verfahren und Vorrichtung verwendet werden kann, die hier beschrieben sind.
-
DETAILLIERTE BESCHREIBUNG
-
Obwohl anschließend beispielhafte Verfahren und Vorrichtungen beschrieben werden, die unter anderen Komponenten Software und/oder Firmware einschließen, die auf Hardware ausgeführt werden, sei darauf hingewiesen, dass diese Beispiele lediglich illustrierend sind und nicht als einschränkend angesehen werden sollen. Es ist beispielsweise vorgesehen, dass beliebige oder alle der Hardware-, Software- und Firmware-Komponenten ausschließlich in Hardware, ausschließlich in Software oder in jeglicher Kombination aus Hardware und Software verkörpert sein können. Obwohl anschließend beispielhafte Verfahren und Vorrichtungen beschrieben werden, werden Fachleute mit durchschnittlichem Wissen daher leicht erkennen, dass die gegebenen Beispiele nicht der einzige Weg zur Implementierung derartiger Verfahren und Vorrichtungen sind. Obwohl die beispielhaften Verfahren und Vorrichtungen beispielsweise im Zusammenhang mit Extensible Stylesheet Language Transformation(XSLT)-Vorlagen beschrieben sind, können die beispielhaften Verfahren und Vorrichtungen in jeglichem anderen Vorlagenformat implementiert werden (z. B. Extensible Markup Language(XML)-Vorlagen, Electronic Device Description Language(EDDL)-Vorlagen, usw.), die in industriellen Anwendungen, Fertigungsanwendungen, Prozesssteuerungsanwendungen, Automatisierungsanwendungen usw. verwendet werden.
-
Prozesssteuerungssysteme schließen allgemein Controller ein, um Routinen, Steuerungsstrategien und/oder Algorithmen durchzuführen, die Feldvorrichtungen verwalten, die sich in dem Steuerungssystem befinden. Die Feldvorrichtungen können beispielsweise Ventile, Ventilstellungsregler, Schalter und Sender sein, und sie können Prozesssteuerungsfunktionen durchführen, wie Öffnen oder Schließen von Ventilen und Messen von Prozesssteuerungsparametern. Zusätzlich zum Verwalten von Feldvorrichtungen können Controller auch Prozessdaten basierend auf von den Feldvorrichtungen empfangenen Daten generieren. Zu den Prozessdaten können Prozessstatistiken, Alarme, Überwachungsinformationen, Trendinformationen des Prozesses, diagnostische Informationen, Statusinformationen der Feldvorrichtungen und/oder Meldungen von den Feldvorrichtungen gehören.
-
Controller übertragen Prozesssteuerungsinformationen an Anwendungen, die auf Workstations arbeiten, so dass die Bedienungspersonen das Prozesssteuerungssystem verwalten können. Anwendungen zeigen Prozesssteuerungsinformationen in der Regel als mindestens eine grafische Datendarstellung in einer Benutzeroberfläche an. Datendarstellungen sind für Bedienungspersonen hilfreich, da diese Datendarstellungen typischerweise Prozesssteuerungsinformationen grafisch in Form von Diagrammen, Grafiken, Datentabellen, Auswahllisten, grafischen Symbolen, Text, usw. anzeigen.
-
Damit externe Benutzer auf ein Prozesssteuerungssystem zugreifen können, um Prozessdaten zu betrachten, können einige Prozesssteuerungssysteme ein oder mehrere externe Steuerungssystemserver verwenden, um Prozessdaten zu speichern. Die Prozesssteuerungssysteme schreiben (z. B. über den Controller) periodisch, oder alternativ wenn die Prozessdaten generiert werden, Prozessdaten auf die externen Server. Außerhalb des Prozesssteuerungssystems befindliche Benutzer können auf die externen Server zugreifen, um Prozessdaten zu betrachten. In einigen Beispielen können Benutzer auch die Prozessdaten modifizieren, wodurch Veränderungen am Betrieb des Prozesssteuerungssystems bewirkt werden.
-
Zurzeit werden Prozessdaten auf externen Servern in einem Interoperabilitäts-Datenpackungsformat gespeichert. Viele unterschiedliche Typen von Interoperabilitäts-Datenpackungsformaten ermöglichen einem Prozesssteuerungsverwalter die effiziente Speicherung von signifikanten Mengen an Prozesssteuerungsdaten (z. B. Terabytes an Prozesssteuerungsdaten) in einem komprimierten Format. Diese Interoperabilitäts-Datenpackungsformate ermöglichen den relativ raschen Zugriff auf die komprimierten Prozessdaten auf Anforderung eines Benutzers. Die Interoperabilitäts-Datenpackungsformate ermöglichen auch das Organisieren von Prozessdaten basierend auf einem Prozess, einem Prozesssteuerungsbereich, einem Feldvorrichtungstyp und/oder jeglichem anderen Organisationsverfahren, das von Prozesssteuerungspersonal angegeben wird.
-
Ein derartiges Interoperabilitäts-Datenpackungsformat ist OPC. Die OPC Foundation veröffentlicht einen Satz von OPC-Spezifikationen, die programmatische Schnittstellen definieren, die von Webbrowsern und/oder Client-Programmanwendungen (z. B. Adobe® Flash® Player) verwendet werden können, um auf externe Server zuzugreifen, die Prozessdaten hosten. Diese Schnittstellen sind in Form von Methoden und/oder Instanzen definiert, die innerhalb der Server initiiert werden können. Die OPC-Spezifikationen geben ferner Parameter an, die von OPC-verwandten Servern an anfordernde Client-Anwendungen übergeben werden können. Die OPC-Spezifikationen definieren Schnittstellen, die unterschiedliche Protokolle verwenden können, die in prozeduralen Programmiersprachen geschrieben sind, wie beispielsweise C++, Visual Basic und/oder C#.
-
Um auf Server zuzugreifen, die Prozessdaten speichern, erstellen Clients zurzeit Anwendungen, die in einer prozeduralen Programmiersprache geschriebene ausführbare Programme sind, um sich an die Protokolle der Interoperabilitäts-Datenpackungsschnittstellen auf diesen Servern zu halten. Die Anwendungen werden erstellt, um einem oder mehreren Benutzern unabhängig von dem Aufenthaltsort des Benutzen Zugang zu liefern, um Prozessdaten und/oder jeglichen anderen Datentyp, der sich auf einem Server speichern lässt, zu lesen, zu schreiben und/oder zu abonnieren. Die Anwendungen können auf jeglicher Computervorrichtung betrieben werden (z. B. PC, Laptop, Smartphone, Netpad, usw.), so dass ein Benutzer an jedem Ort auf Prozessdaten zugreifen kann. In anderen Beispielen können die Anwendungen auf assoziierten Servern als personalisierte Webseite gehostet werden, die auf Laufzeit-Frameworks, Datenbanken und/oder andere Datenquellen zugreift. Ein autorisierter Benutzer kann über jede Vorrichtung auf diese Anwendung zugreifen, die eine Verbindung zum Internet aufbauen kann.
-
Die Client-Anwendungen können vordefinierte Datenfelder aufweisen, die Verzeichnisorte auf einem Server querreferenzieren können, der sich an ein Interoperabilitäts-Datenpackungsformat hält. Die Anwendung kann die Datenfelder bezogen auf den Prozessdatentyp (z. B. einen Objekttyp) für eine spezielle Anzeige vorformatieren (z. B. Textfelder, Grafiken, Diagramme, Tabellen, usw.). Die Client-Anwendungen können zudem für eine Plattform und/oder ein Kommunikationsprotokoll erstellt werden, die/das für einen Server spezifisch ist. Client-Anwendungen werden beispielsweise typischerweise mit Adressen kodiert, die gewünschten externen Servern entsprechen. Aufgrund dieser kodierten Funktionen und Referenzen auf Verzeichnisorte auf einem Server sind die Client-Anwendungen in der Regel statisch und können nur mit einem speziellen Server kommunizieren.
-
Indem eine spezialisierte Client-Anwendung für jeden Server und/oder eine Anwendung für jeden Datenabschnitt von einem Server vorhanden ist, muss ein Client (z. B. eine Bedienungsperson oder ein Ingenieur von einer Prozessanlage) möglicherweise zahlreiche Anwendungen entwickeln, um auf Daten auf einem oder mehreren externen Servern zuzugreifen. Wenn eine Schnittstelle zu einem Server modifiziert wird, ein Datenverzeichnis auf einem Server modifiziert wird und/oder Prozessdaten auf einen anderen Server migrieren, muss die entsprechende Client-Anwendung ebenfalls modifiziert werden, um diese Änderungen widerzuspiegeln oder sich ihnen anzupassen. Wenn Client-Anwendungen periodisch aktualisiert werden müssen, um auf Prozessdaten auf einem Server zuzugreifen, kann dies zu Fällen führen, in denen einige Clients möglicherweise nicht auf Prozessdaten zugreifen können. Änderungen an Speicherorten der Prozessdaten können zudem zu gebrochenen Links zwischen einer Client-Anwendung und den Prozessdaten führen, die auf einem Server gehostet werden.
-
Die hier beschriebenen beispielhaften Verfahren und Vorrichtungen ermöglichen einer Client-Anwendung an einem Client-Ort, über einen Wrapper auf jeden beliebigen Server zuzugreifen. Der beispielhafte Wrapper wirkt als Schnittstelle zwischen dem Client und einem Server, indem Datenfelder und/oder Datenanzeigen basierend auf den Prozessdaten erstellt werden, die der Client angefordert hat. Der beispielhafte Wrapper kann Informationen vom Objekttyp (z. B. Typen von Prozessdaten) verwenden, die mit den angeforderten Prozessdaten assoziiert sind, um eine XSLT-Vorlage auszuwählen.
-
Der beispielhafte Wrapper kann auch eine XSLT-Vorlage basierend auf einem Vorrichtungstyp auswählen, der die Prozessdaten anfordert. Wenn beispielsweise eine ProzessdatenAnforderung von einer Vorrichtung mit einem relativ großen Bildschirmbereich (z. B. einem PC) erhalten wird, kann der Wrapper einen Satz von Vorlagen auswählen, die für einen größeren Bildschirm konfiguriert sind. Der beispielhafte Wrapper kann in ähnlicher Weise einen Satz von Vorlagen auswählen, die für einen relativ kleineren Bildschirm konfiguriert sind, wenn eine Anforderung beispielsweise von einer tragbaren Vorrichtung (z. B. einem Smartphone) erhalten wird. Der beispielhafte Wrapper kann Vorrichtungstypen basierend auf beispielsweise einer Media Access Control(MAC)-Adresse identifizieren, die in eine Anforderung eingeschlossen ist.
-
Der Wrapper kann in einigen Beispielen in einen externen Server eingeschlossen sein und für einen Client über eine Webserver-Anwendung und/oder eine Client-Anzeigeanwendung zugänglich sein. In anderen Beispielen kann der Wrapper an einem Client-Ort installiert sein (z. B. auf einer Rechenvorrichtung, die mit einem Client und/oder Benutzer assoziiert ist). In weiteren Beispielen kann der Wrapper in eine Rechenvorrichtung (z. B. einen Server) eingeschlossen sein, der kommunikativ zwischen einen Client und einen Server gekoppelt ist.
-
Der beispielhafte Wrapper kann als Webserver-Anwendung und/oder Client-Anzeigeanwendung implementiert werden. Die Webserver-Anwendung ist ein Framework (z. B. eine ASP.NET Framework-Anwendung), das Webseiten mit Prozessdaten erstellt, die in Datenfelder, Grafiken, Diagramme, Tabellen, usw. eingebettet sind, auf die ein Client über einen Webbrowser zugreifen kann. In der beispielhaften Webserver-Anwendung verwaltet der Wrapper Prozessdaten (z. B. Objekte) innerhalb einer Webseite. Im Unterschied dazu ist die Client-Anzeigeanwendung (z. B. eine ActiveX-Steuerung und/oder eine SilverlightTM-Anwendung) ein Framework, das als Laufzeit-Anwendung (z. B. Plugin-Anwendung) innerhalb eines Webbrowsers angezeigt werden kann. In diesen Beispielen kann die Client-Anzeigeanwendung in einer Rechenvorrichtung am Ort des Clients installiert sein. Die Client-Anzeigeanwendung kann innerhalb eines Webbrowsers initiiert werden, wenn der Webbrowser auf einen auf einem externen Server befindlichen Wrapper zugreift und/oder mit diesem kommuniziert. Die Client-Anzeigeanwendung kann zudem empfangene Daten und/oder Datenfeldinformationen von dem Wrapper konfigurieren, so dass die Daten innerhalb von Datenfeldern, Grafiken, Diagrammen, Tabellen usw. in dem Webbrowser angezeigt werden.
-
Der hier beschriebene beispielhafte Wrapper kann einen Adapter zur Kommunikation mit einem oder mehreren externen Steuerungssystemserver(n) einschließen, die mit einem Interoperabilitäts-Datenpackungsformat assoziiert sind. Der Adapter kann beispielsweise Transmission Control Protocol (TCP), Hypertext Transfer Protocol (HTTP) und/oder Extensible Markup Language (XML) zur Kommunikation mit einem Server verwenden, um auf Prozessdaten zuzugreifen, die ein Client angefordert hat. Der beispielhafte Wrapper schließt auch einen Konverter ein, um mit einem Interoperabilitäts-Datenpackungsformat formatierte Prozessdaten, die von einem Server erhalten wurden, in ein Webseitenformat zu konvertieren. Ein Webseitenformat kann Hyper Text Markup Language (HTML) und/oder jegliches andere Format zur Anzeige innerhalb einer Client-Anzeigeanwendung und/oder zur Anzeige innerhalb einer Webseite einschließen. Der Wrapper schließt ferner eine webbasierte Schnittstelle ein, die die Prozessdaten an einen Webbrowser kommuniziert, wodurch sie über eine Webseite und/oder eine Client-Anwendung für einen Client betrachtbar sind.
-
Der beispielhafte Wrapper kann automatisch Datenfelder für angeforderte Prozessdaten (z. B. Objekte) erstellen, konfigurieren und/oder formatieren, indem ein oder mehrere Typen der angeforderten Prozessdaten ermittelt werden. Die Typen von Prozessdaten können beispielsweise Serveridentifikationsinformationen, Parameter, Eigenschaften, Dateiverzeichnisorganisationsinformationen, numerische Daten, String-Daten (Zeichenketten), Statusdaten einer Steuerungsvorrichtung, Alarmdaten und/oder jegliche anderen Daten einschließen, die mit einem Prozesssteuerungssystem, einem Fertigungssystem usw. assoziiert sein können. In einigen Beispielen kann der Wrapper einen Datentyp durch eingebettete und/oder mit den Prozessdaten assoziierte Metadaten bestimmen. In anderen Beispielen kann der Wrapper einen Datentyp basierend auf den Inhalten der Prozessdaten bestimmen. Durch Bestimmen der Datentypen kann der beispielhafte Wrapper geeignete Datenfelder mit den entsprechenden Prozessdaten zur Anzeige innerhalb eines Webbrowsers erstellen. Die Datenfelder zum Anzeigen von Prozessdaten können Tabellen, Textfelder, numerische Felder, Grafiken, Diagramme, Animationen, usw. einschließen.
-
Durch automatisches Erstellen von Datenfeldern und Ausfüllen (z. B. Einbetten) dieser Datenfelder mit angeforderten Prozessdaten fällt durch den beispielhaften Wrapper die Notwendigkeit weg, dass ein Client anforderungsspezifische Anwendungen erstellen muss, um auf Daten auf externen Steuerungssystemservern zuzugreifen. Weil der beispielhafte Wrapper die Datenfelder basierend auf dem Datentyp dynamisch formatiert, beeinflussen jegliche Änderungen an einem Server und/oder an Datenspeicherorten innerhalb von Servern die Fähigkeit eines Clients zum Zugriff auf Prozessdaten nicht. Ein Client kann in anderen Worten auf Prozessdaten zugreifen, ohne wissen zu müssen, wie ein Server verwaltet wird, wie Prozessdaten innerhalb eines Servers zugewiesen werden, wie Prozessdaten migriert werden und/oder von welchem Typ die Prozessdaten sind. Weil man mittels eines Webbrowsers über den Wrapper auf die Prozessdaten zugreifen kann, muss der Client ferner keine Anwendung erstellen, die explizit an ein Kommunikationsprotokoll, ein Schnittstellenprotokoll, ein Interoperabilitäts-Datenpackungsprotokoll und/oder ein Arbeitsprotokoll eines speziellen Servers gebunden ist. Der beispielhafte Wrapper kann zudem für jeden Server unabhängig von mit dem Server assoziierten Protokollen implementiert werden. Weil der beispielhafte Wrapper nicht für ein spezielles Serverprotokoll konfiguriert ist, kann der Wrapper ferner effizienter installiert und/oder gepflegt werden als serverspezifische Interoperabilitäts-Datenpackungsanwendungen.
-
1 ist ein Blockdiagramm, das eine Steuerungsumgebung 100 mit einem beispielhaften Steuerungssystem 102 illustriert, das kommunikativ an einen externen Server 104 gekoppelt ist, auf den ein Client 106 über einen Webseitenserver 108 zugreifen kann, der einen Wrapper 110 verwendet. Der externe Server 104 kann Prozessdaten in einem Format speichern, das einem Interoperabilitäts-Datenpackungsprotokoll entspricht, einschließlich beispielsweise einem Protokoll, das der OPC-Spezifikation oder dem OPC-Standard entspricht. Obwohl der Webseitenserver 108 und/oder der Wrapper 110 kommunikativ an den externen Server 104 gekoppelt gezeigt sind, welcher Prozessdaten von dem Steuerungssystem 102 empfängt, können der Webseitenserver 108 und/oder der Wrapper 110 an andere externe Server gekoppelt sein, die Prozessdaten von anderen Systemen, Fertigungsanlagen, Automatisierungsanlagen, Industriesystemen, usw. empfangen. Obwohl der beispielhafte externe Server 104 als kommunikativ an das Steuerungssystem 102 gekoppelt gezeigt ist, kann der externe Server 104 außerdem kommunikativ an andere Steuerungssysteme gekoppelt sein. Die beispielhafte Steuerungsumgebung 100 kann ferner weitere (nicht gezeigte) Clients einschließen, die kommunikativ über den Webseitenserver 108 und/oder andere (nicht gezeigte) Webseitenserver an den externen Server 104 gekoppelt sein können.
-
Das beispielhafte Steuerungssystem 102 kann jede Art von Fertigungsanlage, Prozessanlage, Automationsanlage und/oder jeden anderen Typ von Prozesssteuerungsstruktur oder -system einschließen. In einigen Beispielen kann das Steuerungssystem 102 mehrere Anlagen einschließen, die sich an unterschiedlichen Standorten befinden. Obwohl das beispielhafte Steuerungssystem 102 zudem ein Prozesssteuerungssystem 112 zeigt, kann das Steuerungssystem 102 zusätzliche Prozesssteuerungssysteme einschließen.
-
Das beispielhafte Prozesssteuerungssystem 112 ist kommunikativ über einen Datenbus 116 an einen Controller 114 gekoppelt. Das Prozesssteuerungssystem 112 kann jegliche Zahl von Feldvorrichtungen (z. B. Eingabe- und/oder Ausgabevorrichtungen) einschließen. Die Feldvorrichtungen können jeden Typ von Prozesssteuerungskomponente einschließen, der Eingaben empfangen, Ausgaben generieren und/oder einen Prozess steuern kann. Die Feldvorrichtungen können beispielsweise Eingabevorrichtungen einschließen, beispielsweise Ventile, Pumpen, Ventilatoren, Heizer, Kühler und/oder Mischer, um einen Prozess zu steuern. Die Feldvorrichtungen können zudem Ausgabevorrichtungen einschließen, wie beispielsweise Thermometer, Druckmessgeräte, Konzentrationsmessgeräte, Flüssigkeitspegelmessgeräte, Durchflussmessgeräte und/oder Dampfsensoren, um Teile eines Prozesses zu messen. Die Eingabevorrichtungen können Anweisungen von dem Controller 114 empfangen, um einen speziellen Befehl auszuführen und eine Änderung des Prozesses zu bewirken. Die Ausgabevorrichtungen können ferner Prozessdaten, Umgebungsdaten und/oder Eingabevorrichtungsdaten messen und die gemessenen Daten als Prozesssteuerungsinformationen (z. B. Prozessdaten) an den Controller 114 übertragen. Diese Prozessdaten können die Werte von Variablen und/oder Parametern einschließen (z. B. gemessene Prozessvariablen und/oder gemessene Qualitätsvariablen), die einer gemessenen Ausgabe von jeder Feldvorrichtung entsprechen.
-
In dem illustrierten Beispiel von 1 kann der beispielhafte Controller 114 mit den Feldvorrichtungen in dem Prozesssteuerungssystem 106 über den Datenbus 16 kommunizieren. Dieser Datenbus 116 kann in dem Prozesssteuerungssystem 112 mit Kommunikationskomponenten gekoppelt werden. Zu den Kommunikationskomponenten können I/O-Karten gehören, um Daten von den Feldvorrichtungen zu empfangen und die Daten in ein Kommunikationsmedium zu konvertieren, das von dem beispielhaften Controller 114 empfangen werden kann. Diese I/O-Karten können zudem Daten von dem Controller 114 in ein Datenformat konvertieren, das von den entsprechenden Feldvorrichtungen verarbeitet werden kann. In einem Beispiel kann der Datenbus 116 unter Verwendung des Feldbus-Protokolls oder anderer Arten von verdrahteten und/oder drahtlosen Kommunikationsprotokollen (z. B. Profibus-Protokoll, HART-Protokoll, usw.) implementiert werden.
-
Der Controller 114 ist kommunikativ über eine beliebige verdrahtete und/oder drahtlose Verbindung an den externen Server 104 gekoppelt. Die Verbindung kann in einigen Beispielen eine Firewall und/oder andere Sicherheitsmechanismen einschließen, um den Zugriff auf den Controller 114 zu beschränken. Der Controller 114 kann Prozessdaten über den Controller 114, der die Prozessdaten von dem Prozesssteuerungssystem 112 erhält, an den externen Server 104 übertragen. In anderen Beispielen kann der Controller 114 in periodischen Zeitintervallen (z. B. jede Minute, jede Stunde, täglich, usw.) Prozessdaten an den externen Server 104 übertragen. Der externe Server 104 kann alternativ Prozessdaten von dem Controller 114 anfordern.
-
Der beispielhafte externe Server 104 des illustrierten Beispiels speichert die Prozessdaten, nachdem er sie erhalten hat, in einem Dateisystem. Das Dateisystem kann hierarchisch mit Verzeichnissen und/oder Unterverzeichnissen angeordnet sein, die auf den Vorrichtungen in dem Prozesssteuerungssystem 112 und/oder auf einer Routine (z. B. Anwendung und/oder Algorithmus) basieren, die in dem Controller 114 laufen, um das Prozesssteuerungssystem 112 zu verwalten. Das Dateisystem kann in anderen Beispielen durch einen Bediener des Steuerungssystems 102 angeordnet werden. Die Prozessdaten können in einem Parameter in dem assoziierten Verzeichnis und/oder Unterverzeichnis gespeichert werden. Der Parameter kann in einigen Beispielen eine Variable sein, die mit einer Routine assoziiert ist, die auf dem Controller 114 läuft oder mit der Ausgabe einer Feldvorrichtung in dem Prozesssteuerungssystem 112 assoziiert ist. Der Parameter kann Metadaten und/oder Eigenschaften einschließen, die den mit dem Parameter assoziierten Prozessdatentyp beschreiben. Der externe Server 104 kann auch EDDL-Dateien für jede der Feldvorrichtungen in dem Prozesssteuerungssystem 112 speichern, die angeben, wie Prozessdaten angezeigt werden sollen.
-
Jedem der Verzeichnisse, Unterverzeichnisse, jeder der Dateien und/oder jedem der Parameter kann ein Endpunkt zugeordnet sein. Der externe Server 104 kann auch einem Endpunkt zugeordnet sein. Diese Endpunkte können nach Sicherheitszugriff, Lesezugriff, Abonnementzugriff und/oder Schreibzugriff gruppiert werden. Ein Endpunkt kann eine Adresse, ein Bindungselement und/oder ein Vertragselement einschließen, das der Wrapper 110 verwenden kann, um auf die Prozessdaten und/oder die EDDL-Datei zuzugreifen, die auf dem externen Server 104 gespeichert ist/sind.
-
Der beispielhafte Wrapper 110 von 1 ist in den Webseiten-Server 108 eingeschlossen und/oder wird von diesem verwendet. Der Webseiten-Server 108 ist eine Vorrichtung und/oder eine Anwendung, die als Schnittstelle zwischen dem externen Server 104 und dem Client 106 agiert. Der Webseiten-Server 108 kann in einigen Beispielen als Schnittstelle in den externen Server 104 eingeschlossen werden. Der Webseiten-Server 108 kann in anderen Beispielen innerhalb einer Rechenvorrichtung beim Client 106 installiert sein. In anderen Beispielen kann der Webseiten-Server 108 auf einem Server oder anderen Rechenvorrichtung implementiert werden, die den Client 106 kommunikativ mit dem externen Server 104 koppelt. Der beispielhafte Wrapper 110 empfängt Anforderungen von dem Client 106, um auf Prozessdaten (z. B. Objekte) zuzugreifen, fordert die Prozessdaten von dem externen Server 104 an, konvertiert die Prozessdaten in ein Format, welches vom Client betrachtbar ist, und erstellt und/oder formatiert Datenfelder, um die Prozessdaten zur Anzeige in einem Webbrowser einzubetten.
-
Der beispielhafte Wrapper 110 formatiert Datenfelder, indem er einen Satz von Vorlagen auswählt, die von dem Client 106 betrachtbar sein können. In anderen Worten ermittelt der beispielhafte Wrapper 110, welche Vorlagen zur Anzeige auf einer relativ großen oder kleinen Bildschirmgröße konfiguriert sind. Der beispielhafte Wrapper 110 formatiert auch Datenfelder, indem er eine Vorlage in dem Satz von Vorlagen auswählt, die zu mindestens einer Eigenschaft und/oder einem Objekttyp passen, die bzw. der mit den angeforderten Prozessdaten assoziiert sind. Eine XSLT-Vorlage kann beispielsweise Datenfelder einschließen, die als Zeichenkettenvariablen (string) definiert sind, um Identifizierungsinformationen einer Feldvorrichtung anzuzeigen. Eine Anforderung von Prozessdaten kann Identifizierungsinformationen einer Feldvorrichtung einschließen. Der beispielhafte Wrapper 110 verwendet Metadaten und/oder Eigenschaftsbeschreibungen innerhalb der Prozessdaten, um zu bestimmen, dass Identifizierungsinformationen einer Feldvorrichtung angezeigt werden sollen. Der beispielhafte Wrapper 110 identifiziert dann die XSLT-Vorlage mit Datenfeldern, die konfiguriert sind, um die Identifizierungsinformations-Prozessdaten anzuzeigen. Der beispielhafte Wrapper 110 kann dann die Identifizierungsinformations-Prozessdaten kombinieren und/oder in die entsprechenden Datenfelder innerhalb der gewählten XSLT-Vorlage einzufügen. Der beispielhafte Wrapper 110 kann danach die XSLT-Vorlage zur Anzeige auf dem Client 106 rendern.
-
Der Client 106 kann dann auf den externen Server 104 zugreifen, um Prozessdaten zu lesen, zu schreiben und/oder zu abonnieren. Das Abonnieren von Prozessdaten kann beinhalten, Autorisierung von dem beispielhaften Wrapper 110 und/oder dem externen Server 104 zu erhalten, um periodische und/oder kontinuierliche Updates von angeforderten Prozessdaten zu empfangen, wenn die Prozessdaten durch den Controller 114 übertragen werden. Das Lesen der Prozessdaten kann das Lesen des aktuellen Werts der auf dem externen Server 104 gespeicherten Prozessdaten einschließen. Das Schreiben der Prozessdaten kann das Empfangen von Werten von dem Client 106 einschließen, um einen als Prozessdaten innerhalb des externen Servers 104 gespeicherten Parameter zu modifizieren oder zu ändern. Das Schreiben von Daten kann auch das Modifizieren eines Status, eines Alarms und/oder eines Flags beinhalten, der bzw. das mit den Prozessdaten assoziiert ist bzw. sind. Beim Empfang eines geschriebenen Werts kann der beispielhafte externe Server 104 den geschriebenen Wert an den Controller 114 übertragen, um eine Operation des Prozesssteuerungssystems 112 zu ändern und/oder zu modifizieren. Damit der Client 106 auf die Prozessdaten zugreifen kann, kann der beispielhafte Wrapper 110 Sicherheitsfunktionen implementieren, zu denen Verschlüsselung, Authentifizierung, Integritätscodes und/oder benutzerspezifische Zugriffkontrolllisten gehören. In Beispielen, in denen ein Benutzer und/oder der Client 106 zum Zugriff auf Prozessdaten nicht autorisiert ist, kann der beispielhafte Wrapper 110 nur Lesezugriff auf die Prozessdaten oder alternativ gar keinen Zugriff auf die Prozessdaten bieten.
-
Der beispielhafte Wrapper 110 schließt einen Adapter 118 ein, um auf den externen Server 104 zuzugreifen. Der beispielhafte Adapter 118 kann Kommunikationen auf TCP-, HTTP- und/oder XML-Basis verwenden, um mit dem externen Server 104 über eine beliebige verdrahtete und/oder drahtlose Verbindung zu kommunizieren. Der Wrapper 110 schließt ferner einen Konverter 120 ein, um die von dem Adapter 120 empfangenen Prozessdaten in ein Format zu konvertieren (kombinieren und/oder einfügen), das über einen Webbrowser betrachtet werden kann. Der beispielhafte Wrapper 110 schließt auch eine webbasierte Schnittstelle 122 ein, um eine oder mehrere Vorlagen zur Anzeige der Prozessdaten auszuwählen. Die beispielhafte webbasierte Schnittstelle 122 stellt dem Client 106 auch eine Schnittstelle zur Verfügung, indem die Prozessdaten in der gewählten Vorlage/den gewählten Vorlagen formatiert, gerendert, eingebettet und/oder angezeigt werden.
-
Der beispielhafte Client 106 kann mit einem Individuum assoziiert sein, das autorisiert werden kann, um die auf dem externen Server 104 gespeicherten Prozessdaten zu lesen, zu schreiben und/oder zu abonnieren. Der Client 106 kann auch mit Personal assoziiert sein, das mit dem Steuerungssystem 102 assoziiert ist und von einem entfernten Ort aus auf den externen Server 104 zugreifen kann. Der Client 106 kann über den Webseiten-Server 108 unter Verwendung jedwedes verdrahteten und/oder drahtlosen Kommunikationsmediums (z. B. über das Internet) auf den externen Server 104 zugreifen.
-
In einem Beispiel, in dem der Client 106 eine Anforderung zum Zugriff auf Prozessdaten (z. B. Objekten) generiert, empfängt der Wrapper 110 eine Anforderungsnachricht von dem Client 106. Speziell kann die webbasierte Schnittstelle 122 die Anforderung empfangen. Nach Empfang der Anforderung leitet die webbasierte Schnittstelle 122 die Anforderung an den Adapter 118 weiter. Der Adapter 118 verwendet Informationen innerhalb der Anforderung (z. B. eine Uniform Resource Locator(URL)-Zieladresse), um einen externen Server (z. B. den externen Server 104) zu identifizieren, der die angeforderten Prozessdaten speichert. Der Adapter 118 greift dann auf den externen Server 104 zu, um die Prozessdaten abzurufen. Der Adapter 118 kann mit den Prozessdaten assoziierte Enddaten verwenden, um auf die Prozessdaten zuzugreifen und/oder sie zu lesen. Der Adapter 118 leitet die von dem externen Server 104 empfangenen Prozessdaten dann an den Konverter 120 weiter, der die Prozessdaten von einem mit dem Interoperabilitäts-Datenpackungsformat assoziierten Format in ein Webbrowser-Format konvertiert. Der Konverter 120 leitet die Prozessdaten dann an die webbasierte Schnittstelle 122 weiter. Die webbasierte Schnittstelle 122 wählt dann eine oder mehrere Vorlagen aus, um mindestens einen Teil der konvertierten Prozessdaten in ein oder mehrere entsprechende Datenfelder der Vorlage einzubetten, diese zu kombinieren und/oder zu platzieren, um sie über einen Webbrowser in einer Webseite anzuzeigen, die von dem Client 106 betrachtet werden kann.
-
Die webbasierte Schnittstelle 122 kann Prozessdaten mit einem oder mehreren Datenfeldern einer Vorlage kombinieren, indem die Prozessdaten nach Typen und/oder Eigenschaften aufgeteilt werden, ermittelt wird, welcher Datentyp und/oder welche Eigenschaft mit einem Datenfeld assoziiert ist, und die mit jedem Datentyp assoziierten Daten in dem assoziierten Datenfeld platziert werden. Die webbasierte Schnittstelle 122 kann in einigen Beispielen Datenfelder innerhalb einer Vorlage erstellen. Die webbasierte Schnittstelle 122 kann einen Datentyp und/oder eine Eigenschaft innerhalb der Prozessdaten identifizieren, indem sie Metadaten lokalisiert, die mit jedem Teil der Prozessdaten assoziiert sind, und die Metadaten mit dem assoziierte Datenfeld querreferenziert.
-
Die beispielhafte webbasierte Schnittstelle 122 kombinierte Prozessdaten mit einer oder mehreren Vorlagen, so dass die Prozessdaten durch den Client 106 unter Verwendung einer Client-Anwendung 124 betrachtbar sind. Das Beispiel von 1 zeigt die Client-Anwendung 124, die Prozessdaten in einer Schnittstelle 126 anzeigt, die einen Webbrowser einschließen kann. Die Client-Anwendung 124 kann eine Webserver-Anwendung und/oder eine Client-Anzeigeanwendung einschließen. Der Wrapper 110 kann Prozessdaten für eine Webserver-Anwendung formatieren, indem eine Webseite erstellt und/oder auf eine XSLT-Webseitenvorlage zugegriffen wird und die Datenfelder innerhalb der Vorlage platziert oder in diese eingebettet werden. Die Schnittstelle 126 kann dann über einen Webbrowser die Prozessdaten anzeigen, indem auf die durch den Wrapper 110 und/oder den Webseitenserver 108 gehostete Webseite unter Verwendung von HTML-Anforderungen und -Antworten zugegriffen wird.
-
Der Wrapper 110 kann die Prozessdaten alternativ für eine Client-Anzeigeanwendung formatieren, indem eine Webanwendung (z. B. ActiveX, Adobe FlashTM und/oder SilverlightTM) in der Client-Anwendung 124 initialisiert wird, die innerhalb eines Webbrowsers ausführbar ist (z. B. die Schnittstelle 126). In einigen Beispielen kann der Client 106 die Client-Anzeigeanwendung herunterladen und/oder installieren, bevor die Prozessdaten betrachtet werden. Der Wrapper 110 überträgt die Prozessdaten, Vorlage(n) und/oder die Datenfelder an die Client-Anzeigeanwendung. In einigen Beispielen assoziiert der Wrapper 110 Prozessdaten mit einer oder mehreren entsprechenden Vorlagen und/oder einem oder mehreren entsprechenden Datenfeldern, bevor die Prozessdaten an die Client-Anzeigeanwendung übertragen werden. Nach Empfang der Prozessdaten erstellt (z. B. rendert) die Client-Anzeigeanwendung eine Anzeige innerhalb des Webbrowsers (z. B. in der Schnittstelle 126), um die Prozessdaten in der/den entsprechenden Vorlage(n) und/oder Datenfelder zu betrachten.
-
Der Client 106 kann ferner die Client-Anwendung 124 personalisieren, indem Vorlagen und/oder Datenfelder modifiziert werden. Der Client 106 kann beispielsweise eine Position in dem Webbrowsers angeben, an der ein Datenfeld angezeigt werden soll. Der Client 106 kann ferner die Farbe, Textgröße, Zahlenkonvention und/oder jegliche andere grafische Darstellung der Prozessdaten mit den Datenfeldern modifizieren.
-
2 ist ein Blockschaltplan des beispielhaften Wrappers 110 aus 1. Der Wrapper 110 schließt den Adapter 118, den Konverter 120 und die webbasierte Schnittstelle 122 von 1 ein. Jeder der Funktionsblöcke innerhalb des Wrappers 110 von 2 kann mehrere Clients und/oder externe Server unterstützen, oder der Wrapper 110 kann alternativ jeweilige Funktionsblöcke für jeden kommunikativ gekoppelten externen Server und/oder Funktionsblöcke für jeden Client (z. B. den Client 106) einschließen.
-
Um Sicherheitsfunktionen wie Verschlüsselung und/oder Endpunkt-Zugriffskontrollen für Kommunikationen mit dem Client 106 und/oder der Client-Anwendung 124 bereitzustellen, schließt der beispielhafte Wrapper 110 von 2 einen Sicherheitsprozessor 202 ein. Der beispielhafte Sicherheitsprozessor 202 kann beispielsweise Verschlüsselungsprozessoren und/oder digitale Signaturgeneratoren einschließen, um ausgehende Kommunikationen vor unautorisierten Drittparteien zu schützen. Die Verschlüsselungsprozessoren können jeden Typ von Verschlüsselungsencodern verwenden, um für die Client-Anwendung 124 vorgesehene Kommunikationen in einem Format zu formatieren, das für unautorisierte Benutzer nicht lesbar ist. Die digitalen Signaturgeneratoren schützen Kommunikationen für die Client-Anwendung 124 vor Verfälschung durch unautorisierte Drittparteien. Die digitalen Signaturgeneratoren können jeden Typ von kryptografisch sicherem Signaturgenerator (z. B. Hashcodes) verwenden, der die Erkennung von Werten ermöglicht, die durch eine unautorisierte Drittpartei zwischen der Client-Anwendung 124 und dem Wrapper 110 modifiziert worden sind. Der Sicherheitsprozessor 202 kann zudem andere Formen von Kommunikationssicherheit einschließen, einschließlich Authentifizierungsmechanismen und/oder Zugriffskontrollen. Der beispielhafte Sicherheitsprozessor 202 kann verschlüsselte und/oder signierte Kommunikationen dekodieren, die von der Client-Anwendung 124 und/oder dem Client 106 ausgehen. Nach dem Dekodieren der Kommunikationen überträgt der Sicherheitsprozessor 202 die Kommunikationen an das vorgesehene Ziel innerhalb des Wrappers 110.
-
In dem Beispiel von 2 ist der Sicherheitsprozessor 202 kommunikativ an einen oder mehrere Clients einschließlich Client 106 gekoppelt. Der Sicherheitsprozessor 202 kann Anforderungsnachrichten, die von Clients und/oder anderen Benutzern kommen, auf Identifizierungsinformationen filtern, so dass nur autorisierte Clients auf die Prozessdaten innerhalb eines gewünschten Servers zugreifen können. Der Sicherheitsprozessor 202 kann ferner Prozessdaten und/oder Vorlagen an eine Client-Anzeigeanwendung weiterleiten, die innerhalb der Client-Anwendung 124 implementiert ist. In anderen Beispielen ermöglicht der Sicherheitsprozessor 202 sichere Kommunikationen zwischen dem Client 106 und der webbasierten Schnittstelle 122, die eine Webseite hosten kann, die über eine Vorlage Prozessdaten anzeigt.
-
Um Datenkommunikationen zwischen einem oder mehreren Client(s) und der beispielhaften webbasierten Schnittstelle 122 zu verwalten, schließt der beispielhafte Wrapper 110 von 2 einen Sessioncontroller 204 ein. Der beispielhafte Sessioncontroller 204 verwaltet eine Zugriffssession für einen Client (z. B. den Client 106 von 1), der mit dem Wrapper 110 kommuniziert. Die Zugriffssession repräsentiert einen offenen Kommunikationsweg zwischen der webbasierten Schnittstelle 122 und einem Client. Eine Zugriffssession kann für jeden Client erstellt werden, der auf die webbasierte Schnittstelle 122 zugreift, weil jeder Client Zugriff auf unterschiedliche Datenquellen und/oder Datentypen von unterschiedlichen externen Servern des Steuerungssystems anfordern kann. Der beispielhafte Sessioncontroller 204 gewährleistet somit, dass die webbasierte Schnittstelle 122 einen Client mit nur den Prozessdaten versorgt, die der Client angefordert hat.
-
Der Sessioncontroller 204 initiiert eine Session, nachdem er eine Anforderungsnachricht von einem Client empfangen hat, um auf Prozessdaten zuzugreifen. Die Anforderung kann von einem Webbrowser und/oder der Client-Anwendung 124 kommen. Bis eine Session durch den Sessioncontroller 204 eröffnet worden ist, kann der Sessioncontroller 204 jegliche anderen Anforderungen von einem Client ablehnen. Wenn die Session geöffnet ist, leitet der Sessioncontroller 204 jede Anforderungsnachricht von einem Client zu der webbasierten Schnittstelle 122. Der Sessioncontroller 204 kann darüber hinaus Referenzen auf ausgewählte Prozessdaten und ihre assoziierten Lese- oder Schreib-Endpunkte speichern, die mit Datenfeldern und/oder Prozessdaten assoziiert sein können, die in einer Webseite betrachtbar sind.
-
Die beispielhafte webbasierte Schnittstelle 122, die in den Wrapper 110 von 2 eingeschlossen ist, liefert durch Verwalten, Formatieren und/oder Konfigurieren von Prozessdaten eine Schnittstelle zu Clients. Die webbasierte Schnittfläche 122 empfängt von dem Konverter 120 Prozessdaten (z. B. Objekte) in einem Format, das in einem Webbrowser betrachtbar ist. Die beispielhafte webbasierte Schnittstelle 122 verarbeitet auch Anforderungen von Clients zum Zugriff auf Prozessdaten. Nach dem Empfang einer Anforderung von einem Client initiiert die webbasierte Schnittstelle 122 eine Zugriffssession, indem sie eine Anweisung an den Sessioncontroller 204 sendet und die Anforderung an den Adapter 118 leitet. In einigen Beispielen empfängt die webbasierte Schnittstelle 122 die Anforderung, nachdem der Sicherheitsprozessor 202 bestimmt hat, dass die Anforderung mit einem authentifizierten Client assoziiert ist. Die webbasierte Schnittstelle 122 kann zudem eine Zugriffssession schließen, wenn ein Client einen Webbrowser schließt und/oder beendet und/oder wenn eine Client-Anwendung eine Anweisung sendet, um die Session zu beenden.
-
Wenn die webbasierte Schnittstelle 122 Prozessdaten empfängt, die mit einer Anforderung assoziiert sind, bestimmt die webbasierte Schnittstelle 122 einen oder mehrere Datentyp(en) und/oder Eigenschaften, die mit den Prozessdaten assoziiert sind, indem die Prozessdaten an einen Datenprozessor 206 weitergeleitet werden. Der beispielhafte Datenprozessor 206 identifiziert Metadaten und/oder Eigenschaften, die in Teile der Prozessdaten eingeschlossen sein können. Der Datenprozessor 206 greift zudem auf eine Vorlagendatenbank 208 zu, um Prozessdaten bezogen auf einen Wertetyp, eine Eigenschaft, einen Variablentyp und/oder jeglichen anderen Identifikator, der mit Prozessdaten assoziiert sein kann, auf eine entsprechende Vorlage und/oder ein entsprechendes Datenfeld quer zu referenzieren. Die beispielhafte Vorlagendatenbank 208 kann durch Electronically Erasable Programmable Read-Only Memory (EEPROM), Direktzugriffspeicher (RAM), Festwertspeicher (ROM) und/oder jeglichen anderen Speichertyp implementiert werden.
-
Der beispielhafte Datenprozessor 206 von 2 assoziiert und/oder kombiniert Prozessdaten mit einem Datenfeld, nachdem der Datentyp/die Datentypen bestimmt worden ist/sind, der/die mit den Prozessdaten assoziiert ist, und passende Vorlagen in der Vorlagendatenbank 208 gesucht worden sind. Die Vorlagen können beispielsweise dem XSLT-Protokoll entsprechen. Der Datenprozessor 206 kann aus einer oder mehreren mit den abgerufenen Prozessdaten assoziierten EDDL-Dateien eine XSLT-Vorlage generieren. In diesen Beispielen können die EDDL-Dateien definieren, wie die Prozessdaten angezeigt werden sollen. Der beispielhafte Datenprozessor 206 weist Prozessdaten einer oder mehreren Datenanzeigevariablen (z. B. Parametern) eines Datenfelds innerhalb einer Vorlage zu, die auf einen Datentyp und/oder eine Eigenschaft querreferenziert werden können. Der Datenprozessor 206 und/oder die webbasierte Schnittstelle 122 können auch numerische, alphanumerische und/oder Flag-Werte der Prozessdaten speichern, einbetten und/oder auf das passende Datenfeld innerhalb einer Vorlage referenzieren.
-
Der Datenprozessor 206 greift auf die Vorlagendatenbank 206 zu, um eine Vorlage zum Anzeigen der Prozessdaten auszuwählen. Die Vorlage kann eine XSLT-Vorlage einschließen, die XML-Informationen (z. B. Prozessdaten) zur Anzeige in einem Webbrowser in HTML konvertiert. Der Datenprozessor 206 kann eine Vorlage basierend auf einem Typ der Prozessdaten, Werten der Prozessdaten, Eigenschaften der Prozessdaten und/oder Zielanzeigeinformationen auswählen. Zielanzeigeinformationen können einen Webbrowsertyp und/oder einen Vorrichtungstyp identifizieren, der die Prozessdaten anzeigen soll. Zielanzeigeinformationen können beispielsweise angeben, ob Prozessdaten auf einem Smartphone-Webbrowser oder einem Webbrowser auf einer Workstation angezeigt werden sollen. Eine Vorlage für ein Smartphone kann so konfiguriert sein, dass Prozessdaten auf einem relativ kleinen Bildschirm angezeigt werden, verglichen mit einer Vorlage für den Webbrowser einer Workstation.
-
Die beispielhafte webbasierte Schnittstelle 122 von 2 empfängt den Datentyp/die Datentypen und/oder Eigenschaften der Prozessdaten von dem Datenprozessor 206 und kompiliert eine oder mehrere passende Vorlage(n). Die webbasierte Schnittstelle 122 kann dann die Prozessdaten (z. B. die kompilierten Teile der Prozessdaten, die mit den jeweiligen Datenfeldern assoziiert sind) in die entsprechenden Datenfelder einer Vorlage einbetten, diese kombinieren und/oder anderweitig platzieren. Die webbasierte Schnittstelle 122 bettet die Teile der Prozessdaten in das Datenfeld/die Datenfelder ein, indem die Prozessdaten nach Datentyp(en) partitioniert werden, wobei die Informationen und/oder Vorlage(n) von dem Datenprozessor 206 verwendet werden, um zu ermitteln, welcher Datentyp mit einem Datenfeld einer Vorlage assoziiert ist, und die mit jedem Datentyp assoziierten Prozessdaten in dem assoziierten Datenfeld der Vorlage platziert werden. In einigen Beispielen kann ein Datenfeld mit mehr als einem Datentyp assoziiert sein. Die webbasierte Schnittstelle 122 kann dann die Prozessdaten in einer Vorlagen-Webseite einbetten, die das Datenfeld/die Datenfelder einschließt.
-
In Beispielen, in denen ein Client Prozessdaten unter Verwendung einer Client-Anwendung (z. B. der Client-Anwendung 124) anfordert, ermittelt die beispielhafte webbasierte Schnittstelle 122 den Typ der Anwendung. Die webbasierte Schnittstelle 122 kann den Typ der Client-Anwendung ermitteln, indem innerhalb der Anforderungsnachricht ein mit der Anforderungsnachricht assoziiertes Protokoll und/oder eine damit assoziierte Anwendungssprache und/oder jegliche Metadaten identifiziert werden, die mit der Client-Anwendung assoziiert sind. Ein Client, der eine Webserver-Anwendung verwendet, kann beispielsweise Protokolle einschließen, die mit der ASP.NET-Anwendung assoziiert sind, während ein Client, der eine Client-Anzeigeanwendung verwendet, Protokolle und/oder Nachrichten einschließen kann, die mit einer SilverlightTM- oder ActiveX-Anwendung assoziiert sind. Die beispielhafte webbasierte Schnittstelle 122 erstellt und/oder konfiguriert bezogen auf den Typ der Client-Anwendung die geeignete Webbrowser- und/oder programmatische Schnittstelle zur Anzeige der Prozessdaten innerhalb einer geeigneten Vorlage. Die webbasierte Schnittstelle 122 kann beispielsweise den Datenprozessor 206 instruieren, nach Vorlagen zu suchen, die einem bestimmten Typ von Client-Anzeigeanwendung entsprechen.
-
Nachdem der Typ einer Client-Anwendung ermittelt wurde, formatieren die webbasierte Schnittstelle 122 und/oder der Datenprozessor 206 die Prozessdaten und/oder Vorlagen zur Anzeige, indem eine Anzeigedatei generiert wird. Die Anzeigedatei kann dem Typ der Client-Anwendung entsprechen. Auf diese Weise kann eine Anzeigedatei an einen Client übertragen werden, um die Prozessdaten in einem Layout anzuzeigen, das durch die Vorlage und/oder eine EDDL-Datei spezifiziert wird. In Beispielen, in denen die Client-Anwendung 124 mit einer Webserver-Anwendung assoziiert ist, empfängt die webbasierte Schnittstelle 122 eine Anforderung von dem Client 106 über einen Webbrowser, leitet die Anforderung an den Adapter 118 weiter, um auf die Prozessdaten und/oder entsprechenden EDDL-Dateien zuzugreifen, und empfängt die Prozessdaten von dem Konverter 120. Die Anforderung von dem Client 106 über den Webbrowser kann in Form eines HTML-Dokuments vorliegen. Die webbasierte Schnittstelle 122 kann ferner eine Anweisung an den Sessioncontroller 204 senden, um den Webbrowser des Client 106 mit der neu erstellten Session zu assoziieren. Die webbasierte Schnittstelle 122 erstellt dann eine Webseite (z. B. eine Anzeigedatei) mit der Vorlage einschließlich eingebetteten Prozessdaten. Die Vorlagen können beispielsweise Listen, Tabellen, Grafiken, Diagramme, grafische Anzeigen, Animationen, usw. einschließen. Die Positionen der Datenfelder können ferner durch die Vorlage spezifiziert werden. Die in eine Vorlage einzufügenden Prozessdaten können auch durch eine EDDL-Datei spezifiziert werden. Die webbasierte Schnittstelle 122 überträgt den Inhalt der Webseitenvorlage als Anzeigedatei an den Webbrowser des Clients 106, um die Webseite am Ort des Clients anzuzeigen. Die Prozessdaten innerhalb der Webseitenvorlage werden in formatiertem Kontext über ein beliebiges HTTP-, XML-, XSLT- und/oder irgendein anderes Internet-Webseitenübertragungsformat über den Webbrowser an den Client 106 übertragen.
-
In Beispielen, in denen der Webbrowser eine Client-Anzeigeanwendung einschließt, empfängt die beispielhafte webbasierte Schnittstelle 122 eine Anforderung von dem Client 106 über einen Webbrowser, leitet die Anforderung an den Adapter 118 weiter, um auf die Prozessdaten zuzugreifen, empfängt die Prozessdaten von dem Konverter 120 und initiiert die Client-Anzeigeanwendung innerhalb des Webbrowsers. Die webbasierte Schnittstelle 122 kann basierend auf den Eigenschaften der Prozessdaten eine Anweisung an den Datenprozessor 206 hinsichtlich einer Client-Anzeigeanwendungsvorlage senden. Die webbasierte Schnittstelle 122 kann dann die Prozessdaten innerhalb einer Client-Anzeigeanwendung als Anzeigedatei über den Webbrowser anzeigen. Die Anforderung von dem Client 106 über den Webbrowser kann in Form eines Methodenaufrufs vorliegen. Nach dem Formatieren und/oder Konfigurieren der Prozessdaten zur Anzeige innerhalb einer Vorlage zum Generieren der Anzeigedatei überträgt die webbasierte Schnittstelle 122 die Anzeigedatei in einem Format an einen Client, das mit Protokollen der Client-Anzeigeanwendung assoziiert ist. Die Client-Anzeigeanwendung erstellt dann am Ort des Clients eine Anzeige in dem Webbrowser, die die Prozessdaten innerhalb der assoziierten Datenfelder der Vorlage zeigt.
-
Die Client-Anzeigeanwendung kann jeden programmatischen Client einschließen, der in einigen Beispielen ohne einen Webbrowser auf die webbasierte Schnittstelle 122 zugreifen kann. In diesen Beispielen assoziiert die webbasierte Schnittstelle 122 den programmatischen Client mit der neu erzeugten Zugriffssession und leitet zur Anzeige innerhalb einer Vorlage formatierte Prozessdaten als Anzeigedatei über irgendein mit dem programmatischen Client assoziiertes Protokoll an den Client weiter. Der programmatische Client erstellt dann eine Anzeige über die Anzeigedatei, die die Prozessdaten innerhalb assoziierter Datenfelder zeigt.
-
Die beispielhafte webbasierte Schnittstelle 122 versorgt Clients mit Lesezugriff, Schreibzugriff und/oder Abonnementzugriff. Für Clients, die Lesezugriff anfordern, leitet die webbasierte Schnittstelle 122 eine einzelne Anforderung nach aktuellen Prozessdaten und/oder einer entsprechenden EDDL-Datei an den Adapter 118 weiter. Nach dem Empfangen und Formatieren der Prozessdaten versorgt die webbasierte Schnittstelle 122 die Client-Anwendung(en) mit den angeforderten Prozessdaten.
-
Wenn Clients alternativ Abonnementzugriff anfordern, kann die webbasierte Schnittstelle 122 periodische Nachrichten an den Adapter 118 senden, um in Zeitintervallen Prozessdaten zu empfangen. In einigen Beispielen kann der Client die Zeitintervalle spezifizieren, um Prozessdaten zu empfangen. Nachdem die webbasierte Schnittstelle 122 eine Webseite und/oder eine Anzeigevorlage für eine programmatische Anwendung erstellt hat, liefert die webbasierte Schnittstelle 122 ferner periodische und/oder kontinuierliche Updates für die Datenfelder innerhalb der Vorlage mit neueren Prozessdaten. Die webbasierte Schnittstelle 122 liefert die Updates über eine bereits aktive Zugriffssession, die die Kommunikation mit einem anfordernden Client aufrechterhält. Die Updates der Datenfelder können die Aktualisierung von Trendgrafiken, Prozessstatusalarmmeldungen und/oder Flags mit den neuesten Prozessdaten beinhalten, die auf dem entsprechenden externen Server des Steuerungssystems gespeichert sind. Die webbasierte Schnittstelle 122 ermöglicht einem Client somit den Zugriff auf die neuesten Prozessdaten, ohne einen Webbrowser aktualisieren zu müssen und/oder ohne periodisch die Prozessdaten anfordern zu müssen.
-
In noch anderen Beispielen, in denen Clients möglicherweise Schreibzugriff anfordern, empfängt die beispielhafte webbasierte Schnittstelle 122 den geschriebenen Prozessdatenwert von der Webseite und/oder programmatischen Anwendung über ein HTML-Dokument oder eine Methodenanforderung. Die webbasierte Schnittstelle 122 identifiziert dann eine Variable und/oder einen Parameter, die bzw. der mit dem geschriebenen Datenwert assoziiert ist. In anderen Beispielen kann die webbasierte Schnittstelle 122 auf den Datenprozessor 206 zugreifen, um den Datenwert auf einen Datentyp quer zu referenzieren, der innerhalb der Vorlagendatenbank 208 spezifiziert ist. Die webbasierte Schnittstelle 122 sendet dann eine Anweisung an den Konverter 120 und/oder Adapter 118, um den Datenwert an die entsprechende Variable und/oder einen Teil des externen Servers weiterzuleiten. Der externe Server kann dann den geschriebenen Datenwert speichern und/oder den geschriebenen Datenwert an den entsprechenden Ort innerhalb eines Controllers weiterleiten.
-
Die beispielhafte webbasierte Schnittstelle 122 kann Personalisierungsinformationen des Clients in einer (nicht gezeigten) Datenbank speichern, damit beim nächsten Mal, wenn derselbe Client denselben Typ von Prozessdaten anfordert, die webbasierte Schnittstelle 122 die Prozessdaten in einer oder mehreren Vorlagen formatieren kann, die teilweise auf der vorgehenden Personalisierung des Clients basieren. Die webbasierte Schnittstelle 122 kann die Personalisierung des Clients durch jedwede Modifikationen identifizieren, die von einem Client über einen Webbrowser und/oder eine programmatische Anwendung vorgenommen wurden, um das Aussehen und/oder die Datenanzeige der Prozessdaten innerhalb des Datenfelds bzw. der Datenfelder zu ändern. Ein Client kann eine Farbe, eine Textgröße, eine Zahlenkonvention und/oder jegliche andere grafische Darstellung der Prozessdaten modifizieren.
-
Um auf externe Server des Steuerungssystems zuzugreifen (z. B. den externen Server 104), umfasst der beispielhafte Wrapper 110 von 2 den Adapter 118. Der beispielhafte Adapter 118 kann TCP, HTTP, XML und/oder jegliches andere Übertragungsprotokoll nutzen, um über jegliche verdrahtete und/oder drahtlose Verbindung mit dem externen Server bzw. den externen Servern zu kommunizieren. Der Adapter 118 empfängt Anforderungen zum Zugriff auf einen externen Server von der webbasierten Schnittstelle 122. Nach Empfang einer Anforderung identifiziert der Adapter 118 einen externen Server, der Prozessdaten speichert, indem er auf eine Server-Referenzdatenbank 210 zugreift, um eine Querreferenz der Client-Anforderung auf einen speziellen externen Server zu erstellen. Die beispielhafte Server-Referenzdatenbank 210 kann durch EEPROM, RAM, ROM und/oder jeglichen anderen Speichertyp implementiert werden.
-
In einigen Beispielen kann die Client-Anforderung eine Webadresse und/oder einen Identifikator eines externen Servers einschließen. Der Adapter 118 kann die Server-Referenzdatenbank 210 referenzieren, um einen Ort des angeforderten externen Servers zu bestimmen. In einigen Beispielen kann der Adapter 118 auf zwei oder mehr externe Server zugreifen, um auf angeforderte Prozessdaten und/oder entsprechende EDDL-Dateien zuzugreifen. Nachdem der Ort des externen Servers bestimmt wurde, sendet der Adapter 118 eine Anforderung für die Prozessdaten an den externen Server. Der Adapter 118 kann auf die Prozessdaten auf dem externen Server zugreifen, indem ein Verzeichnis oder die Dateistruktur der auf dem Server gespeicherten Prozessdaten ermittelt wird. Der Adapter 118 kann dieses Verzeichnis und/oder die Dateistruktur der webbasierten Schnittstelle 122 übermitteln, um es einem Client zu ermöglichen, ein oder mehrere Verzeichnisse und/oder Unterverzeichnisse über einen Webbrowser und/oder eine programmatische Anwendung auszuwählen. Der Client spezifiziert durch Auswählen der Verzeichnisse und/oder Unterverzeichnisse die gewünschten Prozessdaten, die betrachtet und/oder auf die zugegriffen werden soll. Der Client kann in anderen Beispielen den Ort des Verzeichnisses und/oder Unterverzeichnisses der gewünschten Prozessdaten einschließen. In noch anderen Beispielen kann der Client Variablennamen, Prozessdatenidentifikatoren und/oder jegliche anderen Datenidentifikationsinformationen spezifizieren, die der Adapter 118 verwenden kann, um durch einen externen Server zu navigieren, um auf die angeforderten Prozessdaten zuzugreifen.
-
Der beispielhafte Adapter 118 kann unter Verwendung von zugeordneten Endpunkten durch die Verzeichnisse, Unterverzeichnisse und/oder Dateien eines externen Servers navigieren. Der Adapter 118 kann beispielsweise auf die Referenzdatenbank 210 des externen Servers zugreifen, um einen Endpunkt zu identifizieren, der einem externen Server entspricht. Der externe Server kann dann basierend auf einer Hierarchie, Lesezugriff, Schreibzugriff und/oder Abonnementzugriff Endpunkte an den Adapter 118 zurückgeben, die mit Prozessdaten assoziiert sind. Der Adapter 118 kann dann ermitteln, welcher Endpunkt bzw. welche Endpunkte mit den angeforderten Prozessdaten assoziiert sind, und verwendet den Endpunkt/die Endpunkte zum Browsern und/oder Lokalisieren der Orte innerhalb des externen Servers, die die Prozessdaten speichern.
-
In Beispielen, in denen der Adapter 118 eine Lese- und/oder Abonnementanweisung von der webbasierten Schnittstelle 122 empfängt, kann der Adapter 118 auf entsprechende Lese- und/oder Abonnement-Endpunkte zugreifen, die mit den angeforderten Prozessdaten assoziiert sind. In Beispielen, in denen ein Client ein periodisches Intervall zum Empfang von Prozessdaten spezifizieren kann (z. B. Abonnieren von Prozessdaten), kann der Adapter 118 den externen Server in dem periodischen Intervall auf gewünschte Prozessdaten Pollen.
-
In noch anderen Beispielen, in denen möglicherweise ein Client einen Prozessdatenwert in ein Datenfeld schreibt, empfängt der Adapter 118 den Wert und/oder den assoziierten Wertidentifikator von der webbasierten Schnittstelle 122. Der Adapter 118 navigiert dann durch den externen Server (z. B. unter Verwendung von Schreib-Endpunkten), um die Datei und/oder den Verzeichnisort zu lokalisieren, die mit dem geschriebenen Datenwert assoziiert sind. Der Adapter 118 speichert dann den geschriebenen Wert an dem entsprechenden Ort auf dem externen Server. In einigen Beispielen, in denen ein Client möglicherweise einen Wert schreibt, kann der Adapter 118 den Wert empfangen, nachdem der Konverter 120 den Wert von einem Format einer Webseite und/oder programmatischen Anwendung in ein Interoperabilitäts-Datenpackungsformat konvertiert hat.
-
Der beispielhafte Adapter 118 von 2 schließt Funktionalität ein, die dem Adapter 118 ermöglicht, eine Schnittstelle zu unterschiedlichen externen Servern zu haben und/oder mit unterschiedlichen externen Servern zu kommunizieren, die mit unterschiedlichen Protokollen, Schnittstellen, Betriebssystemen und/oder Dateisystemen arbeiten können. Die Server-Referenzdatenbank 210 kann Referenzen auf die Protokolle, Schnittstellen, Betriebssysteme und/oder Dateisysteme einschließen, die mit jedem externen Server assoziiert sind. Wenn dann der Adapter 118 einen externen Server für den Zugriff identifiziert, kann der Adapter 118 die Protokoll-, Schnittstellen-, Betriebssystem- und/oder Dateisysteminformationen verwenden, die mit dem externen Server assoziiert sind, um mit dem externen Server auf geeignete Weise zu kommunizieren und/oder eine geeignete Schnittstelle zu dem externen Server zu haben.
-
Nach Empfangen der und/oder Zugreifen auf die angeforderten Prozessdaten von einem externen Server leitet der beispielhafte Adapter 118 die Prozessdaten an den Konverter 120 weiter. Der beispielhafte Konverter 120 von 2 konvertiert Prozessdaten und/oder EDDL-Dateien von jedwedem mit Interoperabilität-Datenpacken verknüpftem Format in ein Format, das in einem Webbrowser und/oder jedweder anderen programmatischen Anwendung betrachtbar ist. Nach Konvertieren der Prozessdaten in ein Webbrowser-Format und/oder anderes Format einer programmatischen Anwendung leitet der Konverter 120 die konvertierten Prozessdaten an die webbasierte Schnittstelle 122 weiter. Der beispielhafte Konverter 120 kann auch eine komprimierte EDDL-Datei in ein Format (z. B. XML und/oder XSLT) konvertieren, das von dem Datenprozessor 206 verwendet werden kann, um Prozessdaten innerhalb einer Vorlage anzuzeigen. Der Konverter 120 kann ferner geschriebene Werte und/oder Prozessdaten von der webbasierten Schnittstelle 122 empfangen. Der Konverter 120 konvertiert in diesen Beispielen das Webbrowserformat und/oder Format der programmatischen Anwendung der geschriebenen Daten in ein Format, das der Adapter 118 verwenden kann, um die geschriebenen Daten auf einem externen Server zu speichern. Der Konverter 120 kann jegliche Anwendung, jegliches Framework, jeglichen Datenkonvertierungsalgorithmus usw. verwenden, die durch jedwede Datenpackungskonvention spezifiziert werden können.
-
Obwohl in 2 der beispielhafte Wrapper 110 illustriert worden ist, können einer oder mehrere der Server, Plattformen, Schnittstellen, Datenstrukturen, Elemente, Prozesse und/oder Vorrichtungen, die in 2 illustriert sind, in beliebiger Weise kombiniert, unterteilt, anders angeordnet, weggelassen, eliminiert und/oder implementiert werden. Der beispielhafte Sicherheitsprozessor 202, der beispielhafte Sessioncontroller 204, die webbasierte Schnittstelle 122, der beispielhafte Konverter 120, der beispielhafte Adapter 118, der beispielhafte Datenprozessor 206, die beispielhafte Vorlagendatenbank 208, die beispielhafte Server-Referenzdatenbank 210 und/oder allgemeiner der beispielhafte Wrapper 110 können durch Hardware, Software, Firmware und/oder jedwede Kombination aus Hardware, Software und/oder Firmware implementiert werden. Somit können beispielsweise beliebige des beispielhaften Sicherheitsprozessors 202, des beispielhaften Sessioncontrollers 204, der webbasierten Schnittstelle 122, des beispielhaften Konverters 120, des beispielhaften Adapters 118, des beispielhaften Datenprozessors 206, der beispielhaften Vorlagendatenbank 208, der beispielhaften Server-Referenzdatenbank 210 und/oder allgemeiner des beispielhaften Wrappers 110 durch einen oder mehrere Schaltkreis(e), programmierbare(n) Prozessor(en), anwendungsspezifische(n) integrierte(n) Schaltkreis(e) (ASIC(s)), programmierbare(s) Logikelement(e) (PLD(s)) und/oder feldprogrammierbare(s) Logikelement(e) (FPLD(s)) usw. implementiert werden.
-
Wenn irgendein Vorrichtungsanspruch dieses Patents so gelesen wird, dass eine reine Software- und/oder Firmware-Implementierung abgedeckt ist, sind hier mindestens eine(r) von dem beispielhaften Sicherheitsprozessor 202, beispielhaften Sessioncontroller 204, der webbasierten Schnittstelle 122, dem beispielhaften Konverter 120, dem beispielhaften Adapter 118, dem beispielhaften Datenprozessor 206, der beispielhaften Vorlagendatenbank 208 und/oder der beispielhaften Server-Referenzdatenbank 210 hier ausdrücklich so definiert, dass ein computerlesbares Medium wie ein Speicher, eine DVD, CD, usw. eingeschlossen ist, um die Software und/oder Firmware zu speichern. Der beispielhafte Wrapper 110 kann darüber hinaus ein oder mehrere Elemente, Prozesse und/oder Vorrichtungen zusätzlich zu oder anstelle der in 2 illustrierten einschließen und/oder kann mehr als eines jeder bzw. aller der illustrierten Elemente, Prozesse und Vorrichtungen einschließen.
-
3 ist ein Blockdiagramm eines beispielhaften dienstorientierten Frameworks 300, das zum Implementieren des beispielhaften Wrappers der 1 und 2 verwendet werden kann. Das beispielhafte dienstorientierte Framework 300 liefert eine dienstorientierte Architektur zur Verbesserung der Flexibilität eines Steuerungssystems (z. B. des Steuerungssystems 102 von 1). Wie in 3 illustriert befindet sich das dienstorientierte Framework 300 in Kommunikation mit dem Client 106, einer Vorrichtungsbeschreibungsschicht 302, einem oder mehreren Vorrichtungsnetzwerk(en) 304. Der Client schließt die Client-Anwendung 124 ein, die Anforderungen nach Prozessdaten an das dienstorientierte Framework 300 überträgt. Das dienstorientierte Framework 300 schließt eine Dienstschicht 306, eine Übersetzungsschicht 308, eine Netzwerkanwendungsschicht 310 und eine Sicherheitsschicht 312 ein.
-
Der beispielhafte Wrapper 110 kann durch die beispielhafte Dienstschicht 306, die Übersetzungsschicht 308 und die Sicherheitsschicht 312 implementiert werden. Die Dienstschicht 306 schließt Dienst-Schnittstellen 320, Dienst-Nachrichtentypen 322, Dienst-Datentypen 324, Adapter 326 und Dienste 328 ein. Zu den von der Dienstschicht 306 bereitgestellten beispielhaften Diensten 328 gehören das Übertragen von Prozessdaten und Vorlagen an den Client 106 zur Anzeige. Dienste können auch das Abonnieren von Prozessdaten und/oder das Schreiben von Prozessdaten an das Vorrichtungsnetzwerk/die Vorrichtungsnetzwerke 304 einschließen. Die Dienste 328 werden als Dienstverträge dargelegt, die Anwendungen und/oder Vorrichtungen ermöglichen, die Dienste 328 zur Ausführung der gewünschten Fähigkeiten oder Funktionen anzufordern.
-
Der Client 306 greift über die Dienst-Schnittstellen 320 auf die Dienstschicht 306 zu. Die Dienstschicht 306 verwaltet Dienstanforderungen von der Client-Anwendung 124 und übersetzt Dienstverträge zur Verwendung durch den Client 106. Wenn Nachrichten zwischen einem Dienst und dem Client 106 ausgetauscht werden, können ein oder mehrere Adapter 326 verwendet werden, um die Nachrichten in Formate umzuwandeln, die der Client 106 verstehen kann. Der Zugriff auf die Dienstschicht 306 wird durch Richtlinien definiert. Richtlinien ermöglichen dem Client 106, die Verbindungstypen, Sicherheitsanforderungen zum Zugreifen auf Dienste und/oder jegliche anderen Details zu bestimmen, die mit Anfordern von Diensten verknüpft sind.
-
Die Übersetzungsschicht 308 übersetzt zwischen Protokollen. Die Übersetzungsschicht 308 kann beispielsweise den Konverter 120 implementieren, um Prozessdaten von einem Interoperabilitäts-Datenpackungsformat in ein Webbrowserformat zu übersetzen. Die Übersetzungsschicht 308 kann in anderen Beispielen Prozessdaten von einem vorrichtungsnetzwerkspezifischen Protokoll (z. B. HART, Feldbus, Profibus) in ein Feldgeräteintegrations-(FDI)-Format konvertieren. Die beispielhafte Übersetzungsschicht 308 empfängt Informationen über Prozessdaten von der Vorrichtungsbeschreibungsschicht 302. Die Vorrichtungsbeschreibungsschicht 302 schließt Feldgerät-EDDL-Dateien ein, die in einer EDDL-Datenbank 330 und/oder einer Datenbank im üblichen Dateiformat 332 gespeichert sind. Die Datenbanken 330 und 332 können innerhalb des Steuerungssystems implementiert sein. Es können ferner auch Kopien der Datenbanken 330 und 332 beispielsweise in den externen Server 104 eingeschlossen sein. Auf diese Weise kann der Wrapper 110 auf die EDDL-Datenbank 330 und/oder die Datenbank 332 im üblichen Dateiformat zugreifen, um Beschreibungen zu erhalten, wie Prozessdaten innerhalb von Vorlagen angezeigt werden sollen. Die Datenbank im üblichen Dateiformat 332 speichert Informationen über Vorrichtungen und/oder Anwendungen. In einigen Beispielen verwendet die Datenbank in üblichem Dateiformat 332 ein Schema, das XML-Dateien zum Beschreiben der Funktionalität von Feldvorrichtungen einschließt.
-
Die beispielhafte Vorrichtungsbeschreibungsschicht 302 schließt eine XSLT-Vorlagen-Datenbank 334 ein (z. B. die Vorlagendatenbank 208). Die Übersetzungsschicht 308 kann auf die XSLT-Vorlagen-Datenbank 334 zugreifen, um XSLT-Vorlagen zu erhalten, welche zu anzuzeigenden Prozessdaten passen. Die Übersetzungsschicht 308 kann auch EDDL-Dateien aus der EDDL-Datenbank 330 verwenden, um zu ermitteln, wie die Prozessdaten in die XSLT-Vorlagen eingebettet und/oder mit diesen kombiniert werden sollen. Die beispielhafte Übersetzungsschicht 308 verwendet die Prozessdaten innerhalb der XSLT-Vorlagen zur Generierung einer Anzeigedatei, die durch die Dienstschicht 306 verwendet wird, um über die Dienst-Schnittstelle 320 Prozessdaten an die Client-Anwendung 124 zu liefern. Die Übersetzungsschicht 308 kann eine Anwendungsfassade einschließen, die die Vorlagen zur Anzeige verarbeitet.
-
Es mag in einigen Fällen notwendig sein, den Zugriff von dem Client 106 auf die Vorrichtungsnetzwerke 304 zu begrenzen. Um diese Anforderung zu unterstützen, schließt das dienstorientierte Framework 300 die Sicherheitsschicht 312 ein, um für Authentifizierung und/oder Autorisierung zu sorgen (z. B. über den Sicherheitsprozessor 202 des Wrappers 110). Die Implementierung der Authentifizierung kann von dem Typ des verwendeten Dienst-Hosts abhängen. Das dienstorientierte Framework 300 ermöglicht somit die Nutzung von einer oder mehreren Sicherheitsschichten. Wenn das dienstorientierte Framework 300 beispielsweise in Internet Information Services (IIS) gehostet wird, wird die von IIS bereitgestellte Authentifizierungsunterstützung verwendet. Wenn alternativ der Dienst von einem Windows-Dienst gehostet wird, wird eine Authentifizierung auf Nachrichtenbasis oder Transportbasis verwendet.
-
Das beispielhafte dienstorientierte Framework 300 umfasst die Netzwerkanwendungsschicht 310, um Prozessdaten von den Vorrichtungsnetzwerken 304 zu empfangen. Die Netzwerkanwendungsschicht 310 schließt Datenzugrifffunktionalität zur Interaktion mit einem oder mehreren der Vorrichtungsnetzwerke 304 ein. Das beispielhafte Framework 300 kann mehrere Netzwerkanwendungsschichten 310 einschließen, die jeweils für ein spezielles Vorrichtungsnetzwerk spezifisch sein können, wie HART, Feldbus und/oder Profibus. In einigen Beispielen kann die Netzwerkanwendungsschicht 310 den externen Server 106 implementieren, indem eine Transportschicht der Prozessdaten von dem Steuerungssystem 102 bereitgestellt wird. Die Netzwerkanwendungsschicht 310 kann auch Netzwerknachrichtentypen, Netzwerkdatentypen und/oder ein Objektverzeichnis (z. B. ein Prozesssteuerungsverzeichnis) einschließen, die Prozessdaten innerhalb des externen Servers 106 organisieren und klassifizieren. Netzwerkdatentypen können beispielsweise Eigenschaftsinformationen liefern, die der Wrapper 110 zur Identifizierung passender Vorlagen und/oder Datenfelder zum Einbetten entsprechender Prozessdaten verwendet. Der Wrapper 110 kann zusätzlich das Objektverzeichnis verwenden, um die angeforderten Prozessdaten relativ rasch zu lokalisieren.
-
Die Vorrichtungsnetzwerke 304 verleihen dem beispielhaften Framework 300 die Fähigkeit, Vorrichtungen zu konfigurieren, auf Vorrichtungsdiagnostik zuzugreifen, Messwerte zu übertragen, Alarme und Ereignisse zu übertragen, und/oder andere Kommunikation- und Kontrollfähigkeiten. Einige beispielhafte Fähigkeiten, die von dem dienstorientierten Framework 300 unterstützt werden, schließen Anforderungen und/oder Antworten, Veröffentlichen und/oder Abonnieren, Übertragen von Ereignissen, Pflegen eines Verzeichnisses von Anwendungen und/oder Vorrichtungen und/oder Schreiben von Befehlen in Vorrichtungen ein. Das dienstorientierte Framework verleiht dem Client 300 über die Dienstschicht 306 Zugriff auf diese Fähigkeiten. Das dienstorientierte Framework kann beispielsweise Dienste aufweisen, die für Anforderungs-/Antwort-, Veröffentlichungs-/Abonnement-, Ereignis-, Verzeichnis- und Schreibfähigkeiten definiert sind.
-
Das Vorrichtungsnetzwerk 304 schließt Netzwerkprotokolle und Netzwerkdienste zur Kommunikation mit den Feldvorrichtungen innerhalb des Prozesssteuerungssystems 112 ein. Die Vorrichtungsnetzwerke 304 können auch den Controller 114 und/oder ein Kommunikationsmedium zwischen dem Controller 114 und dem externen Server 104 einschließen. Auf diese Weise werden von Feldvorrichtungen generierte Prozessdaten verarbeitet und über die Vorrichtungsnetzwerke 304 auf dem externen Server 304 gespeichert. Die Vorrichtungsnetzwerke 304 können auch von dem Client 106 geschriebene Daten an entsprechende Feldvorrichtungen übertragen.
-
4 zeigt eine beispielhafte Schnittstelle 400 für Serveridentifizierungs-Prozessdaten, die in einem Webbrowser angezeigt werden. Die Schnittstelle 400 ist als Anwendungsfenster gezeigt. In anderen Beispielen kann die Schnittstelle 400 jedoch Navigationsfunktionen einschließen, die mit einem Webbrowser und/oder jedwedem anderen programmatischen Client assoziiert sind. Obwohl die beispielhafte Schnittstelle 400 als eine Weise zur Anzeige von Prozessdaten in Datenfeldern gezeigt ist, können ferner andere beispielhafte Schnittstellen erstellt werden, um Prozessdaten anzuzeigen.
-
Das Beispiel von 4 zeigt die Schnittstelle 400, die Serveridentifizierungsinformationen anzeigt, die mit einem Servereigenschafts-Tab 402 assoziiert sind. Die Schnittstelle 400 schließt einen Navigationsbereich 404 und einen Datenbereich 406 ein. Die Bereiche 404 und 406 können vorkonfiguriert und/oder von einer oder mehreren Vorlagen (z. B. einer XSLT-Vorlage) und/oder Stylesheets zur Anzeige von Prozessdaten spezifiziert werden. Der beispielhafte Wrapper 110 der 1 und/oder 2 kann die Vorlage oder das Stylesheet zum Anordnen und/oder Einbetten von Datenfeld(ern) und den assoziierten Prozessdaten verwenden. Der Datenbereich 406 kann beispielsweise vorkonfiguriert werden, um eine Variable und/oder einen Parameternamen (z. B. Attribut) und einen Datenwert (z. B. Wert) anzuzeigen, die mit den Prozessdaten assoziiert sind. Der beispielhafte Wrapper 110 kann dann die mit der Dienstidentifikation assoziierten Datenfelder in die Attributspalte und/oder die Wertespalte einbetten und/oder dort platzieren. Prozessdaten, die einen externen Servernamen beschreiben, können beispielsweise durch eine Eigenschaft ”ServerName” mit einem Wert von ”OPC DA Server” identifiziert werden.
-
Ein Client kann auf die in Schnittstelle 400 gezeigten Prozessdaten zugreifen, indem eine Webadresse und/oder eine Internet Protocol(IP)-Adresse in einen Webbrowser eingegeben wird. Der Webbrowser kann dann zu dem Wrapper 110 und/oder dem Webseitenserver 108 von 1 navigieren. Der Wrapper 110 löst die Webadresse und/oder IP-Adresse für den externen Server (z. B. den OPC DA Server) auf, der in der Schnittstelle 400 gezeigt ist. Der Wrapper 110 ruft dann Prozessdaten ab, die mit dem externen Server assoziiert sind, konvertiert die Prozessdaten in ein Webbrowserformat, identifiziert Datentyp(en) (z. B. Eigenschaften) der Prozessdaten, wählt mindestens eine Vorlage basierend auf den identifizierten Typen aus, bettet die Prozessdaten in die Vorlage(n) ein und zeigt die Schnittstelle 400 dem Client über den Webbrowser an, indem die Vorlage(n) mit den Prozessdaten gerendert werden. Das Rendern der Vorlage(n) mit den Prozessdaten kann das Erstellen einer Anzeigedatei einschließen, die an den Webbrowser gesendet wird, um die Prozessdaten innerhalb der Schnittstelle 400 anzuzeigen. In diesem Beispiel ermittelt der Wrapper 110 den Typ/die Typen der Prozessdaten durch Identifizieren von Eigenschaften innerhalb von Metadaten, die mit den Datenwerten assoziiert sind. Der Wrapper 110 kann dann die Eigenschaften verwenden, um entsprechende Werte der Prozessdaten in entsprechende Datenfelder in der Vorlage(n) einzubetten und/oder in diese einzufügen.
-
In dem illustrierten Beispiel zeigt der Navigationsbereich 404 ein Verzeichnis und/oder eine Dateistruktur von OPC Serveridentifizierungsinformationen, die mit dem externen Server assoziiert sind. Ein Client kann durch die Verzeichnisstruktur in dem Navigationsbereich 404 navigieren, um Prozessdaten auszuwählen, die mit OPC Serverinformationen assoziiert sind, die im Datenbereich 406 angezeigt werden. Der Client kann selektiv andere externe Serverdaten betrachten, indem die anderen Verzeichnisse innerhalb des Navigationsbereichs 404 ausgewählt werden. Der beispielhafte Wrapper 110 kann diese Verzeichnisstruktur (z. B. Prozessdaten) von dem externen Server abrufen und die Verzeichnisstruktur innerhalb von Datenfeldern unter Verwendung der Vorlage des Navigationsbereichs 404 konfigurieren.
-
5 zeigt eine beispielhafte Schnittstelle 500 für Prozessdaten, die in einem Webbrowser angezeigt werden. Die Prozessdaten werden in dem Webbrowser angezeigt, indem ein Datenlisten-Tab 502 gewählt wird. Wenn ein Client den Datenlisten-Tab 502 wählt, ruft der beispielhafte Wrapper 110 der 1 und/oder 2 Prozessdaten ab. Die Schnittstelle 500 schließt einen Abonnentenbereich 504 und einen Datenbereich 506 ein. Das Layout der Bereiche 504 und/oder 506 kann in einer oder mehreren Vorlagen basierend auf dem Typ der Prozessdaten spezifiziert werden, die mit dem Datenlisten-Tab 502 assoziiert sind.
-
Der Abonnentenbereich 504 ermöglicht einem Client, eine Aktualisierungsrate für Prozessdaten anzugeben, die in dem Datenbereich 506 angezeigt werden. In diesem Beispiel gibt der Client eine Update-Rate von 5000 Millisekunden (ms) an. Der Abonnentenbereich 504 schließt auch einen Client-Identifikator (z. B. Client-ID), einen Server-Identifikator (Server-ID) und die gewählte Aktualisierungsrate (z. B. Update-Rate) ein.
-
Der beispielhafte Datenbereich 506 zeigt ausgewählte Prozessdaten einschließlich eines Verzeichnisorts der Prozessdaten in dem externen Server (z. B. Instanz-ID), einen Datenwert (z. B. Datenwert), einen Status der Prozessdaten (z. B. Statuscode) und den Zeitpunkt der Erstellung der Prozessdaten (z. B. Zeitstempel) an. Der Datenbereich 506 schließt Schaltfläche zum Hinzufügen oder Entfernen von Prozessdaten von der Anzeige ein. Der Datenbereich 506 schließt auch Schaltflächen zum Lesen oder Schreiben der Prozessdaten ein.
-
In dem Beispiel von 5 ermittelt der Wrapper 110, dass die anzuzeigenden Prozessdaten mit einem Datentyp und/oder einer Eigenschaft der numerischen Werte vom Listentyp assoziiert sind. Der beispielhafte Wrapper 110 sucht nach einer oder mehreren Vorlagen, die Datenfelder zum Anzeigen von numerischen Prozessdaten in einer Tabelle vom Listentyp einschließen. Der beispielhafte Wrapper 110 bettet dann die Prozessdaten in die Datenfelder ein, generiert eine Anzeigedatei mit den kombinierten Prozessdaten und Vorlagen und überträgt (und/oder rendert) die Anzeigedatei zur Anzeige über die Schnittstelle 500.
-
6 zeigt eine beispielhafte Schnittstelle 600, die mit dem beispielhaften Wrapper 110 kommuniziert, um Prozessdaten in einem Webbrowser anzuzeigen. Die beispielhafte Schnittstelle 600 schließt eine Navigationsleiste 602 ein, die ein Bediener möglicherweise zur Eingabe eines Feldvorrichtungsnamens (z. B. TT101) verwendet, um mit der Feldvorrichtung assoziierte Prozessdaten zu betrachten. Die Schnittstelle 600 schließt auch eine Menüleiste 604 ein, die Optionen zur Schnittstellenkopplung mit der TT101 Feldvorrichtung einschließt. In diesem Beispiel wird die Option Manuelle Einrichtung ausgewählt.
-
Die beispielhafte Schnittstelle 600 von 6 kann dem Wrapper 110 Zielanzeigeinformationen liefern, die Prozessdaten angeben, die mit der TT101 Feldvorrichtung assoziiert sind und in einem Webbrowser auf einer Workstation oder einem Laptop angezeigt werden sollen. Zusätzlich, nach Auswählen oder Eingeben einer Feldvorrichtung (z. B. eines Objekts) empfängt der beispielhafte Wrapper 110 den Feldvorrichtungsnamen (z. B. TT101). Der Wrapper 110 verwendet den Feldvorrichtungsidentifikator zum Identifizieren einer Feldvorrichtung (z. B. eines Objekttyps), Eigenschaften, die mit der Feldvorrichtung assoziiert sind, und/oder Prozessdaten (z. B. Werten), die mit der Feldvorrichtung assoziiert sind. Der Wrapper 110 verwendet diese Informationen mit der Zielanzeigeinformation zur Auswahl einer Vorlage, um die Prozessdaten in Datenfeldern anzuzeigen. Der Wrapper 110 verwendet diese Informationen auch zum Zugriff auf die Prozessdaten von einem externen Server des Steuerungssystems. Der Wrapper 110 kann eine Vorlage auswählen, indem auf die Vorlagen-Datenbank 208 zugegriffen und Vorlagen für Webbrowser geortet werden, die auf einer Workstation laufen. Der Wrapper 110 kann dann die Vorlagen basierend auf einen Vorrichtungstyp der TT101 Feldvorrichtung eingrenzen. Der Wrapper 110 kann danach das Datenfeld/die Datenfelder in der Vorlage auswählen, die den Prozessdaten entsprechen.
-
In dem Beispiel von 6 kann der Wrapper 110 der Schnittstelle 600 eine Vorlage 606 und eine Vorlage 608 liefern. Die Vorlagen 606 und 608 schließen Datenfelder mit Prozessdaten (z. B. Analogeingabe (AI), % Bereich, Einheiten, unterer Bereich, oberer Bereich, Markierung (Tag), Datum und Deskriptor ein, die mit der TT101-Feldvorrichtung assoziiert sind. Der beispielhafte Wrapper 101 kann die in den Vorlagen 606 und 608 gezeigten Prozessdaten rendern, indem die Prozessdaten abgeglichen und basierend auf Metadaten in den Prozessdaten in das passende Feld/die passenden Felder eingefügt werden. In anderen Beispielen können Vorlagen Graphen, Diagramme, Grafiken und/oder jegliche andere Datendarstellung einschließen.
-
7A und 7B zeigen eine beispielhafte Schnittstelle 700, die auf einer Drahtlos-Vorrichtung 702 angezeigt wird, die mit dem beispielhaften Wrapper 110 der 1 und/oder 2 kommuniziert, um Prozessdaten in einer Client-Anwendung anzuzeigen. Die Drahtlos-Vorrichtung 702 kann jede tragbare Computervorrichtung einschließen, einschließlich beispielsweise einem Smartphone, ein Personal Digital Assistant (PDA), ein Webphone, ein Netpad, usw. Die Beispiele der 7A und 7B zeigen den beispielhaften Wrapper 110, der Prozessdaten in einer Vorlage rendert, die für den relativ kleineren Bildschirm der Drahtlos-Vorrichtung 702 konfiguriert ist.
-
Die Benutzerschnittstelle 700 schließt in 7A ein Objektsuchfeld 704 und eine Tastatur 706 ein. Das Objektsuchfeld 704 ermöglicht einem Benutzer die Eingabe eines Feldvorrichtungsidentifikators (z. B. OPC DA/VORRICHTUNG/TT101) über die Tastatur 706. Das Objektsuchfeld 704 liefert die eingegebene TT101 Feldvorrichtung an den Wrapper 101. Die Drahtlos-Vorrichtung 702 kann zudem die Zielanzeigeinformation an den Wrapper 100 senden. Der Wrapper 110 verwendet den Identifikator der TT101 Feldvorrichtung (z. B. Objekttyp) zum Lokalisieren von Prozessdaten und/oder Eigenschaften, die mit der TT101 Feldvorrichtung assoziiert sind. Der beispielhafte Wrapper 101 verwendet die Zielanzeigeinformationen zur Auswahl einer Vorlage 708, die zur Anzeige auf dem relativ kleinen Bildschirm der Drahtlosvorrichtung 702 formatiert ist.
-
Der Wrapper 110 kann die Prozessdaten abgleichen, sie in die entsprechenden Datenfelder der Vorlage 708 einfügen und rendern, wie in 7B gezeigt ist. Der Wrapper 110 kann außerdem eine Menüleiste 710 zum Navigieren zu anderen Vorlagen anzeigen. Die Menüleiste 710 kann in die Vorlage 708 eingeschlossen sein und/oder kann durch Navigations-Prozessdaten spezifiziert werden, die mit dem Verzeichnisort OPC DA/DEVICE/TT101 assoziiert sind. Die Anzeige der Menüleiste 710 kann alternativ von der Client-Anwendung verwaltet werden. Das Beispiel von 7B zeigt, dass der Wrapper 110 die Vorlage 708 auswählt, die für die drahtlose Vorrichtung 702 formatiert ist, während in 6 der Wrapper 110 die Vorlagen 606 und 608 auswählt, die für den Webbrowser auf einer Workstation formatiert sind.
-
8 zeigt eine beispielhafte Schnittstelle
800, die Prozessdaten in einem Webbrowser anzeigt. Die Schnittstelle
802 schließt eine Navigationsleiste
802 ein, die ein Benutzer zur Eingabe eines Dateiorts oder Pfads von Prozessdaten verwenden kann. Eine XSLT-Vorlage
804 zeigt eine Tabelle von Prozessdaten, die in Datenfeldern angezeigt werden. Die XSLT-Vorlage
804 schließt Datenfelder für Hersteller, Vorrichtungstyp und Version ein. Ein Benutzer kann den Pfad HTTP://OPCDASERVER/DEVICE/DEVICECOLLECTION bereitstellen, um auf Prozessdaten zuzugreifen oder diese zu verfolgen, die mit Vorrichtungen assoziiert sind, die innerhalb einer Gruppe organisiert sind. Auf die Prozessdaten innerhalb der Vorlage
804 kann von einem externen Server als XML-Datei zugegriffen werden:
-
Die oben gezeigte beispielhafte XML-Datei listet den Hersteller, Vorrichtungstyp und die Version der drei Feldvorrichtungen unter der Zeile <catalog> auf. In diesem Beispiel schließen die Prozessdaten den Herstellernamen einer Feldvorrichtung und die Version einer Feldvorrichtung ein (z. B. Rosemount 3051MV Feldvorrichtung Version 5) ein. Der beispielhafte Wrapper 110 kann den von einem Benutzer angeforderten Pfad zum Zugriff auf einen entsprechenden externen Server verwenden und nach Prozessdaten suchen, die durch den Pfad spezifiziert werden. In diesem Beispiel werden die Prozessdaten in der XML-Datei spezifiziert.
-
Um die Prozessdaten über die Schnittstelle
800 anzuzeigen, kann der beispielhafte Wrapper
110 nach einer XSLT-Vorlage (z. B. der Vorlage
804) mit Datenfeldern suchen, die den Eigenschaften (z. B. Variablen) in der XML-Datei entsprechen. Die XSLT-Vorlage
804 kann durch die folgenden Anweisungen definiert werden:
-
Die Zeile <xsl:stylesheet version=”1.0” xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”> gibt an, dass die Vorlage 804 in der Schnittstelle 800 angezeigt werden soll. Der beispielhafte Wrapper 110 kann die Vorlage 804 basierend auf Informationen (z. B. Zielanzeigeinformationen, Objekttyp, usw.) auswählen, die von der Schnittstelle 800 empfangen wurden. Der Wrapper 110 kann beispielsweise die Eigenschaft <manufacturer> (Hersteller) in der XML-Datei mit dem Datenfeld <xsl:value-of select=”manufacturer”/> in der XSLT-Vorlage 804 abgleichen. Die XSLT-Vorlage 804 gibt auch die Tabellenüberschriften (z. B. Hersteller, Vorrichtungstyp und Version) sowie Anweisungen (z. B. <xsl:value-of select=”manufacturer”/>, <xsl:value-of select=”type”/> und <xsl:value-of select=”version”/>) an, um die Prozessdaten in Datenfelder zu formatieren.
-
Um die angezeigte Version der XSLT-Vorlage 804 in der Schnittstelle 800 von 8 zu generieren, kann der Wrapper 110 eine Anzeigedatei erstellen, indem die Anweisungen der XSLT-Vorlage 804 ausgeführt und die Prozessdaten in der XML-Datei referenziert werden. In anderen Worten kombiniert der Wrapper 110 die Prozessdaten in der XML-Datei mit Variablen in den Anweisungen der XSLT-Vorlage 804, um eine Anzeigedatei zu generieren. Der Wrapper 110 kann danach die Anzeigedatei rendern, um die XSLT-Vorlage 804 mit den Prozessdaten über die Schnittstelle 800 anzuzeigen.
-
In den 9A, 9B und 9C sind Flussdiagramme gezeigt, die ein Beispiel für Prozesse 900 zur Implementierung des beispielhaften Wrappers 110 der 1 und 2 zeigen. In diesem Beispiel kann der Prozess 900 unter Verwendung maschinenlesbarer Anweisungen in Form eines Programms zur Ausführung durch einen Prozessor implementiert werden, wie durch den Prozessor 12, der in dem beispielhaften Prozessorsystem P10 gezeigt ist, das anschließend im Zusammenhang mit 10 diskutiert wird. Das Programm kann in Software verkörpert sein, die auf einem computerlesbaren Medium wie einer CD-ROM, einer Diskette, einer Festplatte, einer Digital Versatile Disk (DVD) oder einem mit dem Prozessor P12 assoziierten Speicher gespeichert ist, das gesamte Programm und/oder Teile davon können alternativ jedoch durch eine andere Vorrichtung als Prozessor P12 ausgeführt werden und/oder in Firmware oder dedizierter Hardware verkörpert werden. Obwohl das beispielhafte Programm in Bezug auf die in den 9A, 9B und 9C beschriebenen Flussdiagramme beschrieben wird, können alternativ viele andere Methoden zur Implementierung des beispielhaften Wrappers 110 verwendet werden. Die Reihenfolge der Ausführung der Blöcke kann beispielsweise geändert werden, und/oder es können einige der beschriebenen Blöcke geändert, eliminiert oder kombiniert werden.
-
Wie bereits erwähnt kann der beispielhafte Prozess der 9A, 9B und 9C unter Verwendung kodierter Anweisungen (z. B. computerlesbarer Anweisungen) implementiert werden, die auf einem dinglichen computerlesbaren Medium gespeichert sind, wie einem Festplattenlaufwerk, einem Flash-Speicher, einem Festwertspeicher (ROM), einer Compact Disk (CD), einer Digital Versatile Disk (DVD), einem Cache, einem Direktzugriffspeicher (RAM) und/oder anderen Speichermedien, in denen Informationen über eine beliebige Dauer (z. B. über längere Zeiträume, permanent, für kurze Zeiträume, zum temporären Puffern und/oder zum Cachen der Informationen) gespeichert werden. Der Begriff dingliches computerlesbares Medium wird hier ausdrücklich so definiert, dass jeder Typ von computerlesbarer Speicherung eingeschlossen ist und propagierende Signale ausgeschlossen sind. Zusätzlich oder alternativ kann der beispielhafte Prozess der 9A, 9B und 9C unter Verwendung kodierter Anweisungen (z. B. computerlesbarer Anweisungen) implementiert werden, die auf einem nicht flüchtigen computerlesbaren Medium gespeichert sind, wie einem Festplattenlaufwerk, einem Flash-Speicher, einem Festwertspeicher, einer CD, einer DVD, einem Cache, einem Direktzugriffspeicher und/oder anderen Speichermedien, in denen Informationen über eine beliebige Dauer (z. B. über längere Zeiträume, permanent, für kurze Zeiträume, zum temporären Puffer und/oder zum Cachen der Informationen) gespeichert werden. Der Begriff nicht flüchtiges computerlesbares Medium wird hier ausdrücklich so definiert, dass jeder Typ von computerlesbarer Speicherung eingeschlossen ist und sich ausbreitende Signale ausgeschlossen sind.
-
Der beispielhafte Prozess 900 der 9A, 9B und 9C ermöglicht es einem Client, auf Prozessdaten zuzugreifen, die auf einem externen Server gespeichert sind. Es können mehrere beispielhafte Prozesse 900 parallel oder seriell durchgeführt werden, um auf Prozessdaten für mehrere Clients zuzugreifen. In Beispielen, in denen die angeforderten Prozessdaten auf zwei oder mehr externen Servern gespeichert sein können, kann der beispielhafte Prozess zudem für jeden externen Server implementiert werden, oder alternativ kann ein einzelner beispielhafter Prozess 900 für die externen Server implementiert werden.
-
Der beispielhafte Prozess 900 von 9A beginnt, indem eine Anforderung zum Zugriff auf Prozessdaten (z. B. über den Sicherheitsprozessor 200 und/oder die webbasierte Schnittstelle 122 von 2) empfangen wird (Block 902). Der beispielhafte Prozess 900 fordert dann Sicherheitsnachweise zum Zugriff auf die Prozessdaten (z. B. über den Sicherheitsprozessor 202) an (Block 904). Sicherheitsnachweise können einen Benutzernamen und ein Passwort, einen Zugangscode, einen eindeutigen Identifikator, usw. einschließen. In einigen Beispielen können die Sicherheitsnachweise in die Anforderung eingeschlossen sein. Der beispielhafte Prozess 900 ermittelt als nächstes, ob die empfangenen Sicherheitsnachweise die Authentifizierung (z. B. über den Sicherheitsprozessor 202) bestehen (Block 906). Wenn die Sicherheitsnachweise in Ordnung sind und die Authentifizierung bestanden ist, erzeugt der beispielhafte Prozess 900 in Abhängigkeit von der Anforderung von dem Client (z. B. über Sessioncontroller 204) eine Zugriffssession mit Lese-, Schreib- und/oder Abonnementzugriff (Block 908). Der beispielhafte Prozess 900 identifiziert dann einen mit der Anforderung assoziierten externen Server (z. B. über den Adapter 118 zum Zugriff auf die Server-Referenzdatenbank 210 von 2) (Block 910).
-
Wenn der beispielhafte Prozess 900 jedoch nicht in der Lage ist, die Sicherheitsnachweise zu verifizieren (Block 906), kann der beispielhafte Prozess 900 eine Zugriffsession mit nur Lesezugriff erstellen (z. B. über den Sessioncontroller 204) (Block 912). Der beispielhafte Prozess 900 identifiziert dann einen mit der Anforderung assoziierten externen Server (Block 910). Wenn der beispielhafte Prozess 900 alternativ nicht in der Lage ist, die Sicherheitsnachweise zu verifizieren (Block 906), kann der beispielhafte Prozess 900 den Zugriff des Clients auf die angeforderten Prozessdaten verweigern.
-
Der beispielhafte Prozess 900 von 9A fährt fort, indem (z. B. über den Adapter 118) auf den identifizierten externen Server (Block 914) zugegriffen und auf ein oder mehrere Verzeichnisse zugegriffen wird, die mit der Anforderung assoziiert sind (Block 916). Wenn in Beispielen die angeforderten Prozessdaten sich zudem auf mehr als einem externen Server befinden, kann der beispielhafte Prozess 900 die Verzeichnisse und/oder Dateien lokalisieren, die sich auf dem einen oder mehreren externen Server(n) befinden (Block 916). Der beispielhafte Prozess 900 kann die angeforderten Prozessdaten unter Verwendung von Endpunkten, über manuelle Navigation des Clients und/oder durch Informationen lokalisieren, die innerhalb der Anforderung von dem Client bereitgestellt wurden. Nach Zugriff auf den Ort der angeforderten Prozessdaten empfängt der beispielhafte Prozess 900 dann eine Anforderung zum Lesen, Schreiben und/oder Abonnieren der angeforderten Prozessdaten. In einigen Beispielen kann die Anforderung zum Zugriff auf Prozessdaten eine Anforderung zum Lesen, Schreiben und/oder Abonnieren der Prozessdaten einschließen. Der Client kann in anderen Beispielen eine andere Anforderung senden, um über eine Schreib-, Lese- und/oder Abonnentenfunktion auf die Prozessdaten zuzugreifen.
-
Der beispielhafte Prozess 900 der 9B bestimmt (z. B. über den Adapter 118), ob die Anforderung mit einer Lese-, einer Schreib- und/oder einer Abonnentenfunktion assoziiert ist (Block 918). Wenn die Anforderung das Lesen von Prozessdaten (Block 918) beinhaltet, fährt der beispielhafte Prozess 900 fort, indem die angeforderten Prozessdaten von dem/den assoziierten externen Server(n) (z. B. über den Adapter 118) abgerufen werden (Block 920). Der beispielhafte Prozess 900 konvertiert dann die Prozessdaten von einem mit dem externen Server assoziierten Format (z. B. einem Interoperabilitäts-Datenpackungsformat) in ein Webbrowserformat und/oder ein Format einer programmatischen Anwendung (z. B. über den Konverter 120) (Block 922).
-
Wenn die Anforderung jedoch das Abonnieren von Prozessdaten (Block 918) beinhaltet, fährt der beispielhafte Prozess 900 fort, indem die angeforderten Prozessdaten von dem/den assoziierten externen Server(n) (z. B. über den Adapter 118) abonniert werden (Block 924). Der beispielhafte Prozess 900 kann die Prozessdaten abonnieren, indem ein Zeitintervall festgelegt wird, in dem eine Anforderungsnachricht an einen externen Server gesendet wird, um die neuesten Prozessdaten anzufordern. Nach Abonnieren der Prozessdaten ruft der beispielhafte Prozess 900 die angeforderten Prozessdaten von dem externen Server ab (z. B. über den Adapter 118) (Block 920). Der beispielhafte Prozess 900 kann ferner fortfahren, die angeforderten Prozessdaten in den angegebenen Intervallen von dem externen Server abzurufen. Für jedes Abrufen der Prozessdaten konvertiert der beispielhafte Prozess 900 dann (z. B. über den Konverter 120) die Prozessdaten in ein Webbrowserformat und/oder ein Format einer programmatischen Anwendung (Block 922).
-
Wenn die Anforderung Schreiben von Prozessdaten beinhaltet (Block 918), fährt der beispielhafte Prozess 900 fort, indem der von dem Client bereitgestellte geschriebene Datenwert abgerufen und der Datenwert (z. B. über den Konverter 120) in einen formatierten Wert konvertiert wird, um auf dem externen Server gespeichert zu werden (Block 926). Der beispielhafte Prozess 900 schreibt dann den Prozessdatenwert (z. B. über den Adapter 118) auf den passenden Datenort auf dem externen Server (Block 928). Der beispielhafte Prozess 900 kann dann die geschriebenen Prozessdaten in dem externen Server lesen und die Prozessdaten (z. B. über den Konverter 120) in ein Webbrowserformat konvertieren (Block 922). Der beispielhafte Prozess 900 kann einen geschriebenen Wert zurücklesen, um dem Client belegen zu können, dass ein geschriebener Wert in geeigneter Weise auf den externen Server geschrieben wurde.
-
Nach dem Konvertieren der Prozessdaten fährt der beispielhafte Prozess 900 fort, indem (z. B. über den Datenprozessor 206) der Datentyp/die Datentypen und/oder Eigenschaften ermittelt werden, die mit den Prozessdaten assoziiert sind (Block 929). Der beispielhafte Prozess 900 wählt dann (z. B. über den Datenprozessor 206) eine oder mehrere Vorlagen basierend auf den Eigenschaften der Prozessdaten (Block 930). Der beispielhafte Prozess 900 kann auch die Vorlage(n) basierend auf einem Vorrichtungstyp auswählen, der die Anforderung nach den Prozessdaten übermittelt hat. Der beispielhafte Prozess 900 kombiniert als nächstes (z. B. über den Datenprozessor 206 und/oder die webbasierte Schnittstelle 122) die Prozessdaten mit der ausgewählten Vorlage/den ausgewählten Vorlagen (Block 931). Der beispielhafte Prozess 900 kann die Prozessdaten mit der Vorlage/den Vorlagen kombinieren, indem die Prozessdaten in entsprechende Datenfelder der Vorlage(n) eingefügt und/oder eingebettet werden.
-
Der beispielhafte Prozess 900 von 9C ermittelt dann (z. B. über die webbasierte Schnittstelle 122), ob die Anforderung von dem Client mit einer Webserver-Anwendung oder einer Client-Anzeigeanwendung (z. B. einer programmatischen Anwendung) assoziiert ist (Block 932). Wenn die Anforderung des Clients mit einer Webserver-Anwendung assoziiert ist, erstellt und/oder generiert der beispielhafte Prozess 900 (z. B. über die webbasierte Schnittstelle 122) eine Anzeigedatei, indem Anweisungen ausgeführt werden, die mit der Vorlage/den Vorlagen assoziiert sind, die die Prozessdaten verwendet hat (Block 934). Der beispielhafte Prozess 900 kompiliert und/oder rendert dann die Anzeigedatei (z. B. über die webbasierte Schnittstelle 122) (Block 936). Der beispielhafte Prozess 900 ermöglicht als nächstes (z. B. über eine webbasierte Schnittstelle 122) eine Anzeige der Vorlage(n) einschließlich der Prozessdaten in einer Webseite, auf die mittels eines Webbrowsers zugegriffen wird, den ein Client bedient (Block 938).
-
Wenn alternativ die Anforderung von dem Client mit einer Client-Anzeigeanwendung assoziiert ist (Block 932), ruft der beispielhafte Prozess 900 von 9C (z. B. über die webbasierte Schnittstelle 122) die Client-Anzeigeanwendung am Ort des Clients auf (Block 944). Das Aufrufen der Client-Anzeigeanwendung kann das Öffnen der Anwendung in einem Webbrowser einschließen, der von dem Client verwendet wird, um auf die Prozessdaten zuzugreifen (z. B. eine ActiveX- oder SilverlightTM-Anwendung). Das Aufrufen der Client-Anzeigeanwendung kann auch das Initialisieren einer programmatischen Anwendung einschließen, um formatierte Prozessdaten und/oder Datenfelder zu empfangen. Der beispielhafte Prozess 900 kann dann (z. B. über die webbasierte Schnittstelle 122) eine Anforderung von der Client-Anzeigeanwendung empfangen, welche angibt, dass die Anwendung aufgerufen worden ist und zum Empfang von Prozessdaten bereit ist (Block 946). Der beispielhafte Prozess 900 generiert dann eine Anzeigedatei in einem Format, das der Client-Anzeigeanwendung entspricht, indem Anweisungen ausgeführt werden, die mit der Vorlage/den Vorlagen assoziiert sind, welche die Prozessdaten verwendet/verwenden (z. B. über die webbasierte Schnittstelle 122) (Block 948). Der beispielhafte Prozess 900 überträgt die Anzeigedatei an die Client-Anzeigeanwendung (z. B. über die webbasierte Schnittstelle 122) (Block 950). Der beispielhafte Prozess 900 kann dann die Prozessdaten wie durch die Vorlage(n) angewiesen über die Client-Anzeigeanwendung (z. B. über die webbasierte Schnittstelle 122) anzeigen (Block 952).
-
Der beispielhafte Prozess 900 von 9C fährt fort, indem (z. B. über die webbasierte Schnittstelle 122) ermittelt wird, ob der Client irgendwelche Teile der Prozessdaten und/oder der Vorlage(n) personalisiert hat (Block 940). Wenn der beispielhafte Prozess 900 ermittelt, dass der Client die Prozessdaten und/oder die Vorlage(n) nicht personalisiert hat, kehrt der beispielhafte Prozess 900 zum Empfangen einer Anforderung zum Zugreifen auf Prozessdaten von dem selben und/oder einem anderen Client zurück (Block 902 von 9A). Wenn der beispielhafte Prozess 900 jedoch ermittelt, dass der Client die Prozessdaten und/oder das Datenfeld/die Datenfelder personalisiert hat, speichert der beispielhafte Prozess 900 die Personalisierungsdaten (z. B. über die webbasierte Schnittstelle 122) (Block 942). Der beispielhafte Prozess 900 speichert die Personalisierungsinformationen, so dass die Prozessdaten in dem personalisierten Format angezeigt werden können, wenn der selbe Client zu einem anderen Zeitpunkt auf die selben Prozessdaten zugreift. Der beispielhafte Prozess 900 kehrt dann zum Empfangen einer Anforderung zurück, um auf Prozessdaten von dem selben und/oder einem anderen Client (Block 902) zurückzugreifen.
-
10 ist ein Blockdiagramm eines beispielhaften Prozessorsystems P10, das zum Implementieren der beispielhaften Verfahren und Vorrichtungen verwendet werden kann, die hier beschrieben sind. Prozessorsysteme, die dem beispielhaften Prozessorsystem P10 ähnlich oder mit diesem identisch sind, können beispielsweise zur Implementierung des beispielhaften Sicherheitsprozessors 202, des beispielhaften Sessioncontrollers 204, der beispielhaften webbasierten Schnittstelle 122, des beispielhaften Datenprozessors 206, der beispielhaften Vorlagendatenbank 208, des beispielhaften Konverters 120, des beispielhaften Adapters 118, der beispielhaften Server-Referenzdatenbank 210 und/oder allgemeiner des Wrappers 110 der 1 und/oder 2 verwendet werden. Obwohl das beispielhafte Prozessorsystem P10 anschließend als eine Vielzahl von Peripheriegeräten, Schnittstellen, Chips, Speichern usw. einschließend beschrieben wird, können ein oder mehrere dieser Elemente von anderen beispielhaften Prozessorsystemen weggelassen werden, die zur Implementierung von einem oder mehreren des beispielhaften Sicherheitsprozessors 202, des beispielhaften Sessioncontrollers 204, der beispielhaften webbasierten Schnittstelle 122, des beispielhaften Datenprozessors 206, der beispielhaften Vorlagendatenbank 208, des beispielhaften Konverters 120, des beispielhaften Adapters 118, der beispielhaften Server-Referenzdatenbank 210 und/oder allgemeiner des Wrappers 110 verwendet werden.
-
Wie in 10 gezeigt ist, schließt das Prozessorsystem P10 einen Prozessor P12 ein, der an einen Verbindungsbus P14 gekoppelt ist. Der Prozessor P12 schließt einen Registersatz oder Registerraum P16 ein, der in 10 vollständig chipintegriert dargestellt ist, jedoch alternativ gänzlich oder teilweise außerhalb des Chips angeordnet sein könnte und über dedizierte elektrische Verbindungen und/oder über den Verbindungsbus P14 direkt an den Prozessor P12 gekoppelt sein könnte. Der Prozessor P12 kann jeder geeignete Prozessor, jede geeignete Verarbeitungsanlage oder jeder geeignete Mikroprozessor sein. Das System P10 kann, obwohl dies in 10 nicht gezeigt ist, ein Mehrprozessorsystem sein und somit einen oder mehrere weitere Prozessoren einschließen, die mit dem Prozessor P12 identisch oder diesem ähnlich sind und kommunikativ an den Verbindungsbus P14 gekoppelt sind.
-
Der Prozessor P12 von 10 ist an einen Chipsatz P18 gekoppelt, der einen Speicher-Controller P20 und einen peripheren Eingabe/Ausgabe-(I/O)-Controller P22 einschließt. Ein Chipsatz liefert, wie gut bekannt ist, I/O- und Speicherverwaltungsfunktionen sowie eine Vielzahl von Universal- und/oder Spezialregistern, Zeitgebern, usw., die für einen oder mehrere Prozessoren zugänglich sind oder von diesen verwendet werden, die an den Chipsatz P18 gekoppelt sind. Der Speicher-Controller P20 führt Funktionen durch, die dem Prozessor P12 (oder Prozessoren, wenn mehrere Prozessoren vorhanden sind) ermöglichen, auf einen Systemspeicher P24 und einen Massenspeicher P25 zuzugreifen
-
Der Systemspeicher P24 kann jeden gewünschten Typ von flüchtigem und/oder nicht-flüchtigem Speicher zugreifen, wie beispielsweise statischen Direktzugiffspeicher (SRAM), dynamischen Direktzugriffspeicher (DRAM), Flash-Speicher, Festwertspeicher (ROM), usw. Der Massenspeicher P25 kann jeden gewünschten Typ von Massenspeichervorrichtung einschließen. Wenn das beispielhafte Prozessorsystem P10 beispielsweise zur Implementierung von Wrapper 110 (2) verwendet wird, kann der Massenspeicher P25 ein Festplattenlaufwerk, ein optisches Laufwerk, eine Bandspeichervorrichtung usw. einschließen. Wenn das beispielhafte Prozessorsystem P10 alternativ zum Implementieren der beispielhaften Vorlagendatenbank 210 und/oder der beispielhaften Server-Referenzdatenbank 210 verwendet wird, kann der Massenspeicher P25 einen Festkörperspeicher (z. B. einen Flash-Speicher, einen RAM-Speicher, usw.), einen Magnetspeicher (z. B. eine Festplatte) oder beliebigen anderen Speicher einschließen, der zur Massenspeicherung in der beispielhaften Vorlagendatenbank 210 und/oder der beispielhaften Server-Referenzdatenbank 210 geeignet ist.
-
Der periphere I/O-Controller P22 führt Funktionen durch, die dem Prozessor P12 die Kommunikation mit peripheren Eingabe/Ausgabe-(I/O)-Vorrichtungen P26 und P28 und einer Netzwerkschnittstelle P30 über einen peripheren I/O-Bus P32 ermöglichen. Die I/O-Vorrichtungen P26 und P28 können ein beliebiger Typ von I/O-Vorrichtung sein, wie beispielsweise eine Tastatur, eine Anzeige (z. B. eine Flüssigkristallanzeige (LCD), eine Kathodenstrahlröhren-(CRT)-Anzeige, usw.), eine Navigationsvorrichtung (z. B. eine Maus, ein Trackball, ein kapazitives Touchpad, ein Joystick, usw.), usw. Die Netzwerkschnittstelle P30 kann beispielsweise eine Ethernet-Vorrichtung, eine Vorrichtung mit asynchronem Übertragungsmodus (ATM), eine 802.11-Vorrichtung, ein DSL-Modem, ein Kabelmodem, ein Mobilfunkmodem, usw. sein, das dem Prozessorsystem P10 die Kommunikation mit einem anderen Prozessorsystem ermöglicht.
-
Obwohl der Speicher-Controller P20 und der I/O-Controller P22 in 10 als separate Funktionsblöcke innerhalb des Chipsatz P18 abgebildet sind, können die durch diese Blöcke durchgeführten Funktionen in einen einzigen Halbleiterschaltkreis integriert oder unter Verwendung von zwei oder mehr separaten integrierten Schaltkreisen implementiert werden.
-
Mindestens einige der oben beschriebenen beispielhaften Methoden und/oder Vorrichtungen werden durch ein oder mehrere Software- und/oder Firmware-Programme implementiert, die auf einem Computerprozessor laufen. Es können jedoch auch dedizierte Hardware-Implementierungen einschließlich, jedoch nicht begrenzt auf anwendungsspezifische integrierte Schaltkreise, programmierbare Logikanordnungen und andere Hardware-Vorrichtungen in ähnlicher Weise konstruiert werden, um einige oder alle der beispielhaften Verfahren und/oder Vorrichtungen gänzlich oder teilweise zu implementieren, die hier beschrieben sind. Alternative Software-Implementierungen einschließlich verteilter Verarbeitung oder Komponenten/Objekt-verteilter Verarbeitung, Parallelverarbeitung oder Verarbeitung auf virtuellen Maschinen, ohne darauf begrenzt zu sein, können auch konstruiert werden, um die hier beschriebenen beispielhaften Verfahren und/oder Systeme zu implementieren.
-
Es sei auch darauf hingewiesen, dass die hier beschriebenen beispielhaften Software- und/oder Firmware-Implementierungen auf einem dinglichen Speichermedium gespeichert werden, wie: einem magnetischen Medium (z. B. einer Magnetplatte oder einem Magnetband), einem magnetooptischen oder optischen Medium, wie einer optischen Platte, oder einem Festkörpermedium, wie einer Speicherkarte oder anderem Paket, das ein oder mehrere (nicht-flüchtige) Festwertspeicher, Direktzugriffspeicher oder andere wiederbeschreibbare (flüchtige) Speicher beherbergt. Die hier beschriebene beispielhafte Software und/oder Firmware kann demnach auf einem dinglichen Speichermedium wie den oben beschriebenen oder nachfolgenden Speichermedien gespeichert werden. Es sei in dem Maße, in dem die obige Beschreibung beispielhafte Komponenten und Funktionen in Bezug auf bestimmte Standards und Protokolle beschreibt, darauf hingewiesen, dass der Umfang dieses Patents nicht auf diese Standards und Protokolle beschränkt ist. Beispielsweise sind jegliche der Standards für Internet- und andere paketvermittelte Netzwerkübertragungen (z. B. Transmission Control Protocol (TCP)/Internet Protocol (IP), User Datagram Protocol (UDP)/IP, HyperText Markup Language (HTML), HyperText Transfer Protocol (HTTP)) Beispiele für den aktuellen Stand der Technik. Diese Standards werden von Zeit zu Zeit durch schnellere oder effizientere Äquivalente mit der gleichen allgemeinen Funktionalität ersetzt. Ersatzstandards und -protokolle mit den gleichen Funktionen sind demnach Äquivalente, die in diesem Patent vorgesehen sind und in den Umfang der angefügten Ansprüche eingeschlossen sein sollen.
-
Obwohl dieses Patent beispielhafte Verfahren und Vorrichtungen offenbart, die Software und/oder Firmware einschließen, die auf Hardware ausgeführt werden, sei zudem darauf hingewiesen, dass diese Beispiele lediglich illustrierend sind und nicht als einschränkend angesehen werden sollen. Es ist beispielsweise vorgesehen, dass jegliche oder alle der Hardware- und Software-Komponenten ausschließlich in Hardware, ausschließlich in Software, ausschließlich in Firmware oder in jeglicher Kombination aus Hardware, Firmware und/oder Software verkörpert sein können. Obwohl die obige Beschreibung beispielhafte Verfahren, Systeme und maschinenlesbare Medien beschreibt, sind die Beispiele daher nicht der einzige Weg zur Implementierung derartiger Systeme, Verfahren und maschinenlesbarer Medien. Obwohl hier bestimmte beispielhafte Verfahren, Systeme und maschinenlesbare Medien beschrieben worden sind, ist der Schutzumfang dieses Patents nicht darauf begrenzt. Dieses Patent deckt im Gegenteil alle Verfahren, Systeme und maschinenlesbare Medien ab, die mit Recht entweder wörtlich oder gemäß der Äquivalenzlehre unter den Umfang der angefügten Ansprüche fallen.