【问题标题】:Open62541 Object containing an array of objects: OptionalPlaceholder and HasOrderedComponent referenceOpen62541 包含对象数组的对象:OptionalPlaceholder 和 HasOrderedComponent 参考
【发布时间】:2021-02-27 16:48:37
【问题描述】:

我一直在寻找有关如何面对我要解释的问题的信息,但不幸的是我无法解决它。

我想创建一个 ObjectType ProgrammType 的对象 Programm,其中包含 ObjectType CommandType 的实例数组。 Programm 对象中这些命令对象的顺序是相关的。

我正在使用 ModelDesign XML 文件来创建信息模型。关于我想要实现的信息建模,我已经看到有可能在 ProgrammType 定义中使用 ModellingRule “OptionalPlaceholder”,尽管说实话,这个 ModellingRule 的用法并不完全清楚对我来说。

所以到目前为止,我所做的是将具有 ModellingRule “OptionalPlaceholder”的“CommandType”类型的对象作为子对象添加到 ProgrammType 定义中。然后,在实例化部分,我正在创建 Command 对象,最后我使用 Programm 对象中的“HasOrderedComponent”引用它们。我不确定这种方法是否真的有意义,它是否利用了先前在 ProgrammType 定义中定义的“OptionalPlaceholder”。 如果这不是他们正确的做法,请告诉我应该怎么做。

据我了解,“HasOrderedComponent”引用意味着服务器始终以相同的顺序返回元素。

我正在从 ModelDesign XML 文件生成 UANodeSet XML 文件,然后我正在使用此 NodeSet 创建一个 Open62541 服务器。

所以我的问题是:

1.) 我的建模方法对吗?有没有更好的方法来模拟我在开始时描述的内容?

2.) 当我从基于 Open62541 的客户端检索时,Open62541 服务器的 Programm 对象中使用“HasOrderedComponent”引用的命令。

  • 是否可以预测它们会按什么顺序出现?或者返回的顺序总是一样的,但是这个顺序不能设置。
  • 它们会按照在 ModelDesign 文件中定义的顺序返回吗?
  • 如果我使用自己编写的“手动”代码创建节点。命令的返回顺序是在我的代码中添加引用的顺序吗?

提前非常感谢您! 顺便说一句,一旦我成功地为我正在做的工作建模,我可以准备一个关于如何在 OPC UA 中建模的详细说明,如果您认为它可能相关,可以用来扩展 Open62541 文档。

最好的问候

【问题讨论】:

    标签: opc-ua open62541


    【解决方案1】:

    如果您提前知道 Command 对象以及其中有多少将被 Programm 引用,那么您根本不需要 OptionalPlaceholder 规则,只需制作 HasComponent Programm 对每个 Command 对象的引用。

    OptionalPlaceHolder 用于在建模时不知道实例及其浏览名称的情况。在这种情况下,您将添加一个带有 HasComponent 引用的 Command 对象,然后将 OptionalPlaceholder 的 HasModellingRule 添加到该“占位符”对象。

    这在 OPC UA 第 3 部分中有更详细的解释。

    【讨论】:

      猜你喜欢
      • 2019-06-06
      • 2020-11-15
      • 1970-01-01
      • 2019-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-06
      相关资源
      最近更新 更多