OPC PubSub
I fondamenti per le applicazioni basate sul protocollo UADP sono il trasporto coerente di una struttura di dati tramite UADP (ovvero frame con codifica OPC tramite UDP/IP).
Poiché la coerenza deve essere mantenuta, la struttura dei dati deve adattarsi a un frame UDP (1500 byte).
E poiché lo spazio è limitato, la trasmissione tramite UADP deve essere il più efficiente possibile.
Solo
RawData Field Encodingè supportata. (Ciò consente di risparmiare spazio.)Solo
DataSetMessagesdi tipoData Key Framesono supportati. (Scambio ciclico di dati in tempo realeLa struttura, ovvero la sequenza di valori (
DataSetField) e i loro tipi (DataSetMessage) — rimane invariato durante il funzionamento ed è concordato in anticipo tra l'editore e l'abbonato. (Non è necessario trasferire metadati durante l'operazione

La seguente tabella ti aiuterà a comprendere i parametri utilizzati:

Le GroupVersion il parametro viene utilizzato da Subscriber per verificare se la struttura ricevuta corrisponde alla struttura prevista. Un abbonato può utilizzare SequenceNumber parametro per riconoscere se i messaggi sono andati persi.
Le DataSetMessages i parametri sono strutturati come segue. Le strutture dati dell'editore sono codificate 1:1 da IEC a OPC UA.

I parametri utilizzati sono illustrati nella tabella seguente.

Le DataSetMessage parametro, che è costituito da DataSetMessage intestazione e individuo DataSetFields dati (= Data Key Frame), viene inserito dopo NetworkMessage intestazione.
A DataSetField è costituito da un valore di un tipo di dati di base:

La parte 14 della specifica OPC UA afferma:
Le FieldCount il parametro deve essere omesso se RwaData Field Encoding l'opzione è impostata in EncodingFlags bandiere di DataSetMessage intestazione (DataSetFlags1).
Le FieldCount non è quindi codificato nel «Data Key Frame». Ciò significa che 1500 byte - 15 byte = 1485 byte di dati utente sono ancora disponibili per il trasporto di una struttura dati
La parte 14 della specifica OPC UA afferma:
Le FieldCount viene ignorato se RawDate Encodings sono impostati in EncodingFlags del DataSetMessage intestazione (DataSetFalgs1).
Le FieldCount non è quindi codificato nel frame chiave dei dati. Ciò significa che 1500 byte - 15 byte = 1485 byte di dati utente sono ancora disponibili per il trasporto di una struttura dati
