OPC UA信息模型

CPA*_*CPA 6 model opc iot opc-ua

假设我有多个分布式复杂机器。每台机器包含多个 cpplex 设备。每个设备都有自己的 OPC UA 服务器来监控设备组件。通过 OPC UA 客户端,我想读取 OPC UA 服务器的所有数据项。

现在我不知道如何建立信息模型。我设计了一个全局信息模型,其中包含所有机器、其设备以及设备的内部组件。从全球的角度来看,这是有道理的。但是我是否还必须为每个服务器创建一个本地信息模型?或者本地 OPC UA 服务器是否使用全局信息模型,但服务器仅为该服务器实现相关对象(基于全局信息模型)?

更新:

这是一个示例设置:

在此输入图像描述

在示例中,您可以看到三个层 - 机器层、构建层和工厂层。

这是我对如何对此类设置进行建模的理解。有一个整体的 OPC UA 信息模型,它描述了所有类型等。每个 OPC UA 服务器都知道该信息模型和所有包含的类型描述。

现在,根据现实世界的设置,我可以创建一个对象模型。机器层的 OPC UA 服务器包含来自底层系统的所有对象,在本例中为设备。

在此输入图像描述

通过构建层的 OPC UA 客户端,我可以从机器连接到 OPC UA 服务器,并且可以从机器内部的设备读取所有数据项。

工厂层的 OPC UA 客户端可以从建筑物连接到 OPC UA 服务器。建筑级别的OPC UA服务器可以提供更多对象:

在此输入图像描述

来自工厂外部的 OPC UA 客户端可以看到对象模型的全貌:

在此输入图像描述

但是如何通过服务器从工厂外部获取设备数据呢?我是否必须在构建层中再次从机器层创建对象模型?又在下一个更高级别的层等等?

或者每一层的任何 OPC UA 服务器都知道整个对象模型(如信息模型)吗?

Jou*_*Aro 3

OPC UA 服务器包括两大类信息:类型和实例。

当我们谈论信息模型时,我们通常谈论不同的类型定义。例如,所有设备的通用模型(适用于设备 (DI) 的 OPC UA)或特定设备类型的特定模型(适用于分析器设备 (ADI) 的 OPC UA 等)。这些类型定义了对象的通用结构:例如,当您遇到“光谱仪”类型的对象时,您知道它会是什么样的结构。类型通常是固定的,当它们标准化时,它们不应该改变。如果您定义自己的类型(可以是标准类型的特化),那么您当然会有更多的灵活性。

现在,如果您希望对完整的生产场地进行建模,则需要创建实际实例的轮廓和排列:例如,“实验室”内的“光谱仪 1”和“ProductionHall B”内的“容器 13”。当设施的布局发生变化时,该模型通常更加动态且易于变化。

由于上述原因,我们通常不会在标准模型中对实例进行建模,也不会像信息模型那样谈论它们。你可能会认为它们或多或少是系统的配置。

现在,正如您所意识到的,整个系统在实践中可能由各种 OPC UA 服务器组成。每个服务器的功能各不相同,您的选择可能会受到限制。在理想的世界中,所有服务器都将提供通过适当的信息模型建模的数据。也就是说,实例将遵循标准类型的结构,或者使您能够使用自己的类型对它们进行建模。

另一方面,目前大多数现有的OPC UA服务器只是提供“未建模”的数据。这是 OPC Classic 中的唯一选项,大多数实际的 OPC UA 服务器仍然处于同一水平。希望将来我们会看到更多 OPC UA 服务器也提供在其中采用信息模型的选项。或者我们可能会看到“聚合 OPC UA 服务器”的兴起,它使您能够根据标准或自定义模型重新建模数据。

无论如何,当您创建系统模型时,我建议您专注于类型信息,然后使用这些类型将其应用到系统的实际布局模型中。

为了真正回答你的问题,我认为你只要在系统中创建你需要的模型就足够了,因为你目前可能无法很好地将它传播到实际的 OPC UA 服务器上。当然,如果您也可以将这些模型应用到特定的服务器上,那就更好了。