Datenaustausch
Der OPC UA Server kann zur Identifizierung der Items entweder die Datenpunkt- und Datenpunktelementnamen oder die Datenpunktalias verwenden. Mit dem Alias kann der Anwender eine von den WinCC OA Datenpunktnamen unabhängige Adressierung über OPC UA realisieren. Ob Datenpunktnamen oder Alias verwendet werden, muss in der Config-Datei eingestellt werden (Eintrag nodeIdType). Die beiden Arten können nicht gemischt werden. D.h. der Server kann nur Namen oder Alias verwenden.
In einem Projekt ist der Start von nur einem einzigen WinCC OA OPC UA Server zu empfehlen, da die Datenpunktgruppen nicht pro Server einstellbar sind. Würde man mehrere WinCC OA OPC UA Server starten, so würden diese gemeinsam auf dieselben Datenpunkte zugreifen.
Zuordnung Attribute OPC UA <-> WinCC OA
Bei der Abbildung der WinCC OA Projektstruktur auf das OPC UA Server Prozessabbild gibt es zwei zu unterscheidende Punkte. Einerseits braucht der OPC UA Server die WinCC OA Projektstruktur, um den Namensraum aufzubauen, andererseits braucht der OPC UA Server Daten aus dem Prozessabbild des Event-Managers.
Die ersten Daten sind in der unteren Tabelle aufgelistet. Um diese Daten im Server aktuell zu halten, reagiert der OPC UA Server auf Änderungen der Projektstruktur. Das bedeutet, der Server wertet die entsprechenden WinCC OA Messages aus.
OPC UA Bezeichnung | Datentyp | Bemerkung | Entsprechung in WinCC OA |
---|---|---|---|
NodeId | NodeId | String | Datenpunktname oder Alias |
NodeClass | NodeClass | Nummer der NodeClass | Keine |
BrowseName | QualifiedName | Nodename | Datenpunktelementname (nicht mehrsprachig) |
DisplayName | LocalizedText | Anzeigetext des Nodes | Datenpunktelementname (nicht mehrsprachig) |
Description | LocalizedText | Beschreibung |
Langtext in aktueller Sprache "Description" des _common WinCC OA Konfigs. Wenn dieses nicht existiert, wird der DisplayName verwendet. |
WinCC OA -> OPC UA Variablen
Die Daten aus dem Prozessabbild des WinCC OA Event-Managers werden auf OPC UA Variablen abgebildet. Die Zuordnung zwischen WinCC OA Attributen und OPC UA Variablen Attributen ist in der folgenden Tabelle angeführt.
Bezeichnung | Datentyp | Bemerkung | Entsprechung in WinCC OA |
---|---|---|---|
Value | Der eigentliche Wert |
Onlinewert (_online.._value) Kommt eine Wertänderung vom OPC UA Server, so wird der Originalwert und nicht der Onlinewert gesetzt. |
|
Zeitstempel | WinCC OA Attribut _online.._stime(Quellzeit) | ||
Status |
WinCC OA Attribut _online.._status64 Die genaue Abbildung des WinCC OA Status auf OPC UA Status ist weiter unten im Abschnitt "WinCC OA Statusabbildung auf OPC UA Status" beschrieben. |
||
DataType | NodeId | Siehe Zuordnung der Datentypen | |
ArraySize | Int32 | Siehe Zuordnung der Datentypen | |
AccessLevel | Byte | Wird über die Datenpunktgruppe definiert. Für Daten, die nur lesbar sind, wird das Flag CurrentRead gesetzt. Für Daten, die lesbar und schreibbar sind, wird CurrentRead und CurrentWrite gesetzt. | |
UserAccessLevel | Byte | Der UserAccessLevel ist gleich dem AccessLevel. D.h. es wird nur über die Datenpunktgruppen definiert, wie die Zugriffsrechte gesetzt sind. Alle Clients, die sich zum OPC Server verbinden dürfen, haben damit die gleichen Zugriffsrechte auf das Prozessabbild. |
WinCC OA Statusabbildung auf OPC UA Status
WinCC OA -> OPCUA
Wenn eines oder mehrere der folgenden WinCC OA Statusbits gesetzt sind: _out_prange _out_range _exp_inv _auth_inv _stime_inv |
OpcUa_Bad |
In allen anderen Fällen | OpcUa_Good |
OPCUA -> WinCC OA
OpcUa_Good | 0 |
OpcUa_BadXXX | WinCC OA Statusbit auth_inv gesetzt |
Analog Item Objekt
Das Analog Item Objekt wird zurzeit nicht unterstützt. Damit unterstützt der OPC UA Server kein relatives Totband für die Monitored Items.
Zuordnung Datentypen OPC UA <-> WinCC OA
Die folgende Tabelle listet die WinCC OA Datentypen auf, die vom WinCC OA OPC UA Server unterstützt werden.
OPC UA Datentyp | WinCC OA Datentyp |
---|---|
Boolean | DPEL_BOOL |
Int32 | DPEL_INT |
Int64 | DPEL_LONG |
UInt64 | DPEL_BIT64 |
Byte | DPEL_CHAR |
UInt32 | DPEL_UINT |
UInt64 | DPEL_ULONG |
Double | DPEL_FLOAT |
String | DPEL_STRING |
DateTime | DPEL_TIME |
ByteString | DPEL_BLOB |
UInt32 | DPEL_BIT32 |
NodeId | DPEL_DPID |
LocalizedText | DPEL_LANGSTRING |
Array vom Basistyp |
DPEL_DYN_* Anmerkung: * .. steht für einen Basisdatentyp
Einschränkung: Es wird nur eine maximale Länge des Arrays
von 65536 unterstützt.)
|
Aus diesem Grund ist es für den Client nicht möglich eine NodeId zu schrieben, welche nicht einem existierenden DP Identifier entspricht. So akzeptieren diese OPC UA Variablen Nodes nur NodeIds, welche einen existierenden DP Name beinhalten.