0

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

我想要一个服务,它提供不同数据类型(整数、双精度、布尔值等)的数据作为输出。每个值都应该被命名为不同的名称,而不是像数组输出那样对所有值都具有单一名称的单一名称。为此,有没有办法定义具有不同类型属性的自定义数据对象类?这在 OPC 中是否可以将自定义数据对象类型作为服务的输出?

4

1 回答 1

1

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

项目ExampleNamespace中的milo-examples向您展示了如何做到这一点。

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

  1. 创建一个 ObjectTypeNode 实例来描述您的新类型。
  2. 对于它将拥有的每个属性/成员,创建一个新的 VariableNode,并使用所需的 DataType 进行配置,然后将 ObjectTypeNode 中的 HasComponent 或 HasProperty 引用添加到此 VariableNode。(这些节点是规范所称的 InstanceDeclarations)
  3. 将您的 ObjectTypeNode 作为 BaseObjectTypeNode 的子类型添加到地址空间。

然后,当您创建原始 ObjectNode 时,您需要将类型定义指定为新创建的 ObjectTypeNode,而不是说,FolderType。

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

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

于 2017-12-05T14:16:39.903 回答