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 は、バージョン情報がないことを示すために使用されます。