谈谈OPCUA 聚合服务器(aggregation-server)

2023-10-13 19:40

本文主要是介绍谈谈OPCUA 聚合服务器(aggregation-server),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

     OPC UA 作为一种以信息模型为基础的工业自动化通信协议,如同它的名字一样正在朝着“统一架构”的方向飞速地发展,从传感器,PLC ,传感器到云端应用都正在向OPCUA 迁移。它将成为开放型系统,数字孪生,仿真系统的主要承载协议。

   笔者看来,研究OPC UA 不能简单地停留在标准,嵌入式服务器和客户端软件的单元概念层面,要从系统架构的大视野去探索OPCUA 的各种应用方式和系统架构。基于OPC UA 技术,专业的自动控制公司开发了大量满足客户需求的软件产品。包括了HMI ,SCADA,服务器等。

       在本文我们谈谈聚合服务器。所谓聚合服务器是将多个服务器的对象和类型聚合成为一个单一巨大的服务器。

      行业需要在各个层级之间实现无缝的垂直和水平通信。这导致OPC服务器的激增,分布在制造工厂的各个点,并且可能具有地理分布。出于各种目的使用此数据的OPC客户端可能必须与每台服务器建立单独的连接,这通常会导致高昂的许可证成本和维护难题。顾名思义,聚合服务器从各种 OPC 服务器聚合 OPC 数据中心,并将数据作为单个端点公开给最终客户端。聚合服务器还可以承担其他功能来对其正在收集的数据进行计算和优化,从而提高最终客户端的性能。

为什么要数据聚合

什么是数据聚合?

     数据聚合是将来自不同 OPC 服务器(和其他数据源)的数据汇集到单个数据源中,以便一个或多个 OPC 客户端(或其他客户端)可以通过单个通用接口访问此数据。

        根据您选择的解决方案,数据聚合不仅仅是OPC - 它是关于从所有各种数据源集中收集数据,为您的整个企业创建一个全面的数据集。

     越来越多的设备中都包含了用于外部访问的服务器,例如PLC ,边缘控制器,甚至是传感器中都可能包含一个OPCUA 的服务器。可以通过内嵌了OPC UA 的客户端访问系统中所有服务器。当系统中的设备很多时,这种访问是复杂的。OPCUA 客户端软件访问服务器的需要:

  1. 发现服务器,获取服务器的网络地址和端口
  2. 获取服务器的信息模型。
  3. 根据信息模型来读写数据
  4. 订阅,告警事件的处理

   与此同时,多个客户端软件同时访问服务器时,将会占用网络带宽和前端处理器的算力。下图是增加了聚合服务器的前后变化。

 使用聚合服务器的模式

     如今,大多数项目涉及的系统比使用单个PLC进行HMI读写更复杂。因此,大多数项目都涉及配置与多个数据源和设备的单独客户端连接。数据聚合支持从多个源将数据汇集在一起,并将其作为单个全面的数据集提供给客户端应用程序。

使用聚合服务器的优点:

  1. 降低了OPCUA 客户端的负荷
  2. 使用单一的通信连接访问多个数据源
  3. 方便地访问和控制多个服务器
  4. 使用单一的地址空间。
  5. 数据聚合有助于确保将通用且一致的更新速率传递到其他 OPC 服务器和数据源,避免过程网络上不必要的流量。
  6. 如果客户端应用程序需要每个服务器连接的许可证,则通过单个客户端连接访问数据也可以节省资金。
  7. 从所有各种数据源收集数据,并将其作为共享的通用数据集呈现给用户。
  8. 客户端程序永远不需要知道哪个程序发起了数据才能读取和写入数据,因为有一个公共位置可以访问它。

聚合服务器被称为系统的系统,服务器的服务器。

系统架构

聚合服务器的模型

系统架构

       OPC UA聚合服务器可能在Windows上运行,而OPC UA嵌入式服务器可能在VxWorks上运行。OPC UA提供独立于平台和操作系统的安全数据交换的能力对于将不同的系统融合到一个安全系统中至关重要。由此产生的系统链,从低级设备到SCADA系统再到企业应用程序,与OPC UA集成以形成系统系统。

聚合技术

聚合服务器的基本架构

 被聚合的服务器(Aggregated server)

        它们是自动控制系统的实体,比如PLC ,现场设备中的服务器。可以是子系统中的一组实体。

聚合服务器(Aggregation server)

        聚合服务器是聚合架构的核心。它通过OPC 服务连接所以的服务器。聚合它们的类型,实例和结构信息。

信息模型

        为了实现聚合服务器,需要一些扩展的OPCUA 信息模型。扩展模型包括两部分:

聚合服务器的信息模型

OpcUaServerType是OpcUa 的模型,它包含了一个变量ServerUrl ,也就是服务器的地址(Url)。

AggregatedServerType是OpcUaServerType的继承,包含了ServerType.

ServerType.包含了服务器的详细信息。比如诊断状态diagnostic status.

AvailableServerSetType 包含了所有聚合的服务器

被聚合服务器的扩展信息模型

OPCUA 聚合服务器的实现

服务器聚合

        服务器聚合是发现和收集所有被聚合服务器的信息,这样两者方式

文件描述方式

        将所有的服务器Url 放置在ServerUris.xml文件中

自动发现方式

        使用OPCUA 的discovery方式,一种是广播方式,一种是建立一个本地发现服务器Local Discovery Server。所有的服务器都需要在LDS中注册,Client 通过访问LDS 来获取服务器的Url

