JP2016004359A - Opcuaサーバーの作成方法 - Google Patents

Opcuaサーバーの作成方法 Download PDF

Info

Publication number
JP2016004359A
JP2016004359A JP2014123385A JP2014123385A JP2016004359A JP 2016004359 A JP2016004359 A JP 2016004359A JP 2014123385 A JP2014123385 A JP 2014123385A JP 2014123385 A JP2014123385 A JP 2014123385A JP 2016004359 A JP2016004359 A JP 2016004359A
Authority
JP
Japan
Prior art keywords
opc
server
data
data model
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014123385A
Other languages
English (en)
Inventor
稔久 藤井
Toshihisa Fujii
稔久 藤井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Azbil Corp
Original Assignee
Azbil Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Azbil Corp filed Critical Azbil Corp
Priority to JP2014123385A priority Critical patent/JP2016004359A/ja
Publication of JP2016004359A publication Critical patent/JP2016004359A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

【課題】OPC UAサーバーの作成を容易にする。【解決手段】OPC UAサーバーSDKの機能を用いて、クライアントとのインターフェイス部を利用し、そのもとで汎用OPC UAサーバー機能を実現する。対象とする各サブシステムにかかる従来のOPCサーバー、あるいは新規な通信システムについて、それらのオブジェクトをデータモデルに定義することで、汎用OPC UAサーバーに包含させる方法である。これにより、新たなサブシステムを接続する際に、所定の定義だけでOPC UAサーバーが実現できる。【選択図】 図4

Description

