この記事は The Qt Blog の OPC UA support in Qt 5.11 を翻訳したものです。
執筆: Frank Meerkötter, 2018年05月16日
OPC UA はインダストリー 4.0 の中心となる要素で IT と産業製品のシステムのシームレスなコミュニケーションを提供します。Qt の OPC UA 対応は簡単に使える OPC UA 用の Qt の API を提供することを目的に basysKom が 2015 年に開始したものです。2017 年には The Qt Company も協力し、テクノロジープレビューが完成しました。五月下旬にリリースされる Qt 5.11 で利用可能になる予定です。
Qt OPC UA の目標は、HMI やアプリケーション開発におけるクライアント側の実装を簡単にするというものです。テクノロジープレビュー版では OPC UA スタンダードのサブセットの実装を行いました。これにより、サーバーへ接続し、属性の読み書き、サーバー側のメソッドの実行、データの変更のモニタリングやノードの監視などが可能になりました。すべての機能は非同期な API として実装され、Qt のアプリケーションとの親和性も高いです。
Qt OPC UA は基本的には API であり、完全な OPC UA のスタックではありません。プラグインのインターフェースを用意しており、既存の OPC UA スタックと連携するための API のバックエンドの実現が可能になっています。現時点では、以下のスタックに対するプラグインが用意されています。
Qt for Automation ライセンスをお持ちの方は Qt インストーラーから Qt OPC UA を入手していただけるようになります。ソースコードに関してはトリプルライセンス(GPL, LGPL, 商用)で提供されます。Unified Automation のバックエンドについては例外で、商用のみの提供となります。オープンソースライセンスをお使いのユーザーの方は、Qt OPC UA 自体をコンパイルしていただく必要があります。ビルドの レシピはこちら になります。
FreeOpCUa と open62541 のバックエンドはオープンソースライセンスで提供されています。オープンソースのソリューションを選択する場合は、相対的に実装の質が良く、コミュニティもアクティブで、勢いのある open62541 の方を推奨します。依存しているものも少ないのが良いところで、Android や iOS の場合は特に簡単に使えます。
プラットフォームに関しては、このテクノロジープレビューは以下のプラットフォームで利用可能です
ここで、すべてのバックエンドがすべてのプラットフォームで利用可能ではないことに注意をしましょう。
テクノロジープレビュー以降、いくつもの機能追加を計画しています。一例として、輸送のセキュリティや、ディスカバリーサービス、イベント、フィルタなどがあげられます。