谈谈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

相关文章

mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法

《mysql出现ERROR2003(HY000):Can‘tconnecttoMySQLserveron‘localhost‘(10061)的解决方法》本文主要介绍了mysql出现... 目录前言:第一步:第二步:第三步:总结:前言:当你想通过命令窗口想打开mysql时候发现提http://www.cpp

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

SQL Server清除日志文件ERRORLOG和删除tempdb.mdf

《SQLServer清除日志文件ERRORLOG和删除tempdb.mdf》数据库再使用一段时间后,日志文件会增大,特别是在磁盘容量不足的情况下,更是需要缩减,以下为缩减方法:如果可以停止SQLSe... 目录缩减 ERRORLOG 文件(停止服务后)停止 SQL Server 服务:找到错误日志文件:删除

Windows Server服务器上配置FileZilla后,FTP连接不上?

《WindowsServer服务器上配置FileZilla后,FTP连接不上?》WindowsServer服务器上配置FileZilla后,FTP连接错误和操作超时的问题,应该如何解决?首先,通过... 目录在Windohttp://www.chinasem.cnws防火墙开启的情况下,遇到的错误如下:无法与

一文详解SQL Server如何跟踪自动统计信息更新

《一文详解SQLServer如何跟踪自动统计信息更新》SQLServer数据库中,我们都清楚统计信息对于优化器来说非常重要,所以本文就来和大家简单聊一聊SQLServer如何跟踪自动统计信息更新吧... SQL Server数据库中,我们都清楚统计信息对于优化器来说非常重要。一般情况下,我们会开启"自动更新

JAVA虚拟机中 -D, -X, -XX ,-server参数使用

《JAVA虚拟机中-D,-X,-XX,-server参数使用》本文主要介绍了JAVA虚拟机中-D,-X,-XX,-server参数使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录一、-D参数二、-X参数三、-XX参数总结:在Java开发过程中,对Java虚拟机(JVM)的启动参数进

Windows server服务器使用blat命令行发送邮件

《Windowsserver服务器使用blat命令行发送邮件》在linux平台的命令行下可以使用mail命令来发送邮件,windows平台没有内置的命令,但可以使用开源的blat,其官方主页为ht... 目录下载blatBAT命令行示例备注总结在linux平台的命令行下可以使用mail命令来发送邮件,Win

Ubuntu 22.04 服务器安装部署(nginx+postgresql)

《Ubuntu22.04服务器安装部署(nginx+postgresql)》Ubuntu22.04LTS是迄今为止最好的Ubuntu版本之一,很多linux的应用服务器都是选择的这个版本... 目录是什么让 Ubuntu 22.04 LTS 变得安全?更新了安全包linux 内核改进一、部署环境二、安装系统

nginx配置多域名共用服务器80端口

《nginx配置多域名共用服务器80端口》本文主要介绍了配置Nginx.conf文件,使得同一台服务器上的服务程序能够根据域名分发到相应的端口进行处理,从而实现用户通过abc.com或xyz.com直... 多个域名,比如两个域名,这两个域名其实共用一台服务器(意味着域名解析到同一个IP),一个域名为abc

pycharm远程连接服务器运行pytorch的过程详解

《pycharm远程连接服务器运行pytorch的过程详解》:本文主要介绍在Linux环境下使用Anaconda管理不同版本的Python环境,并通过PyCharm远程连接服务器来运行PyTorc... 目录linux部署pytorch背景介绍Anaconda安装Linux安装pytorch虚拟环境安装cu