このページでは

Qt OPC UA 概要

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

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

各ノードには一意の識別子と、読み書き可能な属性があります。とりわけ、値を格納する「変数ノード」や、パラメータや戻り値を記述するノードが添付された呼び出し可能な「メソッドノード」があります。イベント発生時の通知や、変数ノードの値の変化を監視する機能も提供されています。

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

OPC UAは、組み込みセンサーから製造実行システムやエンタープライズリソースプランニング(ERP)システムに至るまで、あらゆるレベルでの利用を目的とした、OPC Classicの後継となるプラットフォーム非依存の規格です。サービス要求および応答のための標準化されたメッセージに基づく、サービス指向アーキテクチャを採用しています。 これらのメッセージのエンコードおよびネットワーク経由での転送には、いくつかの方法があります。最も一般的な方法は、TCP 経由のバイナリエンコードです。

OPC UAプロトコルから実装された機能

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

機能
読み取り
バッチ読み取り
履歴読み取り(Raw)
書き込み
バッチ書き込み
多次元配列
閲覧
データ変更のサブスクリプション
イベントサブスクリプション
サブスクリプション/監視対象項目の変更
メソッド呼び出し
パス解決の参照
GetEndpoints
FindServers
NodeManagement
RegisterNodes
ノードの登録解除

データ型

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

データ型Qt OPC UA データ型
Int16、Int32、Int64直接使用される
UInt16、UInt32、UInt64直接使用される
Bytequint8
SByteqint8
Boolean直接使用される
Double直接使用されるDouble
Float直接使用
文字列QString
ローカライズされたテキストQOpcUaLocalizedText
DateTimeQDateTime
ByteStringQByteArray
XmlElementQString
NodeIdQString
GUIDQUuid
修飾名QOpcUaQualifiedName
ステータスコードQOpcUa::UaStatusCode
範囲QOpcUaRange
EU情報QOpcUaEUInformation
複素数QOpcUaComplexNumber
複素数DoubleComplexNumberQOpcUaDoubleComplexNumber
軸情報QOpcUaAxisInformation
XVQOpcUaXValue
引数QOpcUaArgument
展開済みノードIDQOpcUaExpandedNodeId
拡張オブジェクトQOpcUaExtensionObject
構造体定義QOpcUaStructureDefinition
構造体フィールドQOpcUaStructureField
列挙型定義QOpcUaEnumDefinition
列挙型フィールドQOpcUaEnumField
診断情報QOpcUaDiagnosticInfo
SimpleAttributeOperandQOpcUaSimpleAttributeOperand
属性オペランドQOpcUaAttributeOperand
リテラルオペランドQOpcUaLiteralOperand
ElementOperandQOpcUaElementOperand
相対パス要素QOpcUaRelativePathElement
ContentFilterElementQOpcUaContentFilterElement
イベントフィルターQOpcUaMonitoringParameters::EventFilter

クラスと所有権

ユーザーには、QOpcUaClient とQOpcUaNode という 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 バージョン3、 またはGNU General Public License バージョン2です。詳細については、「Qtのライセンス」を参照してください。

Qt OPC UA Qt 6.12.0には、以下の寛容なライセンスに基づくサードパーティ製モジュールが含まれている場合があります:

Open62541, version v1.5.7

Mozilla Public License 2.0、Creative Commons Zero v1.0 Universal、Creative Commons Attribution Share Alike 4.0 International、BSD 3-Clause "New" または "Revised" License、Apache License 2.0、および MIT License

外部ライブラリへのリンクには、バックエンドプロバイダーのライセンスが適用されます。

Open62541

Open62541プラグインは、Qt OPC UA と同じライセンスの下で利用可能です。Open62541ライブラリ自体は、Mozilla Public License v2.0の下でライセンスされています。

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

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.