假设我有多台分布式复杂机器。每台机器都包含多个cpmplex设备。每个设备都有自己的OPC服务器来监视设备组件。对于OPC客户端,我想读取OPC服务器的所有数据项。
现在我不知道如何建立信息模型。我设计了一个全局信息模型,它包含了所有的机器、它们的设备和设备的内部组件。从全球的角度来看,这是有意义的。但是,我是否也必须为每个服务器创建一个本地信息模型?或者本地OPC服务器使用全局信息模型,但是服务器只为该服务器相关对象实现(基于全局信息模型)?
更新:
下面是一个示例设置:

在这个示例中,您可以看到三层--机器层、构建层和工厂层。
以下是我对如何建模这样的设置的理解。有一个全面的OPC UA信息模型,它描述了所有类型等,每个OPC UA服务器都知道该信息模型以及所有包含的类型描述。
现在,根据实际的设置,我可以创建一个对象模型。机器层的OPC服务器包含底层系统的所有对象,在本例中是设备。

在构建层有一个OPC客户端,我可以从机器连接到OPC服务器,并且可以从机器内的设备读取所有数据项。
工厂层的OPC UA客户端可以从建筑物连接到OPC UA服务器。构建级别的OPC UA服务器可以提供更多的对象:

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

但是,我如何通过服务器从工厂外部获取设备数据呢?是否必须再次从建筑层中的机器层创建对象模型?又是在下一个更高的层次,等等?
或者每个层的OPC服务器都知道整个对象模型,比如信息模型吗?
发布于 2018-04-20 08:31:13
OPC UA服务器包括两大类信息:类型和实例。
当我们谈论信息模型时,我们通常会谈到不同类型的定义。例如,所有设备的通用模型(用于设备的OPC UA (DI))或某些设备类型的特定模型(用于分析器设备的OPC UA (ADI)等等)。类型定义了对象的公共结构:例如,当您遇到一个“分光计”类型的对象时,您知道它会有什么样的结构。类型通常是固定的,当它们标准化时,它们不应该改变。如果您定义了自己的类型(可以是标准类型的专门化),那么您当然有更多的灵活性。
现在,如果您希望建立一个完整的生产现场,您将创建实际实例的大纲和安排:例如,“实验室”中的“光谱仪1”和"ProductionHall B“中的”容器13“。当设施的布局发生变化时,该模型通常更具有动态性和可更改性。
由于上述原因,我们通常不对标准模型中的实例进行建模,也不像对信息模型那样多地谈论它们。您可以认为它们或多或少是系统的配置。
现在,正如您已经意识到的,整个系统可能由各种OPC UA服务器组成。每个服务器的功能是不同的,您的选择可能是有限的。在一个理想的世界中,所有服务器都将服务于通过适当的信息模型建模的数据。也就是说,实例将遵循标准类型的结构,或者允许您用自己的类型对它们建模。
另一方面,目前大多数OPC UA服务器只是提供“未建模”数据。这是OPC中的唯一选项,而且大多数实际的OPC UA服务器仍然处于同一级别。希望在未来,我们将看到更多的OPC UA服务器提供在它们中采用信息模型的选择。或者,我们可能会看到“聚合OPC UA服务器”的兴起,它使您能够根据标准或自定义模型重新建模数据。
无论如何,当您创建系统模型时,我建议您集中注意类型信息,然后使用这些类型将其应用于系统的实际布局模型。
要真正回答您的问题,我认为只要在您的系统中创建所需的模型就足够了,因为您目前可能无法将它很好地扩展到实际的OPC UA服务器。但是当然,如果您也可以将模型应用到特定的服务器上,那就更好了。
发布于 2021-09-01 15:19:56
该系统可以使用三种不同的模型进行建模,三种模型之间的链接:
需要执行下列任务:
https://stackoverflow.com/questions/49923964
复制相似问题