OPC UA Binary Data Encoding
Le OPC UA Binary Data Encoding
è un formato di dati sviluppato per soddisfare i requisiti prestazionali delle applicazioni OPC UA. Questo formato è progettato principalmente per la codifica e la decodifica veloci, tenendo conto anche delle dimensioni dei dati codificati sulla linea.
La codifica dei dati binari OPC UA si basa su diversi tipi di dati primitivi con regole di codifica chiaramente definite che possono essere scritte o lette in sequenza da un flusso binario.
Una struttura viene codificata scrivendo in sequenza la forma codificata di ogni campo. Se un particolare campo è anche una struttura, i valori dei relativi campi vengono scritti in sequenza prima che il campo successivo venga scritto nella struttura contenente.
Tutti i campi devono essere scritti nel flusso di dati, anche se contengono zero valori. Le codifiche per ogni tipo primitivo indicano come codificare un valore zero o un valore predefinito predefinito per il tipo.
La codifica dei dati binari OPC UA non contiene alcuna informazione sul tipo o sul nome di campo perché tutte le applicazioni OPC UA devono sapere in anticipo quali servizi e strutture supportano.
[P6] 5.2.1:
«I termini OPC UA Binary Data Encoding
e Raw Data Field Encoding
hanno lo stesso significato e vengono utilizzati di conseguenza a seconda della fonte citata. »
IEC 61131-3 | [P6] 5.2.1 | OPC UA | Referenze | |
---|---|---|---|---|
| Valore booleano | 1 |
| [P6] 5.2.2.1 |
| Byte | 3 |
| |
| Carattere a byte singolo | 3 |
| |
| Data (solo) | 13 |
| |
| Numero intero doppio | 6 |
| |
| Data e ora del giorno [s] | 13 |
| [P6] 5.2.2.5 |
| Stringa di bit di lunghezza 32 | 7 |
| |
| Numero intero | 4 |
| [P6] 5.2.2.1 |
| Data lunga [ns] | 8 |
| |
| Data e ora del giorno [ns] | 8 |
| |
| Numero intero lungo | 8 |
| |
| Numero a virgola mobile lungo | 11 |
| |
| Durata [ns] | 8 |
| |
| Ora del giorno [ns] | 8 |
| |
| Stringa di bit di lunghezza 64 | 9 |
| |
| Numero in virgola mobile | 10 |
| [P6] 5.2.2.3 |
| Numero intero breve | 2 |
| |
| Codifica: Windows-1252 | 12 |
| [P6] 5.2.2.4 |
| Durata [ms] | 8 |
| |
| Ora del giorno [ms] | 7 |
| |
| 19 |
| [P6] 5.2.2.11 | |
|
| [P4] 7.38 | ||
| Numero intero doppio senza segno | 7 |
| |
| Numero intero senza segno | 5 |
| |
| Numero intero Jong senza segno | 9 |
| |
| Numero intero breve senza segno | 3 |
| |
| Carattere a doppio byte | 5 |
| |
| Stringa di bit di lunghezza 16 | 5 |
| |
| Codifica: UCS-2 | 12 |
|
Corda
La lunghezza di una stringa OPC UA non può essere determinata in anticipo a causa della sua codifica UTF 8. Dipende dai caratteri utilizzati. Pertanto, è necessario specificare una lunghezza massima quando si definisce un DataSetField
di questo tipo di dati. Lo spazio rimanente viene riempito con 0 byte di valore. La lunghezza massima di una stringamaxStringLength
) è descritto in [P14] 6.2.2.1.3 FieldMetaData
.
StatusCode
La variabile StatusCode
è codificato come UInt32
.
VersionTime
La variabile VersionTime
è codificato come UInt32
. Mostra il tempo in secondi dall'anno 2000. La data dell'epoca è la mezzanotte UTC (00:00) del 1° gennaio 2000. Viene utilizzato come numero di versione in base all'ora dell'ultima modifica. Se la versione viene aggiornata, il nuovo valore deve essere maggiore del valore precedente. Il valore 0 viene utilizzato per indicare che non sono disponibili informazioni sulla versione.