一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于在线配置的OPCUA协议转换方法与流程

2022-03-19 18:56:04 来源:中国专利 TAG:

一种基于在线配置的opcua协议转换方法
技术领域
1.本发明涉及opcua协议转换方法,尤其涉及一种基于在线配置的opcua协议转换方法。


背景技术:

2.随着工业互联网以及工业物联网的迅猛发展,采集制造车间各设备运行数据已不再是一个难题,实现设备互联互通,最终达到智能车间不再是一个遥不可及的梦想。然而由于工业现场底层设备种类繁多且各个设备厂商为争抢市场份额而纷纷采用自己定义的规范和通信协议,这使得数据采集和通信系统的统一成为一个难题,不同数据采集系统之间形成“信息孤岛”。此外,由于缺乏统一标准的信息模型定义,不同采集系统之间语义上不能互通,存在大量异构数据。opcua协议就是在这样的实际背景下提出的,主要用于解决当前工业采集领域中存在的兼容性、统一性、通用性的问题。opcua(opc unified architecture)即opc统一架构,是在之前的opc基础上发展而来的一种与平台无关的新的工业软件接口规范,打破了opc技术只能应用于windows系统的窘境,能够实现车间底层数据从制造层级到上层系统的传输,为当前车间数据统一采集与建模提供了一种可靠的解决方案。
3.然而由于opcua技术发展的开始时间较迟,在如今的制造车间中仍有许多设备不支持opcua协议。在把opcua作为制造车间主要的通信架构时,如何实现从原始通信协议到opcua协议的转换,如何以在线配置而非硬编码的方式实现opcua信息建模也是需要解决的问题。如在某总线实验台中,使用西门子s7-1500型号plc(s7协议)控制电机运转的模块,使用modbus—tcp协议采集环境温湿度的模块,各个数据采集模块均采用不同协议,没有一个统一的采集方式,加大了数据采集的难度。此外,其他协议并没有信息建模的功能,实验台上不同的采集对象不能向外提供统一的信息模型,造成各对象之间的语义不通的问题。针对上述问题,建议使用opcua协议作为实验台数据采集的统一协议,以解决实验台上各对象语义不通,数据采集协议众多的问题。


技术实现要素:

