2017-12-02 10 views
0

eclipse miloを使用してOPC-UAサーバーを構築しています。サブスクリプションサービスに複数のノードを提供するさまざまな方法は何ですか?これに対して、基本データ型のプロパティを持つカスタムデータオブジェクトを定義できますか?どうやって?eclipse miloを使用する複数のノードを持つOPC-UAサーバー

出力として、異なるデータ型(整数、倍精度、ブール値など)のデータを扱うサービスが必要です。各値は、すべての値に対して単一の名前を持つ配列出力のように、単一の名前ではなく、異なる名前を付ける必要があります。この目的のために、さまざまなタイプの属性を持つカスタムデータオブジェクトクラスを定義する方法がありますか?これはOPCでサービスの出力としてカスタムデータオブジェクトタイプを持つことが可能ですか?

+0

私はあなたが何を求めているのかよく分かりません。あなたは精緻化できますか? –

答えて

1

概念的には、質問しているそれぞれの異なるデータ型を持つノードを追加することは、フォルダノードを作成しノードを追加することと変わりありません。

milo-examplesプロジェクトのExampleNamespaceプロジェクトでは、その方法を示しています。

FolderTypeのインスタンスではなく、カスタムObjectTypeのインスタンスを本当に使用する場合は、行う必要のある簿記作業があります。

  1. 新しいタイプを表すObjectTypeNodeのインスタンスを作成します。
  2. 必要な各プロパティ/メンバについて、必要なデータ型で構成された新しいVariableNodeを作成し、ObjectTypeNodeからHasComponentまたはHasProperty参照をこのVariableNodeに追加します。 (これらのノードは、仕様がInstanceDeclarationsを呼び出すものです)
  3. ObjectObjectNodeをBaseObjectTypeNodeのサブタイプとしてアドレス空間に追加します。

次に、元のObjectNodeを作成したときに、タイプ定義を、新しく作成されたObjectTypeNodeとして、たとえばFolderTypeではなく指定します。

この仕様の第3回と第5回ではどのように動作するのか、またはUaExpertのようなクライアントを使用して、サーバー内の既存のObjectTypeの一部(ServerTypeなど)を調べることができます。

編集:これを行う方法の例があります。here。これはちょっとかさばっているようだ...あなたは正しい。通常、ObjectTypesとVariableTypesはモデリングツールで設計され、NodeSet XMLファイルを介してインポートされますが、それは今のものの範囲外です...

+0

ありがとうKevin、私はこれを試み、あなたに質問があればあなたに戻ってきます。 – markiv

+0

私にポイントできるサンプルコードはありますか? ObjectTypeNodeをアドレス空間に追加する方法を取得できません。 – markiv

+0

@markiv例を含めるために、dev/0.2.xブランチのExampleNamespaceを更新しました。 –

関連する問題