一种基于优先级及运行时间的OPCUA关键消息调度方法技术

技术编号:38841199 阅读:9 留言:0更新日期:2023-09-17 09:54
本发明专利技术公开了一种基于优先级及运行时间的OPC UA关键消息调度方法,包括:根据OPC UA规范定义的服务类型和应用场景,将OPC UA规范定义的消息分为信息消息和通信上下文消息;根据QoS等级,为OPC UA规范定义的消息设定不同的优先级;其中,通信上下文消息的优先级高于信息消息的优先级;进行消息调度时,首先保证通信上下文消息被优先调度;在通信上下文消息全部处理完成后,基于预设规则,采用基于优先级和运行时间的调度算法来调度不同的信息消息。本发明专利技术所提方法能够保障OPC UA关键消息的优先调度需求,同时,能够在一定程度上也保证低优先级的消息获得公平的传输资源。低优先级的消息获得公平的传输资源。低优先级的消息获得公平的传输资源。

【技术实现步骤摘要】
一种基于优先级及运行时间的OPC UA关键消息调度方法


[0001]本专利技术涉及OPC UA(Object Linking and Embedding for Process Control Unified Architecture,过程控制统一体系结构的对象链接与嵌入)服务运行系统
,特别涉及一种基于优先级及运行时间的OPC UA关键消息调度方法。

技术介绍

[0002]OPC UA(Object Linking and Embedding for Process Control Unified Architecture,过程控制统一体系结构的对象链接与嵌入)是由OPC(Object Linking and Embedding for Process Control,过程控制中的对象链接与嵌入)基金会在OPC成功应用的基础上推出的一个新的OPC标准。OPC UA提供了一种工业数据交换的规范,通过OPC UA协议,工业现场设备不仅能够进行同层设备间的信息交互,同时也能够纵向通信,将设备信息集成至更高层的设备层中,位于工业系统不同层次的设备信息的交换和集成,使设备间的互操作性得到进一步的提升。
[0003]OPC UA使用了对象(Object)作为过程系统表示数据和活动的基础。对象包含了变量(Variable)、事件(Event)和方法(Method),它们通过引用(Reference)来互相连接。这个概念和面向对象程序设计方法非常相似。OPC UA信息模型是节点的网络(Network of Node),或者称为结构化图(Graph),由节点和引用组成,这种结构图称之为OPC UA的地址空间,如图1所示。OPC UA实质上是一种抽象的框架,是在分布式系统中实现对象的描述,OPC UA在工业4.0中的重要性就是通过面向对象的技术,将物理设备(如传感器、电机等)描述成一个个对象,形成数字化模型,让不同的软件可以像调用对象那样来控制设备。
[0004]OPC UA是一种独立于平台的标准,各种系统和设备可以通过各个类型的网络在客户机和服务器之间发送消息进行通信。OPC UA可以映射到各种通信协议中,数据可以以各种方式编码,因此具有不同协议的终端设备可以将自身的数据格式转换成统一OPC UA的数据格式进行通信,通过OPC UA的Pub

Sub(Publish

Subscribe,发布与订阅)机制将自身产生的OPC UA数据发布出去,并订阅来自其他终端的数据,如图2所示。具体的功能说明如下:
[0005]数据采集与转换功能:通过OPC UA服务器1

x采集多种具有不同协议的终端设备数据,将采集到的来自不同终端的数据转换成OPC UA数据,将数据更新到给各设备建立的OPC UA对象的OPC UA变量中。
[0006]Pub

Sub功能:终端设备的数据经过被采集和转换后,其对应上层的OPC UA服务器1

x将获取到的数据通过UDP Multicast(User

Datagram

Protocol Multicast,用户数据报协议组播)向外发布,同时订阅所需的数据。OPC UA服务器A由于要被客户端访问,且服务器1

x可能存在于不同的网络中,所以服务器A要订阅所有终端设备的数据,任何下层的服务器1

x的订阅请求都要从服务器A处获取数据。
[0007]用户访问功能:OPC UA服务器A将订阅到的所有数据分别存入不同的OPC UA变量中,当由OPC UA客户端访问自己时,用户就可以通过服务器A观察底层所有终端设备的数据变化情况,也可以通过服务器A向终端传输控制命令。
[0008]当OPC UA服务器建立和运行时会调用大量的OPC UA服务,而工业数据在传输时需要考虑到差异化服务的问题,但目前现有的OPC UA通信模式无法满足上述要求。在体量较大、终端数量众多的工业场景中,对于具有不同优先级的消息的传输服务质量没有明确的保障方法。当前OPC UA并无机制保障关键信息传送的即时性,导致大量OPC UA服务运行时,用于承载系统运行指令的OPC UA关键消息传送不及时,影响工业控制系统的稳定性。