读取数据

        每当聚合服务器请求读取是,内部的节点管理器将会通过字典查询,将读请求转向被聚合的服务器。而被聚合服务器中读取的响应返回给外部的OPCUA 客户端。

写入数据

         与读操作类似,直接将写请求前向发送给相应的被聚合服务器。

订阅和解除订阅

        也同样是中继的方式实现。

现有的项目和产品

项目

                OPC Foundation 的UA -.NETStandard -samples 中提供了一个聚合服务的实例:

https://github.com/OPCFoundation/UA-.NETStandard-Samples

商业化产品

        多家公司实现了聚合服务器产品,或者在它们的产品中包含了聚合服务器的功能

softwaretoolbox公司的Top Server

Softing 公司的安全集成服务器(Secure Integration Server )

Prosys 公司的OPC UA Historian

      从国外的产品来看,聚合服务器能够结合历史数据库,Web 服务,MQTT 等功能和通信协议,实现功能强大的服务器。

下图是Softing 公司SIS的系统架构

实验项目

        我们正在研究开发一个聚合服务器的演示,其系统的架构:

        每一台PLC 通过modbus TCP与与一个OPC UA 网关相连接。网关内置OPCUA 服务器,将PLC的modbus 数据转变成为OPC UA 信息模型。

        所有的OPCUA Server 聚合到聚合服务器。在HMI的视角下,聚合服务器保存了一个大的OPC UA 模型。

       聚合服务器中可以带有一个历史数据库。

结束语

       OPCUA 是自动控制领域重要的通信协议,但是不能只是停留在信息模型,嵌入式服务器和简单客户端程序的基础阶段。要全面地研究和学习OPC UA 如何在工业软件中的应用,基于OPC UA 标准,国外公司开发了各种软硬件集成软件,聚合服务器就是其中一种。从聚合架构看出,国外公司十分重视技术的应用,开发了面向解决方案的软件,而且具体的方式也十分多样化。并不是标准中的那些单一架构,也不是在AML,AAS,OPCUA 多种标准中兜圈子,迷失方向。这一点是值得我们借鉴。

这篇关于谈谈OPCUA 聚合服务器(aggregation-server)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/205441

相关文章

Apache Tomcat服务器版本号隐藏的几种方法

《ApacheTomcat服务器版本号隐藏的几种方法》本文主要介绍了ApacheTomcat服务器版本号隐藏的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1. 隐藏HTTP响应头中的Server信息编辑 server.XML 文件2. 修China编程改错误

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群

Python如何实现 HTTP echo 服务器

《Python如何实现HTTPecho服务器》本文介绍了如何使用Python实现一个简单的HTTPecho服务器,该服务器支持GET和POST请求,并返回JSON格式的响应,GET请求返回请求路... 一个用来做测试的简单的 HTTP echo 服务器。from http.server import HT

SQL Server数据库磁盘满了的解决办法

《SQLServer数据库磁盘满了的解决办法》系统再正常运行,我还在操作中,突然发现接口报错,后续所有接口都报错了,一查日志发现说是数据库磁盘满了,所以本文记录了SQLServer数据库磁盘满了的解... 目录问题解决方法删除数据库日志设置数据库日志大小问题今http://www.chinasem.cn天发

如何安装 Ubuntu 24.04 LTS 桌面版或服务器? Ubuntu安装指南

《如何安装Ubuntu24.04LTS桌面版或服务器?Ubuntu安装指南》对于我们程序员来说,有一个好用的操作系统、好的编程环境也是很重要,如何安装Ubuntu24.04LTS桌面... Ubuntu 24.04 LTS,代号 Noble NumBAT,于 2024 年 4 月 25 日正式发布,引入了众

如何提高Redis服务器的最大打开文件数限制

《如何提高Redis服务器的最大打开文件数限制》文章讨论了如何提高Redis服务器的最大打开文件数限制,以支持高并发服务,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录如何提高Redis服务器的最大打开文件数限制问题诊断解决步骤1. 修改系统级别的限制2. 为Redis进程特别设置限制

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

Linux服务器Java启动脚本

Linux服务器Java启动脚本 1、初版2、优化版本3、常用脚本仓库 本文章介绍了如何在Linux服务器上执行Java并启动jar包, 通常我们会使用nohup直接启动,但是还是需要手动停止然后再次启动, 那如何更优雅的在服务器上启动jar包呢,让我们一起探讨一下吧。 1、初版 第一个版本是常用的做法,直接使用nohup后台启动jar包, 并将日志输出到当前文件夹n

速盾:直播 cdn 服务器带宽?

在当今数字化时代,直播已经成为了一种非常流行的娱乐和商业活动形式。为了确保直播的流畅性和高质量,直播平台通常会使用 CDN(Content Delivery Network,内容分发网络)服务器来分发直播流。而 CDN 服务器的带宽则是影响直播质量的一个重要因素。下面我们就来探讨一下速盾视角下的直播 CDN 服务器带宽问题。 一、直播对带宽的需求 高清视频流 直播通常需要传输高清视频

Jenkins构建Maven聚合工程,指定构建子模块

一、设置单独编译构建子模块 配置: 1、Root POM指向父pom.xml 2、Goals and options指定构建模块的参数: mvn -pl project1/project1-son -am clean package 单独构建project1-son项目以及它所依赖的其它项目。 说明: mvn clean package -pl 父级模块名/子模块名 -am参数