この発明は、統合化されたOPCサーバー(以下「OPC UA(Unified Architecture)サーバー」と呼ぶ)を効率的に開発するためのソフトウェア技術に関するものである。
従来、製品の製造や物流等に携わる企業では、複数のコンピュータ間を接続するネットワークシステムによって、プロセス制御や製品の出荷、生産管理、物流管理などを行うようになっている。このネットワークシステムは、大きく分けてプロセス制御システムや入出庫システム等の現場のシステムからデータを収集して蓄積するコンピュータであるサーバーと、サーバーからデータを取得して生産管理や物流管理等を行うコンピュータであるクライアントと、各コンピュータ間を接続するネットワークとから構成される。このようなネットワークシステムにおいて、異なるコンピュータ間でデータの送受信やデータの共有化を実現する技術として、OPC ( OLE for Process Control ) が提案されている( 例えば非特許文献1 参照) 。なお、OPC( Openness Productivity And Collaboration )の称呼もある。
OPCでは、当初のデータアクセス(DA)機能のみならず、順次にOPCヒストリーデータアクセス(HDA)、OPCアラーム&イベント(A&E)などのデータを発信する機能も開発されて、OPC仕様のインターフェイスとして標準化されているのが現状である(非特許文献2 参照)。
近年は、大規模プロセスオートメーション制御システムを情報管理するために、現場の計測器やコントローラから上位の運転監視(DCS)、製造管理(MES)、経営決定(ERP)への垂直方向の情報連携や、現場の機器同士が情報を交換する水平方向の情報連携を担う国際標準化された技術としてOPC UAの普及が進んでいる。OPC UAは、従来のOPCが対象としていた制御層でのデータ交換を包含する、さらに大きな適用範囲における統一した情報連携手段を提供してほしいという市場要求からきている(例えば、特許文献1 参照)。
OPC UAはこれらの課題を解決する為に規定された情報連携基盤となるインターフェイス仕様である。OPC UA仕様の特徴の1つであるデータモデルによって、関連のあるデータを整理した情報単位でやりとりすることで初めてデータの価値が個々の階層で認識できる。このためにOPC UAではクライアントとサーバー間の交換単位をオブジェクト指向ベースである情報単位(データモデル)で定義する仕様である。
特開2004−507721号公報
「OPC 技術概要書 Version2.0」, 日本OPC協議会,1999年11月 製造業XMLフォーラム OPC最新情報2006、日本OPC協議会、2006年 http://www.OPCconnect.com/UAkit.php#overview Copyright © OPCconnect.com. Last modified 2013-Jun-24.
OPC UAサーバーの開発手段を紹介すると、既存のOPCサーバーを包含して、そのデータをOPC UAのデータモデルに変換してOPC UAサーバーとして公開するプログラムが存在する。このようなプログラムをOPC UA Wrapperとよび、幾つかのサードパーティベンダーが商品として提供している(図1A 参照)。しかし、既存のOPCサーバーを前提にしていることで、既存のOPCサーバーが存在することが前提であるので、OPC以外の通信手段でアクセスするデータを取り込むことはできない問題がある。
一方、OPC UAが提供する機能を充分に活用し、自由な表現での情報モデルを公開するには純粋なOPC UAサーバーを開発する方が良い。OPC Foundationを始め、幾つかのサードパーティベンダーではOPC UAアプリケーションの開発作業を支援するためのソフトウェア開発キット(SDK : Software Development Kit)を提供している(非特許文献3のリスト参照)。どのSDKにおいてもその構成は類似しており、OPC UAアプリケーションが提供しなければならない機能をフレームワークやライブラリの形式で実現し、独自のOPC UAアプリケーションを開発する利用者はそのフレームワークの構造に則った特化部分の機能拡張を行い、その実装において適宜にライブラリを利用する (図1B 参照)。しかし、SDKを用いても、どのような情報モデルを公開するかの設計は利用者が都度に設計を検討して実装をしなければならないので、開発の負担は大きい。
このようなOPC UAサーバー開発における課題を解決し、OPC UAサーバーの作成にかかる開発を容易にすることを本願発明の課題とする。
本願発明は、OPC基準仕様に準拠のインターフェイスを備えたOPC UAサーバーの作成方法において、
データモデルを定義するステップと、
前記データモデル定義を解釈するクラスライブラリを具象化するステップと、
を特徴とするOPC UAサーバーの作成方法である。
また、前記データモデル定義を解釈してオブジェクトのクラスからUAノードに変換する処理を行う汎用サーバー作成ステップを備えるOPC UAサーバーの作成方法である。
前記データモデルはメタ言語で記述されることを特徴とするOPC UAサーバーの作成方法である。
データモデルやその参照関係が宣言定義だけで構成でき、新たなプログラムの実装を必要としない。
データモデルが公開するオブジェクトのプロパティや変数とデータソースの紐付けが、データモデル宣言定義の中の変更だけで構成できる。
データモデルにデータ統合する仕組みを特定プロトコルに対応したソフトウェア部品としての実装を1度だけ行えば、あとはその部品を宣言定義の中で組み替えるだけで、1つのデータモデルが様々なデータソースに連携できる。
などの効果が得られる。
従来技術であるOPC UAサーバーの作成方法: 図1A Wrapper方式 図1B SDK方式 本願発明の実施形態にかかるOPC UAサーバーの階層的構成図 本願発明の実施例であるデータモデル定義 本願発明の実施例であるOPC UAサーバーの作成方法のフロー図
[設計思想]
はじめに、本願発明にかかる設計の思想的特徴を述べる。
第一に、データモデルやその参照関係が宣言定義だけで構成でき、新たなプログラムの実装を必要としない。
第二に、データモデルが公開するオブジェクトのプロパティや変数とデータソースの紐付けが、データモデル宣言定義の中の変更だけで構成できる。データモデルにデータ統合する仕組みを特定プロトコルに対応したソフトウェア部品としての実装を1度だけ行えば、あとはその部品を宣言定義の中で組み替えるだけで、1つのデータモデルが様々なデータソースに連携できる。
[主要要素]
次に、本願発明にかかる主要な要素を説明する。
(1)データモデル
プログラムとは独立したファイルの中に公開すべきデータモデルを定義するようにした。
OPC UA仕様では既にデータモデルの内容を外部にエキスポートするためのXMLスキーマが規定されている。本願発明でもその標準仕様を利用し、更なる機能拡張としてつぎの内容が定義できる概念を追加する。
具体的には、オブジェクトが持つ変数やプロパティに相当する定義部分に、そこへのアクセスが発生したときにどのデータソース内のどのデータにアクセスすべきかを指定する。
そして、オブジェクトの定義部分に、そこからのイベントの発生元を指定することでもある。このような仕様にしたことで、外部から取得したOPC UA情報モデルの対象を定義したメタ言語(XML)ファイルについて拡張部分を追加定義するだけで今回の試作品の環境に統合できる。
(2)クラスライブラリ
データモデル定義を解釈するクラスライブラリであって、これが具象化されるオブジェクトはロードした個々の情報モデルに相当し、そこに定義されているデータモデルとしてのオブジェクト、プロパティ、メソッドなどを公開する。このクラスライブラリから具象化されるオブジェクトの利用者はどのようなプロパティやメソッドがあるかを確認でき、プロパティへのアクセスの実行を要求できる。
プロパティへのアクセスを処理するために、このクラスライブラリはデータモデル定義で宣言したアクセス対象データソースを処理するデータソース通信ソフトウェア部品を利用する。より詳細にはデータモデル定義にはこのソフトウェア部品の所在と、それを使ってアクセスする対象のデータソース内アイテムの2種類が定義されている。データソースとして、従来のOPCサーバーやOPC UAサーバーに対応した通信ソフトウェア部品を用いることでよいが、OPC以外のデータソースにもアクセスするためのプロトコルを実装した通信ソフトウェア部品を用意することでもよい。
以上述べた本願発明にかかるOPC UAサーバーの構成図を図2に示す。
クライアントとのインターフェイス部分は、一般的なSDKで提供されるフレームワークおよびライブラリが位置づけられる。その下に、データモデル定義を解釈するオブジェクト・クラスからUAノードに変換する処理を行う汎用OPC UAサーバー(UA依存アプリケーション)が存在する。
また、データモデル定義を解釈するクラスのオブジェクト群であり、これがデータモデル定義を解釈するクラスライブラリ(UA非依存アプリケーション)である。
これら、UA依存、非依存のアプリケーションはただ一度開発される必要はあるが、
前述のクラスライブラリが提供するメタ情報取得の仕組みやオブジェクトインスタンスの情報を利用して、汎用OPC UAサーバーとして必要な情報モデル(メタ情報のタイプノード、インスタンスとしてのオブジェクトノードなど)に変換して公開する。
公開されたOPC UAサーバーへの各種要求はそのまま前述のクラスライブラリのオブジェクトに渡されて、その結果を返す。すなわち、ただ一つの汎用OPC UAサーバーと、ただ一つのクラスライブラリを実装することで、実際の情報モデルの構築はデータモデル宣言定義だけでOPC UAサーバー機能を実現する。
1.データモデル
OPC UAのモデルを構成しているものは全てノードというデータ構造からできている。対象とする従来のOPCサーバーなどのオブジェクトが持っている変数やメソッドも、オブジェクトを表すノードと変数やメソッドを表すノードが存在し、そのノード間にリファレンスを定義することで構成される。リファレンス自体はノードとは独立した概念であるが、そのメタ情報を定義しているものはリファレンスタイプというノードであり、OPC UAのデータモデルはノードとリファレンスから成り立つ。
OPC UAのノードの種類を次の表1に示し、そこで説明を付す。
Figure 2016004359
次に、図3にノードの構造を示す。
各ノード属性とその説明を、次の表2および以下の項で述べる。
Figure 2016004359
2.OPC UAサーバー作成方法のフロー
図4のフロー図を基に、ステップ順に説明する。各ステップは図中Snで示す。
まず、ステップS1でオブジェクト参照関係の解読に入る。これは、UAで公開するアドレススペース(オブジェクト群を参照関係でつないだ空間)のコンフ情報を読み込み、どのようなクラスやインスタンスが必要かを確認する作業である。
例えば、下記の定義例では、Object というメタ(XML)要素では、インスタンスのノードを定義し、その中のReferenceという要素が参照関係を表す。
<Object NodeId="ノード名" BrowseName="xxx " WriteMask="0" UserWriteMask="0" EventNotifier="0">
<DisplayName>Sample<DisplayName>
<Description>Sample Folder<Description>
<References>
<Reference ReferenceType="HasTypeDefinition" IsForward="true">
Sample
</Reference>
<Reference ReferenceType="Organizes" IsForward="false">
Objects
</Reference>
</References>
</Object>
次に、ステップS2でクラスのメタ情報の解読を行う。これは、必要なクラス情報がどのようなデータメンバーやメソッドを持っているかを、そのクラスのメタ情報から取得する。入力ファイルもクラスのメタ情報である。
例えば、上記のインスタンスのノード定義の中には次のような HasTypeDefinition という参照定義があれば、インスタンスのノード名を指す。
<Reference ReferenceType="HasTypeDefinition" IsForward="true">
BoMaintenanceAspect_CompressedAirSource
</Reference>
ステップS1での定義内容と、実際のクラスのメタ情報から必要な情報を取得するというのが本ステップである。
次に、ステップS3でタイプノードの作成を行う。これは、ステップS2の情報からUAノードで表現するオブジェクトや変数のタイプノードを作成する。
例えば、ステップS1のXMLの全ての Object 要素に対してそのクラスを確認し、全てのクラスのObjectTypeノードを作成する。そのクラスが持つメソッドやプロパティの情報を確認し、適宜にVariableType, DataType, Variable,Methodノードも作成する。
次に、ステップS4でインスタンスノードの作成を行う。これは、ステップS3のタイプノードからインスタンスノードに具象化することで、ステップS1でテンプレート出力されているデータ定義の内容を具体化することである。
例えば、ステップS1での全ての Object 要素に対してそのObjectノードを作成する。そのインスタンスが持つメソッドやプロパティも、
ステップS3で作成したObjectTypeノードが持っているVariable, Methodノードもその複製を作成する。
このように、インスタンスノードを作成するときには、それに1対1で対応する
‘データモデル定義を解釈するクラスのオブジェクト’を作成し紐付けておく。
例えばVariableノードに対応するオブジェクトには、そのノードが持つValue属性へのデータアクセスを行うために必要なデータソース通信部品の参照と、そのデータソース通信部品を使ってValue属性に対応するデータソース内の対象データアイテムにアクセスするために必要なパス情報などを保持しておく。
最後に、ステップS5でUAノードの公開を行い、終了する。このUAノードがクライアントに公開されてデータアクセスなどができる。
以上述べたように、通常のUAサーバーが提供する機能はSDKの中に作りこまれているのでその機能を利用して実現する。Value属性へのアクセスがUAクライアントから要求された場合には、UAアプリ依存部分はそのサービス要求をUA非依存アプリ部分に引き渡す。引き渡された側では対応するデータソース通信部品とそこに要求するパス情報を
‘データモデル定義を解釈するクラスのオブジェクト’から取り出してアクセスを行う。その結果はUAアプリ依存部分に渡され、SDKを通してOPC UAのアクセス結果としてUAクライアントに渡される。
以上、本願発明ではデータアクセス(DA)を主に説明をしたが、イベント通知、メソッド実行などのOPC拡張的なサポートも同様に行えることは当然である。そのような種々の変形応用を行っても本願発明の範囲に属する。

