OPC UA信息模型的创建

Creation of OPC UA information model

创建OPC-UA服务器的前提是建立相应的信息模型。我查看了 OPC UA 组(锅炉)的 GitRep 提供的样本。从头开始创建信息模型似乎是一项艰巨的任务。创建这种模型的最佳方法是什么?你推荐有用的工具吗?

我知道这是一个老问题,但我会为以后阅读它的人做同样的回答

最好的方法在 OPC UA 标准出现之前就存在并诞生了。它是领域驱动设计。与工程师交谈,了解您要建模的 machine/plant/process 的组成和技术解决方案。定义一个领域模型,其中包含建模组件的领域术语,每个组件都有其属性(例如名称、序列号)和变量(例如温度)。定义组件之间的层次结构,但请记住,这是一个 "static" 模型:当您为 Web 应用程序设计域模型时,您知道一个实体可以关联另一个 entity/VO 的零个或一个实例, 或一对多。在 OPC UA 信息模型中,关联的基数是固定的,这是非常合理的,因为机器人或管道不会在运行时更改其结构……但如果它这样做,您应该可以通知所有客户端这一变化

您的信息模型将包含数据,但每个组件也可以发出事件。事件通知某些状态已更改,即使此状态未表示为数据模型。警报是您需要管理的事件示例。 OPC UA 为特定类型的事件的警报和条件(条件类似于警报但不代表故障状态)定义了标准。现在你必须 select 哪些组件可以是 "event sources" 以及哪个组件能够通知从它自己或它是根的组件的子树发出的事件

与领域专家一起验证你的模型,不要指望他们会理解,可能他们是机械、化学、电气工程师,所以我建议你将他们的建模部分抽象化并让他们成为特定领域的问题,比如"is it correct to state that a car has foru wheels?"

有一些用于创建 OPC UA 信息模型的商业和开源工具。基本上,您需要的是一个 NodeSet2.xml 文件,它可以加载到许多不同的 OPC UA 实现中。

要创建这样的 NodeSet2.xml 文件,有多种工具。这是一个简短的列表。

图形工具:

文本工具:

  • 您始终可以手动编写 NodeSet2.xml 文件。不推荐这样做。
  • 使用 OPC 基金会的开源 UA-ModelCompiler。在这里您编写简单的 Model.xml 文件,这些文件被转换为 NodeSet2.xml 文件。

功能最多的工具是 UA-ModelCompiler,因为 OPC 基金会使用它来为主要规范和配套规范创建 NodeSet2.xml 文件。

我还在此处写了一篇关于如何使用 UA-ModelCompiler 创建自定义信息模型的教程: https://opcua.rocks/custom-information-models/