【发布时间】: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 文档。
最好的问候
【问题讨论】: