博欧数采集

什么是博欧数采集

新闻资讯

信息分类

+

contact-z1

分享基于OPC UA的SCADA数据采集系统(三)

发布时间 2023-01-14

4 云端数据处理系统设计

云端数据处理系统设计为数据存储和数据分析两部分,通过合理的数据库选型和存储结构搭建,将工业设备运行数据结构化存储在云端服务器,并利用云服务器的计算能力,结合机器学习算法对大量的历史数据和实时数据计算分析,实现一定程度的故障预测,减少突然停机带来的风险和损失。
除此之外,基于云端数据存储,结合Web技术可以建立B/S(Browser/Server)结构的工业设备远程监控系统,利用存储的工业设备数据做进一步开发。
本系统的数据存储部分主要存储工业设备运行数据和工业设备相关参数信息,而且要具备一定的拓展性,除此之外,成本和使用便捷性也在考虑之列,结合实际需求,本文综合考虑ElasticSearch,Redis,MySQL,MongoDB 等4个数据库的 优缺点进行数据存储系统选型。由于系统基于.NET平台开发,而且要具有一定的存储容量,因此排除了使用ElasticSearch和Redis来存储工业设备的运行数据;再对比MySQL和MongoDB,虽然MySQL的部署、管理和配置较为复杂,但是它的稳定的读写能力以及高可用、支持在线扩容等优点很符合本系统需求,因此选择MySQL作为系统的主体数据存储数据库。除了使用MySQL存储工业设备大量的运行数据外,本系统还采用了非关系型数据库Redis作为系统的外部缓存,以提高系统热点数据的读取速度。Redis数据库能够自动执行持久化操作,避免了服务器崩溃带来的热数据丢失,同时可以在服务器重启后自行恢复数据。
本系统采用MySQL和Redis相结合的数据存储方式,数据存储时经底层采集解析后的数据分别存入Redis和MySQL中。由于设备数据已由协议转换部分全部转换为OPC UA节点形式,每一个数据都有唯一的节点标识NodelD,以NodelD为Key,以值节点为Value,将所有数据以List列表形式存入Redis中,同时对存入Redis中的数据设定过期时间和内存释放策略,基于时间局部性原理清除使用频率较低的数据,避免内存占用过高。数据在MySQL中的存储以分类节点建立表结构,中间表按照设备进行分类建立,最后以值节点的各属性值单独建立数据表。通过各表之间的关系清晰地反映节点的层次结构,以便上层软件的数据库查询操作。由于高访问的热点数据被转存在Redis中,数据查询时,首先从Redis中查找,Redis查询无果则转向MySQL中搜索。

5 实验验证

5.1 OPC UA客户端测试

基于OPC UA的数据采集和处理系统旨在实现多种工业设备数据的采集到OPC UA协议的转换,以达到使用同一个OPC UA客户端集中监控的目的,同时对采集的数据建立云端存储体系,便于进一步利用大量的工业设备运行数据实现故障预测分析。本文以UR5和ABB120两台工业机器人为研究对象,验证整个系统的完整性、可靠性。针对UR5和ABB120分别采用Modbus协议和PC SDK按照系统的标准开发数据采集驱动和数据解析模块,将驱动装载入本地监控服务器端。
首先设置IP地址,在机器人控制器中将UR5设置为192. 168. 10. 10,ABB120 则设置为 192. 168. 10. 11,搭载本地监控系统的主机IP设置为192. 168. 10.1,从而使得三者在同一局域网内。如图5在节点配置界面中配置好UR5和ABB120设备节点的连接参数,并且分别添加六关节电流的数据请求,以UR5为例,数据请求的起始地址为290,总长度为6个寄存器即12字节,在解析规则配置界面对该数据请求
的12字节数据进行语义配置,设置其数据类型为Float。如图8所示对OPC UA服务器系统进行设置,包括基本的登录用户名和密码、服务器地址以及安全代理“ SecurityPolicyNone”,接着运行服务器。




如图9所示,通过官方开发完备的OPC UA客户端连接OPC UA服务器测试服务器的可靠性和完整性。
在Address地址栏填入服务器的URL地址,建立连接成功后,客户端右侧框中显示服务器端配置的节点信息,选中UR5设备节点,查看设备的配置信息和数据请求的六关节电流数据,由此可以验证OPC UA服务器搭建成功,数据采集驱动和数据解析模块设计可行,系统可以实现工业机器人协议到OPC UA的转换,可以实现OPC UA客户端的远程监控功能。

5.2 基于虚拟调试系统的测试

结合虚拟调试系统,测试数据采集系统采集数据和存储数据的准确性 、完整性。虚拟调试用以测试运行在物理系统的程序逻辑,提高程序实际运行的安全性。在实验中,通过数据采集系统获取实际工业设备的运行数据,首先将其存储在云端数据库,然后虚拟调试系统从云端数据库获取实际工业设备全部的运行数据,通过这些数据驱动虚拟设备运行,观察虚拟设备是否能完成物理设备完整的操作。
采用如图10所示的虚拟调试系统,通过界面配置,首先连接虚拟设备,通过输入配置连接Redis,获取数据采集系统采集的物理设备数据,通过输出配置将采集的物理设备数据导入虚拟设备中运行,对比虚拟设备和物理设备的运行情况。在RoboDK中导入机器人和车床的模型,然后构建虚拟平台,如图11所示。

据和存储数据的准确性 、完整性。虚拟调试用以测试运行在物理系统的程序逻辑,提高程序实际运行的安全性。在实验中,通过数据采集系统获取实际工业设备的运行数据,首先将其存储在云端数据库,然后虚拟调试系统从云端数据库获取实际工业设备全部的运行数据,通过这些数据驱动虚拟设备运行,观察虚拟设备是否能完成物理设备完整的操作。

采用如图10所示的虚拟调试系统,通过界面配置,首先连接虚拟设备,通过输入配置连接Redis,获取数据采集系统采集的物理设备数据,通过输出配置将采集的物理设备数据导入虚拟设备中运行,对比虚拟设备和物理设备的运行情况。在RoboDK中导入机器人和车床的模型,然后构建虚拟平台,如图11所示。



通过物理设备的简单取件操作来测试系统,操作流程是机器人从仓库取出工件并放置于车床的卡盘上,然后车床门关闭。如图12所示,可以看到仿真机器人及时准确地从Re­dis中获取到了真实机器人的位置数据,并准确将工件放置在了卡盘上,虚拟设备通过采集的物理设备数据准确地复现了物理设备的操作,说明数据采集系统能准确完整地采集并且转换物理设备数据。



本文设计并且实现了基于OPC UA的数据采集系统,旨在实现不同工业设备协议到OPC UA标准协议的转换,以达到使用任意具有OPC UA客户端功能的设备就可以实现对工厂所有工业设备数据的远程查看和监控。本文通过设计数据采集接口来标准化工业设备不同协议的数据采集驱动。针对任意工业设备,只要按照标准接口设计好相应的驱动,在本地监控界面做简单的配置,就可以实现到OPC UA协议的转换。除此之外,本系统还建立了基于Redis和MySQL的云端数据存储结构,二者都具有良好的扩展性,存储的工业设备运行数据结合机器学习算法可以实现一定程度的故障预测分析,减少了设备突然停机带来的危害和损失。本文通过UR5和ABB120工业机器人验证了系统的可行性和完整性。所提系统解决了工业设备和协议多样带来的上位机软件多样化问题,具有较强的通用性。

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

来源丨《计算机科学》2020年第S02期