OPC UA Binary Data Encoding
ザル OPC UA Binary Data Encoding は OPC UA アプリケーションのパフォーマンス要求を満たすように開発されたデータ形式です。この形式は、主に高速なエンコードとデコードを目的として設計されており、回線上のエンコードされたデータのサイズも考慮されています。
OPC UAのバイナリデータエンコーディングは、明確に定義されたエンコーディングルールを持ついくつかのプリミティブデータ型に基づいており、バイナリストリームへの書き込みまたはバイナリストリームからの読み取りを順次行うことができます。
構造は、各フィールドのエンコードされた形式を順番に書き込むことによってエンコードされます。特定のフィールドが構造体でもある場合は、そのフィールドの値が順番に書き込まれてから、次のフィールドが含まれる構造体に書き込まれます。
フィールドの値がゼロであっても、すべてのフィールドをデータストリームに書き込む必要があります。各プリミティブ型のエンコーディングは、その型のゼロ値またはデフォルト値をどのようにエンコードするかを示します。
OPC UA バイナリデータエンコーディングには、タイプやフィールド名の情報は含まれていません。すべての OPC UA アプリケーションは、サポートするサービスと構造を事前に把握している必要があるためです。
[P6] 5.2.1:
「規約 OPC UA Binary Data Encoding と Raw Data Field Encoding 意味は同じで、引用元によって使い分けられます。」
| IEC 61131-3 | [P6] 5.2.1 | OPC UA | 参考文献 | |
|---|---|---|---|---|
| 
 | ブーリアン値 | 1 | 
 | [P6] 5.2.2.1 | 
| 
 | バイト | 3 | 
 | |
| 
 | 1 バイト文字 | 3 | 
 | |
| 
 | 日付 (のみ) | 13 | 
 | |
| 
 | 2 倍整数 | 6 | 
 | |
| 
 | 日付と時刻 [s] | 13 | 
 | [P6] 5.2.2.5 | 
| 
 | 長さ 32 のビット列 | 7 | 
 | |
| 
 | 整数 | 4 | 
 | [P6] 5.2.2.1 | 
| 
 | 長い日付 [ns] | 8 | 
 | |
| 
 | 日付と時刻 [ns] | 8 | 
 | |
| 
 | 長整数 | 8 | 
 | |
| 
 | 長整数浮動小数点数 | 11 | 
 | |
| 
 | 所要時間 [ns] | 8 | 
 | |
| 
 | 時間帯 [ns] | 8 | 
 | |
| 
 | 長さ 64 のビット列 | 9 | 
 | |
| 
 | 浮動小数点数 | 10 | 
 | [P6] 5.2.2.3 | 
| 
 | ショート整数 | 2 | 
 | |
| 
 | コーディング:ウィンドウズ-1252 | 12 | 
 | [P6] 5.2.2.4 | 
| 
 | 所要時間 [ミリ秒] | 8 | 
 | |
| 
 | 時刻 [ミリ秒] | 7 | 
 | |
| 
 | 19 | 
 | [P6] 5.2.2.11 | |
| 
 | 
 | [P4] 7.38 | ||
| 
 | 符号なし二重整数 | 7 | 
 | |
| 
 | 符号なし整数 | 5 | 
 | |
| 
 | 符号なし長整数 | 9 | 
 | |
| 
 | 符号なし短整数 | 3 | 
 | |
| 
 | 2 バイト文字 | 5 | 
 | |
| 
 | 長さ 16 のビット列 | 5 | 
 | |
| 
 | コーディング:UCS-2 | 12 | 
 | 
ストリング
OPC UA 文字列の長さは、UTF 8 エンコーディングのため事前に決定できません。使用する文字によって異なります。そのため、を定義する際には最大長を指定する必要があります。 DataSetField このデータタイプの。残りのスペースは 0 値のバイトで埋められます。文字列の最大長 (maxStringLength) は [P14] 6.2.2.1.3 で説明されています FieldMetaData。
StatusCode
変数 StatusCode としてエンコードされます。 UInt32。
VersionTime
変数 VersionTime としてエンコードされます。 UInt32。2000 年からの時間を秒単位で示します。エポック日付は 2000 年 1 月 1 日の午前 0 時 (UTC) (00:00) です。最終更新日時に基づくバージョン番号として使用されます。バージョンが更新された場合、新しい値は以前の値より大きくなければなりません。値 0 は、バージョン情報がないことを示すために使用されます。