Interne Datenpunkte des OPC UA-Clients
_OPCUA
Ein Datenpunkt _OPCUA<num> dieses Typs wird für verschiedene Konfigurationseinstellungen je OPC UA-Client verwendet. <num> entspricht der Managernummer, mit der der Client gestartet ist. Per Default sind drei Datenpunkte dieses Typs bereits vorhanden: _OPCUA1, _OPCUA2 und _OPCUA3.
Datenpunktelement | Typ | Beschreibung |
---|---|---|
Config.AlarmPrioMapping | dyn_string |
Definiert das Mapping von OPC UA Severities (Gewichtungen) auf WinCC OA-Alarmklassen. Ein Mapping hat den folgenden Aufbau:
Ein Beispiel für ein solches Mapping ist:
D.h.:
Tipp: Für weitere Informationen siehe Abbildung der Alarmdaten.
|
Config.Servers | dyn_string | Definiert, welche Server einem Client mit der entsprechenden Managernummer zugewiesen werden. Es muss der entsprechende OPC UA Server Datenpunkt ohne führenden "_" eingetragen werden. Wenn für den Server bereits eine Peripherieadresse vorhanden ist, wird der Datenpunkt automatisch eingetragen. |
Config.HistoryReadResponseDps | dyn_string | Hier müssen die Response-Datenpunkte eingetragen werden, auf die Ergebnisse von historischen Datenabfragen geschrieben werden sollen. Siehe auch _OPCUAHistoryReadResponse. |
Command.AddServer | string | Kann verwendet werden, um einen OPC UA Server dynamisch (ohne Verwendung des Server-Configeintrags und anschließenden Neustart des Clients) einem Client zuzuweisen. Hierzu muss der OPC UA Server Datenpunkt eingetragen werden. Der Server kann so dynamisch hinzugefügt werden, ohne dass eine Peripherieadresse angelegt werden muss. |
_OPCUAHistoryReadResponse
Wird ein Datenpunkt dieses Typs erstellt und unter _OPCUA.Config.HistoryReadResponseDps eingetragen, können auf diesen Datenpunkt die Daten einer historischen Abfrage abgebildet werden. Die Elemente dieses Typs sind in der folgenden Tabelle beschrieben.
Datenpunktelement | Typ | Beschreibung |
---|---|---|
RequestId | string | Zeigt die RequestId an, die für die historische Datenabfrage verwendet wurde. Über dieses Element kann das Ergebnis einer Abfrage dem entsprechenden Request zugeordnet werden. |
ReturnCode | int |
Der Rückgabewert kann folgende Werte beinhalten:
|
DpList | dyn_string | Wird bei Verwendung von Methode 3 eine Wildcard für Peripherieadressen definiert, enthält dieses Element eine Liste mit allen Datenpunktelementen die mit einer entsprechenden Peripherieadresse konfiguriert sind. |
ResultCodes | dyn_int |
Ergebniscodes der historischen Abfrage. Wurde eine Peripherieadressen-Wildcard definiert, enthält dieses Element eine Liste von Resultcodes für die entsprechenden Datenpunktelemente. Folgende Werte sind möglich:
|
NodeStatusCodes | dyn_bit32 | Der OPC UA Knotenstatuscode der historischen Abfrage. Wurde eine Peripherieadressen-Wildcard definiert, enthält dieses Element eine Liste von Codes für die entsprechenden Server-Knoten. |
DataType | string |
Der Datentyp der Variable, für die eine historische Abfrage ausgelöst wurde. Dieses Element wird nur beschrieben, wenn "NodeId" oder "BrowsePath" als Methode definiert wurden. |
DataValues | dyn_string |
Enthält die historischen Werte die für die Abfrage geliefert wurden. Dieses Element wird nur beschrieben, wenn "NodeId" oder "BrowsePath" als Methode definiert wurden. |
SourceTimestamps | dyn_time |
Enthält die Zeitstempel der Quelle in Lokalzeit. Dieses Element wird nur beschrieben, wenn "NodeId" oder "BrowsePath" als Methode definiert wurden. |
ServerTimestamps | dyn_time |
Enthält die Zeitstempel des Servers in Lokalzeit. Dieses Element wird nur beschrieben, wenn "NodeId" oder "BrowsePath" als Methode definiert wurden. |
ValueStatusCodes | dyn_bit32 |
Enthält die OPC UA Statuscodes der Werte, die durch die historische Abfrage übermittelt wurden. Dieses Element wird nur beschrieben, wenn "NodeId" oder "BrowsePath" als Methode definiert wurden. |
_OPCUAServer
Ein Datenpunkt dieses Typs enthält die Parametrierung und Statusinformation eines OPC UA-Servers, mit dem sich der Client verbindet.
Die Einstellungen zur Verbindung und zur Sicherheit werden erst beim nächsten Verbindungsversuch übernommen. D.h. es wird nicht automatisch die Verbindung abgebaut und mit den neuen Parametern aufgebaut.
Die Elemente dieses Typs sind in der folgenden Tabelle beschrieben.
Datenpunktelement | Typ | Beschreibung | ||||||||||||||||||||||||||||||
Config.ConnInfo | string |
Spezifiziert die Server URL. Diese definiert, wie der OPC UA Server zu erreichen ist. Ein Beispiel für das Format ist: opc.tcp://localhost:4841 |
||||||||||||||||||||||||||||||
Config.AccessInfo | string | Enthält den Benutzername für den Zugriff auf den Server. Wenn das Datenpunktelement leer ist, meldet sich der Client anonym an. | ||||||||||||||||||||||||||||||
Config.Flags | bit32 |
Die jeweiligen Bits (0-basierende Zählung) erlauben zusätzliche Einstellungen für den OPC UA Client.
|
||||||||||||||||||||||||||||||
Config.Password | blob |
Enthält das Passwort für den Zugriff auf den Server. Das Passwort wird verschlüsselt dargestellt. Merke: Zu beachten ist, dass, wenn das Passwort am
Server geändert wird, die Änderungen ebenso am Client
nachgezogen werden müssen, damit das Passwort richtig
entschlüsselt werden kann.
|
||||||||||||||||||||||||||||||
Config.Security.Policy | uint |
Folgende Sicherheitsstrategien sind hier möglich:
|
||||||||||||||||||||||||||||||
Config.Security.MessageMode | uint |
Folgende Nachrichtenmodi können konfiguriert werden:
|
||||||||||||||||||||||||||||||
Config.Security.Certificate | string |
Zertifikat, welches der Client für den Verbindungsaufbau zum Server verwenden soll (Beispiel: myCertificate.der). Ist das Feld leer, so verwendet der Client "WinCC_OA_UA_Client.der". |
||||||||||||||||||||||||||||||
Config.Active | boolean | Mit diesem Datenpunktelement kann die Kommunikation zu dem betreffenden Server ausgeschaltet (FALSE) und eingeschaltet (TRUE) werden. | ||||||||||||||||||||||||||||||
Config.ReconnectTimer | uint | Zeitintervall in Sekunden, in dem der Treiber versucht sich zum Server zu verbinden, wenn keine Verbindung vorhanden ist. | ||||||||||||||||||||||||||||||
Config.StatusMapping | dyn_string |
Gibt das Mapping der OPC UA Status-Codes auf die WinCC OA Userbits an. Das Mapping wird in einem dyn_string angegeben. Dieser dyn_string enthält Einträge der Form:
Wobei ein Userbit auf der rechten Seite mehrfach vorkommen kann. Zum Beispiel:
|
||||||||||||||||||||||||||||||
Config.StatusFilter | dyn_uint |
Über dieses Datenpunktelement können Statusfilter für eingehende Werte festgelegt werden. Das bedeutet, dass Werte die vom OPC UA Server je nach Status gefiltert und verworfen werden. Es können verschiedene Statusfilter definiert werden. |
||||||||||||||||||||||||||||||
Config.Separator | string | Trennzeichen für die Anzeige der Display-Namen. | ||||||||||||||||||||||||||||||
Config.Subscriptions | dyn_dpid |
Eine Subscription ist immer eindeutig einem Server zugeordnet. Einem Server dürfen mehrere Subscriptions zugewiesen werden. In diesem internen Datenpunktelement werden die zugehörigen Subscriptions im Format:
|
||||||||||||||||||||||||||||||
Config.HistoryReadTimestamps | uint |
Definiert, welcher Zeitstempel bei Methode 3 (Schreiben der Daten einer historischen Abfrage auf das _archive-Config des entsprechenden Datenpunktelementes) verwendet werden soll.
|
||||||||||||||||||||||||||||||
State.ServerState | string | Zeigt den Serverzustand an. Der übliche Zustand ist "Running", was bedeutet dass alles OK ist. Andernfalls wird ein Fehlerstatus ausgegeben. | ||||||||||||||||||||||||||||||
State.StartTime | time | Zeigt die Startzeit des Servers an.
Format: JJJJ.MM.TT HH:MM:SS:MMM
|
||||||||||||||||||||||||||||||
State.TimeoutError | int |
Enthält Informationen über Timeout-Fehler. Mögliche Werte sind:
|
||||||||||||||||||||||||||||||
State.TimeoutItems | string | Auflistung aller Elemente bei denen die Operation fehlgeschlagen und ein Timeout-Fehler aufgetreten ist. | ||||||||||||||||||||||||||||||
State.VendorInfo | string | Zeigt die Herstellerbezeichnung des Servers an. | ||||||||||||||||||||||||||||||
Command.GQ | uint |
Löst eine Generalabfrage auf dem Server aus. Durch den angegebenen Wert, wird unterschieden, ob Werte, Alarme oder beides abgefragt wird:
|
||||||||||||||||||||||||||||||
Command.HistoryRead | dyn_string |
Über dieses Element werden historische Abfragen ausgelöst. Folgende Parameter müssen hierfür gesetzt werden:
Wichtig: Von den Parametern startTime, endTime und
maxNumValuesPerNode müssen immer mindestens zwei gesetzt
werden!
Anmerkung:
Folgende Sonderfälle gibt es:
|
||||||||||||||||||||||||||||||
Redu.Config.ConnInfo | string |
Hier wird die Server URL des redundanten Servers angegeben. Diese definiert, wie der OPC UA-Server zu erreichen ist. Ein Beispiel für das Format ist:
|
||||||||||||||||||||||||||||||
Redu.Config.Active | boolean | Mit diesem Datenpunktelement kann die Kommunikation zum redundanten Server ausgeschaltet (FALSE) und eingeschaltet (TRUE) werden. | ||||||||||||||||||||||||||||||
Redu.Config.HistoryReadMode | uint |
Definiert das Verhalten bei historischen Abfragen bei redundanten OPC UA-Servern. Folgende Werte können gesetzt werden:
|
||||||||||||||||||||||||||||||
Redu.Config.InputMode | uint |
Definiert die Input Datenquelle innerhalb eines redundanten Serverpaars. Die erlaubten Werte sind:
Wenn ein Server explizit ausgewählt wurde, verwendet der Server die Daten des anderen Servers nicht, auch dann nicht, wenn die Verbindung zum ausgewählten Server verloren geht. In diesem Fall muss die Applikation manuell auf den anderen Server gewechselt werden. Diese Option betrifft nur Input-Daten. Output Daten werden in jedem Fall auf beide Server geschrieben. |
||||||||||||||||||||||||||||||
Redu.State.ConnState | uint |
Zeigt den Verbindungsstatus zum redundanten Server an.
|
||||||||||||||||||||||||||||||
Redu.State.ServerState | string | Zeigt den Serverzustand des redundanten Servers an (Good oder Bad). | ||||||||||||||||||||||||||||||
Redu.State.StartTime | time |
Zeigt die Startzeit des redundanten Servers an. Format: JJJJ.MM.TT HH:MM:SS:MMM |
||||||||||||||||||||||||||||||
Redu.State.TimeoutError | int |
Enthält Informationen über Timeout-Fehler. Mögliche Werte sind:
|
||||||||||||||||||||||||||||||
Redu.State.TimeoutItems | string | Auflistung aller Elemente bei denen die Operation fehlgeschlagen und ein Timeout-Fehler aufgetreten ist. | ||||||||||||||||||||||||||||||
Redu.State.VendorInfo | string | Zeigt die Herstellerbezeichnung des redundanten Servers an. | ||||||||||||||||||||||||||||||
Browse.GetBranch | dyn_string |
Über dieses Datenpunktelement wird das Browsen ausgelöst. Gespeichert wird:
|
||||||||||||||||||||||||||||||
Browse.GetAlarmTypes | dyn_string |
Über dieses Datenpunktelement wird das Browsen von Alarmtypen ausgelöst. Der dyn_string enthält nur die Id aus dem UI (siehe Browse.GetBranch). Die Funktion entspricht Browse.GetBranch, allerdings wird als Startknoten immer ConditionType verwendet, es werden beliebig viele Ebenen nach unten durchlaufen und es werden nur Nodes zurückgegeben, die Alarmtypen repräsentieren. |
||||||||||||||||||||||||||||||
Browse.RequestId | string | Der Client schreibt auf dieses Datenpunktelement die ID aus Browse.GetBranch oder Browse.GetAlarmTypes, um bei mehreren gleichzeitigen Benutzern dem Anwender mitteilen zu können, welcher Request gerade beantwortet wird. | ||||||||||||||||||||||||||||||
Browse.DisplayNames | dyn_string |
Anzeige der Namen ab dem Startknoten. Getrennt werden die einzelnen Ebenen durch ein, im Serverdatenpunkt eingestelltes, Trennzeichen (Separator). Zum Beispiel:
|
||||||||||||||||||||||||||||||
Browse.BrowsePaths | dyn_string |
Anzeige des kompletten Browse-Pfades in der definierten Schreibweise ab dem Node /0:Objects:
Anmerkung: Sonderzeichen wie / . < > : # ! & werden mit einem
& maskiert.
|
||||||||||||||||||||||||||||||
Browse.NodeIds | dyn_string |
Anzeige jeder einzelnen NodeId pro gebrowsten Node in der definierten Schreibweise: ns=1;s=AGENT.Objects.pUInt32 |
||||||||||||||||||||||||||||||
Browse.NodeClasses | dyn_string |
Anzeige jeder einzelnen Knotenklassen (NodeClass) pro gebrowsten Knoten (Node):
|
||||||||||||||||||||||||||||||
Browse.DataTypes | dyn_string | Anzeige des Datentyps. | ||||||||||||||||||||||||||||||
Browse.ValueRanks | dyn_string | Anzeige des Werteranges. | ||||||||||||||||||||||||||||||
Browse.AccessLevel | dyn_bit32 |
Eine Bitmaske die angibt, ob der aktuelle Wert des Value-Attributes lesbar und schreibbar ist und ob die Historie des Wertes lesbar und schreibbar ist.
|
_OPCUASubscription
Dieser Datenpunkttyp dient zur Parametrierung der Subscriptions und zur Anzeige deren Status. Bei einigen Subscription-Parametern kann es sein, dass die vorgenommene Konfiguration vom Server überschrieben wird. Für diese Parameter gibt es sowohl ein Datenpunktelement für die Konfiguration (Requested) als auch für den, dann tatsächlichen, Wert (Revised*).
Datenpunktelement | Typ | Default-Werte | Beschreibung |
---|---|---|---|
Config.RequestedLifetimeCount | uint | 100 | Anzahl an Publishing-Intervallen bis die Subscription vom Server gelöscht wird, falls kein Publish-Request erhalten wird. |
Config.RequestedMaxKeepAliveCount | uint | 10 | Definiert wie oft der Publishing-Timer im Server ablaufen kann, ohne dass Daten gesendet wurden. Danach sendet die Subscription eine keep-alive-Nachricht an den Client. |
Config.RequestedPublishingInterval | uint | 500 | In diesen Abständen in Millisekunden werden die Werte vom Client aus den Queues am Server gelesen. |
Config.MaxNotificationsPerPublish | uint | 0 |
Definiert wie viele Meldungen ein Server maximal als Antwort auf einen Publish-Request schicken soll. Beim Übertragen von gepufferten Daten kann dadurch die Spitzenlast der Kommunikation reduziert werden. Der Wert 0 bedeutet, dass der Client keine Grenze vorgibt und der Server die maximale Anzahl an Meldungen pro Publish verwendet. Der Maximalwert ist abhängig vom Server und beträgt beim WinCC OA OPC UA-Server beispielsweise 65535. |
Config.PublishingEnabled | boolean | FALSE | Ermöglicht das Aktivieren (TRUE) und Deaktivieren (FALSE) von der Subscription (auf Wertänderungen (nicht) reagieren). |
Config.Priority | uint | 0 |
Dieser Wert gibt an, mit welcher Priorität Notifikationen aus dieser Subscription vom Server verschickt werden. Wertebereich: 0 - 255; wobei 0 keine spezielle Priorität und 255 die höchste Priorität aufweist. |
Config.SubscriptionType | uint | 1 |
Definiert, ob es sich um eine Subscription auf:
handelt. |
Config.MonitoredItems.TimestampsToReturn | uint | 3 |
Gibt an, welcher Zeitstempel des Nodes verwendet werden soll. In WinCC OA ergibt sich die entsprechende Verfügbarkeit aus:
|
Config.MonitoredItems.QueueSize | uint | 1 | Anzahl der Wertänderungen der Items, die bis zum nächsten Publish gespeichert werden. |
Config.MonitoredItems.DiscardOldest | bool | TRUE | Bestimmt, ob entweder die ältesten Elemente (TRUE -Default) aus der Queue gelöscht werden oder die neuesten Elemente (FALSE), wenn die Queue überläuft. |
Config.MonitoredItems.SamplingInterval | uint | 0 | Intervall (in Millisekunden) in dem der Server die Monitored Items vom darunterliegenden System abfragt. |
Config.MonitoredItems.DataChangeFilter.Trigger | uint | 1 |
Definiert den Auslöser, auf den der Filter angewendet wird:
|
Config.MonitoredItems.DataChangeFilter.DeadbandType | uint | 0 |
Definiert den Totband-Typ für die Berechnung des Wertes:
|
Config.MonitoredItems.DataChangeFilter.DeadbandValue | uint | 0 | Wert, in dessen Bereich vom Originalwert aus der Totband gilt. |
Config.Alarm.Acknowledgment | dyn_string | - | Wird nicht verwendet. |
Config.Alarm.AlarmType | string | - | Node-ID des OPC UA-Alarmtyps. |
State.AssignedOPCUAServer | string | - | Name des OPC UA-Servers, dem die Subscription zugewiesen ist. |
State.SubscriptionId | uint | - |
Interne Identifikationsnummer für jede Subscription. Diese ist pro Server eindeutig.
|
State.RevisedLifetimeCount | uint | - | Zurückgelieferter LifeTimeCount. |
State.RevisedMaxKeepAliveCount | uint | - |
Zurückgelieferter MaxKeepAliveCount.
|
State.RevisedPublishingInterval | uint | - |
Zurückgeliefertes Publishing-Intervall in Millisekunden.
|
Command.GQ | uint | 0 |
Auslöser für die Generalabfrage pro Subscription. Diese wird unabhängig vom Wert ausgelöst. Da eine Subscription nur für Werte oder Alarme verwendet wird, ist hier der übergebene Wert irrelevant. |