OPC UA Serverの実装

デフォルトで提供されるEmpress iData OPC UA SeverはOpc.Ua.NodeSet2.xmlをロードします。情報モデルのスケルトンだけを提供します。それではEUROMAP83など業界標準のInformation Companion ModelをOPC UA Serverに取り込むにはどうすれば良いのでしょう。

Information Companion ModelをServerに取り込むにはCSで定義された要件をServerに移植しなければなりません。CSで定義されたDataType、Event、Methodの3つNodeをServerへ移植することが必要です。

DataTypはVariableやVariableTypeのValue Attributeのデータ型を示します。一般的なDataTypeはスケルトンでも定義されていますが、Information Companion Model独自のもの、例えばRoboticsで使用されるVectorTypeなどは定義されていません。CS独自のDataTypeの実装が必要になります。

EventはServerからClientに提供される通知です。BaseEventTypeはスケルトンでも定義されていますが、Information Companion Model独自のもの、例えばEUROMAP83で使用されるLogbookEventTypeの実装が必要になります。

MethodはFA機器の軽量なプログラム、例えばコマンドです。MethodはInformation Companion Modelの独自仕様ですので実装が必要になります。 XMLさえ作成すれば良いと誤解されている方がいらっしゃいますが、そのXMLを理解するためのServerプログラムの追加もしくは変更が必要になります。

Information Companion Modelの実装はEmpressが提供する場合もお客様がご自身で実装することも可能です(Empressの場合、ツールを使用するのではなく、サンプルコードを書き換える方法をとります。)。Information Companion ModelのDataType、Event、Methodが実装されたOPC UA Serverが情報モデルのXMLファイルをロードすることではじめて業界標準のInformation Companion Modelに対応したOPC UA Severが立ち上がります。

しかし、これで終わりではありません。Vendor Specific Extensionsが残っています。Information CompanionのCSに定義され、ServerにロードされているのはObjectType(いわゆるObjectのテンプレート)です。ObjectTypeをインスタンス化しObjectにしなければなりません。また、インスタンス化したObjerctをVendor Specific ExtensionsとしてXML化する作業も必要です。Vendor Specific ExtensionsのXMLをロードするとCompanion Specに対応した御社製のOPC UA Serverが立ち上がります。

CSには必ず「Profiles」項目があり、どのFacetを対応すべきかの一覧が出ています。たとえばVisionを例にとるとMV VisionStateMachine FacetはMandatoryですが、MV VisionStepModelStateMachine ManagementはOptionalです。ですのでVisionに対応したOPC UA Serverは必ずMV VisionStateMachineTypeをサポートしなければなりませんがMV VisionStepModelStateMachine Managementは必ずサポートする必要はありません。どのFacetに対応するかを明確にするために必ずCSの「Profiles」を一読することをお奨めします。