技术实现思路

[0009]本专利技术提供了一种基于优先级及运行时间的OPC UA关键消息调度方法,以解决当前OPC UA并无机制保障关键信息传送的即时性,导致大量OPC UA服务运行时,用于承载系统运行指令的OPC UA关键消息传送不及时,影响工业控制系统的稳定性的技术问题。
[0010]为解决上述技术问题,本专利技术提供了如下技术方案:
[0011]一方面,本专利技术提供了一种基于优先级及运行时间的OPC UA关键消息调度方法,所述基于优先级及运行时间的OPC UA关键消息调度方法包括:
[0012]根据OPC UA(Object Linking and Embedding for Process Control Unified Architecture,过程控制统一体系结构的对象链接与嵌入)规范定义的服务类型和应用场景,将OPC UA规范定义的由服务生成的消息分为信息消息和通信上下文消息;其中,所述信息消息指的是用于传输设备信息的消息,所述通信上下文消息指的是用于创建、保持以及修改通信上下文的消息;
[0013]根据QoS(Quality of Service,服务质量)等级,为OPC UA规范定义的消息设定不同的优先级;其中,在进行调度时,优先级越高的消息越优先进行调度操作,且所述通信上下文消息的优先级高于所述信息消息的优先级;
[0014]基于设定的优先级及运行时间,进行OPC UA消息调度。
[0015]进一步地,基于设定的优先级及运行时间,进行OPC UA消息调度,包括:
[0016]通过预设算法保证所述通信上下文消息被优先调度;
[0017]在所述通信上下文消息全部处理完成后,基于预设规则,采用基于优先级和运行时间的调度算法来调度不同的信息消息。
[0018]进一步地,所述通过预设算法保证所述通信上下文消息被优先调度,包括:
[0019]步骤1,将所有服务按照服务对应的优先级加入到优先级队列中;其中,优先级队列根据服务的QoS等级对服务进行优先级排序,且生成通信上下文消息的服务所对应的优先级最高;
[0020]步骤2,接收客户端发送的消息,并将接收到的消息按照消息的优先级加入到消息队列中;
[0021]步骤3,在优先级队列中选取优先级最高的服务;
[0022]步骤4,对选取的服务的消息进行处理,并将处理结果发送给客户端;
[0023]步骤5,更新消息队列和优先级队列,如果当前服务还有未处理的消息,则将其放回优先级队列中,并更新优先级队列中的服务的优先级;
[0024]步骤6,重复执行步骤3至步骤5,直到消息队列为空或系统退本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于优先级及运行时间的OPC UA关键消息调度方法,其特征在于,所述基于优先级及运行时间的OPC UA关键消息调度方法包括:根据OPC UA(Object Linking and Embedding for Process Control Unified Architecture,过程控制统一体系结构的对象链接与嵌入)规范定义的服务类型和应用场景,将OPC UA规范定义的由服务生成的消息分为信息消息和通信上下文消息;其中,所述信息消息指的是用于传输设备信息的消息,所述通信上下文消息指的是用于创建、保持以及修改通信上下文的消息;根据QoS(Quality of Service,服务质量)等级,为OPC UA规范定义的消息设定不同的优先级;其中,在进行调度时,优先级越高的消息越优先进行调度操作,且所述通信上下文消息的优先级高于所述信息消息的优先级;基于设定的优先级及运行时间,进行OPC UA消息调度。2.如权利要求1所述的基于优先级及运行时间的OPC UA关键消息调度方法,其特征在于,基于设定的优先级及运行时间,进行OPC UA消息调度,包括:通过预设算法保证所述通信上下文消息被优先调度;在所述通信上下文消息全部处理完成后,基于预设规则,采用基于优先级和运行时间的调度算法来调度不同的信息消息。3.如权利要求2所述的基于优先级及运行时间的OPC UA关键消息调度方法,其特征在于,所述通过预设算法保证所述通信上下文消息被优先调度,包括:步骤1,将所有服务按照服务对应的优先级加入到优先级队列中;其中,优先级队列根据服务的QoS等级对服务进行优先级排序,且生成通信上下文消息的服务所对应的优先级最高;步骤2,接收客户端发送的消息,并将接收到的消息按照消息的优先级加入到消息队列中;步骤3,在优先级队列中选取优先级最高的服...

【专利技术属性】
技术研发人员:李卫刘乙恒孙雷王健全马彰超程化蕊施玉晨
申请(专利权)人:北京科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1