Claims (3)

  1. OPC基準仕様に準拠のインターフェイスを備えたOPC UAサーバーの作成方法において、
    データモデルを定義するステップと、
    前記データモデル定義を解釈するクラスライブラリを具象化するステップと、
    を特徴とするOPC UAサーバーの作成方法。
  2. 請求項1に記載のOPC UAサーバーの作成方法において、
    前記データモデル定義を解釈してオブジェクトのクラスからUAノードに変換する処理を行う汎用サーバー作成ステップを備えるOPC UAサーバーの作成方法。
  3. 請求項1また請求項2に記載のOPC UAサーバーの作成方法において、
    前記データモデルはメタ言語で記述されることを特徴とするOPC UAサーバーの作成方法。
JP2014123385A 2014-06-16 2014-06-16 Opcuaサーバーの作成方法 Pending JP2016004359A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014123385A JP2016004359A (ja) 2014-06-16 2014-06-16 Opcuaサーバーの作成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014123385A JP2016004359A (ja) 2014-06-16 2014-06-16 Opcuaサーバーの作成方法

Publications (1)

Publication Number Publication Date
JP2016004359A true JP2016004359A (ja) 2016-01-12

Family

ID=55223606

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014123385A Pending JP2016004359A (ja) 2014-06-16 2014-06-16 Opcuaサーバーの作成方法

Country Status (1)

Country Link
JP (1) JP2016004359A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020046301A1 (en) * 2018-08-30 2020-03-05 Siemens Aktiengesellschaft Automatic generation of opc ua servers and clients from knowledge models
JP2021043853A (ja) * 2019-09-13 2021-03-18 サイレックス・テクノロジー株式会社 中継装置、中継装置の制御方法及びプログラム
CN115639997A (zh) * 2022-10-19 2023-01-24 慧之安信息技术股份有限公司 Json格式描述opc ua信息模型的方法和系统
WO2023189257A1 (ja) * 2022-04-01 2023-10-05 オムロン株式会社 サーバ装置、情報モデルの提供方法、及び情報モデルの提供プログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020046301A1 (en) * 2018-08-30 2020-03-05 Siemens Aktiengesellschaft Automatic generation of opc ua servers and clients from knowledge models
JP2021043853A (ja) * 2019-09-13 2021-03-18 サイレックス・テクノロジー株式会社 中継装置、中継装置の制御方法及びプログラム
JP7207727B2 (ja) 2019-09-13 2023-01-18 サイレックス・テクノロジー株式会社 中継装置、中継装置の制御方法及びプログラム
WO2023189257A1 (ja) * 2022-04-01 2023-10-05 オムロン株式会社 サーバ装置、情報モデルの提供方法、及び情報モデルの提供プログラム
CN115639997A (zh) * 2022-10-19 2023-01-24 慧之安信息技术股份有限公司 Json格式描述opc ua信息模型的方法和系统
CN115639997B (zh) * 2022-10-19 2023-10-03 慧之安信息技术股份有限公司 Json格式描述opc ua信息模型的方法和系统

