使用eclipse milo的多个节点的OPC-UA服务器

时间:2017-12-02 15:47:55

标签: opc-ua milo

我正在使用eclipse milo构建OPC-UA服务器。为订阅服务提供多个节点的不同方法有哪些?我可以为此定义具有基本数据类型属性的自定义数据对象吗?怎么样?

我希望有一个服务,它提供不同数据类型的数据(Integer,Double,Boolean等)作为输出。每个值都应该命名为不同的单个名称,如数组输出,所有值都使用单个名称。为此目的,有一种方法可以定义具有不同类型属性的自定义数据对象类吗? OPC中是否可以将自定义数据对象类型作为服务的输出?

1 个答案:

答案 0 :(得分:1)

从概念上讲,使用您询问的每个不同数据类型添加节点与创建文件夹节点并向其添加节点没有什么不同。

milo-examples项目中的ExampleNamespace会向您展示如何执行此操作。

如果你真的想要使用自定义ObjectType的实例而不是FolderType的实例,那么你需要做一些簿记工作。

  1. 创建ObjectTypeNode实例以描述您的新类型。
  2. 对于它将拥有的每个属性/成员,使用所需的DataType创建一个新的VariableNode,然后将ObjectTypeNode中的HasComponent或HasProperty引用添加到此VariableNode。 (这些节点是规范称为InstanceDeclarations)
  3. 将ObjectTypeNode作为BaseObjectTypeNode的子类型添加到地址空间。
  4. 然后,当您创建原始ObjectNode时,您将类型定义指定为新创建的ObjectTypeNode,而不是像FolderType。

    您可以更好地了解规范的第3部分和第5部分中的所有工作方式,或者使用UaExpert等客户端来检查服务器中的一些预先存在的ObjectType,例如ServerType

    编辑:现在有一个如何执行此操作的示例here。如果这看起来有点笨重......你是对的。通常,ObjectTypes和VariableTypes是在建模工具中设计的,并通过NodeSet XML文件导入,但这不在现在的范围之内......