OPC UAはなぜ“通信の意図”を「伝える」ことができるのかOPC UA最新技術解説(4)(1/2 ページ)

スマート工場化や産業用IoTなどの流れの中で大きな注目を集めるようになった通信規格が「OPC UA」です。本連載では「OPC UA」の最新技術動向についてお伝えします。第4回である今回は「つなげる」「安全に」「伝える」という3つのポイントの内、「伝える」を取り上げます。

» 2019年09月20日 11時00分 公開

 「OPC UAとは何か」について、先進技術動向を含めて紹介する本連載ですが、その特徴である「つなげる」「安全に」「伝える」の3つのポイントについて1つずつ焦点を当てて紹介を進めています。第2回では「つなげる」、第3回では「安全に」について紹介しました。

≫連載「OPC UA最新技術解説」の目次

 第4回となる今回は「伝える」に焦点を当て、OPC UAにおける情報連携がどういうもので、情報モデルの構造はどうなっているのかについて解説します。さらにOPC UAによる情報活用を進めるコラボレーション活動として注目を集めている「コンパニオン情報モデル」についても紹介します。

OPC UAにおける情報モデルの表現方法

 OPC UAが「伝える」で目指す姿は、民生機器で実現できているPCとプリンタの関係性を、産業機器で実現することです。プリンタは用途に応じてさまざまな性能を持つものがありますが、それを操作するPCなどの端末から見るとどれも「プリンタ」という共通モデルとして認識され、統一した作法で利用できます。スマートマニュファクチャリングによる生産の最適化を実現する場合でも、このような各コンポーネントを異なる規格だと意識することなく、連携できることが不可欠です。OPC UAは産業オートメーションシステムにおいて、この連携基盤としての役割を担おうとしているのです。実際にこれらの価値が認められて、現在では50を超えるコラボレーション活動が存在しています。

 それでは、OPC UAではなぜこうした情報連携が可能なのでしょうか。OPC UAでは交換される情報を定義するための規則であるメタモデルが用意されています。OPC UAのメタモデルではオブジェクト指向の概念に基づいて、情報の意味と構造、その状態や振る舞い、そこから発信されるイベントメッセージ、オブジェクト同士の関係を定義することができます。OPC UAアプリケーションは統一されたメタモデルによって、情報を提供する側も利用する側も、情報の中身を解釈できるようになります。

 図1ではメタモデルによりボイラーを表現した情報モデルの例を挙げています。産業オートメーションシステムにおいては対象として扱う観点によって、ボイラーにもさまざまなモデルが存在します。図1の左側は運転時の監視対象であるボイラーの流量や温度の測定点をボイラーの構造に合わせて表現しており、右側ではそれらを目的の状態に保つための制御手段対象としてのボイラーを表現しています。そして、このようなボイラーの情報モデルを構築することで、ボイラーのライフサイクルにわたる情報連携による活用が可能になります。

photo 図1 OPC UAのメタモデルとモデリング例(クリックで拡大)出典:日本OPC協議会

OPC UAにおける情報モデルの構造

 次に、OPC UAアプリケーションにおけるメタモデルの構造について紹介します。OPC UAのメタモデルを実現するためのメカニズムは非常に簡単な構造となっています。UAノードという実体とその参照関係しかありません。UAノードにはその種類を識別するためのノードクラスがあり、全てのノードクラスに共通な属性と、各ノードクラスに特化した2種類の属性の集合を保持します。

 オブジェクト指向における「オブジェクトが情報や振る舞いを持つ」という関係も、UAノードにおける構造上は、ノードクラスがObjectTypeやObjectのUAノードから、VariableやMethodというノードクラスのUAノードに「要素として持つ」という意味の参照関係を構築して表現します。分かり難い感じもしますが、ソフトウェアから見ると全ての関係を1つのメカニズムで扱っているので、実装すべき機能をコンパクトに単純化できるというメリットがあります。UAノードを処理するためのサービスの実装がUAアプリケーションには求められますが、サービスの種類も必要最小限に抑えられます。Methodの実行というような、ノードクラスに特化したサービスが必要な一方で、各UAノードの属性へのアクセスや検索などの全てのノードクラスに共通な処理は1つのサービスで共通化できるからです。その結果としてリソースの少ないデバイス上でもUAアプリケーションを搭載できるのです。

photo 図2  UAノードと、ノードクラス毎の主な属性(クリックで拡大)出典:日本OPC協議会

 ノードクラスについてもう少し説明しましょう。イベント情報もObjectTypeやObjectノードで表現します。Variableノードにもメタ情報があります。計測値を示すVariableノードには、補足情報として工業単位やレンジ幅を示すVariableノードを参照するメタ定義が考えられます。このようなメタ情報をVariableTypeノードで表現し、各Variableノードが持つ値のデータ型はDataTypeノードへの参照で表現します。

 DataTypeノードは標準で規定されている一般的なデータ型の他にも、独自に設計した構造体や列挙型などのメタ情報を公開できます。ReferenceTypeノードは参照関係のメタ情報を定義するUAノードです。ReferenceTypeノードの間に継承関係を定義することができるので、ブラウズや検索のサービスの実行時に抽象化または特化したReferenceTypeを指定することでその処理のバリエーションが選択できます。Viewノードは特殊なUAノードで、図1で紹介したような、各観点で定義したUAノードのみをクライアントに公開したい場合に利用できる定義情報になります。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.