Similar Documents

Publication Publication Date Title
US11888675B2 (en) Systems, devices, and methods for internet of things integrated automation and control architectures
Lee et al. Model transformation between OPC UA and UML
Palm et al. Open source as enabler for OPC UA in industrial automation
US9823907B2 (en) Extensible device object model
JP5898847B2 (ja) プロセス制御タグ間の関係を基にしたデータ駆動型インターフェースの方法と装置
Hirmer et al. Automating the Provisioning and Configuration of Devices in the Internet of Things.
Fernbach et al. Interoperability at the management level of building automation systems: A case study for BACnet and OPC UA
US20040021679A1 (en) Human machine interface
US7877397B2 (en) Extensible command execution for entity data model platform
Virta et al. SOA-Based integration for batch process management with OPC UA and ISA-88/95
US20120079450A1 (en) End to end automation of application deployment
CN103714129A (zh) 基于条件规则的动态数据结构和关系的构建装置和构建方法
JP2009003926A (ja) プロセス制御システムに関連する情報にアクセスする機器および方法
KR20090061674A (ko) 컴퓨터 네트워크 상의 분산되거나 신생되는 모델에 대한 액세스 제어
Wang et al. A collaborative product data exchange environment based on STEP
JP2016004359A (ja) Opcuaサーバーの作成方法
JP2017519314A (ja) 製品、材料及び製造工程の統合化された設計向けのモデルを活用した計算プラットフォーム
Yu et al. Research on CNC machine tool monitoring system based on OPC UA
Rahm et al. Efficient automation engineering of modular process equipment assemblies using the digital twin
Jacoby et al. FA 3 ST Service–An Open Source Implementation of the Reactive Asset Administration Shell
Sáenz-Adán et al. UML2PROV: automating provenance capture in software engineering
Fernbach et al. Linked data for building management
Schleipen et al. Semantic integration by means of a graphical OPC Unified Architecture (OPC-UA) information model designer for Manufacturing Execution Systems
Borrmann et al. AEC Digital Twin Data-Why Structure Matters
Pakala et al. Integration of asset administration shell and Web of Things