我一直在寻找有关如何面对我要解释的问题的信息,但不幸的是我无法解决它。
我想创建一个ObjectType ProgrammType 的对象程序,其中包含 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 文档。
此致