CN112099948A - 数字孪生制造单元协议标准化与工业大数据实时集成方法 - Google Patents
数字孪生制造单元协议标准化与工业大数据实时集成方法 Download PDFInfo
- Publication number
- CN112099948A CN112099948A CN202010948406.8A CN202010948406A CN112099948A CN 112099948 A CN112099948 A CN 112099948A CN 202010948406 A CN202010948406 A CN 202010948406A CN 112099948 A CN112099948 A CN 112099948A
- Authority
- CN
- China
- Prior art keywords
- data
- opc
- protocol
- real
- task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Abstract
本发明公开了一种数字孪生制造单元协议标准化与工业大数据实时集成方法,基于各个工业设备的数据节点建立OPC UA信息模型,生成对应的OPC Server作为边缘侧的实时数据库与上层协议入口,实现底层协议与数据的标准化;基于高并发模式、非阻塞IO读写及平行任务调度等方案,实现对于现场数据的实时获取,同时,接入OPC UA协议,实现协议的标准化;最后,通过云端的大数据集成服务,基于无限数据流,通过集群并行或多核并行的方式,连续、高效地获取边缘端所存储的实时数据;搭建Redis与Kafka实时数据集群,实现海量数据的存储,提供高性能的数据读写,同时结合两种实时数据库在数据一致性与数据实时性上的特点,针对不同的应用场景提供实时数据支撑。
Description
技术领域
本发明属于智能制造与数字化技术领域,具体涉及一种数字孪生制造单元协议标准化与工业大数据实时集成方法。
背景技术
数字孪生技术作为智能制造领域的新兴技术,通过建立现实生产环境与虚拟仿真空间的数据关联关系,实现虚拟设备对于现场设备的动作、机理的忠实映射。
数字孪生制造单元是一种基于边云协同技术,实现物理实体与孪生模型的虚实同步运行、机理实时计算等的最小制造单元,主要用于智能工厂的单元功能测试与实验性质的研究,各个单元间可以灵活组合,实现个性化的生产需求。实现孪生单元的虚实同步与实时机理计算,其关键在于:
(1)面对海量异构的工业数据,复杂多样的数据传输协议时,实时、高效地完成数据的集成以及协议标准化;
(2)各个孪生单元间相互解耦,由云端进行统一的任务分发,由边缘层执行特定的数据集成任务。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种数字孪生制造单元协议标准化与工业大数据实时集成方法,通过边端与云端的协同运行,实现底层复杂协议细节与上层应用之间的解耦,简化云端数据采集过程。
本发明采用以下技术方案:
数字孪生制造单元协议标准化与工业大数据实时集成方法,包括以下步骤:
S1、建立现场设备的OPC UA信息模型,为各个数据节点分配其对应的OPC UA节点;
S2、根据步骤S1获得的OPC UA节点生成OPC Server作为边缘设备的实时数据库,用于提供OPC UA协议访问端口,供云端大数据服务采集边缘设备的实时数据;
S3、对于数字孪生单元中状态数据通过单一数据协议接口采集的设备,提供基于NIO的边缘数据采集及预处理方案,采集并处理现场设备的数据,写入步骤S2中生成的OPCServer中;基于步骤S3的标准化流程,结合真实设备,解析TCP/IP、RS232/485数据传输协议,并进一步提供WebSocket与MQTT协议的标准化过程;
S4、对于数字孪生单元中状态数据通过多点数据协议接口采集的设备,提供基于轮询与并发的边缘侧数据采集及预处理方案,采集并处理现场设备的数据,写入步骤S2中生成的OPC Server中;最后基于步骤S4的标准化流程,结合真实设备,解析HTTP数据传输协议,并进一步提供Modbus协议的标准化过程;
S5、基于步骤S3和步骤S4实现的标准化协议OPC UA与步骤S2中提供的OPC Server实时数据库,在本地编写数据集成的任务程序,通过云端将任务分发至各个边缘设备,协同执行实时数据的采集,并将数据存储到边缘层的数据库集群;基于主从复制与分区同步机制,实现云端数据与边缘层的数据同步。
具体的,步骤S1中,建立实时数据的节点网络,基于每个结点特有的NodeId,实现对设备数据的快速索引,同时结点网络基于语义箭头相互连接。
具体的,步骤S2具体为:
S201、将步骤S1中设备的信息模型导出为OPC UA XML文件,使用JAXB工具解析OPC的XML样本文件UANodeSet.xsd,生成OPC UA的内建类型对应的Java文件;
S202、定义每个设备的地址空间类,基于不同的边缘设备部署OPC Server,将所有边缘设备与云端设备的IP加入信任列表,限定数据通讯的局域网络,加密传输信道,每个加入信任列表的设备各自维护由X509加密算法所生成的验证证书;
S203、将OPC Server部署在边缘微设备后,通过边缘微服务应用,将设备的实时数据存储在OPC Server中,云端通过证书文件生成与OPC Server进行通信的Client,从边缘设备的OPC Server中采集实时数据;
S204、实现云端与底层设备的解耦与数据协议的统一,底层设备提供对应的边缘设备IP,OPC的地址空间索引和结点ID,获取指定设备的实时数据。
4.根据权利要求1所述的方法,其特征在于,步骤S3具体为:
S301、TCP/IP通信基于Socket连接实现,建立生产设备与边缘设备的TCP连接通信,数据的传输基于Non-Blocking Input/Output(NIO)的方式进行;
S302、针对机器人和AGV进行数据采集处理;
S303、客户端通过TCP/IP协议向机器人发送查询数据帧后,接收到返回的JSON数据帧,为了保证数据的实时更新,建立一个循环读写模式;
S304、边缘设备在连接建立的同时,执行channelActive方法,向机器人发送查询数据帧,同时通过channelRead方法接收到机器人发送至通道的数据;在读取完毕的同时,执行channelReadComplete方法,再次发送数据帧,获取最新数据;当前线程正在进行IO时,EventLoop选择另一个空闲线程进行数据的读写;
S305、将所有数据序列化为二进制数据进行传输,对JSON数据,通过StringDeserializer将二进制数据反序列化为字符串形式;对于数据写入,将字符串形式的数据通过StringSerializer序列化为二进制数据,同时进行JSON数据的检验,确定JSON的数据边界;
S306、基于编码/解码的需要,基于任务队列的方式实现对于写入\读取数据的预处理,将所有的编解码操作加入一个双向链表;对于加入的编解码任务,通过一个标志位进行区分,当任务是一个解码操作时,标记设置为解码任务的标记,并通过头部插入;当任务是一个编码操作时,标记设置为编码任务的标记,并通过尾部进行插入,并设立为最后一个编解码操作分别设置终止位;当执行数据的读取时,执行队列中所有的解码操作;当执行数据的写入时,执行队列中所有的编码操作;
S307、将采集到的数据写入OPC Server,实现TCP/IP协议到OPC UA协议的标准化;
S308、通过阻塞式的方式获取AGV小车数据;
S309、指定串口传输的地址,波特率,数据位,奇偶校验位以及停止位;
S310、循环任务机制的数据传输基于缓冲区;发送端将数据写入缓冲区,接收方等待发送方将数据写入完毕再进行读取;
S311、按照队列机制实现任务的编解码机制;
S312、对于串口数据,通过检验末尾换行符的方式对数据进行切分,当读取到末尾的换行符时,将缓冲区的数据发送给读取方;对于定长数据帧,定义一个解码任务,每读取16字节数据,将数据发送给数据接收方;对于特定变长数据,定义一个解码任务,读取帧的长度数据进行切分,再将切分后的数据发送给数据的接收方;
S313、接收到的二进制数组的每个数据节点数据赋予对应的详细数据信息;
S314、根据AGV的传输协议,将接收到的二进制数组语义化,获取其表达的现场生产数据,再将语义化后的数据通过OPC Client写入对应的OPC数据节点,实现串口协议到OPC UA的标准化;
S315、基于TCP/IP与串口的数据解析与协议标准化模式,实现对于MQTT协议与WebSocket协议的标准化;
S316、MQTT协议的标准化;
S317、WebSocket协议标准化;
S318、边缘设备作为云端服务与数字孪生单元的桥梁,分别接入由现场设备组成的生产局域网与云端互联网,微服务应用部署在边缘设备后,实现高性能数据采集,将数据存储在边缘设备的OPC Server中,并向云端暴露数据的调用接口,实现数字孪生单元复杂多协议的标准化,云端与底层设备基于OPC UA进行数据的交互。
具体的,步骤S307具体为:
S3071、当获取到字符串数据后,通过Gson将JSON字符串反序列化为可操作的Java类对象,对内部的具体数据进行操作;
S3072、经过Gson反序列化后生成为一组列表数据axisList;
S3073、关节轴数据所对应的OPC UA的结点NodeId为“ns=2;i=2014”;
S3074、根据OPC Server的加密证书及对应OPC Server的URL地址,生成OPCClient,负责将采集到的设备数据写入OPC Server;
S3075、将axisList转换为数组类型,并包装为OPC UA特定的DataValue格式;加入数据的写入时间戳;
S3076、OPC Client将包装后的数据写入到OPC Server中,实现协议的标准化。
具体的,步骤S4具体为:
S401、以机床的HTTP数据读写为例,其数据的HTTP接口为:192.168.10.10:8000/v1/status,请求的方法为GET方法,返回的数据格式为JSON。
S402、建立轮询方案,实现HTTP/REST协议到OPC UA的标准化;
S403、根据以上的多任务并行的模式,实现Modbus-TCP的协议解析。
进一步的,步骤S402具体为:
S4021、通过Schedule模式建立多个周期性任务,为每个执行查询的任务分配单独的任务队列;每个不同的任务负责发送不同的数据请求,获取不同的节点数据;
S4022、单个任务队列的任务以串行同步的方式执行,不同任务队列之间以并发的方式执行;
S4023、以异步的方式,将多条HTTP请求入队,同时以异步方式等待返回结果;
S4024、当一个任务队列中的任务执行完毕后,按照给定时间间隔执行下一个任务;通过统计现场设备的数据延迟,使采集到的数据保持与最新数据同步;
S4025、将数据反序列化为对应的类对象,舍弃冗余数据与元数据信息,将数据写入OPC Server。
进一步的,步骤S403具体为:
S4031、Modbus采用主从数据基站的模式,实现主站对于不同从站数据的采集;
S4032、建立客户端与主站的TCP连接,根据从站对应的功能码,执行不同的读取方法;
S4033、指明读取的数据类型,从站ID以及数据偏移量,读取Modbus从站中的二进制数据。数据读取的模式与HTTP/REST的模式类似,为不同的从站ID分配不同的任务队列,各个队列之间以并发的方式执行数据的读取,队列内部以串行的方式执行;
S4034、将读取到的二进制数据语义化,写入到OPC Server中,实现Modbus协议到OPC UA的标准化。
具体的,步骤S5具体为:
S501、将具体的执行任务在本地编写后提交到云端,由云端进行任务的调度,将任务智能分配给各个边缘设备,由边缘设备执行具体的数据采集;
S502、采集任务由多台边缘设备协同完成,以并发的方式执行任务;
S503、以数据集群的方式实现分布式的数据存储与获取,数据的集群由Kafka消息队列集群与Redis实时数据集群组成;Kafka消息队列集群通过内部语义一致性确认机制保证数据的时序一致性;Redis通过内存进行数据的读写;
S504、边缘设备将采集到的数据存储到边缘侧,启动相应的服务用于实时同步云端与边缘侧的数据;
S505、根据步骤S2中定义的OPC UA信息模型,数据的存储根据其结点所对应的NodeId与NodeValue,映射到实时数据库中的键值对中进行存储;在Redis中,通过跳表进行存储,key对应数据节点的NodeId,value对应数据节点的值;在Kafka中,Topic对应设备的命名空间,key对应数据节点的NodeId,value对应数据节点的值;
S506、借助容器技术实现数据库与边缘服务的轻量化部署。每个容器负责执行对应的数据存储服务,各容器之间相互独立,通过内部虚拟局域网执行容器间的数据同步;
S507、基于云端大数据服务,将从边缘设备的OPC Server中获取到的数据,以流的方式进行转换、过滤,根据数据的时间戳保证数据的一致性。
进一步的,步骤S507具体为:
S5071、指定现场数据源,通过边缘设备中的OPC Client,从Server中获取现场实时数据,数据包含原本的值以及存储到Server时的时间戳;
S5072、将OPC的数据及其对应的时间戳作为数据源添加到数据流的执行环境中,生成无限数据流;
S5073、对流执行中间转换操作,将OPC UA的数据格式转换为String,并按照NodeId进行分组;
S5074、连接Redis/Kafka集群,边缘设备调用本地Redis Master/Kafka Producer将数据写入到数据集群中,通过时间水位线机制,时间窗口根据其对应的数据库的不同分别设置为50ms(Redis)/1s(Kafka);
S5075、基于Redis/Kafka的数据同步机制,存储在边缘侧的数据将实时同步至云端,为云端的虚实同步与机理分析等服务提供实时数据。
与现有技术相比,本发明至少具有以下有益效果:
本发明一种数字孪生制造单元协议标准化与工业大数据实时集成方法,基于OPCUA的信息模型对孪生单元的数据进行语义化描述,根据信息模型设计数据库表,提供标准化的数据集成方案。根据孪生单元设备是单数据接口或多数据接口,提供两套数据采集方案,分别基于NIO与并行任务的方式,实现了对数据的高效采集,增强数据的实时性,并根据两种数据采集方案,扩展了解析协议的范围(MQTT、Modbus、RS232等)。基于Redis与Kafka数据集群提出了两种不同的数据集成方案,分别提供强实时性与强一致性的数据,以适应云端不同应用场景的数据需求。通过边端与云端的协同运行,实现底层复杂协议细节与上层应用之间的解耦,简化云端数据采集过程。
进一步的,建立了设备数据结点的语义化网络,使数据的描述得到标准化,为虚实数据的映射提供了可靠的信息模型,同时为数据库表的设计提供了设计方案。
进一步的,在边缘侧部署OPC Server,用于存储采集到的实时数据,实现协议的标准化,并且提供高可用、高效率、安全的数据读取接口,用于实现后期的云端数据集成。
进一步的,基于NIO的方式采集具有单数据接口的设备,数据的传输基于Channel进行,与传统的IO方式对比,线程不会被阻塞,Channel的双方均可以收、发数据,形成循环读写的模式,持续更新数据,保证数据的实时性。同时结合多种数据的预处理方案,避免数据出现粘包、半包等现象。同时提出了MQTT、WebSocket等协议的解析方案。
进一步的,对采集到的数据进行解构,提取符合OPC UA信息模型的结点语义的数据,写入OPC Server,去除了完整数据帧中的元数据与冗余数据,有效地压缩了数据量,并且实现了底层复杂协议到OPC UA的标准化过程。
进一步的,针对具有多个数据接口的设备,采用多任务并行的方式,基于轮询的方式同时请求多个数据接口,各个请求间以异步方式执行,可同时获取多个数据节点的数据,与传统的串行任务相比,有效提高了数据采集的效率。
进一步的,在单个任务内部采用同步串行的方式执行,防止大量的异步请求造成的设备服务器崩溃,串行任务的时间间隔与请求时延相近,保证数据采集的实时性。
进一步的,基于多任务并行的采集模式,进一步提出了Modbus协议的解析方案,扩展了本发明的应用范围。
进一步的,云端任务由本地上传,下发至边缘集群,由云端进行总体调度,各个边缘设备协同完成,有效利用多台边缘设备的算力。边缘微服务借助容器技术实现轻量化部署,节约设备计算资源。同时提供2种不同的数据集成方案,以适应云端不同应用场景的数据需求。
进一步的,基于现场设备的时序数据,通过时间水位线机制,保证实时数据的时序一致性,同时基于主从复制与分区备份机制,实现边云数据的实时同步。
综上所述,本发明通过边缘微服务提供了多种协议的标准化方法,使数字孪生制造单元现场设备的复杂协议与上层数字孪生云端服务的数据集成解耦;底层与云端仅需基于OPC UA协议实现数据传输,基于大数据集成方案,根据具体的应用需求,提供实时性强或一致性高的现场数据。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明的整体架构图;
图2为数字孪生单元的OPC UA信息模型;
图3为基于NIO的数据采集流程示意图;
图4为基于边云协同的大数据实时集成的流程示意图;
图5为虚实同步运行的实例示意图。
具体实施方式
本发明提供了一种数字孪生制造单元协议标准化与工业大数据实时集成方法,基于各个工业设备的数据节点建立OPC UA信息模型,生成对应的OPC Server作为边缘侧的实时数据库与上层协议入口,实现底层协议与数据的标准化。解析了TCP/IP、MQTT、WebSocket、RS232/485、HTTP/REST、Modbus-Serial、Modbus-TCP等多种传输协议,提供了完整的边缘数据处理方案,包括:数据处理、数据清洗、数据压缩与数据协议的标准化。基于高性能的网络框架实现,基于高并发模式、非阻塞IO读写及平行任务调度等方案,实现对于现场数据的实时获取,同时,接入OPC UA协议,实现协议的标准化。最后,通过云端的大数据集成服务,基于无限数据流,通过集群并行或多核并行的方式,连续、高效地获取边缘端所存储的实时数据。搭建Redis与Kafka实时数据集群,实现海量数据的存储,提供高性能的数据读写,同时结合两种实时数据库在数据一致性与数据实时性上的特点,针对不同的应用场景提供实时数据支撑。
请参阅图1,本发明一种数字孪生制造单元协议标准化与工业大数据实时集成方法,包括以下步骤:
S1、建立现场设备的OPC UA信息模型,为各个数据节点分配其对应的OPC UA节点,OPC UA信息模型如图2所示;
1、根据设备的数据协议得到设备的数据节点,建立设备节点的OPC UA信息模型。
以机器臂为例,其信息类型主要有4种:系统预设信息(SystemInfo)、IO输入输出状态(IOStatus),运动学信息(Kinematics)以及警报信息(Alarms)。
系统信息包括:版本(version)、模号(curMold)、位置(locale)等;IO输入输出状态包括:输入信号(input)、输出信号(output)等;运动学信息包括:轴数量(axisNum)、世界轴坐标(wolrdPos)、关节轴坐标(axisPos)、当前速度(curSpeed)等;警报信息主要包括生产过程中出现的警告消息。
机器臂采用的通讯方式为TCP/IP的方式,传输的数据格式为JSON。
以Robot作为其地址空间名,设备的固有属性设为OPC Property结点,变化数据设定为OPC Variable结点,含有子节点的信息数据设定为OPC Object结点。将机器臂的公有属性抽取为OPC ObjectType结点,用于生成多个机器人结点。具体的信息模型图示见图2。这里生成了两个机器人对象结点–BinRobot与ProductionRobot,分别对应负责工件出入库的仓储机器人,以及辅助工件加工的生产机器人。
以RFID为例,RFID与工件绑定,代表工件当前的加工状态(WorkingStatus)、物料成品信息(ItemCondition)、物料ID(ItemTag)。同时每个RFID有一个独有UUID作为硬件标识。
RFID采用TCP/IP的方式,传输的数据格式为二进制数组(Binary)。
由于RFID涉及的信息较少,可以直接通过OPC Variable与OPC Property结点组成。生成了两个RFID对象结点---BinRFID负责记录物料出入库时的信息,ProductionRFID记录物料加工时的信息。
2、根据Robot与RFID的信息模型建立规则,继续建立AGV与CNC的信息模型。
其中,AGV采用串口的通讯方式,数据为二进制数组(Binary),CNC采用HTTP的通讯方式,数据格式为JSON。
AGV对象节点为TLAGV,负责记录AGV物料运输的信息。CNC有2个对象结点,分别为Lathe与MC,分别记录物料在车削加工与铣削加工时的实时加工信息。
S2、生成OPC Server,作为边缘设备的实时数据库,提供OPC UA协议访问端口,供云端大数据服务采集设备的实时数据;
S201、将步骤S1中设备的信息模型导出为OPC UA XML文件,使用JAXB工具解析OPC官方的XML样本文件UANodeSet.xsd,生成OPC UA的内建类型(BuiltInType)对应的Java文件;
S202、定义每个设备的地址空间类,基于不同的边缘设备部署OPC Server,将所有边缘设备与云端设备的IP加入信任列表,限定数据通讯的局域网络,加密传输信道,保障数据传输的安全性。每个加入信任列表的设备各自维护由X509加密算法所生成的验证证书;
S203、将OPC Server部署在边缘微设备后,通过边缘微服务应用,将设备的实时数据存储在OPC Server中,OPC Server基于OPC UA通信协议,提供高性能的协议读写方式。云端通过证书文件可以生成与OPC Server进行通信的Client,从边缘设备的OPC Server中采集实时数据;
S204、基于这种通信模式,实现了云端与底层设备的解耦与数据协议的统一,底层设备提供对应的边缘设备IP,OPC的地址空间索引和结点ID(NodeId),就可以获取指定设备的实时数据。
S3、对于数字孪生单元中实时性要求较高的数据,且状态信息数据通过单一数据协议接口的设备,提供基于NIO的边缘数据采集及预处理方案,采集并处理现场设备的数据,将其写入步骤S2中生成的OPC Server中;基于步骤S3中的标准化流程,结合真实设备,解析TCP/IP、RS232/485数据传输协议,并进一步提供WebSocket与MQTT协议的标准化过程;
请参阅图3,数字孪生制造单元中所选用的设备协议以工业互联网的常见协议为主。而孪生单元云端服务中的虚实同步与实时机理分析的数据主要来自于设备的状态数据。其中TCP与串口协议的指令数据采用多个数据接口,而状态数据往往通过单一数据接口获取。针对单一数据接口的设备,采用基于NIO和任务队列来实现数据的采集与处理。
S301、TCP/IP通信基于Socket连接实现,建立生产设备与边缘设备的TCP连接通信,数据的传输基于Non-Blocking Input/Output(NIO)的方式进行;
传统IO需要阻塞当前线程,直到将数据全部接受后才可以执行后续操作。NIO核心通过建立通信双方的数据通道(Channel)进行数据的缓存,通信的双方将数据发往数据通道,数据的发送方和接收方通过通道传输数据。通道内部维护一个缓存区,支持数据的读取和写入同时进行,读取方不需要等待写入方的数据全部写入才进行读取,大幅提升数据读写的效率。
NIO不因为TCP的IO通信阻塞当前线程,可以适用于大数据场景下的多点数据采集,或结合多线程技术实现并发的数据采集。
S302、针对机器人和AGV进行数据采集处理;
机器人的数据采集基于TCP/IP,而AGV的数据主要通过RS232/485串口通讯协议获取。
机器人分别为的IP地址为192.168.10.140,192.168.10.141,端口为9760。服务端为机器人,客户端为边缘设备。数据的传输格式为JSON。数据传输遵循HCRemote数据格式。
数据查询数据帧形如:{"dsID":"HCRemoteMonitor","cmdType":"query","queryAddr":["world-0","world-1","world-2","world-3","world-4","world-5"]},需要在JSON中指明协议名称,指令类型以及查询的数据类型,机器臂采用6个轴的世界坐标。
S303、客户端通过TCP/IP协议向机器人发送查询数据帧后,接收到返回的JSON数据帧,为了保证数据的实时更新,建立一个循环读写模式;
数据的读写模式具体如下:
建立EventLoop线程组,通过边缘设备的CPU核心数智能分配对应线程的个数,充分利用边缘设备的计算性能,实现数据的并发读取。
建立一套循环机制,分配线程读取设备的数据,并且在读取结束后发送查询数据帧,继续获取最新的数据。
S304、由于数据是基于通道传输,客户端与服务端既可以是数据的发送方,也可以是数据的接收方。边缘设备在连接建立的同时,执行channelActive方法,向机器人发送查询数据帧,同时通过channelRead方法接收到机器人发送至通道的数据。在读取完毕的同时,又执行channelReadComplete方法,再次发送数据帧,获取最新的数据。当数据流量较大的时候,当前线程正在进行IO,那么EventLoop选择另一个空闲线程进行数据的读写,保证读取数据的实时性,具体的通讯方式如图2所示。
S3041、当边缘设备作为客户端时,主动建立与现场设备的连接,调用WorkerGroup中的空闲线程向现场设备发送请求帧,并等待设备写回的响应数据,通过解构响应数据,提取所需的状态信息,并调用channelReadComplete方法再次发送响应数据。若当前线程正在进行IO,那么EventLoop将选择另一个空闲线程进行数据的读写。
S3042、当边缘设备作为服务端时,可主动建立与多台现场设备的连接,BossGroup将会根据接入的设备,分配其对应的状态标志位。当现场设备与边缘设备建立连接后,标志位置为Accept。当需要执行请求帧的发送时,选择器Selector会遍历所有设备,将标志位为Accept的设备置为Read,并发送对应的响应帧。所有接入的设备将会被记录并通过其IP地址进行区分。数据的发送也将会根据指定IP进行发送。
S305、数据的处理方式具体如下:
S3051、为了保证数据的高效读写,所有的数据都将会序列化为二进制数据进行传输。
S3052、对JSON数据来说,数据的格式为String类型,因此对于读取的数据,需要通过StringDeserializer将二进制数据反序列化为字符串形式。而对于数据的写入,则需要将字符串形式的数据通过StringSerializer序列化为二进制数据。同时需要进行JSON数据的检验,确定JSON的数据边界,即包含所有JSON数据的大括号。
S306、基于上述编码/解码的需要,基于任务队列的方式实现对于写入\读取数据的预处理;
S3061、将所有的编解码操作加入一个双向链表,队列既具有前指针,也具有后指针。对于加入的编解码任务,通过一个标志位进行区分,当任务是一个解码操作时,标记设置为解码任务的标记,并通过头部插入;当任务是一个编码操作时,标记设置为编码任务的标记,并通过尾部进行插入,并且设立为最后一个编解码操作分别设置终止位。
S3062、当执行数据的读取时,需要进行解码,则对队列从头至尾进行遍历,执行队列中所有的解码操作。当执行数据的写入时,需要进行编码,则对队列从尾至头进行遍历,执行队列中所有的编码操作,基于双端任务队列的索引机制,减少因遍历产生的时间消耗,提升采集的效率。
S307、将采集到的数据写入OPC Server,实现TCP/IP协议到OPC UA协议的标准化。
S3071、当获取到字符串数据后,需要通过Gson将JSON字符串反序列化为可操作的Java类对象,对内部的具体数据进行操作。
S3072、以关节轴坐标(axisPos)为例查询的数据为关节轴的6轴坐标数据,具体格式为一个浮点类型数组,形如:["10.123","20.000","3.500","45.000",
"30.987","40.678"]。经过Gson反序列化后生成为一组列表数据axisList。
S3073、关节轴数据所对应的OPC UA的结点NodeId为“ns=2;i=2014”。
S3074、根据OPC Server的加密证书及对应OPC Server的URL地址,生成OPCClient,负责将采集到的设备数据写入OPC Server。
S3075、将axisList转换为数组类型,并包装为OPC UA特定的DataValue格式;DataValue除实时数据外,还加入数据的写入时间戳。
S3076、OPC Client将包装后的数据写入到OPC Server中,实现协议的标准化。
写入和反序列化过程在channelRead中执行,由于channelRead是循环执行的,因此数据将不断写入OPC Server中,保证OPC Server存储的数据是实时数据。
S308、对于AGV小车来说,由于AGV采用的是串口数据进行传输,串口协议不支持NIO的方式,因此AGV必须要要通过阻塞式的方式获取数据。
S309、指定串口传输的地址,波特率,数据位,奇偶校验位以及停止位。
S310、循环任务机制与机器人的采集过程类似,但是数据的传输将基于缓冲区而不是通道。发送端将数据写入缓冲区,接收方等待发送方将数据写入完毕再进行读取。
S311、任务的编解码机制按照上述的队列机制实现。
由于AGV采用二进制的方式传递信息,查询的数据帧形如:[AA 01 03 00 0000 0000 00 00 00 00 00 00FF AD]。二进制数组的大小固定,为16bytes。
S312、按照传统的数据二进制数据传输方式,容易产生数据的粘包与半包问题。因此需要根据二进制数据进行特殊的处理。
S3121、对于串口数据,每次传输一般以换行符’\n’作为结尾,数据的传输一般按照ASCII格式。因此可以通过检验末尾换行符的方式对数据进行切分,当读取到末尾的换行符时,将缓冲区的数据发送给读取方。
S3122、对于定长数据帧,例如AGV采用16bytes的固定长度字节进行传输,因此可以定义一个解码任务,每读取16字节数据,就将数据发送给数据接收方。
S3123、对于某些特定的变长数据,一般会有一个专属的数据位,用来标识数据帧的长度,可以定义一个解码任务,读取帧的长度数据进行切分,再将切分后的数据发送给数据的接收方。
这里以第一种方式实现二进制数据的切分。
S313、接收到的二进制数组的数据缺乏其对应的语义。而OPC信息模型是通过语义网络建立,将每个数据节点的数据有赋予对应的详细数据信息。
S314、根据AGV的传输协议,将接收到的二进制数组语义化,获取其表达的现场生产数据。再将语义化后的数据通过OPC Client写入对应的OPC数据节点,实现串口协议到OPC UA的标准化。
S315、基于TCP/IP与串口的数据解析与协议标准化模式,实现对于MQTT协议与WebSocket协议的标准化。
S316、MQTT协议的标准化过程:
S3161、在连接初始化时,发送CONNECT连接请求消息,消息的QoS为AT_MOST_ONCE,MQTT协议的传输标准为3.1.1。发送的消息内容包括客户端ID,用户名与密码,从而建立与MQTT局域网络的连接,在初始化完成后,根据客户端的职能(发布者/订阅者),确定其对应的功能。
S3162、对于发布者(Publisher),可以通过心跳机制与写回信息机制执行数据的发布。
S3163、心跳机制:当接受到CONNACK信号后,执行数据的发布,其信息内容包括:发布的话题(topic),包ID(packetId)以及内容(payload)。消息QoS为AT_MOST_ONCE,不需要写回的确认信息。
S3164、将执行心跳操作的任务加入到任务队列中,确认客户端的空闲时间,进而,当客户端的空闲时间达到指定时间后,发送PING,当客户端接收到返回的PINGRESP信息后,再次执行数据的发布,实时性稍差,但IO开销较小。
S3165、写回机制:当接收到CONNACK信号后,执行数据的发布。消息QoS为AT_LEAST_ONCE,发布之后会从MQTT服务器接收到PUBACK,当接收到PUBACK信号后,再次执行数据的发布,形成循环,不断获取现场设备数据,实时性好,IO开销较大。
S3166、对于订阅者(Subscriber)同理。通过心跳机制按照指定时间间隔订阅数据,或是通过写回机制不断获取最新数据。
S3167、由于订阅者一般是用于数据采集,因此还需在订阅者内部接入OPCClient,将订阅数据写入OPC Server,实现MQTT协议到OPC UA的标准化。
S317、WebSocket协议标准化过程:
S3171、与TCP/IP的标准解析模式类似,除了需要指定IP与端口外,还需要指定需要建立长链接的URL地址,当客户端与对应的WebSocket服务端建立连接后,二者通过数据帧WebSocketFrame传输消息。
S3172、客户端需要对服务端的数据帧类型进行判断,包括:
文本数据帧(TextWebSocketFrame),响应数据帧(PongWebSocketFrame)以及关闭数据帧(CloseWebSocketFrame)。
当接收到服务端的数据帧后,再次触发写回操作,形成数据的循环读取。每次数据读取的最后将数据写入OPC Server,实现WebSocket协议到OPC UA的协议标准化。
S318、边缘微服务的部署:
S3181、边缘设备作为云端服务与数字孪生单元的桥梁,需要分别接入由现场设备组成的生产局域网与云端互联网。
S3182、微服务应用部署在边缘设备之后,在实现高性能数据采集的同时,将数据存储在边缘设备的OPC Server中,并向云端暴露数据的调用接口,从而实现数字孪生单元复杂多协议的标准化,云端与底层设备基于OPC UA进行数据的交互,为云端应用提供实时数据支撑。
S4、对于数字孪生单元中数据量较大,一致性要求较高的数据,且状态信息基于多点数据协议接口的设备,提供基于轮询与并发的边缘侧数据采集及预处理方案,实现采集并处理现场设备的复杂多协议到数据,将其写入S2中生成的OPC UA协议的转换,以及多源异构数据Server中。最后基于S4中的标准化;流程,结合真实设备,解析HTTP数据传输协议,并进一步提供Modbus协议的标准化过程
由于单台设备中需要采集的数据节点较多,为每一个节点安排S3中的数据采集方式,虽然高效,但程序复杂性较高、内存占用较大,会占用边缘设备较多的存储与计算的开销。因此在进行多节点数据采集时,采取多任务并行的方式,结合Schedule模式和轮询进行数据的采集。
S401、以机床的HTTP数据读写为例,其数据的HTTP接口为:192.168.10.10:8000/v1/status,请求的方法为GET方法,返回的数据格式为JSON。
返回的数据格式形如:
{"run-status":0,"opr-mode":0,"ready":false,"not-ready-reason":1,"alarms":["ps","prm-switch"]}。
S402、具体的轮询方案如下:
S4021、通过Schedule模式建立多个周期性任务,为每个执行查询的任务分配单独的任务队列。每个不同的任务负责发送不同的数据请求,获取不同的节点数据。
S4022、单个任务队列的任务以串行同步的方式执行,不同任务队列之间以并发的方式执行,实现数据的高效读取。由于队列之间所请求的数据相互之间不发生冲突,不涉及临界区保护,可以以无锁的方式执行,CPU执行效率高。
S4023、HTTP数据请求通过Retrofit工具实现,以异步的方式,将多条HTTP请求入队,同时以异步方式等待返回结果,不阻塞当前线程,从而最大化读取的效率,使数据的时延基本由网络延迟决定。
S4024、由于无法触发写回机制,因此当一个任务队列中的任务执行完毕后,将会按照给定时间间隔执行下一个任务。通过统计现场设备的数据延迟,任务的间隔时间设定为40ms,基本与现场设备的延迟持平,使采集到的数据能够保持与最新数据同步。
S4025、通过Gson工具将数据反序列化为对应的类对象,提取有效数据位,舍弃冗余数据与元数据信息,将数据写入OPC Server。
基于上述模式,实现了HTTP/REST协议到OPC UA的标准化。
S403、根据以上的多任务并行的模式,同理可以实现Modbus-TCP的协议解析:
S4031、Modbus采用主从数据基站的模式,实现主站对于不同从站数据的采集。
S4032、建立客户端与主站的TCP连接,根据从站对应的功能码(线圈状态,输入状态,读存储寄存器值,读写入寄存器值等),执行不同的读取方法。
S4033、指明读取的数据类型,从站ID以及数据偏移量,读取Modbus从站中的二进制数据。数据读取的模式与HTTP/REST的模式类似,为不同的从站ID分配不同的任务队列,各个队列之间以并发的方式执行数据的读取,队列内部以串行的方式执行。
S4034、将读取到的二进制数据语义化,写入到OPC Server中,实现Modbus协议到OPC UA的标准化,数据语义化过程与步骤S3中的TCP二进制数据处理过程类似。
S5、提供云端大数据集成服务,通过OPC UA协议,将设备的实时数据集成到边云系统所组成的实时数据库集群,为云端的虚实同步服务和实时机理分析提供数据支撑。
请参阅图4,基于步骤S3、S4的协议标准化,边缘设备实现了现场设备的复杂多协议与异构数据的标准化,云端通过大数据实时集成服务,从边缘设备的OPC Server中获取数据。
S501、基于数据流的方式,可以实现现场的设备数据的实时集成。工作人员可将具体的执行任务在本地编写后提交到云端,由云端进行任务的调度,将任务智能分配给各个边缘设备,由边缘设备执行具体的数据采集;
S502、同时,采集任务由多台边缘设备协同完成,以并发的方式执行任务,以实现数据的高效写入。保证数据实时性的同时,兼顾不同的应用需求,保证数据的一致性。在实际生产中,通过部署大量的边缘设备,可以实现工业大数据的实时集成;
S503、大数据服务的执行由边云系统协同完成。以数据集群的方式实现分布式的数据存储与获取,数据的集群由Kafka消息队列集群与Redis实时数据集群组成。Kafka消息队列集群用于存储一致性要求较高数据,用于支撑云端的机理分析。Redis用于存储实时性要求较高的数据,用于实现云端孪生模型虚实同步;
S504、边缘设备将采集到的数据存储到边缘侧,同时,将会启动相应的服务用于实时同步云端与边缘侧的数据。
S5041、Redis集群基于主从复制机制,实现读写操作的分离。边缘设备分别建立1主1从的集群结点,云端部署多个从结点,用于数据的读取。Master结点负责将OPC Server写入本地Redis数据库,基于主从复制机制,数据将会同时复制到集群中其他边缘设备与云端设备的Slave结点中。数据的读取通过Slave结点进行,减少Redis的IO开销。
S5042、Kafka集群以话题(topic)用以区分不同的设备数据,内部数据以键值对方式存储。每个边缘设备作为Kafka集群中的一个broker数据存储节点,对于每一个topic,划分多个分区(partition),多个分区同步一个数据,保证数据的一致性。分区通常部署在不同的边缘设备与云端设备中,实现数据的多点备份,保证数据的一致可靠。
S505、根据S2中定义的OPC UA信息模型,数据的存储根据其结点所对应的NodeId与NodeValue,映射到实时数据库中的键值对中进行存储。在Redis中,通过跳表进行存储,跳表头由设备的命名空间决定,key对应数据节点的NodeId,而value对应数据节点的值。在Kafka中,Topic对应设备的命名空间,key对应数据节点的NodeId,而value对应数据节点的值。
S506、由于边缘设备的算力较弱且内存较小,因此需要借助容器(虚拟化)技术(Docker)实现数据库与边缘服务的轻量化部署。每个容器负责执行对应的数据存储服务(Redis/Kafka),各个容器之间相互独立,通过内部虚拟局域网执行容器间的数据同步。从而实现应用的轻量化部署,节约内存与CPU资源的占用。
S507、云端的大数据集成服务基于实时数据流实现。基于云端大数据服务,将从边缘设备的OPC Server中获取到的数据,以流的方式进行转换、过滤,同时,根据数据的时间戳保证数据的一致性。
S5071、指定现场的数据源,即边缘设备中的OPC Server。通过OPC Client,不断从Server中获取现场实时数据,数据包含原本的值以及存储到Server时的时间戳。
S5072、获取流的执行环境。将OPC的数据及其对应的时间戳作为数据源添加到数据流的执行环境中,生成无限数据流(DataStream)。
S5073、对流执行中间转换(Transform)操作,将OPC UA的数据格式转换为String,并且按照NodeId进行分组。
S5074、连接到Redis/Kafka集群,边缘设备调用本地的Redis Master/KafkaProducer将数据写入到数据集群中,通过时间水位线机制,时间窗口根据其对应的数据库的不同分别设置为50ms(Redis)/1s(Kafka)。在兼顾实时性的同时,保证数据的时序一致性。
S5075、基于Redis/Kafka的数据同步机制,存储在边缘侧的数据将实时同步至云端,为云端的虚实同步与机理分析等服务提供实时数据。
本发明依托于西安交通大学的“数字孪生制造单元创新实验中心”,结合孪生单元的现场设备与虚拟模型,实现了虚拟空间与物理空间的同步运行。边缘设备的采集指令自云端下达,采集并存储现场设备的数据,并且保持与云端实时数据库的数据同步。孪生模型需要的实时数据由云端实时数据库提供,设备的运动节点与实时数据库的数据节点一一对应,从而实现云端孪生设备与现场设备同步运行,详见图5。基于本发明的数据集成方法,数据具有较高的实时性,使虚拟设备与实际设备获得了较好的同步效果。
综上所述,本发明一种数字孪生制造单元协议标准化与工业大数据实时集成方法,通过边缘微服务提供了多种协议的标准化方法,使数字孪生制造单元现场设备的复杂协议与上层数字孪生云端服务的数据集成解耦。底层与云端仅需基于OPC UA协议实现数据传输,基于大数据集成方案,根据具体的应用需求,提供实时性强或一致性高的现场数据。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
Claims (10)
1.数字孪生制造单元协议标准化与工业大数据实时集成方法,其特征在于,包括以下步骤:
S1、建立现场设备的OPC UA信息模型,为各个数据节点分配其对应的OPC UA节点;
S2、根据步骤S1获得的OPC UA节点生成OPC Server作为边缘设备的实时数据库,用于提供OPC UA协议访问端口,供云端大数据服务采集边缘设备的实时数据;
S3、对于数字孪生单元中状态数据通过单一数据协议接口采集的设备,提供基于NIO的边缘数据采集及预处理方案,采集并处理现场设备的数据,写入步骤S2中生成的OPCServer中;基于步骤S3的标准化流程,结合真实设备,解析TCP/IP、RS232/485数据传输协议,并进一步提供WebSocket与MQTT协议的标准化过程;
S4、对于数字孪生单元中状态数据通过多点数据协议接口采集的设备,提供基于轮询与并发的边缘侧数据采集及预处理方案,采集并处理现场设备的数据,写入步骤S2中生成的OPC Server中;最后基于步骤S4的标准化流程,结合真实设备,解析HTTP数据传输协议,并进一步提供Modbus协议的标准化过程;
S5、基于步骤S3和步骤S4实现的标准化协议OPC UA与步骤S2中提供的OPC Server实时数据库,在本地编写数据集成的任务程序,通过云端将任务分发至各个边缘设备,协同执行实时数据的采集,并将数据存储到边缘层的数据库集群;基于主从复制与分区同步机制,实现云端数据与边缘层的数据同步。
2.根据权利要求1所述的方法,其特征在于,步骤S1中,建立实时数据的节点网络,基于每个结点特有的NodeId,实现对设备数据的快速索引,同时结点网络基于语义箭头相互连接。
3.根据权利要求1所述的方法,其特征在于,步骤S2具体为:
S201、将步骤S1中设备的信息模型导出为OPC UA XML文件,使用JAXB工具解析OPC的XML样本文件UANodeSet.xsd,生成OPC UA的内建类型对应的Java文件;
S202、定义每个设备的地址空间类,基于不同的边缘设备部署OPC Server,将所有边缘设备与云端设备的IP加入信任列表,限定数据通讯的局域网络,加密传输信道,每个加入信任列表的设备各自维护由X509加密算法所生成的验证证书;
S203、将OPC Server部署在边缘微设备后,通过边缘微服务应用,将设备的实时数据存储在OPC Server中,云端通过证书文件生成与OPC Server进行通信的Client,从边缘设备的OPC Server中采集实时数据;
S204、实现云端与底层设备的解耦与数据协议的统一,底层设备提供对应的边缘设备IP,OPC的地址空间索引和结点ID,获取指定设备的实时数据。
4.根据权利要求1所述的方法,其特征在于,步骤S3具体为:
S301、TCP/IP通信基于Socket连接实现,建立生产设备与边缘设备的TCP连接通信,数据的传输基于Non-Blocking Input/Output(NIO)的方式进行;
S302、针对机器人和AGV进行数据采集处理;
S303、客户端通过TCP/IP协议向机器人发送查询数据帧后,接收到返回的JSON数据帧,为了保证数据的实时更新,建立一个循环读写模式;
S304、边缘设备在连接建立的同时,执行channelActive方法,向机器人发送查询数据帧,同时通过channelRead方法接收到机器人发送至通道的数据;在读取完毕的同时,执行channelReadComplete方法,再次发送数据帧,获取最新数据;当前线程正在进行IO时,EventLoop选择另一个空闲线程进行数据的读写;
S305、将所有数据序列化为二进制数据进行传输,对JSON数据,通过StringDeserializer将二进制数据反序列化为字符串形式;对于数据写入,将字符串形式的数据通过StringSerializer序列化为二进制数据,同时进行JSON数据的检验,确定JSON的数据边界;
S306、基于编码/解码的需要,基于任务队列的方式实现对于写入\读取数据的预处理,将所有的编解码操作加入一个双向链表;对于加入的编解码任务,通过一个标志位进行区分,当任务是一个解码操作时,标记设置为解码任务的标记,并通过头部插入;当任务是一个编码操作时,标记设置为编码任务的标记,并通过尾部进行插入,并设立为最后一个编解码操作分别设置终止位;当执行数据的读取时,执行队列中所有的解码操作;当执行数据的写入时,执行队列中所有的编码操作;
S307、将采集到的数据写入OPC Server,实现TCP/IP协议到OPC UA协议的标准化;
S308、通过阻塞式的方式获取AGV小车数据;
S309、指定串口传输的地址,波特率,数据位,奇偶校验位以及停止位;
S310、循环任务机制的数据传输基于缓冲区;发送端将数据写入缓冲区,接收方等待发送方将数据写入完毕再进行读取;
S311、按照队列机制实现任务的编解码机制;
S312、对于串口数据,通过检验末尾换行符的方式对数据进行切分,当读取到末尾的换行符时,将缓冲区的数据发送给读取方;对于定长数据帧,定义一个解码任务,每读取16字节数据,将数据发送给数据接收方;对于特定变长数据,定义一个解码任务,读取帧的长度数据进行切分,再将切分后的数据发送给数据的接收方;
S313、接收到的二进制数组的每个数据节点数据赋予对应的详细数据信息;
S314、根据AGV的传输协议,将接收到的二进制数组语义化,获取其表达的现场生产数据,再将语义化后的数据通过OPC Client写入对应的OPC数据节点,实现串口协议到OPC UA的标准化;
S315、基于TCP/IP与串口的数据解析与协议标准化模式,实现对于MQTT协议与WebSocket协议的标准化;
S316、MQTT协议的标准化;
S317、WebSocket协议标准化;
S318、边缘设备作为云端服务与数字孪生单元的桥梁,分别接入由现场设备组成的生产局域网与云端互联网,微服务应用部署在边缘设备后,实现高性能数据采集,将数据存储在边缘设备的OPC Server中,并向云端暴露数据的调用接口,实现数字孪生单元复杂多协议的标准化,云端与底层设备基于OPC UA进行数据的交互。
5.根据权利要求1所述的方法,其特征在于,步骤S307具体为:
S3071、当获取到字符串数据后,通过Gson将JSON字符串反序列化为可操作的Java类对象,对内部的具体数据进行操作;
S3072、经过Gson反序列化后生成为一组列表数据axisList;
S3073、关节轴数据所对应的OPC UA的结点NodeId为“ns=2;i=2014”;
S3074、根据OPC Server的加密证书及对应OPC Server的URL地址,生成OPC Client,负责将采集到的设备数据写入OPC Server;
S3075、将axisList转换为数组类型,并包装为OPC UA特定的DataValue格式;加入数据的写入时间戳;
S3076、OPC Client将包装后的数据写入到OPC Server中,实现协议的标准化。
6.根据权利要求1所述的方法,其特征在于,步骤S4具体为:
S401、以机床的HTTP数据读写为例,其数据的HTTP接口为:192.168.10.10:8000/v1/status,请求的方法为GET方法,返回的数据格式为JSON;
S402、建立轮询方案,实现HTTP/REST协议到OPC UA的标准化;
S403、根据以上的多任务并行的模式,实现Modbus-TCP的协议解析。
7.根据权利要求6所述的方法,其特征在于,步骤S402具体为:
S4021、通过Schedule模式建立多个周期性任务,为每个执行查询的任务分配单独的任务队列;每个不同的任务负责发送不同的数据请求,获取不同的节点数据;
S4022、单个任务队列的任务以串行同步的方式执行,不同任务队列之间以并发的方式执行;
S4023、以异步的方式,将多条HTTP请求入队,同时以异步方式等待返回结果;
S4024、当一个任务队列中的任务执行完毕后,按照给定时间间隔执行下一个任务;通过统计现场设备的数据延迟,使采集到的数据保持与最新数据同步;
S4025、将数据反序列化为对应的类对象,舍弃冗余数据与元数据信息,将数据写入OPCServer。
8.根据权利要求6所述的方法,其特征在于,步骤S403具体为:
S4031、Modbus采用主从数据基站的模式,实现主站对于不同从站数据的采集;
S4032、建立客户端与主站的TCP连接,根据从站对应的功能码,执行不同的读取方法;
S4033、指明读取的数据类型,从站ID以及数据偏移量,读取Modbus从站中的二进制数据;数据读取的模式与HTTP/REST的模式类似,为不同的从站ID分配不同的任务队列,各个队列之间以并发的方式执行数据的读取,队列内部以串行的方式执行;
S4034、将读取到的二进制数据语义化,写入到OPC Server中,实现Modbus协议到OPCUA的标准化。
9.根据权利要求1所述的方法,其特征在于,步骤S5具体为:
S501、将具体的执行任务在本地编写后提交到云端,由云端进行任务的调度,将任务智能分配给各个边缘设备,由边缘设备执行具体的数据采集;
S502、采集任务由多台边缘设备协同完成,以并发的方式执行任务;
S503、以数据集群的方式实现分布式的数据存储与获取,数据的集群由Kafka消息队列集群与Redis实时数据集群组成;Kafka消息队列集群通过内部语义一致性确认机制保证数据的时序一致性;Redis通过内存进行数据的读写;
S504、边缘设备将采集到的数据存储到边缘侧,启动相应的服务用于实时同步云端与边缘侧的数据;
S505、根据步骤S2中定义的OPC UA信息模型,数据的存储根据其结点所对应的NodeId与NodeValue,映射到实时数据库中的键值对中进行存储;在Redis中,通过跳表进行存储,key对应数据节点的NodeId,value对应数据节点的值;在Kafka中,Topic对应设备的命名空间,key对应数据节点的NodeId,value对应数据节点的值;
S506、借助容器技术实现数据库与边缘服务的轻量化部署;每个容器负责执行对应的数据存储服务,各容器之间相互独立,通过内部虚拟局域网执行容器间的数据同步;
S507、基于云端大数据服务,将从边缘设备的OPC Server中获取到的数据,以流的方式进行转换、过滤,根据数据的时间戳保证数据的一致性。
10.根据权利要求9所述的方法,其特征在于,步骤S507具体为:
S5071、指定现场数据源,通过边缘设备中的OPC Client,从Server中获取现场实时数据,数据包含原本的值以及存储到Server时的时间戳;
S5072、将OPC的数据及其对应的时间戳作为数据源添加到数据流的执行环境中,生成无限数据流;
S5073、对流执行中间转换操作,将OPC UA的数据格式转换为String,并按照NodeId进行分组;
S5074、连接Redis/Kafka集群,边缘设备调用本地Redis Master/Kafka Producer将数据写入到数据集群中,通过时间水位线机制,时间窗口根据其对应的数据库的不同分别设置为50ms(Redis)/1s(Kafka);
S5075、基于Redis/Kafka的数据同步机制,存储在边缘侧的数据将实时同步至云端,为云端的虚实同步与机理分析等服务提供实时数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010948406.8A CN112099948B (zh) | 2020-09-10 | 2020-09-10 | 数字孪生制造单元协议标准化与工业大数据实时集成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010948406.8A CN112099948B (zh) | 2020-09-10 | 2020-09-10 | 数字孪生制造单元协议标准化与工业大数据实时集成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112099948A true CN112099948A (zh) | 2020-12-18 |
CN112099948B CN112099948B (zh) | 2022-12-09 |
Family
ID=73750752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010948406.8A Active CN112099948B (zh) | 2020-09-10 | 2020-09-10 | 数字孪生制造单元协议标准化与工业大数据实时集成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112099948B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112765145A (zh) * | 2021-01-22 | 2021-05-07 | 北京秒针人工智能科技有限公司 | 一种数据集成方法及系统 |
CN112764944A (zh) * | 2020-12-31 | 2021-05-07 | 哈尔滨宇龙自动化有限公司 | 一种基于opc ua协议的mom系统自动化设备数据交互集成平台及方法 |
CN112925656A (zh) * | 2021-01-11 | 2021-06-08 | 华南理工大学 | 基于消息队列的多协议自动化设备监控系统及其控制方法 |
CN112947946A (zh) * | 2021-02-24 | 2021-06-11 | 上海后米物联网技术有限公司 | 一种工业现场的服务、数据和模型部署、共享、分发系统 |
CN113111201A (zh) * | 2021-04-19 | 2021-07-13 | 北京航空航天大学 | 一种数字孪生模型轻量化方法和系统 |
CN113395180A (zh) * | 2021-06-11 | 2021-09-14 | 上海企翔智能科技有限公司 | 一种工业实时大数据采集发布方法及工业实时大数据平台 |
CN113420048A (zh) * | 2021-05-19 | 2021-09-21 | 中交公规土木大数据信息技术(北京)有限公司 | 数据汇聚方法、装置、电子设备及存储介质 |
CN113536503A (zh) * | 2021-07-21 | 2021-10-22 | 深圳登科云软件有限公司 | 一种工厂异构设备接入平台及方法 |
CN113868306A (zh) * | 2021-08-31 | 2021-12-31 | 云南昆钢电子信息科技有限公司 | 一种基于opc-ua规范的数据建模系统和方法 |
CN113987047A (zh) * | 2021-11-04 | 2022-01-28 | 西安热工研究院有限公司 | 一种基于opc-ua协议的自动化数据采集的方法 |
CN114221690A (zh) * | 2021-12-16 | 2022-03-22 | 中国人民解放军国防科技大学 | 用于云边协同系统的语义模型构建方法 |
CN114509064A (zh) * | 2022-02-11 | 2022-05-17 | 上海思岚科技有限公司 | 一种自主扩展传感器数据处理的方法、接口及设备 |
CN114827140A (zh) * | 2022-04-02 | 2022-07-29 | 中国兵器装备集团自动化研究所有限公司 | 一种用于风洞现场的实时数据集中管控系统 |
CN114810644A (zh) * | 2022-03-29 | 2022-07-29 | 惠州高盛达科技有限公司 | 一种基于物联网的异步收发器通信的智能风扇整体系统 |
CN115016424A (zh) * | 2022-08-08 | 2022-09-06 | 承德建龙特殊钢有限公司 | 一种无缝钢管生产线实时监控系统 |
CN115086362A (zh) * | 2022-05-18 | 2022-09-20 | 中国科学院沈阳自动化研究所 | 异构边缘设备多种复杂模式下的智能传输控制方法 |
CN115114269A (zh) * | 2022-06-30 | 2022-09-27 | 北京亚控科技发展有限公司 | 模型构建及模型数据订阅方法、装置、电子设备和介质 |
CN115242826A (zh) * | 2022-05-23 | 2022-10-25 | 中核武汉核电运行技术股份有限公司 | 核电厂数据实时传输、存储方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018234741A1 (en) * | 2017-06-23 | 2018-12-27 | Qio Technologies Ltd | SYSTEMS AND METHODS FOR INTELLIGENCE OF INDUSTRIAL ASSETS BY DISTRIBUTED SYSTEMIC ANTICIPATION |
CN111177942A (zh) * | 2020-01-06 | 2020-05-19 | 中国矿业大学(北京) | 矿井无人化综掘工作面数字孪生智能监控系统 |
-
2020
- 2020-09-10 CN CN202010948406.8A patent/CN112099948B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018234741A1 (en) * | 2017-06-23 | 2018-12-27 | Qio Technologies Ltd | SYSTEMS AND METHODS FOR INTELLIGENCE OF INDUSTRIAL ASSETS BY DISTRIBUTED SYSTEMIC ANTICIPATION |
CN111177942A (zh) * | 2020-01-06 | 2020-05-19 | 中国矿业大学(北京) | 矿井无人化综掘工作面数字孪生智能监控系统 |
Non-Patent Citations (3)
Title |
---|
GUANGHUI ZHOU: "Knowledge-driven digital twin manufacturing cell towards intelligent manufacturing", 《INTERNATIONAL JOURNAL OF PRODUCTION RESEARCH》 * |
万浩: "边缘网关节点中的OPC UA-TSN融合技术研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
姜德义等: "智慧矿山边缘云协同计算技术架构与基础保障关键技术探讨", 《煤炭学报》 * |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112764944A (zh) * | 2020-12-31 | 2021-05-07 | 哈尔滨宇龙自动化有限公司 | 一种基于opc ua协议的mom系统自动化设备数据交互集成平台及方法 |
CN112925656A (zh) * | 2021-01-11 | 2021-06-08 | 华南理工大学 | 基于消息队列的多协议自动化设备监控系统及其控制方法 |
CN112925656B (zh) * | 2021-01-11 | 2024-01-09 | 华南理工大学 | 基于消息队列的多协议自动化设备监控系统及其控制方法 |
CN112765145A (zh) * | 2021-01-22 | 2021-05-07 | 北京秒针人工智能科技有限公司 | 一种数据集成方法及系统 |
CN112947946B (zh) * | 2021-02-24 | 2022-04-19 | 上海后米物联网技术有限公司 | 一种工业现场的服务、数据和模型部署、共享、分发系统 |
CN112947946A (zh) * | 2021-02-24 | 2021-06-11 | 上海后米物联网技术有限公司 | 一种工业现场的服务、数据和模型部署、共享、分发系统 |
CN113111201A (zh) * | 2021-04-19 | 2021-07-13 | 北京航空航天大学 | 一种数字孪生模型轻量化方法和系统 |
CN113420048A (zh) * | 2021-05-19 | 2021-09-21 | 中交公规土木大数据信息技术(北京)有限公司 | 数据汇聚方法、装置、电子设备及存储介质 |
CN113395180B (zh) * | 2021-06-11 | 2023-04-18 | 上海企翔智能科技有限公司 | 一种工业实时大数据采集发布方法及工业实时大数据平台 |
CN113395180A (zh) * | 2021-06-11 | 2021-09-14 | 上海企翔智能科技有限公司 | 一种工业实时大数据采集发布方法及工业实时大数据平台 |
CN113536503A (zh) * | 2021-07-21 | 2021-10-22 | 深圳登科云软件有限公司 | 一种工厂异构设备接入平台及方法 |
CN113868306A (zh) * | 2021-08-31 | 2021-12-31 | 云南昆钢电子信息科技有限公司 | 一种基于opc-ua规范的数据建模系统和方法 |
CN113987047A (zh) * | 2021-11-04 | 2022-01-28 | 西安热工研究院有限公司 | 一种基于opc-ua协议的自动化数据采集的方法 |
CN113987047B (zh) * | 2021-11-04 | 2024-03-29 | 西安热工研究院有限公司 | 一种基于opc-ua协议的自动化数据采集的方法 |
CN114221690A (zh) * | 2021-12-16 | 2022-03-22 | 中国人民解放军国防科技大学 | 用于云边协同系统的语义模型构建方法 |
CN114509064A (zh) * | 2022-02-11 | 2022-05-17 | 上海思岚科技有限公司 | 一种自主扩展传感器数据处理的方法、接口及设备 |
CN114810644B (zh) * | 2022-03-29 | 2023-08-08 | 惠州高盛达科技有限公司 | 一种基于物联网的异步收发器通信的智能风扇整体系统 |
CN114810644A (zh) * | 2022-03-29 | 2022-07-29 | 惠州高盛达科技有限公司 | 一种基于物联网的异步收发器通信的智能风扇整体系统 |
CN114827140A (zh) * | 2022-04-02 | 2022-07-29 | 中国兵器装备集团自动化研究所有限公司 | 一种用于风洞现场的实时数据集中管控系统 |
CN115086362A (zh) * | 2022-05-18 | 2022-09-20 | 中国科学院沈阳自动化研究所 | 异构边缘设备多种复杂模式下的智能传输控制方法 |
CN115086362B (zh) * | 2022-05-18 | 2023-08-18 | 中国科学院沈阳自动化研究所 | 异构边缘设备多种复杂模式下的智能传输控制方法 |
CN115242826A (zh) * | 2022-05-23 | 2022-10-25 | 中核武汉核电运行技术股份有限公司 | 核电厂数据实时传输、存储方法 |
CN115242826B (zh) * | 2022-05-23 | 2023-06-13 | 中核武汉核电运行技术股份有限公司 | 核电厂数据实时传输、存储方法 |
CN115114269A (zh) * | 2022-06-30 | 2022-09-27 | 北京亚控科技发展有限公司 | 模型构建及模型数据订阅方法、装置、电子设备和介质 |
CN115016424B (zh) * | 2022-08-08 | 2022-11-25 | 承德建龙特殊钢有限公司 | 一种无缝钢管生产线实时监控系统 |
CN115016424A (zh) * | 2022-08-08 | 2022-09-06 | 承德建龙特殊钢有限公司 | 一种无缝钢管生产线实时监控系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112099948B (zh) | 2022-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112099948B (zh) | 数字孪生制造单元协议标准化与工业大数据实时集成方法 | |
CN109492040B (zh) | 一种适用于数据中心海量短报文数据处理的系统 | |
CN111787066B (zh) | 一种基于大数据与ai的物联网数据平台 | |
Fu et al. | A fair comparison of message queuing systems | |
CN111381983B (zh) | 虚拟试验靶场验证系统的轻量级消息中间件系统及方法 | |
CN106815338A (zh) | 一种大数据的实时存储、处理和查询系统 | |
CN110716744A (zh) | 一种数据流处理方法、系统和计算机可读存储介质 | |
CN111716353B (zh) | 一种基于发布/订阅模式的数字孪生虚实同步运行方法 | |
Zhong et al. | The design and implementation of KODAMA system | |
CN102638487A (zh) | 大型遥测地震仪高性能数据传输方法 | |
CN108804818A (zh) | 一种基于face架构的软件系统建模方法 | |
CN113572815A (zh) | 一种跨异构平台的通信技术方法、系统及介质 | |
CN114710571B (zh) | 数据包处理系统 | |
Xu et al. | Modeling and verifying producer-consumer communication in Kafka using CSP | |
Gupta et al. | HADOOP-An Open Source Framework for Big Data | |
EP2208317A2 (en) | Compressing null columns in rows of the tabular data stream protocol | |
CN112817539A (zh) | 一种工业数据存储方法、系统、电子设备及存储介质 | |
Großmann et al. | SensIoT: an extensible and general Internet of Things monitoring framework | |
Frachtenberg et al. | Storm: Scalable resource management for large-scale parallel computers | |
WO2014110701A1 (zh) | 独立主动构件和可运行主动构件组装模型及构件拆分方法 | |
CN117742998B (zh) | 一种面向计费采集数据转发的高性能队列方法及系统 | |
CN116647553A (zh) | 基于Kafka的海量数据高性能实时并行处理系统及工作方法 | |
CN116028233B (zh) | 一种ai计算资源的数字对象组织与共享方法和装置 | |
CN114461490B (zh) | 一种运维数据聚合系统 | |
Marcu et al. | In support of push-based streaming for the computing continuum |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |