欢迎访问装备制造资讯网!

装备制造资讯网

您现在的位置是: 首页 > 制造技术 >详情

先进制造技术SCADA工作原理(基于OPC UA的SCADA数采系统总体设计、调试与仿真测试方案)

发布时间:2024-08-02 03:09:31 制造技术 448次 作者:装备制造资讯网

作者丨浙江工业大学信息工程学院禹鑫燚殷慧武施甜峰唐权瑞柏继华欧林林

写在前面

先进制造技术SCADA工作原理(基于OPC UA的SCADA数采系统总体设计、调试与仿真测试方案)

在OICT(OT\IT和CT)大融合的今天,工业网络协议与数数据采集越来越受到大家的重视,前面我们分享了工业玩过的层级:

工业通讯网络层级全解读,解析工业网络的自动化金字塔

也介绍了PROFINET、ETHERNET/IP等7种主流工业以太网:

技术解读PROFINET、Ethernet/IP等7种主流工业以太网

更对工业协议进行了分类总结:

最详细的工业网络通讯技术与协议总结解读(现场总线、工业以太网、工业无线)

同时还聊到了工业网络的规划:

工业网络如何规划?从工业系统层级谈工业网络的规划原则

为了解决工厂设备和协议多样带来的数据采集和上位机开发难题,本文设计了基于OPCUA的数据采集系统,实现工业设备协议到OPCUA协议的转换~

1工业通信与OPCUA

国内外对于OPCUA协议规范已经有了很多研究,国外西门子、ABB等公司均已推出了支持OPCUA规范的产品,也有很多成熟的OPCUASDK,国内对于OPCUA研究较晚,但已有较多应用。

为了解决工厂设备和协议多样带来的数据采集和上位机开发难题,本文设计了基于OPCUA的数据采集系统,实现工业设备协议到OPCUA协议的转换,通过驱动开发和简单配置就可以实现设备的兼容。

本文设计了系统的总体方案,该系统由3部分构成:

01本地工业设备网络

02本地监控服务器

03云端数据处理服务器

系统以本地监控服务器为核心,向下采集工业设备网络数据并进行OPCUA协议转换,建立OPCUA服务器和本地监控,向上结构化存储工业设备数据到云端服务器。首先根据功能需求设计本地监控服务器,基于OPCUASDK搭建OPCUA服务器,采用接口的方式标准化数据采集驱动和数据解析插件,实现工业机器人协议到OPCUA的转换,同时使用WPF设计可视化本地监控和配置界面;然后基于Redis和MySQL建立云端数据库,便于进一步进行数据开发和基于机器学习算法进行故障预测性分析;最后基于UR5和ABB120设计数据采集驱动和数据解析插件,使用开源的OPCUA客户端和虚拟调试技术测试建立的本地监控服务器的完整性和可行性。

2系统需求分析与总体方案设计

本文设计的基于OPCUA的数据采集系统,旨在为所有未提供OPCUA协议功能的设备建立通用的OPCUA转换机制,实现不同工业设备通信协议到OPCUA协议的转换。通过针对不同的工业设备设计标准的数据采集驱动,将工业设备采集的数据进一步分解加工为含有语义信息的OPCUA格式信息,从而映射建立OPCUA地址空间,为不具备OPCUA功能的工业设备建立OPCUA服务器,实现设备协议标准化,建立设备的互通信,降低工厂设备和协议多样带来的上位机统一监控难题。

Fig.1Overallsystemcompositiondiagram

系统的总体构成如图1所示,主要包括多种工业设备组成的工业设备网络、实现协议转换核心功能的本地监控服务器以及对采集数据存储并处理的云端数据处理服务器。

本地监控服务器通过以太网与工业设备网络连接,以工业设备网络为服务端,搭载本地监控服务器的PC机为客户端,构成C/S(Client/Server)结构的本地数据采集和监控系统。采用多线程分别采集各工业设备数据,将采集的数据解析后映射到建立好的OPCUA地址空间,建立工业设备的OPCUA服务器。以本地监控服务器为服务端与远程监控客户端构成C/S结构的远程监控系统。采集转换后的数据上传至云端服务器,云端服务器对数据进行结构化存储以便进一步分析处理,实现故障预测。为满足不同需求,云端服务器基于Redis和Mysql建立数据库架构存储设备数据,通过关系型数据库存储了设备的历史数据以及设备间的层级关系,提高历史数据的查找效率;采用Redis缓存实时数据,解决了实时数据访问的速度问题以及系统并发请求的效率问题。

本地监控服务器采用WPF设计监控界面,使用MVVM(ModelViewViewModel)框架实现界面和后台程序的分离,便于系统的拓展。通过任意具备OPCUA客户端功能的设备可以直接访问建立的OPCUA服务器从而达到远程监控。

3本地监控服务器的设计

本地监控服务器为整个系统的开发核心,为简化其开发逻辑,根据本地监控服务器的各部分软件调用分层,将其设计为5个主要功能块:数据采集驱动开发、协议转换、OPCUA服务器搭建、数据库存储、UI交互,如图2所示,然后将各功能块进一步划分,细化系统的功能开发。

Fig.2Functiondiagramoflocalmonitoringserver

Fig.3Function-connectionoflocalmonitoringserver

如图3为本地监控服务器各主要功能模块连接图。以UI交互界面为起点,首先进行系统的节点配置和解析配置,分别生成两个XML文件保存配置信息,节点配置XML文件保存设备分类节点树,解析配置XML文件保存所有数据请求的解析规则,即请求数据的信息(数据类型、语义、长度、索引)。数据采集部分读取节点配置XML文件获来取设备连接信息和数据请求信息,调用相应的数据采集驱动实现对工业设备的数据采集;数据解析部分读取解析配置XML文件,将采集的设备数据转换为具体的温度、电压、电流、关节等直观可视数据。对每个设备都采用独立的线程进行数据采集和数据解析。基于OPCUASDK建立的OPCUA服务器加载节点配置和解析配置XML文件,将工厂树节点模型映射为自己的地址空间,建立OPCUA设备节点和值节点。解析后的数据填入建立好的OPCUA地址空间,完成OPCUA数据采集服务器的搭建,同时解析后的数据通过存储模块上传到云端服务器实现持久化,便于进一步数据处理,此外解析后的数据通过MVVM框架不断更新本地端UI界面显示,实现本地对数据的实时监控。

3.1OPCUA服务器的构建

OPCUA服务器的构建主要有两种方式,即根据OPCUA目前的13种规范[10-12]直接开发或者使用成熟的SDK间接开发。前者可以根据实际需要选择性地实现相应功能,避免程序的冗余,但是需要深入理解OPCUA服务器的实现原理,比较耗时;后者基于已有的SDK开发,SDK包含了OPCUA服务器所需要的全部方法,不需要开发人员对OPCUA有较深的理解,可以实现快速搭建。本文的OPCUA服务器就是基于OPCUA官方SDK开发,建立OPCUAServer类,在该类构造函数OpcUaServer(stringurl)中通过SDK给出的API接口对OPCUA服务器进行初始化并创建地址空间[13-14],在服务器启动时,通过建立OPCUAServer对象开启服务器。其搭建流程如图4所示。

Fig.4OPCUAserversetupprocess

服务器初始化主要使用SDK中的接口