4.发明目的:本发明的目的是提供一种能够统一实验台上不同设备底层数据采集、增强设备间语义互通性的基于在线配置的opcua协议转换方法。
5.技术方案:本发明的opcua协议转换方法,包括步骤:
6.s1,构建opcua协议转换器,所述opcua协议转换器包括可视化组件模块、原始数据采集模块、数据解析模块、opcua服务器模块;
7.s2,基于各类设备数据采集特性,构建opcua信息建模规范,用来描述opcua各数据节点之间的层级关系,生成opcua服务器地址空间节点所需的配置信息;
8.s3,构建底层数据采集模块,所述底层数据采集模块能实现配置信息解析、原始数据获取和解析;
9.s4,;所述opcua服务器的封装功能包括:服务器初始化、服务器启动、类型或对象节点挂载、数据采集与地址空间节点的映射、数据节点内容更新、服务器关闭;
10.s5,构建基于c/s架构的可视化操作界面,实现opcua服务器的配置以及采集数据的可视化。
11.进一步,所述步骤s1中,所述可视化组件模块实现封装java swing中的各类控件,设置不同的ui显示以及用户交互方式;
12.所述原始数据采集模块,解析opcua信息建模规范构建的配置信息,根据用户设置的采样频率定时调用不同的协议驱动程序,实现采集设备原始数据;
13.所述数据解析模块,解析opcua信息建模规范构建的配置信息,根据用户设置的不同数据类型解析设备原始数据,以获取真实数据;
14.所述opcua服务器模块,实现opcua服务器的初始化、在opcua地址空间构建用户建立的opcua信息模型,并实现设备真实数据与opcua地址空间节点的映射、opcua服务器的开启以及实时数据的不断更新。
15.进一步,所述步骤s2中,所述opcua信息建模规范,将各类采集设备的数据采集任务类型划分为:对象层级、协议组层级和数据项层级;
16.所述对象层级对应各类数据采集对象;每个对象均对应opcua地址空间中的一个objectnode节点;在opcua服务器中第一次添加某个对象时,opcua服务器还会在object根节点下添加该对象的typenode,以记录对象类型信息;
17.所述协议组层级是对象层级的子项;在为对象添加协议组子项时,需要填写加载该协议驱动所需的必要信息;填写的必要信息用于对应协议驱动的初始化,最后该驱动对象会以hashmap的形式暂存于内存中;
18.所述数据项层级是协议组对象的子项,对应的是该对象使用同一协议驱动需要采集的各项数据;在添加数据项时,需要填写通过驱动获取原始数据所需的必要信息,所述必要信息包括起始地址、数据长度、变量名、变量类型;在添加数据项对象时,还需生成opcua地址空间中的objectnode节点并将该节点挂载在对象的objectnode节点下,以hashmap的形式暂存于内存中。
19.进一步,所述步骤s3中,所述底层数据采集模块选用工厂设计模式,为不同协议驱动提供一致的数据操作接口,屏蔽不同协议驱动带来的差异。
20.进一步,所述步骤s4中,在用户设定的采样频率到达之后,系统自动触发底层数据采集模块,在获取到最终数据之后,对opcua服务器的对应节点数据进行更新;
21.在opcua服务器中,以hashmap的形式完成对象节点的存储,其中hashmap的key值为objectnode节点的名称,该节点的名称与dataarea中存储的自定义objectnode节点的名称一致。
22.进一步,所述步骤s5中,具体实现过程如下:
23.s51,通过界面上的“初始化”按钮初始化opcua服务器,并设置opcua服务器暴露的端口以及名称;若初始化操作失败,界面中提示框中显示“opcua服务器初始化失败”,需要重新点击“启动”按钮;
24.s52,通过界面左侧的树模型以及“增加节点”、“删除节点”按钮,完成opcua服务器类型、变量节点的增加(按照自定义的opcua信息规范),同时也完成对应协议驱动的初始
化;
25.s53,点击“开启”按钮完成opcua服务器的启动;若开启opcua服务器操作失败,界面中提示框中显示“opcua服务器启动失败”,需要重新点击“启动”按钮;
26.s54,点击“监控”按钮,设置数据项的采样频率并激活线程池;
27.s55,激活的线程池以固定的时间间隔遍历保存于hashmap的配置信息,完成原始数据的获取;
28.s56,根据配置信息完成原始数据的解析获取最终数据并更新对应opcua节点的数据;
29.s57,若点击“关闭”按钮,则关闭opcua服务器;若未点击“关闭”按钮,则继续s55-s57的操作以更新数据。
30.本发明与现有技术相比,其显著效果如下:1、按照构建的opcua信息建模规范完成配置信息的输入,实现数据与opcua地址空间映射关系的绑定,便于上层应用以统一的形式完成对底层数据的快速获取,从而实现不同协议设备之间的互联互通、信息模型以及语义层级上的统一;2、提供基于c/s架构的可视化界面,以鼠标操作而非硬编码的形式完成配置信息的填写,简化操作过程,具有拓展性与灵活性。
附图说明
31.图1为本发明的整体架构示意图;
32.图2为本发明opcua信息建模规范示意图;
33.图3为本发明的底层数据采集模块结构示意图;
34.图4为本发明的opcua服务器模块架构示意图;
35.图5为本发明的用户可视化建模时的工作流程图。
具体实施方式
36.下面结合说明书附图和具体实施方式对本发明做进一步详细描述。
37.本发明的opcua协议转换方法,首先,在软件架构层次上,构建opcua协议转换器各模块,增加其通用性与拓展性。第二,针对实验台上各类设备数据采集特性,构建opcua信息建模规范,描述opcua各数据节点之间的层级关系,生成后期opcua服务器地址空间节点所需的配置信息。第三,构建包括配置信息解析、原始数据获取和解析功能的底层数据采集模块。第四,封装开源的unified automation java sdk(software development kit软件开发工具包)以实现opcua服务器的初始化、节点的挂载以及数据更新等功能。最后,构建基于c/s架构的可视化操作界面,实现opcua服务器的配置信息的输入以及采集数据的可视化。具体按照以下步骤实施:
38.步骤一,如图1所示为本发明的整体架构示意图,整体架构包括可视化组件模块、底层数据采集模块、数据解析模块、opcua服务器模块;
39.可视化组件模块,封装java swing中的各类控件,设置不同的ui显示以及用户交互方式;
40.底层数据采集模块,解析opcua信息建模规范构建的配置信息,根据用户设置的采样频率以一定的时间间隔去调用不同的协议驱动程序,采集实验台上各类设备原始数据
(如电机转速、环境温湿度等);
41.数据解析模块,解析opcua信息建模规范构建的配置信息,根据用户设置的不同数据类型解析设备原始数据,以获取真实数据,即完成无意义的二进制数据到有物理意义的特定数据类型数据的转换;
42.opcua服务器模块,实现opcua服务器的初始化、在opcua地址空间构建用户建立的opcua信息模型并实现设备真实数据(即解析后数据)与opcua地址空间节点的映射、服务器的开启以及实时数据的不断更新;
43.依据自定义的opcua信息建模规范生成的配置信息包含:协议驱动生成、原始数据获取、真实数据解析、地址空间生成和真实数据绑定中所需的全部信息。
44.步骤二,如图2所示为本发明的opcua信息建模规范示意图,opcua信息建模规范将实验台上各类采集设备数据采集任务所需的配置信息划分为“对象—协议组—数据项”三个层级。
45.其中,对象层级对应车间中各类数据采集对象(如工业机器人),每个对象均对应opc-ua地址空间中的一个objectnode节点,填写的对象名即为该objectnode节点的名称。此外,在opc-ua服务器中第一次添加某个对象时,opc-ua服务器还会在object根节点下添加该对象的typenode,以记录对象类型信息。在opc-ua服务器中,object根节点是opc-ua服务器最顶端的节点,不同对象生成的objectnode节点均需要挂载于object根节点上。
46.协议组层级是对象层级的子项,对应设备数据采集过程中所需要加载的协议驱动。在为对象添加协议组子项时,需要填写加载该协议驱动所需的必要信息,如ip、端口号等。上述填写的必要信息作为最终配置信息的一部分会用于对应协议驱动的初始化。
47.数据项层级是协议组层级的子项,对应的是该对象使用同一协议驱动采集的各数据项。在添加数据项时,需要填写通过驱动获取原始数据所需的必要信息,如起始地址、数据长度、变量名、变量类型等。上述填写的必要信息作为最终配置信息的一部分写入自定义的dataarea类型对象中并以hashmap的形式存储于内存中,便于后续用于获取该数据项的原始数据。此外,在添加数据项对象时,还需生成opc-ua地址空间中的variablenode节点并将该节点挂载在对应对象的objectnode节点下,最后以hashmap的形式暂存于内存中,便于后期变量节点内容的更新。
48.步骤三,如图3所示,底层数据采集模块使用工厂设计模式,为不同协议驱动提供一致的数据操作接口,屏蔽不同协议驱动带来的差异性,提高系统的可拓展性;图3中中,factory:各协议驱动工厂类,用于生成各协议驱动对象;reader:各协议驱动抽象接口,用于定义各协议公有操作;dataparse:数据解析抽象接口,用于定义各类型数据转换公有操作。reader接口具有的功能:抽象底层数据采集模块的公有操作,如驱动连接、数据获取、断开连接等,提供getconnector()、read()、closeconnector()等抽象方法来完成驱动连接、数据获取、断开连接的操作。不同的协议(如西门子s7、modbus—tcp等)统一继承该reader接口以完成上述特定方法以及一些私有方法的实现。
49.本发明采用统一的数据采集接口,底层数据采集模块集成西门子s7、modbus-tcp等协议,采用scheduled executor service定时解析配置信息,加载原始协议驱动获取原始数据(无意义的二进制数据)并解析opcua信息建模规范构建的配置信息,得到最终真实数据(有物理意义的特定数据类型数据)。
50.dataparse接口具有的功能:抽象数据解析模块的公有操作,如字节类型转换浮点类型、字节类型转换布尔类型、字节类型转换整数类型等,提供bytetofloat(byte[]data)、bytetoboolean(byte data)、bytetointeger(byte[]data)等接口来完成协议驱动获取的原始数据到最终结果的转换。不同的协议驱动统一继承dataparse接口实现自己私有的数据格式转换。例如,s7协议中bytetoboolean方法首先需要获知该数据项对应的byte数据类型的位数,在获取对应位数的数值(0或1)之后,再进行boolean类型的转换。
[0051]
数据更新实现方法采用scheduled executor service线程池,默认设置线程池的大小为5,定时方法采用schedule with fixed delay(即在完成线程任务后,间隔一定时间再启动线程)。在触发定时任务时,任务线程遍历存储在hashmap中的协议驱动信息、数据项配置信息,根据key值匹配完成对应数据项的数据获取与解析。
[0052]
步骤四,如图4所示,opcua服务器基于开源的opcua协议栈unified automation java sdk实现,包括以下功能封装:服务器初始化、服务器启动、类型或对象节点挂载、地址空间节点映射、数据节点内容更新、服务器关闭。在用户设定的采样频率到达之后,系统自动触发底层数据采集模块,在获取到最终数据之后对opcua服务器对应节点数据进行更新。
[0053]
在opcua服务器模块中以hashmap的形式完成对象节点的存储,其中hashmap的key值为objectnode节点的名称。为保存数据项配置信息而定义的dataarea中同样存储着objectnode节点的名称,两者内容一致。因此在通过dataarea配置信息获取最终数据后可以使用该名称完成两者关系的映射,最终更改对应地址空间节点(即该objectnode节点)的内容。
[0054]
步骤五,如图5所示,使用java swing技术,实现基于c/s架构的可视化建模。通过界面上的“初始化”、“开启”、“关闭”按钮完成opcua服务器的对应操作。“监控”按钮用于设置采样频率、底层数据获取以及opcua服务器节点数据更新。通过左侧界面的树模型以及新增节点、删除节点按钮,完成opcua信息模型的构建。具体实现过程如下:
[0055]
s51,通过界面上的“初始化”按钮初始化opcua服务器,并设置opcua服务器暴露的端口以及名称。若初始化操作失败,界面中提示框中显示“opcua服务器初始化失败”,需要重新点击“启动”按钮。
[0056]
s52,通过界面左侧的树模型以及“增加节点”、“删除节点”按钮,完成opcua服务器类型、变量节点的增加(按照自定义的opcua信息规范),同时也完成对应协议驱动的初始化。
[0057]
s53,点击“开启”按钮完成opcua服务器的启动。若开启opcua服务器操作失败,界面中提示框中显示“opcua服务器启动失败”,需要重新点击“启动”按钮。
[0058]
s54,点击“监控”按钮,设置数据项的采样频率并激活线程池。
[0059]
s55,激活的线程池以固定的时间间隔遍历保存于hashmap的配置信息,完成原始数据的获取。
[0060]
s56,根据配置信息完成原始数据的解析获取最终数据并更新对应opcua节点的数据。
[0061]
s57,若点击“关闭”按钮,则关闭opcua服务器。若未点击“关闭”按钮,则继续s55-s57的操作以更新数据。
[0062]
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,
凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献