Qt OPC UAの概要

OPC UAは、産業用アプリケーションにおけるデータモデリングとデータ交換のためのプロトコルです。

OPC UAサーバーは、参照によって接続されたノードのメッシュで編成されたデータへのアクセスを提供します。さまざまな参照タイプとメタデータを含むノードを使用することで、クライアントは事前に構造を知らなくてもデータをナビゲートし、解釈することができます。

各ノードには、読み取りと書き込みが可能な一意の識別子と属性があります。特に、値を格納するVariableノードと、パラメータと戻り値を記述するノードを持つ呼び出し可能なMethodノードがあります。イベント発生時の通知や、Variableノードの値変化の監視も提供されます。

参照を使用してノードを組み合わせることで、複雑なオブジェクトを作成できます。継承も可能です。OPC UAは、特殊なニーズに合わせて拡張可能な既成モデルをサポートしています。

OPC UAは、プラットフォームに依存しないOPC Classicの後継で、組込みセンサーから製造実行や企業資源計画システムまで、あらゆるレベルでの使用を目的としています。OPC UAは、サービス要求と応答用の標準化されたメッセージに基づくサービス指向アーキテクチャを備えています。これらのメッセージがエンコードされ、ネットワーク上で転送されるには、さまざまな方法があります。最も一般的な方法は、TCPを介したバイナリーエンコーディングです。

OPC UAプロトコルで実装されている機能

以下の表は、Qt OPC UAがサポートしているOPC UAの機能をまとめたものです。

機能
読み取り
バッチ読み取り
履歴読み取り(Raw)
書き込み
一括書き込み
多次元配列
ブラウズ
データ変更サブスクリプション
イベント・サブスクリプション
サブスクリプションの変更 / 監視対象アイテム
メソッド呼び出し
ブラウズ・パスの解決
エンドポイントの取得
サーバーの検索
ノード管理
ノードの登録
ノードの登録解除

データ型

現在Qt OPC UAでは、OPC UAのデータ型のサブセットをサポートしています。

データ型Qt OPC UAのデータ型
Int16, Int32, Int64直接使用
UInt16, UInt32, UInt64直接使用
バイトquint8
バイトqint8
ブール直接使用
Double直接使用
Float直接使用
文字列QString
LocalizedTextQOpcUaLocalizedText
日付QDateTime
バイト文字列QByteArray
Xml要素QString
NodeIdQString
GUIDQUuid
修飾名QOpcUaQualifiedName
ステータスコードQOpcUa::UaStatusCode
範囲QOpcUaRange
EU情報QOpcUaEUInformation
複素数QOpcUaComplexNumber
ダブル複素数QOpcUaDoubleComplexNumber
軸情報QOpcUaAxisInformation
XVQOpcUaXValue
引数QOpcUaArgument
拡張ノードIDQOpcUaExpandedNodeId
拡張オブジェクトQOpcUaExtensionObject
構造定義QOpcUaStructureDefinition
構造体フィールドQOpcUaStructureField
列挙定義QOpcUaEnumDefinition
EnumFieldQOpcUaEnumField
診断情報QOpcUaDiagnosticInfo
SimpleAttributeOperandQOpcUaSimpleAttributeOperand
AttributeOperandQOpcUaAttributeOperand
LiteralOperandQOpcUaLiteralOperand
ElementOperandQOpcUaElementOperand
相対パス要素QOpcUaRelativePathElement
ContentFilterElementQOpcUaContentFilterElement
EventFilterQOpcUaMonitoringParameters::EventFilter

クラスと所有権

QOpcUaClientQOpcUaNode の2つの重要なクラスがユーザーに公開されています。

両クラスのオブジェクトはユーザーによって所有され、不要になったら削除しなければなりません。

ロギング・カテゴリー

以下の表は、Qt OPC UA で使用されるロギング・カテゴリをまとめたものです。

ロギングカテゴリ説明
qt.opcuaQOpcUaProvider およびQOpcUaClient
qt.opcua.plugins.open62541open62541プラグインによって生成されたメッセージ

Open62541 固有のロギングカテゴリー

open62541 sdk のロギングカテゴリーは、コンパイル時に設定される open62541 のログレベルに依存します。デフォルトは 300 で、 info、warning、error および critical です。冗長な出力を減らすか増やすには、open62541 sdkを別の構成で再構築する必要があります。

以下の表に、open62541で使用されるロギング・カテゴリーを示します:

Open62541 ロギング・カテゴリー説明
qt.opcua.plugins.open62541.sdk.networkopen62541 ネットワークによって生成されたメッセージ
qt.opcua.plugins.open62541.sdk.securechannelopen62541チャンネルが生成するメッセージ
qt.opcua.plugins.open62541.sdk.sessionopen62541セッションが生成するメッセージ
qt.opcua.plugins.open62541.sdk.serveropen62541サーバーコンポーネントが生成するメッセージ
qt.opcua.plugins.open62541.sdk.clientopen62541クライアントが生成するメッセージ
qt.opcua.plugins.open62541.sdk.userlandopen62541ユーザーランドが生成するメッセージ
qt.opcua.plugins.open62541.sdk.securitypolicyopen62541のセキュリティポリシーによって生成されたメッセージ

ライセンス

Qt OPC UA モジュールは、The Qt Company の商用ライセンスで利用できます。また、フリーソフトウェアライセンスでも提供されています。これらのフリーソフトウェアライセンスは、GNU Lesser General Public License, version 3 またはGNU General Public License, version 2 です。詳細については、Qt ライセンスを参照してください。

Qt 6.8.0のQt OPC UAには、以下のライセンスでサードパーティモジュールが含まれています:

Open62541, version 1.3.11

Mozilla Public License 2.0 と Creative Commons Zero v1.0 Universal と Creative Commons Attribution Share Alike 4.0 International と BSD 3-Clause "New" or "Revised" License と Apache License 2.0 と MIT License です。

外部ライブラリへのリンクには、バックエンド・プロバイダーのライセンスが必要です。

Open62541

Open62541 プラグインは Qt OPC UA と同じライセンスで利用できます。Open62541ライブラリ自体のライセンスはMozilla Public License v2.0です。

セキュリティサポートはopen62541ライブラリのOpenSSLプラグインによって提供されます。open62541プラグインがセキュリティサポート付きでビルドされ、OpenSSLがターゲットシステムで利用できない場合、open62541プラグインはロードに失敗します。

open62541プラグインがセキュリティサポート付きでビルドされ、OpenSSLがターゲットシステムで利用できない場合、open62541プラグインはロードに失敗します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。