OPC UA Binary Data Encoding
Le OPC UA Binary Data Encoding
est un format de données qui a été développé pour répondre aux exigences de performances des applications OPC UA. Ce format est principalement conçu pour un codage et un décodage rapides, la taille des données codées sur la ligne étant également prise en compte
Le codage des données binaires OPC UA est basé sur plusieurs types de données primitifs avec des règles de codage clairement définies qui peuvent être écrites ou lues de manière séquentielle dans un flux binaire.
Une structure est codée en écrivant séquentiellement la forme codée de chaque champ. Si un champ particulier est également une structure, les valeurs de ses champs sont écrites de manière séquentielle avant que le champ suivant ne soit écrit dans la structure contenant
Tous les champs doivent être écrits dans le flux de données, même s'ils contiennent des valeurs nulles. Les codages pour chaque type primitif indiquent comment coder une valeur nulle ou une valeur par défaut pour le
Le codage des données binaires OPC UA ne contient aucune information de type ou de nom de champ, car toutes les applications OPC UA sont censées savoir à l'avance quels services et quelles structures elles prennent en charge.
[P6] 5.2.1 :
« Les termes OPC UA Binary Data Encoding
et Raw Data Field Encoding
ont la même signification et sont utilisés en conséquence en fonction de la source citée.
CEI 61131-3 | [P6] 5.2.1 | OPC États-Unis | Références | |
---|---|---|---|---|
| Valeur booléenne | 1 |
| [P6] 5.2.2.1 |
| octet | 3 |
| |
| Caractère à un octet | 3 |
| |
| Date (uniquement) | 13 |
| |
| Nombre entier double | 6 |
| |
| Date et heure de la journée [s] | 13 |
| [P6] 5.2.2.5 |
| Chaîne de bits d'une longueur de 32 | 7 |
| |
| Nombre entier | 4 |
| [P6] 5.2.2.1 |
| Date longue [ns] | 8 |
| |
| Date et heure du jour [ns] | 8 |
| |
| Entier long | 8 |
| |
| Nombre à virgule flottante longue | 11 |
| |
| Durée [ns] | 8 |
| |
| Heure de la journée [ns] | 8 |
| |
| Chaîne de bits de longueur 64 | 9 |
| |
| Nombre à virgule flottante | 10 |
| [P6] 5.2.2.3 |
| Nombre entier court | 2 |
| |
| Codage : Windows-1252 | 12 |
| [P6] 5.2.2.4 |
| Durée [ms] | 8 |
| |
| Heure de la journée [ms] | 7 |
| |
| 19 |
| [P6] 5.2.2.11 | |
|
| [PAGE 4] 7,38 | ||
| Nombre entier double non signé | 7 |
| |
| Entier non signé | 5 |
| |
| Entier Iong non signé | 9 |
| |
| Entier court non signé | 3 |
| |
| Caractère à deux octets | 5 |
| |
| Chaîne de bits d'une longueur de 16 | 5 |
| |
| Codage : UCS-2 | 12 |
|
Corde
La longueur d'une chaîne OPC UA ne peut pas être déterminée à l'avance en raison de son encodage UTF 8. Cela dépend des caractères utilisés. Par conséquent, une longueur maximale doit être spécifiée lors de la définition d'un DataSetField
de ce type de données. L'espace restant est rempli avec 0 octet de valeur. La longueur maximale d'une chaîne (maxStringLength
) est décrit dans [P14] 6.2.2.1.3 FieldMetaData
.
StatusCode
La variable StatusCode
est codé comme UInt32
.
VersionTime
La variable VersionTime
est codé comme UInt32
. Il indique le temps en secondes depuis l'an 2000. La date d'époque est minuit UTC (00:00) le 1er janvier 2000. Il est utilisé comme numéro de version en fonction de l'heure de la dernière modification. Si la version est mise à jour, la nouvelle valeur doit être supérieure à la valeur précédente. La valeur 0 est utilisée pour indiquer qu'aucune information de version n'est disponible.