CN107819801A - 一种批量订阅/发布的方法 - Google Patents
一种批量订阅/发布的方法 Download PDFInfo
- Publication number
- CN107819801A CN107819801A CN201610822381.0A CN201610822381A CN107819801A CN 107819801 A CN107819801 A CN 107819801A CN 201610822381 A CN201610822381 A CN 201610822381A CN 107819801 A CN107819801 A CN 107819801A
- Authority
- CN
- China
- Prior art keywords
- opc
- issue
- entry
- subscription
- message
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种批量订阅/发布的方法。本发明通过批量订阅/发布的方式,由OPC网关对大量订阅条目/发布条目进行接收,拆分,重组,替换和发送,可以减小批量订阅/发布时OPC客户端及服务器计算负担,优化网络带宽。
Description
技术领域
本发明涉及用于过程控制的对象连接与嵌入(OPC,Object Linking andEmbedding(OLE)for Process Control)系统,具体涉及一种在OPC系统中进行批量订阅/发布的方法、OPC客户端、OPC服务器及OPC网关。
背景技术
随着“工业4.0”,“工业互联网”,“中国制造2025”等概念的兴起,传统制造技术开始和信息技术相融合,智能工厂的模型架构也成为了未来制造业工厂发展的范本。但是在目前制造业和信息技术融合的过程中,为了读写现场设备的数据信息,每一个应用软件开发商都需要编写专用的接口函数。由于现场设备的种类繁多,且产品的不断升级,往往给用户和软件开发商带来了巨大的工作负担。
为此,一些主要的工业厂商自发组成了OPC基金会,制定了OPC标准。OPC全称是Object Linking and Embedding(OLE,对象连接与嵌入)for Process Control,它的出现为基于视窗(Windows)系统的应用程序和现场过程控制应用建立了桥梁。OPC标准包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。现有的OPC系统可以实现数据读写,数据订阅/发布,历史数据读写,报警和事件等功能。
在智能工厂中,订阅/发布服务在数据获取中占有很大的比重,通过订阅/发布,可以实现数据自动备份,紧急情况报警,设备维护等应用。在OPC基金会发布的“OPC DataAccess Custom Interface Specification 3.0”中,提出了一个一对一的订阅/发布模型,在此模型下,OPC客户端首先向OPC服务器发起订阅请求,OPC服务器根据收到的订阅请求,基于订阅规则向OPC客户端发布数据。上述模型在一对一的应用场景中可以得到好的应用,不过在一对多的场景下,会造成一个订阅者分别和多个发布者建立连接,发送订阅请求,计算负担和通信接口的负担比较大,浪费网络带宽。设想以下几种场景:
a)一个负责数据备份的应用,在某个时间点向工厂内所有需要备份数据的设备发出订阅命令,让这些设备按照一定条件汇报数据,或是随时改变其数据备份策略,重新发送订阅命令。
b)一个设备维护的应用,在某个时间点向工厂内所有需要维护的设备发送订阅命令,要求各设备按一定要求回报工作状态,并且随时改变其汇报的频率。
c)同一设备的数据被不同应用订阅,在订阅的条件相同的情况下,当订阅条件被满足时,该设备需要同时向不同应用发布其数据。
以上场景存在着相同的问题,即当同一应用同时向大批量的设备订阅数据时,应用需要和每个设备分别建立连接,分别发送订阅数据请求消息,这对于应用的计算负担和通信接口的负担比较大,并且浪费网络带宽。同样的,当同一设备同时向不同应用发布数据,设备需要和每个应用分别建立连接,分别发布数据,这对于设备的计算负担和通信接口的负担比较大,并且浪费网络带宽。
因此,亟需一种能够在OPC系统中减小批量订阅/发布时OPC客户端及服务器计算负担,优化网络带宽的方法。
发明内容
本发明实施例要解决的技术问题是提供一种在OPC系统中进行批量订阅/发布的方法、OPC客户端、OPC服务器及OPC网关,用以在OPC系统中减小批量订阅/发布时OPC客户端及服务器计算负担,优化网络带宽。
为解决上述技术问题,本发明实施例提供的在OPC系统中进行批量订阅的方法,包括:
OPC客户端在需要向多个OPC服务器进行批量订阅时,向OPC网关发送用于请求批量订阅的订阅请求消息;
OPC客户端接收OPC网关返回的用于表示允许批量订阅的订阅请求响应消息;
OPC客户端向OPC网关发送用于发起批量订阅的订阅内容消息,所述订阅内容消息包括针对不同OPC服务器的订阅内容,所述订阅内容包括订阅参数和订阅条件;
OPC客户端接收OPC网关针对所述订阅内容消息返回的订阅内容响应消息。
优选的,上述方法还包括:
所述订阅内容消息还包括有订阅内容对应的时间延迟,所述时间延迟用于表示所述订阅内容到达至对应的OPC服务器的所用时长的上限值。
本发明实施例还提供了一种OPC系统中的批量订阅的方法,包括:
OPC网关接收OPC客户端发送的用于发起批量订阅的订阅内容消息,所述订阅内容消息包括针对不同OPC服务器的订阅内容,所述订阅内容包括订阅参数和订阅条件;
OPC网关解析所述订阅内容消息,生成多个订阅条目,每个订阅条目包括:作为订阅者的OPC客户端、作为发布者的OPC服务器、订阅内容;以及,将针对同一OPC服务器的订阅条目划分至同一订阅条目组,获得不同OPC服务器的订阅条目组;
OPC网关将各个订阅条目组中的订阅条目,发送给对应的OPC服务器。
优选的,上述方法中,在接收所述OPC客户端发送的所述订阅内容消息之前,所述方法还包括:所述OPC网关接收所述OPC客户端发送的用于请求批量订阅的订阅请求消息;所述OPC网关在支持批量订阅时,向所述OPC客户端发送用于表示允许批量订阅的订阅请求响应消息;
在接收所述OPC客户端发送的所述订阅内容消息的步骤之后,所述方法还包括:所述OPC网关向所述OPC客户端发送针对所述订阅内容消息的订阅内容响应消息。
优选的,上述方法中,所述订阅内容消息还包括有订阅内容对应的时间延迟,所述时间延迟用于表示所述订阅内容到达至对应的OPC服务器的所用时长的上限值;
所述将针对同一OPC服务器的订阅条目划分至同一订阅条目组,获得不同OPC服务器的订阅条目组,包括:在生成每个订阅条目时,将所述订阅内容对应的时间延迟,作为订阅条目的时间延迟,并在生成每个订阅条目后,根据该订阅条目的时间延迟以及该订阅条目在OPC网关处的等待时间,更新该订阅条目的剩余时间;以及,针对每一订阅条目组,按照剩余时间从小到大的先后顺序,将该订阅条目组中的订阅条目中的前N个订阅条目加入到订阅发送队列,将剩余的订阅条目加入到订阅等待队列,其中,N表示订阅消息中可以携带的订阅条目的最大数量;
所述将各个订阅条目组中的订阅条目,发送给对应的OPC服务器,包括:
针对每一订阅条目组,在该订阅条目组的订阅发送队列中的第1个订阅条目的剩余时间达到预设的告警值时,通过一条订阅消息将该订阅发送队列中的订阅条目发送给对应的OPC服务器,其中,所述告警值不小于OPC网关到对应的OPC服务器的传输时延。
优选的,上述方法还包括:
在订阅发送队列中的第1个订阅条目的剩余时间达到预设的告警值之前,若所述OPC网关新生成发送给该订阅条目组的OPC服务器的新订阅条目,则:
判断所述新订阅条目的剩余时间是否小于订阅发送队列中的第N个订阅条目;
若是,则将订阅发送队列中的第N个订阅条目从所述订阅发送队列移至订阅等待队列的队首,将所述新订阅条目加入至订阅发送队列,并按照剩余时间从小到大的先后顺序,对订阅发送队列进行重新排序。
本发明实施例还提供了一种OPC客户端,包括:
订阅请求发送单元,用于在需要向多个OPC服务器进行批量订阅时,向OPC网关发送用于请求批量订阅的订阅请求消息;
订阅请求响应接收单元,用于接收OPC网关返回的用于表示允许批量订阅的订阅请求响应消息;
订阅内容发送单元,用于向OPC网关发送用于发起批量订阅的订阅内容消息,所述订阅内容消息包括针对不同OPC服务器的订阅内容,所述订阅内容包括订阅参数和订阅条件;
订阅内容响应接收单元,用于接收OPC网关针对所述订阅内容消息返回的订阅内容响应消息。
优选的,所述订阅内容消息还包括有订阅内容对应的时间延迟,所述时间延迟用于表示所述订阅内容到达至对应的OPC服务器的所用时长的上限值。
本发明实施例还提供了一种OPC网关,包括:
批量订阅内容模块,用于接收OPC客户端发送的用于发起批量订阅的订阅内容消息,所述订阅内容消息包括针对不同OPC服务器的订阅内容,所述订阅内容包括订阅参数和订阅条件;
批量订阅适配模块,用于解析所述订阅内容消息,生成多个订阅条目,每个订阅条目包括:作为订阅者的OPC客户端、作为发布者的OPC服务器、订阅内容;以及,将针对同一OPC服务器的订阅条目划分至同一订阅条目组,获得不同OPC服务器的订阅条目组;
批量订阅输出模块,用于将各个订阅条目组中的订阅条目,发送给对应的OPC服务器。
优选的,上述OPC网关还包括:
批量订阅触发模块,用于在接收所述OPC客户端发送的所述订阅内容消息之前,接收所述OPC客户端发送的用于请求批量订阅的订阅请求消息;以及,在OPC网关支持批量订阅时,向所述OPC客户端发送用于表示允许批量订阅的订阅请求响应消息;
所述批量订阅内容模块,还用于在接收所述OPC客户端发送的所述订阅内容消息之后,向所述OPC客户端发送针对所述订阅内容消息的订阅内容响应消息。
优选的,上述OPC网关中,所述订阅内容消息还包括有订阅内容对应的时间延迟,所述时间延迟用于表示所述订阅内容到达至对应的OPC服务器的所用时长的上限值;
所述批量订阅适配模块,还用于在生成每个订阅条目时,将所述订阅内容对应的时间延迟,作为订阅条目的时间延迟,并在生成每个订阅条目后,根据该订阅条目的时间延迟以及该订阅条目在OPC网关处的等待时间,更新该订阅条目的剩余时间;以及,针对每一订阅条目组,按照剩余时间从小到大的先后顺序,将该订阅条目组中的订阅条目中的前N个订阅条目加入到订阅发送队列,将剩余的订阅条目加入到订阅等待队列,其中,N表示订阅消息中可以携带的订阅条目的最大数量;
所述批量订阅输出模块,具体用于针对每一订阅条目组,在该订阅条目组的在订阅发送队列中的第1个订阅条目的剩余时间达到预设的告警值时,通过一条订阅消息将该订阅发送队列中的订阅条目发送给对应的OPC服务器,其中,所述告警值不小于OPC网关到对应的OPC服务器的传输时延。
优选的,上述OPC网关中,所述批量订阅适配模块,还用于在订阅发送队列中的第1个订阅条目的剩余时间达到预设的告警值之前,若所述订阅内容解析模块新生成发送给该订阅条目组的OPC服务器的新订阅条目,则判断所述新订阅条目的剩余时间是否小于订阅发送队列中的第N个订阅条目;若是,则将订阅发送队列中的第N个订阅条目从所述订阅发送队列移至订阅等待队列的队首,将所述新订阅条目加入至订阅发送队列,并按照剩余时间从小到大的先后顺序,对订阅发送队列进行重新排序。
本发明实施例还提供了一种OPC系统中的批量发布的方法,包括:
OPC服务器在需要向多个OPC客户端进行批量发布时,向OPC网关发送用于请求批量发布的发布请求消息;
OPC服务器接收OPC网关返回的用于表示允许批量发布的发布请求响应消息;
OPC服务器向OPC网关发送用于发起批量发布的发布内容消息,所述发布内容消息包括针对不同OPC客户端的发布参数;
OPC客户接收OPC网关针对所述发布内容消息返回的发布内容响应消息。
优选的,所述发布内容消息还包括有发布参数对应的时间延迟,所述时间延迟用于表示发布参数到达至对应的OPC客户端的所用时长的上限值。
本发明实施例还提供了一种OPC系统中的批量发布的方法,包括:
OPC网关接收OPC服务器发送的用于发起批量发布的发布内容消息,所述发布内容消息包括针对不同OPC客户端的发布参数;
OPC网关解析所述发布内容消息,生成多个发布条目,每个发布条目包括:作为发布者的OPC服务器、作为订阅者的OPC客户端、发布参数;以及,将针对同一OPC客户端的发布条目划分至同一发布条目组,获得不同OPC客户端的发布条目组;
OPC网关将各个发布条目组中的发布条目,发送给对应的OPC客户端。
优选的,上述方法中,在接收所述OPC服务器发送的所述发布内容消息的步骤之前,所述方法还包括:OPC网关接收所述OPC服务器发送的用于请求批量发布的发布请求消息;OPC网关在支持批量发布时,向OPC服务器发送用于表示允许批量发布的发布请求响应消息;
在接收所述OPC服务器发送的所述发布内容消息的步骤之后,所述方法还包括:OPC网关向所述OPC服务器发送针对所述发布内容消息的发布内容响应消息;
优选的,上述方法中,所述发布内容消息还包括有发布参数对应的时间延迟,所述时间延迟用于表示发布参数到达至对应的OPC客户端的所用时长的上限值;
所述将针对同一OPC客户端的发布条目划分至同一发布条目组,获得不同OPC客户端的发布条目组,包括:在生成每个发布条目时,将发布参数对应的时间延迟,作为发布条目的时间延迟,并在生成每个发布条目后,根据该发布条目的时间延迟和该发布条目在OPC网关处的等待时间,更新该发布条目的剩余时间;以及,针对每一发布条目组,按照剩余时间从小到大的先后顺序,将该发布条目组中的发布条目中的前M个发布条目加入到发布发送队列,将剩余的发布条目加入到发布等待队列其中,M表示发布消息中可以携带的发布条目的最大数量;
所述将各个发布条目组中的发布条目,发送给对应的OPC服务器包括:
针对每一发布条目组,在该发布条目组的发布发送队列中的第1个发布条目的剩余时间达到预设的告警值时,通过一条发布消息将该发布发送队列中的发布条目发送给对应的OPC服务器,其中,所述告警值不小于OPC网关到对应的OPC服务器的传输时延。
优选的,上述方法中,在发布发送队列中的第1个发布条目的剩余时间达到预设的告警值之前,若所述OPC网关新生成发送给该发布条目组的OPC服务器的新发布条目,则:
判断所述新发布条目的剩余时间是否小于发布发送队列中的第M个发布条目;
若是,则将发布发送队列中的第M个发布条目从所述发布发送队列移至发布等待队列的队首,将所述新发布条目加入至发布发送队列,并按照剩余时间从小到大的先后顺序,对发布发送队列进行重新排序。
本发明实施例还提供了一种OPC系统中的OPC服务器,包括:
发布请求发送模块,用于在需要向多个OPC客户端进行批量发布时,向OPC网关发送用于请求批量发布的发布请求消息;
发布请求响应接收模块,用于接收OPC网关返回的用于表示允许批量发布的发布请求响应消息;
发布内容发送模块,用于向OPC网关发送用于发起批量发布的发布内容消息,所述发布内容消息包括针对不同OPC客户端的发布参数;
发布内容响应接收模块,用于接收OPC网关针对所述发布内容消息返回的发布内容响应消息。
优选的,所述发布内容消息还包括有发布参数对应的时间延迟,所述时间延迟用于表示发布参数到达至对应的OPC客户端的所用时长的上限值。
本发明实施例还提供了一种OPC系统中的OPC网关,包括:
批量发布内容模块,用于接收OPC服务器发送的用于发起批量发布的发布内容消息,所述发布内容消息包括针对不同OPC客户端的发布参数;
批量发布适配模块,用于解析所述发布内容消息,生成多个发布条目,每个发布条目包括:作为发布者的OPC服务器、作为订阅者的OPC客户端、发布参数;以及,将针对同一OPC客户端的发布条目划分至同一发布条目组,获得不同OPC客户端的发布条目组;
批量发布输出模块,用于将各个发布条目组中的发布条目,发送给对应的OPC客户端。
优选的,上述OPC网关还包括:
批量发布触发模块,用于在接收所述OPC服务器发送的发布内容消息之前,接收所述OPC服务器发送的用于请求批量发布的发布请求消息;以及,在OPC网关支持批量发布时,向OPC服务器发送用于表示允许批量发布的发布请求响应消息;
所述批量发布内容模块,还用于在接收所述OPC服务器发送的所述发布内容消息之后,向所述OPC服务器发送针对所述发布内容消息的发布内容响应消息;
优选的,上述OPC网关中,所述发布内容消息还包括有发布参数对应的时间延迟,所述时间延迟用于表示发布参数到达至对应的OPC客户端的所用时长的上限值;
所述批量发布适配模块,还用于在生成每个发布条目时,将发布参数对应的时间延迟,作为发布条目的时间延迟,并在生成每个发布条目后,根据该发布条目的时间延迟和该发布条目在OPC网关处的等待时间,更新该发布条目的剩余时间;以及,针对每一发布条目组,按照剩余时间从小到大的先后顺序,将该发布条目组中的发布条目中的前M个发布条目加入到发布发送队列,将剩余的发布条目加入到发布等待队列其中,M表示发布消息中可以携带的发布条目的最大数量;
所述批量发布输出模块,具体用于针对每一发布条目组,在该发布条目组的发布发送队列中的第1个发布条目的剩余时间达到预设的告警值时,通过一条发布消息将发布发送队列中的发布条目发送给对应的OPC服务器,所述告警值不小于OPC网关到对应的OPC服务器的传输时延。
优选的,上述OPC网关中,所述批量发布适配模块,还用于在发布发送队列中的第1个发布条目的剩余时间达到预设的告警值之前,若所述发布内容解析模块新生成发送给该发布条目组的OPC服务器的新发布条目,则判断所述新发布条目的剩余时间是否小于发布发送队列中的第M个发布条目;若是,则将发布发送队列中的第M个发布条目从所述发布发送队列移至发布等待队列的队首,将所述新发布条目加入至发布发送队列,并按照剩余时间从小到大的先后顺序,对发布发送队列进行重新排序。
与现有技术相比,本发明实施例提供的在OPC系统中进行批量订阅/发布的方法、OPC客户端、OPC服务器及OPC网关,通过批量订阅/发布的方式,由OPC网关对大量订阅条目/发布条目进行接收、拆分、重组、替换和发送,可以减小批量订阅/发布时OPC客户端及服务器计算负担,优化网络带宽。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做一简单介绍,显而易见的,下面描述的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可根据这些附图获得其他的附图。
图1为本发明实施例提供的OPC系统的一种架构示意图;
图2为本发明实施例的批量订阅的方法的整体流程示意图;
图3为本发明实施例的批量订阅的方法应用于OPC客户端时的流程图;
图4为本发明实施例的批量订阅的方法应用于OPC网关时的流程图;
图5为本发明实施例的OPC客户端的功能结构示意图;
图6为本发明实施例的OPC网关的功能结构示意图;
图7为本发明实施例的批量发布的方法的整体流程示意图;
图8为本发明实施例的批量发布的方法应用于OPC服务器时的流程图;
图9为本发明实施例的批量发布的方法应用于OPC网关时的流程图;
图10为本发明实施例的OPC服务器的功能结构示意图;
图11为本发明实施例的OPC网关的功能结构示意图;
图12为本发明实施例的OPC客户端的一种硬件结构示意图;
图13为本发明实施例的OPC网关的一种硬件结构示意图;
图14为本发明实施例的OPC服务器的一种硬件结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。在下面的描述中,提供诸如具体的配置和组件的特定细节仅仅是为了帮助全面理解本发明的实施例。因此,本领域技术人员应该清楚,可以对这里描述的实施例进行各种改变和修改而不脱离本发明的范围和精神。另外,为了清楚和简洁,省略了对已知功能和构造的描述。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
在本发明的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
图1为本发明实施例提供的OPC系统的一种架构示意图,OPC系统架构包含OPC客户端、OPC服务器和OPC网关。OPC系统通常采用多对多的模型,一个OPC客户端可以通过OPC网关与一个或者多个OPC服务器进行数据交互。同样的,一个OPC服务器也可以被一个或者多个OPC客户端所访问。在智能工厂的OPC系统中,OPC客户端通常但不仅限于部署在上层应用中,OPC服务器通常但不仅限于部署在底层设备中,作为OPC客户端访问底层设备的接口。OPC网关通常但不仅限于部署在智能工厂上层的信息网络层和智能工厂下层的控制网络层之间。
图2为本发明实施例提供的OPC系统中进行批量订阅的方法的整体流程示意图,如图2所示:
步骤21,OPC客户端在需要向多个OPC服务器进行批量订阅时,首先向OPC网关发送用于请求批量订阅的订阅请求消息。所述订阅请求消息包括消息类型字段,消息ID字段,消息认证字段,目的地址字段和源地址地段。
步骤22,OPC网关收到上述订阅请求消息后,对该订阅请求消息进行解析,确定该消息的类型,并在自身支持批量订阅功能时,发送用于表示允许批量订阅的订阅请求响应消息给上述OPC客户端。所述订阅请求响应消息包含消息类型字段,消息ID字段,消息认证结果字段,目的地址字段和源地址地段。
步骤23,OPC客户端收到OPC网关发送的订阅请求响应消息后,向OPC网关发送用于发起批量订阅的订阅内容消息。所述订阅内容消息包括消息类型字段,消息ID字段,订阅内容表,目的地址字段和源地址地段。所述订阅内容表包括针对不同OPC服务器的订阅内容,所述订阅内容包括订阅参数和订阅条件。
步骤24,OPC网关收到上述订阅内容消息后,对消息进行解析,并发送订阅内容响应消息给上述OPC客户端。所述订阅内容响应消息包括消息类型字段,消息ID字段,目的地址字段和源地址地段。
步骤25,OPC网关对上述订阅内容消息进行相关处理,对各个字段以及订阅内容表进行拆分,重组和替换等处理,生成各个OPC服务器对应的订阅条目组,每个订阅条目组包括一个或多个订阅条目,每个订阅条目包括:作为订阅者的OPC客户端、作为发布者的OPC服务器、订阅内容等信息。
步骤26,OPC网关通过订阅消息,将各个订阅条目组中的订阅条目分别发给相应的OPC服务器。
以上步骤中,本发明实施例定义了多个不同类型的新消息,如上述的订阅请求消息、订阅请求响应消息、订阅内容消息和订阅内容响应消息。为了使OPC客户端和OPC网关能够识别出上述消息,可以通过预先定义好各种消息的消息类型字段的值,从而可识别出对应的消息。下面介绍本发明实施例可以采用的消息格式进行举例说明,需要指出的是,本发明实施例上述消息还可以采用其他格式。
表1给出了订阅请求消息的格式,包括消息类型字段,消息ID字段,消息认证字段,目的地址字段和源地址地段。订阅请求消息的各个字段中,消息类型字段表示消息类型为请求批量订阅的消息(如hello消息)。消息ID字段表示该消息对应的ID,ID可以用消息的顺序编号来表示。消息认证字段为预定义的消息认证方法,可以采用现有技术各种已有的认证方法,本实施例对此不做具体限定。目的地址字段则是OPC网关的地址,源地址地段是OPC客户端的地址。
表1
表2给出了订阅请求响应消息的格式,包括消息类型字段,消息ID字段,消息认证结果字段,目的地址字段和源地址地段。订阅请求响应消息的各个字段中,消息类型字段表示消息类型为批量订阅的订阅请求响应消息。消息ID字段可以和上述订阅请求消息的消息ID字段保持一致,以表示是针对上述订阅请求消息的响应。消息认证结果字段为预定义的消息认证方法的认证结果。目的地址字段是OPC客户端的地址,源地址地段是OPC网关的地址。
表2
表3给出了订阅内容消息的格式,包括消息类型字段,消息ID字段,订阅内容表,目的地址字段和源地址地段。订阅内容消息的各个字段中,消息类型字段表示消息类型为订阅内容的请求消息。消息ID字段通常可以和上述订阅请求消息的消息ID字段保持一致,以表示是上述订阅请求消息的后续消息。目的地址字段是OPC网关的地址,源地址地段是OPC客户端的地址。
表3
进一步的,表4给出了上述订阅内容表的格式,包括主机名,IP地址,端口号,服务器名,组名,项名,订阅参数,订阅条件,时间延迟等多个字段。其中,主机名,IP地址和端口号这3个字段用于表示OPC服务器所在设备的相关信息,服务器名,组名和项名则代表OPC数据组织结构中的服务器、组和项。订阅内容包括订阅参数和订阅条件,其中,订阅参数表示订阅者(OPC客户端)想要订阅的具体参数,如某个值、时间戳或错误码等。订阅条件表示在什么条件下将订阅参数通知给订阅者。时间延迟表示上述订阅内容到达至对应的OPC服务器的所用时长的上限值,即期望在该时间延迟内将订阅内容发送给对应的OPC服务器。
主机名 | IP地址 | 端口 | 服务器 | 组 | 项 | 订阅参数 | 订阅条件 | 时间延迟 |
Host1 | 192.168.1.1 | 5 | .. | .. | .. | 值 | 按时间间隔 | 1s |
Host2 | 192.168.1.2 | 6 | .. | .. | .. | 时间戳 | 按阈值 | 500ms |
Host3 | 192.168.1.3 | 7 | .. | .. | .. | 错误码 | 按变化 | 700ms |
… | … | … | … | … | … | … | … | … |
表4
表5给出了订阅内容响应消息的格式,包括消息类型字段,消息ID字段,目的地址字段和源地址地段。其中,消息类型字段表示消息类型为订阅内容消息的响应消息,消息ID字段可以和上述订阅请求消息的消息ID字段保持一致。目的地址字段是OPC客户端的地址,源地址地段是OPC网关的地址。
表5
下面分别从OPC客户端和OPC服务器侧说明本发明实施例的批量订阅的方法。请参照图3,本发明实施例提供的OPC系统中的批量订阅的方法,在应用于OPC客户端时,包括以下步骤:
步骤31,OPC客户端在需要向多个OPC服务器进行批量订阅时,向OPC网关发送用于请求批量订阅的订阅请求消息。
步骤32,OPC客户端接收OPC网关返回的用于表示允许批量订阅的订阅请求响应消息。
这里,若OPC网关不支持批量订阅功能,或者OPC网关当前不允许批量订阅,则可以向OPC客户端发送用于表示拒绝批量订阅的拒绝消息或者不进行任何响应,这样,OPC客户端收到该拒绝消息,或者在等待一段预设时间后仍未接收到上述响应消息时,则可以结束本流程。
步骤33,OPC客户端向OPC网关发送用于发起批量订阅的订阅内容消息,所述订阅内容消息包括针对不同OPC服务器的订阅内容,所述订阅内容包括订阅参数和订阅条件。
这里,所述订阅内容消息还可以包括有订阅内容对应的时间延迟,所述时间延迟用于表示所述订阅内容到达至对应的OPC服务器的所用时长的上限值。
步骤34,OPC客户端接收OPC网关针对所述订阅内容消息返回的订阅内容响应消息。
通过以上步骤,OPC客户端在需要向多个OPC服务器进行批量订阅时,不必针对每个OPC服务器分别发送订阅请求,从而可以减少OPC客户端计算负担和通信接口的负担比大,节约网络带宽。
在上述步骤34之后,当OPC网关收到各个OPC服务器的发布内容后,提取其中发送给该OPC客户端的发布条目,并通过发布消息发送给该OPC客户端,所述发布消息中携带有多个发布条目,每个发布条目包括:作为发布者的OPC服务器、作为订阅者的OPC客户端、发布内容。此时,OPC客户端可以接收OPC网关发送的发布消息,解析所述发布消息,获得各个发布条目中的发布参数,发布参数为所述订阅参数的订阅结果,从而实现了订阅/发送的功能。
请参照图4,本发明实施例提供的OPC系统中的批量订阅的方法,在应用于OPC网关时,包括以下步骤:
步骤41,OPC网关接收OPC客户端发送的用于发起批量订阅的订阅内容消息,所述订阅内容消息包括针对不同OPC服务器的订阅内容。
这里,本实施例中OPC客户端将针对多个OPC服务器的订阅内容携带在同一消息中发送给OPC网关。
步骤42,OPC网关解析所述订阅内容消息,生成多个订阅条目,每个订阅条目包括:作为订阅者的OPC客户端、作为发布者的OPC服务器、订阅内容;以及,将针对同一OPC服务器的订阅条目划分至同一订阅条目组,获得不同OPC服务器的订阅条目组。
步骤43,OPC网关将各个订阅条目组中的订阅条目,发送给对应的OPC服务器。
以上步骤中,OPC网关可以接收一个或多个OPC客户端发送的订阅内容消息,解析并生成多个订阅条目,进而获得各个OPC服务器对应的订阅条目组,然后,将订阅条目组中的订阅条目发送给对应的OPC服务器。
下面通过一个具体示例,对步骤42中订阅条目及订阅条目组的生成作进一步说明。
假设OPC网关接收到某个OPC客户端发送的如表6所示的订阅内容表,表6中的订阅内容表是以同一订阅者(OPC客户端)为依据划分,包括主机名,IP地址,端口号,服务器名,组名,项名,订阅参数,订阅条件,时间延迟。表6中一共包括需要发送给3个OPC服务器的订阅内容,其中,主机名,IP地址和端口号这3个字段用于表示OPC服务器所在设备的相关信息,从而限定了一个具体的OPC服务器。
主机名 | IP地址 | 端口 | 服务器名 | 组名 | 项名 | 订阅参数 | 订阅条件 | 时间延迟 |
Host1 | 192.168.1.1 | 5 | .. | .. | .. | 值 | 按时间间隔 | 100ms |
Host2 | 192.168.1.2 | 6 | .. | .. | .. | 时间戳 | 按阈值 | 500ms |
Host3 | 192.168.1.3 | 7 | .. | .. | .. | 错误码 | 按变化 | 700ms |
Host1 | 192.168.1.1 | 5 | .. | .. | .. | ID | 按时间间隔 | 80ms |
Host2 | 192.168.1.2 | 6 | .. | .. | .. | 质量 | 按阈值 | 200ms |
Host1 | 192.168.1.1 | 5 | .. | .. | .. | 值 | 按时间间隔 | 110ms |
Host1 | 192.168.1.1 | 5 | .. | .. | .. | 时间戳 | 按阈值 | 70ms |
Host2 | 192.168.1.2 | 6 | .. | .. | .. | ID | 按变化 | 300ms |
… | … | … | … | … | … | … | … | … |
表6
表6中每一行代表一个订阅条目的OPC服务器(由主机名,IP地址和端口号这3个字段确定)、订阅内容(由订阅参数和订阅条件这2个字段确定)及其时间延迟。上述订阅条目的OPC客户端均是同一个客户端,可以由订阅内容消息的源地址来确定。
通过对上述表6中的参数进行拆分和重组,可以获得按照OPC服务器来划分的3个订阅条目组,每个订阅条目对应于1个OPC服务器。这3个订阅条目组分别如下表7~9所示。其中,表7表示主机名为Host1、IP地址为192.168.1.1、端口号为5的OPC服务器的订阅条目组,一共包括4个订阅条目,每一行表示一个订阅条目。类似的,表8表示主机名为Host2、IP地址为192.168.1.2、端口号为6的OPC服务器的订阅条目组,一共包括3个订阅条目,每一行表示一个订阅条目。表9表示主机名为Host3、IP地址为192.168.1.3、端口号为7的OPC服务器的订阅条目组,一共包括1个订阅条目,每一行表示一个订阅条目。需要指出的是,下述表7~9中均省略了作为订阅者的OPC客户端的信息。
表7
表8
表9
可以看出,通过OPC网关的重组处理,每个订阅条目组仅包括同一OPC服务器的订阅条目。
在上述步骤41之前,本实施例的上述方法还可以通过以下步骤来确定OPC网关是否支持批量订阅功能,具体包括:所述OPC网关接收所述OPC客户端发送的用于请求批量订阅的订阅请求消息;所述OPC网关在支持批量订阅时,向所述OPC客户端发送用于表示允许批量订阅的订阅请求响应消息。另外,如果OPC网关不支持批量订阅功能,或者OPC网关当前不允许批量订阅,则可以向OPC客户端发送用于表示拒绝批量订阅的拒绝消息或者不进行任何响应。
在上述步骤41中,OPC网关在接收所述OPC客户端发送的所述订阅内容消息之后,还可以向所述OPC客户端发送针对所述订阅内容消息的订阅内容响应消息,用以确认已收到上述订阅内容消息。
如前文所述,订阅内容消息的订阅内容表中还包括有订阅内容对应的时间延迟,所述时间延迟用于表示订阅内容到达至对应的OPC服务器的所用时长的上限值。为了合理的发送订阅消息,保证订阅内容发送的及时性,同时减少OPC网关发送的订阅消息量,节约网络带宽,本发明实施例可以预先根据网络最大传输单元(MTU,Maximum TransmissionUnit)的大小,确定每个订阅消息可以携带的订阅条目的最大数量N,然后,对待发送给同一OPC服务器的订阅条目进行排队,并根据时间延迟来控制订阅消息的发送。
具体的,在上述步骤42中:
OPC网关在生成每个订阅条目时,将所述订阅内容对应的时间延迟,作为订阅条目的时间延迟,并在生成每个订阅条目后,根据该订阅条目的时间延迟以及该订阅条目在OPC网关处的等待时间,更新该订阅条目的剩余时间;
例如,剩余时间的一种计算方式为:在忽略订阅内容消息传输至OPC网关的传输时延以及OPC网关对消息的解析处理时延时,剩余时间=时间延迟-等待时间;
再例如,可以预先获得OPC客户端到OPC网关的第一传输时延,从而所述剩余时间的另一种计算方式为,剩余时间=时间延迟-第一传输时延-等待时间。
然后,OPC网关针对每一订阅条目组,按照剩余时间从小到大的先后顺序,将该订阅条目组中的订阅条目中的前N个订阅条目加入到订阅发送队列,将剩余的订阅条目加入到订阅等待队列,其中,N表示订阅消息中可以携带的订阅条目的最大数量。如果订阅条目组的订阅条目的数量小于N,则将该订阅条目组的所有订阅条目都加入到订阅发送队列。
然后,在步骤43中,针对每一订阅条目组,在该订阅条目组的订阅发送队列中的第1个订阅条目的剩余时间达到预设的告警值时,通过消息合成方法,由一条订阅消息将该订阅发送队列中的多个订阅条目发送给对应的OPC服务器,其中,所述告警值不小于OPC网关到对应的OPC服务器的第二传输时延。
通过以上方式,只有在订阅发送队列中的第1个订阅条目达到告警值时才触发订阅消息的发送,从而既可以保证订阅条目发送的及时性,还可以避免频繁发送订阅消息导致的网络带宽的占用。
在上述步骤43中等待发送订阅消息的过程中,OPC网关可能会接收到新的订阅内容消息,并生成新订阅条目,此时,如果订阅发送队列中的第1个订阅条目的剩余时间尚未达到预设的告警值,OPC网关新生成了发送给该订阅条目组的OPC服务器的新订阅条目,则可以进一步判断所述新订阅条目的剩余时间是否小于订阅发送队列中的第N个订阅条目:
若是,则将订阅发送队列中的第N个订阅条目从所述订阅发送队列移至订阅等待队列的队首,将所述新订阅条目加入至订阅发送队列,并按照剩余时间从小到大的先后顺序,对订阅发送队列进行重新排序;
否则,将所述新订阅条目加入至订阅等待队列,并按照剩余时间从小到大的先后顺序,对订阅等待队列进行重新排序。
通过上述处理,本发明实施例对订阅发送队列中的订阅条目进行了更新替换处理,保证了新订阅条目能够按照剩余时间的优先级进行发送。
基于以上方法,本发明实施例还提供了实现上述方法的装置。请参照图5,本发明实施例提供了一种OPC系统中的OPC客户端50,如图5所示,该OPC客户端50包括:
订阅请求发送模块51,用于在需要向多个OPC服务器进行批量订阅时,向OPC网关发送用于请求批量订阅的订阅请求消息;
订阅请求响应接收模块52,用于接收OPC网关返回的用于表示允许批量订阅的订阅请求响应消息;
订阅内容发送模块53,用于向OPC网关发送用于发起批量订阅的订阅内容消息,所述订阅内容消息包括针对不同OPC服务器的订阅内容,所述订阅内容包括订阅参数和订阅条件;
订阅内容响应接收模块54,用于接收OPC网关针对所述订阅内容消息返回的订阅内容响应消息。
这里,所述订阅内容消息还包括有订阅内容对应的时间延迟,所述时间延迟用于表示所述订阅内容到达至对应的OPC服务器的所用时长的上限值。
本实施例的上述OPC客户端50还可以包括以下模块:
发布消息接收模块,用于接收OPC网关发送的发布消息,所述发布消息中携带有多个发布条目,每个发布条目包括:作为发布者的OPC服务器、作为订阅者的OPC客户端、发布内容;解析所述发布消息,获得各个发布条目中的发布内容。
如图6所示,本实施例提供了一种OPC网关60,包括:
批量订阅内容模块61,用于接收OPC客户端发送的用于发起批量订阅的订阅内容消息,所述订阅内容消息包括针对不同OPC服务器的订阅内容,所述订阅内容包括订阅参数和订阅条件;
批量订阅适配模块62,用于解析所述订阅内容消息,生成多个订阅条目,每个订阅条目包括:作为订阅者的OPC客户端、作为发布者的OPC服务器、订阅内容;以及,将针对同一OPC服务器的订阅条目划分至同一订阅条目组,获得不同OPC服务器的订阅条目组;
批量订阅输出模块63,用于将各个订阅条目组中的订阅条目,发送给对应的OPC服务器。
具体的,上述OPC网关60,还可以包括以下模块:
批量订阅触发模块,用于在接收所述OPC客户端发送的所述订阅内容消息之前,接收所述OPC客户端发送的用于请求批量订阅的订阅请求消息;以及,在OPC网关支持批量订阅时,向所述OPC客户端发送用于表示允许批量订阅的订阅请求响应消息;
所述批量订阅内容模块,还用于在接收所述OPC客户端发送的所述订阅内容消息之后,向所述OPC客户端发送针对所述订阅内容消息的订阅内容响应消息。
本实施例中,所述订阅内容消息还包括有订阅内容对应的时间延迟,所述时间延迟用于表示所述订阅内容到达至对应的OPC服务器的所用时长的上限值。所述批量订阅适配模块62,还可以用于在生成每个订阅条目时,将所述订阅内容对应的时间延迟,作为订阅条目的时间延迟,并在生成每个订阅条目后,根据该订阅条目的时间延迟以及该订阅条目在OPC网关处的等待时间,更新该订阅条目的剩余时间;以及,针对每一订阅条目组,按照剩余时间从小到大的先后顺序,将该订阅条目组中的订阅条目中的前N个订阅条目加入到订阅发送队列,将剩余的订阅条目加入到订阅等待队列,其中,N表示订阅消息中可以携带的订阅条目的最大数量;
所述批量订阅输出模块63,具体用于针对每一订阅条目组,在该订阅条目组的在订阅发送队列中的第1个订阅条目的剩余时间达到预设的告警值时,通过一条订阅消息将该订阅发送队列中的订阅条目发送给对应的OPC服务器,其中,所述告警值不小于OPC网关到对应的OPC服务器的传输时延。
这里,所述批量订阅适配模块62,还用于在订阅发送队列中的第1个订阅条目的剩余时间达到预设的告警值之前,若所述订阅内容解析单元新生成发送给该订阅条目组的OPC服务器的新订阅条目,则判断所述新订阅条目的剩余时间是否小于订阅发送队列中的第N个订阅条目;若是,则将订阅发送队列中的第N个订阅条目从所述订阅发送队列移至订阅等待队列的队首,将所述新订阅条目加入至订阅发送队列,并按照剩余时间从小到大的先后顺序,对订阅发送队列进行重新排序。
下面将继续说明本发明实施例提供的在OPC系统中进行批量发布的方法。
请参照图7,本发明实施例提供的OPC系统中进行批量发布的方法的整体流程示意图,如图7所示:
步骤71,OPC服务器在需要同时向多个不同的OPC客户端进行批量发布时,首先向OPC网关发送用于请求批量发布的发布请求消息;所述发布请求消息包括消息类型字段,消息ID字段,消息认证字段,目的地址字段和源地址地段。
步骤72,OPC网关收到上述发布请求消息后,对发布请求消息进行解析,并发送发布请求响应消息给上述OPC服务器;所述发布请求响应消息包含消息类型字段,消息ID字段,消息认证结果字段,目的地址字段和源地址地段。
步骤73,OPC服务器收到从OPC网关发来的发布请求响应消息后,发送用于发起批量发布的发布内容消息;所述批量发布内容消息包括消息类型字段,消息ID字段,发布内容表,目的地址字段和源地址地段,其中,所述发布内容表中包括针对不同OPC客户端的发布参数,所述发布参数是针对OPC客户端的订阅参数的订阅结果。
步骤74,OPC网关收到上述发布内容消息后,对发布内容消息进行解析,并发送发布内容响应消息给上述OPC服务器;所述发布内容响应消息包含消息类型字段,消息ID字段,目的地址字段和源地址地段。
步骤75,OPC网关对上述发布内容消息进行相关处理,对各个字段以及发布内容表进行拆分,重组和替换,生成各个OPC客户端对应的发布条目组,每个发布条目组包括一个或多个发布条目,每个发布条目包括作为发布者的OPC服务器、作为订阅者的OPC客户端、发布参数。
步骤76,OPC网关通过发布消息,将各个发布条目组中的发布条目分别发给相应的OPC客户端。
以上步骤定义了多个不同类型的新消息,如上述的发布请求消息、发布请求响应消息、发布内容消息和发布内容响应消息。为了使OPC客户端和OPC网关能够识别出上述消息,可以通过预先定义好各种消息的消息类型字段的值,从而可识别出对应的消息。下面介绍本发明实施例可以采用的消息格式进行举例说明,需要指出的是,本发明实施例上述消息还可以采用其他格式。
表10给出了发布请求消息的格式,包括消息类型字段,消息ID字段,消息认证字段,目的地址字段和源地址地段。发布请求消息的各个字段中,消息类型字段表示消息类型为请求批量发布的消息(如hello消息)。消息ID字段表示该消息对应的ID,ID可以用消息的顺序编号来表示。消息认证字段为预定义的消息认证方法,可以采用现有技术各种已有的认证方法,本实施例对此不做具体限定。目的地址字段则是OPC网关的地址,源地址地段是OPC服务器的地址。
表10
表11给出了发布请求响应消息的格式,包括消息类型字段,消息ID字段,消息认证结果字段,目的地址字段和源地址地段。发布请求响应消息的各个字段中,消息类型字段表示消息类型为批量发布的发布请求响应消息。消息ID字段可以和上述发布请求消息的消息ID字段保持一致,以表示是针对上述发布请求消息的响应。消息认证结果字段为预定义的消息认证方法的认证结果。目的地址字段是OPC服务器的地址,源地址地段是OPC网关的地址。
表11
表12给出了发布内容消息的格式,包括消息类型字段,消息ID字段,发布内容表,目的地址字段和源地址地段。发布内容消息的各个字段中,消息类型字段表示消息类型为发布内容的请求消息。消息ID字段通常可以和上述发布请求消息的消息ID字段保持一致,以表示是上述发布请求消息的后续消息。目的地址字段是OPC网关的地址,源地址地段是OPC服务器的地址。
表12
进一步的,表13给出了上述发布内容表的格式,包括主机名,IP地址,端口号,服务器名,组名,项名,发布参数,时间延迟等多个字段。其中,主机名,IP地址和端口号这3个字段用于表示OPC客户端所在设备的相关信息,服务器名,组名和项名则代表OPC数据组织结构中的服务器、组和项。发布参数表示针对订阅者的订阅参数所返回的结果,如某个值、时间戳或错误码等。时间延迟表示上述发布参数到达至对应的OPC客户端的所用时长的上限值,即期望在该时间延迟内将发布参数发送给对应的OPC客户端。
主机名 | IP地址 | 端口 | 服务器名 | 组名 | 项名 | 发布参数 | 时间延迟 |
Host4 | 192.168.1.4 | 8 | .. | .. | .. | 值 | 100ms |
Host5 | 192.168.1.5 | 9 | .. | .. | .. | 时间戳 | 500ms |
Host6 | 192.168.1.6 | 10 | .. | .. | .. | 错误码 | 700ms |
… | … | … | … | … | … | … | … |
表13
表14给出了发布内容响应消息的格式,包括消息类型字段,消息ID字段,目的地址字段和源地址地段。其中,消息类型字段表示消息类型为发布内容消息的响应消息,消息ID字段可以和上述发布请求消息的消息ID字段保持一致。目的地址字段是OPC服务器的地址,源地址地段是OPC网关的地址。
表14
下面分别从OPC服务器和OPC网关侧说明本发明实施例的批量发布的方法。请参照图8,本发明实施例提供的OPC系统中的批量发布的方法,在应用于OPC服务器时,包括以下步骤:
步骤81,OPC服务器在需要向多个OPC客户端进行批量发布时,向OPC网关发送用于请求批量发布的发布请求消息。
这里,OPC服务器处预先建立有针对OPC客户端的订阅关系,所述订阅关系可以参考前文的批量订阅的方法进行建立,还可以由网管人员手工建立。
步骤82,OPC服务器接收OPC网关返回的用于表示允许批量发布的发布请求响应消息。
这里,若OPC网关不支持批量发布功能,或者OPC网关当前不允许批量发布,则可以向OPC服务器发送用于表示拒绝批量发布的拒绝消息或者不进行任何响应,这样,OPC服务器收到该拒绝消息,或者在等待一段预设时间后仍未接收到上述响应消息时,则可以结束本流程。
步骤83,OPC服务器向OPC网关发送用于发起批量发布的发布内容消息,所述发布内容消息包括针对不同OPC客户端的发布参数。
这里,所述发布内容消息还可以包括有发布参数对应的时间延迟,所述时间延迟用于表示发布参数到达至对应的OPC客户端的所用时长的上限值。
步骤84,OPC客户接收OPC网关针对所述发布内容消息返回的发布内容响应消息。
通过以上步骤,OPC服务器在需要向多个OPC客户端进行批量发布时,不必针对每个OPC客户端分别发送发布请求,从而可以减少OPC服务器计算负担和通信接口的负担比大,节约网络带宽。
在上述步骤81之前,OPC服务器可以接收OPC网关发送的订阅消息,所述订阅消息中携带有多个订阅条目,每个订阅条目包括:作为发布者的OPC服务器、作为订阅者的OPC客户端、订阅内容,所述订阅内容包括订阅参数和订阅条件;然后,通过解析所述订阅消息,获取其中携带的订阅条目并建立订阅关系。后续OPC服务器可以根据订阅关系以及订阅条件,确定是否需要向对应的OPC客户端进行发布。
请参照图9,本发明实施例提供的OPC系统中的批量发布的方法,在应用于OPC网关时,包括以下步骤:
步骤91,OPC网关接收OPC服务器发送的用于发起批量发布的发布内容消息,所述发布内容消息包括针对不同OPC客户端的发布参数。
这里,发布参数是OPC客户端的订阅参数在满足订阅条件时的内容,本实施例中OPC服务器将多个OPC客户端的发布参数携带在同一消息中发送给OPC网关。
步骤92,OPC网关解析所述发布内容消息,生成多个发布条目,每个发布条目包括:作为发布者的OPC服务器、作为订阅者的OPC客户端、发布参数;以及,将针对同一OPC客户端的发布条目划分至同一发布条目组,获得不同OPC客户端的发布条目组。
步骤93,OPC网关将各个发布条目组中的发布条目,发送给对应的OPC客户端。
以上步骤中,OPC网关可以接收一个或多个OPC服务器发送的发布内容消息,解析并生成多个发布条目,进而获得各个OPC客户端对应的发布条目组,然后,将发布条目组中的发布条目发送给对应的OPC服务器。
下面通过一个具体示例,对步骤92中发布条目及发布条目组的生成作进一步说明。
假设OPC网关接收到某个OPC客户端发送的如表15所示的发布内容表,表5中的发布内容表是以同一发布者(OPC服务器)为依据划分,包括主机名,IP地址,端口号,服务器名,组名,项名,发布参数,时间延迟等。表15中一共包括需要发送给3个OPC客户端的发布内容,其中,主机名,IP地址和端口号这3个字段用于表示OPC客户端所在设备的相关信息,从而限定了一个具体的OPC客户端。
主机名 | IP地址 | 端口 | 服务器名 | 组名 | 项名 | 发布参数 | 时间延迟 |
Host4 | 192.168.1.4 | 8 | .. | .. | .. | 值 | 100ms |
Host5 | 192.168.1.5 | 9 | .. | .. | .. | 时间戳 | 500ms |
Host6 | 192.168.1.6 | 10 | .. | .. | .. | 错误码 | 700ms |
Host4 | 192.168.1.4 | 8 | .. | .. | .. | ID | 80ms |
Host5 | 192.168.1.5 | 9 | .. | .. | .. | 质量 | 200ms |
Host4 | 192.168.1.4 | 8 | .. | .. | .. | 值 | 110ms |
Host5 | 192.168.1.5 | 9 | .. | .. | .. | 时间戳 | 70ms |
Host4 | 192.168.1.4 | 8 | .. | .. | .. | ID | 300ms |
… | … | … | … | … | … | … | … |
表15
表15中每一行代表一个发布条目的OPC客户端(由主机名,IP地址和端口号这3个字段确定)、发布参数及其时间延迟。上述发布条目的OPC服务器均是同一个服务器,可以由发布内容消息的源地址来确定。
通过对上述表15中的参数进行拆分和重组,可以获得按照OPC客户端来划分的3个发布条目组,每个发布条目对应于1个OPC客户端。这3个发布条目组分别如下表16~18所示。其中,表16表示主机名为Host4、IP地址为192.168.1.4、端口号为8的OPC客户端的发布条目组,一共包括4个发布条目,每一行表示一个发布条目。类似的,表17表示主机名为Host5、IP地址为192.168.1.5、端口号为9的OPC客户端的发布条目组,一共包括3个发布条目,每一行表示一个发布条目。表18表示主机名为Host6、IP地址为192.168.1.6、端口号为10的OPC客户端的发布条目组,一共包括1个发布条目,每一行表示一个发布条目。需要指出的是,下述表16~18中均省略了作为发布者的OPC服务器的信息。
表16
表17
表18
可以看出,通过OPC网关的重组处理,每个发布条目组仅包括同一OPC客户端的发布条目。
在上述步骤91之前,本实施例的上述方法还可以通过以下步骤来确定OPC网关是否支持批量发布功能,具体包括:所述OPC网关接收所述OPC服务器发送的用于请求批量发布的发布请求消息;OPC网关在支持批量发布时,向OPC服务器发送用于表示允许批量发布的发布请求响应消息。另外,如果OPC网关不支持批量发布功能,或者OPC网关当前不允许批量发布,则可以向OPC服务器发送用于表示拒绝批量发布的拒绝消息或者不进行任何响应。
在上述步骤91中,OPC网关在接收到所述发布内容消息后,还可以向所述OPC服务器发送针对所述发布内容消息的发布内容响应消息,用以确认已收到上述发布内容消息。
如前文所述,发布内容消息的订阅内容表中还包括有发布参数对应的时间延迟,所述时间延迟用于表示发布参数到达至对应的OPC客户端的所用时长的上限值。为了合理的发送发布消息,保证发布参数发送的及时性,同时减少OPC网关发送的发布消息量,节约网络带宽,本发明实施例可以预先根据网络最大传输单元(MTU)的大小,确定每个发布消息可以携带的发布条目的最大数量M,然后,对待发送给同一OPC客户端的订阅条目进行排队,并根据时间延迟来控制发布消息的发送。
具体的,在上述步骤92中:
OPC网关在生成每个发布条目时,将发布参数对应的时间延迟,作为发布条目的时间延迟,并在生成每个发布条目后,根据该发布条目的时间延迟和该发布条目在OPC网关处的等待时间,更新该发布条目的剩余时间。
例如,剩余时间的一种计算方式为:在忽略发布内容消息传输至OPC网关的传输时延以及OPC网关对消息的解析处理时延时,剩余时间=时间延迟-等待时间;
再例如,可以预先获得OPC服务器到OPC网关的第二传输时延,从而所述剩余时间的另一种计算方式为,剩余时间=时间延迟-第二传输时延-等待时间。
然后,OPC网关针对每一发布条目组,按照剩余时间从小到大的先后顺序,将该发布条目组中的发布条目中的前M个发布条目加入到发布发送队列,将剩余的发布条目加入到发布等待队列其中,M表示发布消息中可以携带的发布条目的最大数量。如果发布条目组的发布条目的数量小于M,则将该发布条目组的所有发布条目都加入到发布发送队列。
然后,在步骤93中,针对每一发布条目组,在该发布条目组的发布发送队列中的第1个发布条目的剩余时间达到预设的告警值时,通过消息合成方法,使用一条发布消息将该发布发送队列中的多个发布条目发送给对应的OPC服务器,其中,所述告警值不小于OPC网关到对应的OPC服务器的第二传输时延。
通过以上方式,只有在发布发送队列中的第1个发布条目达到告警值时才触发发布消息的发送,从而既可以保证发布条目发送的及时性,还可以避免频繁发送发布消息导致的网络带宽的占用。
在上述步骤93中等待发送发布消息的过程中,OPC网关可能会接收到新的发布内容消息,并生成新发布条目,此时,如果发布发送队列中的第1个发布条目的剩余时间尚未达到预设的告警值,OPC网关新生成了发送给该发布条目组的OPC客户端的新发布条目,则可以进一步判断所述新发布条目的剩余时间是否小于发布发送队列中的第M个发布条目:
若是,则将发布发送队列中的第M个发布条目从所述发布发送队列移至发布等待队列的队首,将所述新发布条目加入至发布发送队列,并按照剩余时间从小到大的先后顺序,对所述发布发送队列进行重新排序;
否则,将所述新发布条目加入至所述发布等待队列,并按照剩余时间从小到大的先后顺序,对所述发布等待队列进行重新排序。
通过上述处理,本发明实施例对发布发送队列中的发布条目进行了更新替换处理,保证了新发布条目能够按照剩余时间的优先级进行发送。
基于以上方法,本发明实施例还提供了实现上述方法的装置。请参照图10,本发明实施例提供了一种OPC系统中的OPC服务器100,如图10所示,该OPC服务器100包括:
发布请求发送模块101,用于在需要向多个OPC客户端进行批量发布时,向OPC网关发送用于请求批量发布的发布请求消息;
发布请求响应接收模块102,用于接收OPC网关返回的用于表示允许批量发布的发布请求响应消息;
发布内容发送模块103,用于向OPC网关发送用于发起批量发布的发布内容消息,所述发布内容消息包括针对不同OPC客户端的发布参数;
发布内容响应接收模块104,用于接收OPC网关针对所述发布内容消息返回的发布内容响应消息。
这里,所述发布内容消息还包括有发布参数对应的时间延迟,所述时间延迟用于表示发布参数到达至对应的OPC客户端的所用时长的上限值。
本实施例的上述OPC服务器100还可以包括以下模块:
订阅消息接收模块,用于接收OPC网关发送的订阅消息,所述订阅消息中携带有多个订阅条目,每个订阅条目包括:作为发布者的OPC服务器、作为订阅者的OPC客户端、订阅内容,所述订阅内容包括订阅参数和订阅条件;解析所述订阅消息,获取其中携带的订阅条目并建立订阅关系。
如图11所示,本实施例提供了一种OPC网关110,包括:
批量发布内容模块111,用于接收OPC服务器发送的用于发起批量发布的发布内容消息,所述发布内容消息包括针对不同OPC客户端的发布参数;
批量发布适配模块112,用于解析所述发布内容消息,生成多个发布条目,每个发布条目包括:作为发布者的OPC服务器、作为订阅者的OPC客户端、发布参数;以及,将针对同一OPC客户端的发布条目划分至同一发布条目组,获得不同OPC客户端的发布条目组;
批量发布输出模块113,用于将各个发布条目组中的发布条目,发送给对应的OPC客户端。
具体的,上述OPC网关110还可以包括以下模块:
批量发布触发模块,用于在接收所述OPC服务器发送的发布内容消息之前,接收所述OPC服务器发送的用于请求批量发布的发布请求消息;以及,在OPC网关支持批量发布时,向OPC服务器发送用于表示允许批量发布的发布请求响应消息;
所述批量发布内容模块,还用于在接收所述OPC服务器发送的所述发布内容消息之后,向所述OPC服务器发送针对所述发布内容消息的发布内容响应消息;
本实施例中,所述发布内容消息还包括有发布参数对应的时间延迟,所述时间延迟用于表示发布参数到达至对应的OPC客户端的所用时长的上限值。所述批量发布适配模块112,还用于在生成每个发布条目时,将发布参数对应的时间延迟,作为发布条目的时间延迟,并在生成每个发布条目后,根据该发布条目的时间延迟和该发布条目在OPC网关处的等待时间,更新该发布条目的剩余时间;以及,针对每一发布条目组,按照剩余时间从小到大的先后顺序,将该发布条目组中的发布条目中的前M个发布条目加入到发布发送队列,将剩余的发布条目加入到发布等待队列其中,M表示发布消息中可以携带的发布条目的最大数量;
所述批量发布输出模块113,具体用于针对每一发布条目组,在该发布条目组的发布发送队列中的第1个发布条目的剩余时间达到预设的告警值时,通过一条发布消息将发布发送队列中的发布条目发送给对应的OPC服务器,所述告警值不小于OPC网关到对应的OPC服务器的传输时延。
这里,所述批量发布适配模块112,还用于在发布发送队列中的第1个发布条目的剩余时间达到预设的告警值之前,若所述发布内容解析模块新生成发送给该发布条目组的OPC服务器的新发布条目,则判断所述新发布条目的剩余时间是否小于发布发送队列中的第M个发布条目;若是,则将发布发送队列中的第M个发布条目从所述发布发送队列移至发布等待队列的队首,将所述新发布条目加入至发布发送队列,并按照剩余时间从小到大的先后顺序,对发布发送队列进行重新排序。
以上实施例分别说明了批量订阅和批量发布的两个流程。需要理解的是,上述批量订阅和批量发布两个流程,可以合并成一个流程,即先是通过批量订阅的流程,由OPC客户端进行批量订阅,OPC网关将订阅消息发送给OPC服务器,OPC服务器生成订阅关系。然后,OPC服务器根据订阅关系发起批量发布的流程,向OPC网关进行批量订阅,OPC网关将发布消息发送给OPC客户端。类似的,前文中介绍的OPC网关可以同时支持上述批量订阅和批量发布的流程,因此,作为一种实现方式,OPC网关可以同时包括有图6和图10中的相关模块。为节约篇幅,本文不再对此进行详细描述。
最后,本发明实施例进一步提供了OPC客户端、OPC网关、OPC服务器的硬件结构。
请参照图12,本发明实施例提供的OPC客户端120包括:
网络接口121、处理器122、输入设备123、存储设备124和显示设备125。上述各个接口和设备之间可以通过总线架构互连。总线架构可以是可以包括任意数量的互联的总线和桥。具体由处理器122代表的一个或者多个中央处理器(CPU),以及由存储设备124代表的一个或者多个存储设备的各种电路连接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其它电路连接在一起。可以理解,总线架构用于实现这些组件之间的连接通信。总线架构除包括数据总线之外,还包括电源总线、控制总线和状态信号总线,这些都是本领域所公知的,因此本文不再对其进行详细描述。
所述网络接口121,可以连接至网络(如因特网、局域网等),经由网络收发相关数据,例如从OPC网关接收消息或向OPC网关发送消息,接收到的消息可以保存在存储设备124中。
所述输入设备123,可以接收操作人员输入的各种指令,并发送给处理器122以供执行。所述输入设备123可以包括键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
所述显示设备125,可以将处理器122执行指令获得的结果进行显示,例如可以将OPC网关发送的响应消息进行显示。所述显示设备125可以包括显示器、投影设备等。
所述存储设备124,可以用于存储操作系统运行所必须的程序和数据,以及处理器122计算过程中的中间结果等数据。
可以理解,本发明实施例中的存储设备124可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。本文描述的装置和方法的存储设备124旨在包括但不限于这些和任意其它适合类型的存储设备,如硬盘等。
在一些实施方式中,存储设备124存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统1241和应用程序1242。
其中,操作系统1241,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序1242,包含各种应用程序,例如浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序1242中。
上述处理器122,当调用并执行所述存储设备124中所存储的应用程序和数据,具体的,可以是应用程序1242中存储的程序或指令时,可以用于在需要向多个OPC服务器进行批量订阅时,向OPC网关发送用于请求批量订阅的订阅请求消息;接收OPC网关返回的用于表示允许批量订阅的订阅请求响应消息;向OPC网关发送用于发起批量订阅的订阅内容消息,所述订阅内容消息包括针对不同OPC服务器的订阅内容,所述订阅内容包括订阅参数和订阅条件;以及,接收OPC网关针对所述订阅内容消息返回的订阅内容响应消息。
本发明上述实施例揭示的方法可以应用于处理器122中,或者由处理器122实现。处理器122可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器122中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器122可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储设备124,处理器122读取存储设备124中的信息,结合其硬件完成上述方法的步骤。
请参照图13,本发明实施例提供的OPC网关130的硬件结构示意图,如图13所示,该OPC网关130包括:
网络接口131、处理器132、输入设备133和存储设备134、和显示设备135。上述各个接口和设备之间可以通过总线架构互连。关于各个部件/单元的描述可以参考图13对应的部件/单元,此处不再赘述。
所述网络接口131,可以连接至网络(如因特网、局域网等),经由网络收发相关数据,例如向OPC客户端发送消息和接收OPC客户端发送的消息,和/或,从OPC服务器接收消息或向OPC网关发送服务器,其中接收到的消息并可以保存在存储设备134中。
所述输入设备133,可以接收操作人员输入的各种指令,并发送给处理器132以供执行。所述输入设备133可以包括键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
所述显示设备135,可以将处理器132执行指令获得的结果进行显示。所述显示设备135可以包括显示器、投影设备等。
所述存储设备134,用于存储操作系统运行所必须的程序和数据,以及处理器132计算过程中的中间结果等数据。
在一些实施方式中,存储设备134存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统1341和应用程序1342。
其中,操作系统1341,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序1342,包含各种应用程序,例如浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序1342中。
上述处理器132,当调用并执行所述存储设备134中所存储的应用程序和数据,具体的,可以是应用程序1342中存储的程序或指令时,可以用于接收OPC客户端发送的用于发起批量订阅的订阅内容消息,所述订阅内容消息包括针对不同OPC服务器的订阅内容,所述订阅内容包括订阅参数和订阅条件;解析所述订阅内容消息,生成多个订阅条目,每个订阅条目包括:作为订阅者的OPC客户端、作为发布者的OPC服务器、订阅内容;以及,将针对同一OPC服务器的订阅条目划分至同一订阅条目组,获得不同OPC服务器的订阅条目组;将各个订阅条目组中的订阅条目,发送给对应的OPC服务器。
上述处理器132,当调用并执行所述存储设备134中所存储的应用程序和数据时,还可以用于接收OPC服务器发送的用于发起批量发布的发布内容消息,所述发布内容消息包括针对不同OPC客户端的发布参数;解析所述发布内容消息,生成多个发布条目,每个发布条目包括:作为发布者的OPC服务器、作为订阅者的OPC客户端、发布参数;以及,将针对同一OPC客户端的发布条目划分至同一发布条目组,获得不同OPC客户端的发布条目组;将各个发布条目组中的发布条目,发送给对应的OPC客户端。
本发明上述实施例揭示的方法可以应用于处理器132中,或者由处理器132实现。处理器132可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器132中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器132可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储设备134,处理器132读取存储设备134中的信息,结合其硬件完成上述方法的步骤。
请参照图14,本发明实施例提供的OPC服务器140的硬件结构示意图,如图14所示,该OPC服务器140包括:
网络接口141、处理器142、输入设备143、存储设备144和显示设备145。上述各个接口和设备之间可以通过总线架构互连。关于各个部件/单元的描述可以参考图13对应的部件/单元,此处不再赘述。
所述网络接口141,可以连接至网络(如因特网、局域网等),经由网络收发相关数据,例如向OPC网关发送消息和接收OPC网关发送的消息,其中接收到的消息并可以保存在存储设备144中。
所述输入设备143,可以接收操作人员输入的各种指令,并发送给处理器142以供执行。所述输入设备143可以包括键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
所述显示设备145,可以将处理器142执行指令获得的结果进行显示。所述显示设备145可以包括显示器、投影设备等。
所述存储设备144,用于存储操作系统运行所必须的程序和数据,以及处理器142计算过程中的中间结果等数据。
在一些实施方式中,存储设备144存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统1441和应用程序1442。
其中,操作系统1441,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序1442,包含各种应用程序,例如浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序1442中。
上述处理器142,当调用并执行所述存储设备144中所存储的应用程序和数据,具体的,可以是应用程序1442中存储的程序或指令时,可以用于在需要向多个OPC客户端进行批量发布时,向OPC网关发送用于请求批量发布的发布请求消息;接收OPC网关返回的用于表示允许批量发布的发布请求响应消息;向OPC网关发送用于发起批量发布的发布内容消息,所述发布内容消息包括针对不同OPC客户端的发布参数;接收OPC网关针对所述发布内容消息返回的发布内容响应消息。
本发明上述实施例揭示的方法可以应用于处理器142中,或者由处理器142实现。处理器142可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器142中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器142可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储设备144,处理器142读取存储设备144中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ASIC)、数字信号处理器DSP)、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)、现场可编程门阵列(FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种用于过程控制的对象连接与嵌入OPC系统中的批量订阅的方法,其特征在于,包括:
OPC客户端在需要向多个OPC服务器进行批量订阅时,向OPC网关发送用于请求批量订阅的订阅请求消息;
OPC客户端接收OPC网关返回的用于表示允许批量订阅的订阅请求响应消息;
OPC客户端向OPC网关发送用于发起批量订阅的订阅内容消息,所述订阅内容消息包括针对不同OPC服务器的订阅内容,所述订阅内容包括订阅参数和订阅条件;
OPC客户端接收OPC网关针对所述订阅内容消息返回的订阅内容响应消息。
2.一种用于过程控制的对象连接与嵌入OPC系统中的批量订阅的方法,其特征在于,包括:
OPC网关接收OPC客户端发送的用于发起批量订阅的订阅内容消息,所述订阅内容消息包括针对不同OPC服务器的订阅内容,所述订阅内容包括订阅参数和订阅条件;
OPC网关解析所述订阅内容消息,生成多个订阅条目,每个订阅条目包括:作为订阅者的OPC客户端、作为发布者的OPC服务器、订阅内容;以及,将针对同一OPC服务器的订阅条目划分至同一订阅条目组,获得不同OPC服务器的订阅条目组;
OPC网关将各个订阅条目组中的订阅条目,发送给对应的OPC服务器。
3.根据权利要求2所述的方法,其特征在于,
在接收所述OPC客户端发送的所述订阅内容消息之前,所述方法还包括:所述OPC网关接收所述OPC客户端发送的用于请求批量订阅的订阅请求消息;所述OPC网关在支持批量订阅时,向所述OPC客户端发送用于表示允许批量订阅的订阅请求响应消息;
在接收所述OPC客户端发送的所述订阅内容消息的步骤之后,所述方法还包括:所述OPC网关向所述OPC客户端发送针对所述订阅内容消息的订阅内容响应消息。
4.根据权利要求2所述的方法,其特征在于,
所述订阅内容消息还包括有订阅内容对应的时间延迟,所述时间延迟用于表示所述订阅内容到达至对应的OPC服务器的所用时长的上限值;
所述将针对同一OPC服务器的订阅条目划分至同一订阅条目组,获得不同OPC服务器的订阅条目组,包括:在生成每个订阅条目时,将所述订阅内容对应的时间延迟,作为订阅条目的时间延迟,并在生成每个订阅条目后,根据该订阅条目的时间延迟以及该订阅条目在OPC网关处的等待时间,更新该订阅条目的剩余时间;以及,针对每一订阅条目组,按照剩余时间从小到大的先后顺序,将该订阅条目组中的订阅条目中的前N个订阅条目加入到订阅发送队列,将剩余的订阅条目加入到订阅等待队列,其中,N表示订阅消息中可以携带的订阅条目的最大数量;
所述将各个订阅条目组中的订阅条目,发送给对应的OPC服务器,包括:
针对每一订阅条目组,在该订阅条目组的订阅发送队列中的第1个订阅条目的剩余时间达到预设的告警值时,通过一条订阅消息将该订阅发送队列中的订阅条目发送给对应的OPC服务器,其中,所述告警值不小于OPC网关到对应的OPC服务器的传输时延。
5.根据权利要求4所述的方法,其特征在于,
在订阅发送队列中的第1个订阅条目的剩余时间达到预设的告警值之前,若所述OPC网关新生成发送给该订阅条目组的OPC服务器的新订阅条目,则:
判断所述新订阅条目的剩余时间是否小于订阅发送队列中的第N个订阅条目;
若是,则将订阅发送队列中的第N个订阅条目从所述订阅发送队列移至订阅等待队列的队首,将所述新订阅条目加入至订阅发送队列,并按照剩余时间从小到大的先后顺序,对订阅发送队列进行重新排序。
6.一种用于过程控制的对象连接与嵌入OPC系统中的批量发布的方法,其特征在于,包括:
OPC服务器在需要向多个OPC客户端进行批量发布时,向OPC网关发送用于请求批量发布的发布请求消息;
OPC服务器接收OPC网关返回的用于表示允许批量发布的发布请求响应消息;
OPC服务器向OPC网关发送用于发起批量发布的发布内容消息,所述发布内容消息包括针对不同OPC客户端的发布参数;
OPC客户接收OPC网关针对所述发布内容消息返回的发布内容响应消息。
7.一种用于过程控制的对象连接与嵌入OPC系统中的批量发布的方法,其特征在于,包括:
OPC网关接收OPC服务器发送的用于发起批量发布的发布内容消息,所述发布内容消息包括针对不同OPC客户端的发布参数;
OPC网关解析所述发布内容消息,生成多个发布条目,每个发布条目包括:作为发布者的OPC服务器、作为订阅者的OPC客户端、发布参数;以及,将针对同一OPC客户端的发布条目划分至同一发布条目组,获得不同OPC客户端的发布条目组;
OPC网关将各个发布条目组中的发布条目,发送给对应的OPC客户端。
8.根据权利要求7所述的方法,其特征在于,
在接收所述OPC服务器发送的所述发布内容消息的步骤之前,所述方法还包括:OPC网关接收所述OPC服务器发送的用于请求批量发布的发布请求消息;OPC网关在支持批量发布时,向OPC服务器发送用于表示允许批量发布的发布请求响应消息;
在接收所述OPC服务器发送的所述发布内容消息的步骤之后,所述方法还包括:OPC网关向所述OPC服务器发送针对所述发布内容消息的发布内容响应消息。
9.根据权利要求7所述的方法,其特征在于,
所述发布内容消息还包括有发布参数对应的时间延迟,所述时间延迟用于表示发布参数到达至对应的OPC客户端的所用时长的上限值;
所述将针对同一OPC客户端的发布条目划分至同一发布条目组,获得不同OPC客户端的发布条目组,包括:在生成每个发布条目时,将发布参数对应的时间延迟,作为发布条目的时间延迟,并在生成每个发布条目后,根据该发布条目的时间延迟和该发布条目在OPC网关处的等待时间,更新该发布条目的剩余时间;以及,针对每一发布条目组,按照剩余时间从小到大的先后顺序,将该发布条目组中的发布条目中的前M个发布条目加入到发布发送队列,将剩余的发布条目加入到发布等待队列其中,M表示发布消息中可以携带的发布条目的最大数量;
所述将各个发布条目组中的发布条目,发送给对应的OPC服务器包括:
针对每一发布条目组,在该发布条目组的发布发送队列中的第1个发布条目的剩余时间达到预设的告警值时,通过一条发布消息将该发布发送队列中的发布条目发送给对应的OPC服务器,其中,所述告警值不小于OPC网关到对应的OPC服务器的传输时延。
10.根据权利要求9所述的方法,其特征在于,
在发布发送队列中的第1个发布条目的剩余时间达到预设的告警值之前,若所述OPC网关新生成发送给该发布条目组的OPC服务器的新发布条目,则:
判断所述新发布条目的剩余时间是否小于发布发送队列中的第M个发布条目;
若是,则将发布发送队列中的第M个发布条目从所述发布发送队列移至发布等待队列的队首,将所述新发布条目加入至发布发送队列,并按照剩余时间从小到大的先后顺序,对发布发送队列进行重新排序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610822381.0A CN107819801A (zh) | 2016-09-13 | 2016-09-13 | 一种批量订阅/发布的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610822381.0A CN107819801A (zh) | 2016-09-13 | 2016-09-13 | 一种批量订阅/发布的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107819801A true CN107819801A (zh) | 2018-03-20 |
Family
ID=61601096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610822381.0A Pending CN107819801A (zh) | 2016-09-13 | 2016-09-13 | 一种批量订阅/发布的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107819801A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110247957A (zh) * | 2019-05-22 | 2019-09-17 | 东软集团股份有限公司 | 网络系统及其数据传输方法、电子设备 |
CN111614704A (zh) * | 2019-02-25 | 2020-09-01 | 株式会社日立制作所 | 一种数据订阅方法及网关 |
CN112688959A (zh) * | 2020-12-30 | 2021-04-20 | 北京天融信网络安全技术有限公司 | 一种地址保护方法、装置及电子设备 |
CN115152196A (zh) * | 2020-03-11 | 2022-10-04 | 华为技术有限公司 | 用于管理订阅者的订阅的设备和方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101128812A (zh) * | 2004-11-26 | 2008-02-20 | 因文西斯系统公司 | 用于工业过程控制环境的消息管理设施 |
CN101287168A (zh) * | 2008-06-13 | 2008-10-15 | 中兴通讯股份有限公司 | 一种移动即时通讯状态发布方法 |
CN101416178A (zh) * | 2006-03-31 | 2009-04-22 | 微软公司 | 管理丰富的在场集合 |
CN103368982A (zh) * | 2012-03-26 | 2013-10-23 | 阿里巴巴集团控股有限公司 | 信息数据的发送方法及装置 |
CN105530240A (zh) * | 2015-11-27 | 2016-04-27 | 机械工业仪器仪表综合技术经济研究所 | 多种工业协议向opc ua地址空间自动映射的方法 |
-
2016
- 2016-09-13 CN CN201610822381.0A patent/CN107819801A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101128812A (zh) * | 2004-11-26 | 2008-02-20 | 因文西斯系统公司 | 用于工业过程控制环境的消息管理设施 |
CN101416178A (zh) * | 2006-03-31 | 2009-04-22 | 微软公司 | 管理丰富的在场集合 |
CN101287168A (zh) * | 2008-06-13 | 2008-10-15 | 中兴通讯股份有限公司 | 一种移动即时通讯状态发布方法 |
CN103368982A (zh) * | 2012-03-26 | 2013-10-23 | 阿里巴巴集团控股有限公司 | 信息数据的发送方法及装置 |
CN105530240A (zh) * | 2015-11-27 | 2016-04-27 | 机械工业仪器仪表综合技术经济研究所 | 多种工业协议向opc ua地址空间自动映射的方法 |
Non-Patent Citations (1)
Title |
---|
詹先银: "基于发布/订阅的消息中间件技术及其应用", 《中国优秀硕士学位论文全文数据库(电子期刊)》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111614704A (zh) * | 2019-02-25 | 2020-09-01 | 株式会社日立制作所 | 一种数据订阅方法及网关 |
CN110247957A (zh) * | 2019-05-22 | 2019-09-17 | 东软集团股份有限公司 | 网络系统及其数据传输方法、电子设备 |
CN115152196A (zh) * | 2020-03-11 | 2022-10-04 | 华为技术有限公司 | 用于管理订阅者的订阅的设备和方法 |
CN115152196B (zh) * | 2020-03-11 | 2024-06-11 | 华为技术有限公司 | 用于管理订阅者的订阅的设备和方法 |
CN112688959A (zh) * | 2020-12-30 | 2021-04-20 | 北京天融信网络安全技术有限公司 | 一种地址保护方法、装置及电子设备 |
CN112688959B (zh) * | 2020-12-30 | 2022-07-12 | 北京天融信网络安全技术有限公司 | 一种地址保护方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102426549B (zh) | 一种Web的表单校验方法及其框架系统 | |
CN107819801A (zh) | 一种批量订阅/发布的方法 | |
CN108989885A (zh) | 视频文件转码系统、分割方法、转码方法及装置 | |
CN109741118A (zh) | 发票开具方法、装置、设备及计算机可读存储介质 | |
CN107909330A (zh) | 工作流数据处理方法、装置、存储介质和计算机设备 | |
CN105472412B (zh) | 一种区分智能电视状态的大数据处理方法 | |
WO2015081779A1 (zh) | 基于业务流程管理bpm的业务处理方法及装置 | |
CN107465759B (zh) | 一种消息服务器、消息下发方法以及终端 | |
CN109271579A (zh) | 一种基于输入信息的应用推荐方法、电子设备及存储介质 | |
CN104346652A (zh) | 电商订单与景区门禁管理系统对接通讯方法 | |
CN106101220A (zh) | 信息同步方法及装置、信息同步处理系统 | |
US20120150942A1 (en) | In browser real time collaboration lists and forms | |
CN101202754A (zh) | 一种网络信息的保存方法及保存系统 | |
CN101976394A (zh) | 数据采集和统计系统及方法 | |
CN107247775A (zh) | 一种数据更新方法、装置及电子设备 | |
CN110930011B (zh) | 一种工单管控系统、方法、及电子设备和存储介质 | |
CN114629904B (zh) | 一种分布式事件的处理方法、系统、设备及介质 | |
CN103970773B (zh) | 一种网页的页面更新方法及装置 | |
CN109711918A (zh) | 网上店铺开设方法、装置、设备及可读存储介质 | |
CN102868746B (zh) | 实现移动信息化的方法 | |
CN102096715A (zh) | 获取网页模版方法、系统,及生成单机网站的方法、系统 | |
CN103106217B (zh) | 一种留言信息的处理方法和设备 | |
CN107147732A (zh) | 图片处理方法、装置、客户端及服务端 | |
DE602006000968T2 (de) | Terminal Equipment | |
CN110443668A (zh) | 使用信标的计算机化的物品租赁 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180320 |