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 TypData 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.)

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

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.

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

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:

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.
