Skip to main content

OPC PubSub

Die Grundlage für Applikationen auf Basis des UADP Protokolls ist der konsistente Transport einer Datenstruktur über UADP, (das heißt OPC codierte Frames über UDP/IP).

  • Da die Konsistenz erhalten bleiben muss, muss die Datenstruktur in einen UDP-Frame (1500 Byte) passen.

  • Da der Platz begrenzt ist, muss die Übertragung über UADP so effizient wie möglich sein.

  • Nur RawData Field Encoding wird unterstützt. (Dies spart Platz.)

  • Es werden nur DataSetMessages vom Typ Data Key Frame unterstützt. (Zyklischer Austausch von Echtzeitdaten)

  • Die Struktur, das heißt die Abfolge von Werten (DataSetField) und deren Typen (DataSetMessage), bleibt während des Betriebs unverändert und wird im Voraus zwischen dem Herausgeber und dem Teilnehmer vereinbart. (Während des Betriebs müssen keine Metadaten übertragen werden.)

_simitf_img_opcpubsub_header.png

Die folgende Tabelle hilft Ihnen, die verwendeten Parameter zu verstehen:

_simitf_uadp_networkmessage_header_layout.png

Der Parameter GroupVersion wird vom Subscriber verwendet, um zu prüfen, ob die empfangene Struktur der erwarteten Struktur entspricht. Anhand des Parameters SequenceNumber kann ein Subscriber erkennen, ob Nachrichten verloren gegangen sind.

Die Parameter DataSetMessag sind wie folgt aufgebaut. Die Datenstrukturen des Publishers sind 1:1 von IEC nach OPC UA kodiert.

_simitf_datasetmessageheader.png

In der folgenden Tabelle werden die verwendeten Parameter erläutert.

_simitf_uadp_datasetmessageheaderlayout.png

Nach dem NetworkMessage-Header wird der Parameter DataSetMessage, bestehend aus dem DataSetMessage-Header und den einzelnen DataSetField Daten (= Data Key Frame) eingefügt.

Ein DataSetField besteht aus einem Wert eines Basisdatentyps:

_simitf_uadp_datafields.png

Teil 14 der OPC UA Spezifikation besagt:

Der FieldCount Parameter muss weggelassen werden, wenn die Option RwaData Field Encoding in den Flags EncodingFlags des DataSetMessage Headers (DataSetFlags1) gesetzt ist.

Der FieldCount ist also nicht im „Data Key Frame“ kodiert. Das bedeutet, dass für den Transport einer Datenstruktur über UADP noch 1500 Byte - 15 Byte = 1485 Byte Nutzdaten zur Verfügung stehen.

Teil 14 der OPC UA Spezifikation besagt:

Der FieldCount wird ignoriert, wenn die RawDate Encodings in den EncodingFlags der DataSetMessage-Header (DataSetFalgs1) gesetzt sind.

Der FieldCount ist daher im Data-Key-Frame nicht kodiert. Das bedeutet, dass für den Transport einer Datenstruktur über UADP noch 1500 Byte - 15 Byte = 1485 Byte Nutzdaten zur Verfügung stehen.

Abbildung 1. PubSub Komponentenübersicht
PubSub Komponentenübersicht