CN110287135B - 一种总线轮询方法和装置 - Google Patents
一种总线轮询方法和装置 Download PDFInfo
- Publication number
- CN110287135B CN110287135B CN201910517428.6A CN201910517428A CN110287135B CN 110287135 B CN110287135 B CN 110287135B CN 201910517428 A CN201910517428 A CN 201910517428A CN 110287135 B CN110287135 B CN 110287135B
- Authority
- CN
- China
- Prior art keywords
- polling
- polled
- offline
- online
- received
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000004044 response Effects 0.000 claims abstract description 137
- 238000003745 diagnosis Methods 0.000 claims abstract description 26
- 238000004891 communication Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/366—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请公开了一种总线轮询方法和装置,所述方法包括将被轮询设备分为离线设备组和在线设备组;在当前诊断周期内,对离线设备组的每个被轮询设备发送n次第一轮询请求,n≥1,对在线设备组的每个被轮询设备依次发送多次第二轮询请求;当接收到离线设备组的被轮询设备的第一轮询应答且根据接收到的第一轮询应答判断出该被轮询设备在线时,将该被轮询设备移入在线设备组;当没有接收到在线设备组的被轮询设备的第二轮询应答且根据没有接收到第二轮询应答判断出该被轮询设备离线时,将该被轮询设备移入离线设备组。本申请通过对离线设备和在线设备设置不同的轮询次数,使得不会因总线上有设备离线而导致轮询周期变大。
Description
技术领域
本申请涉及但不限于网络通信技术领域,尤其涉及一种总线轮询方法和装置。
背景技术
应答协议是工业自动化领域广泛应用的通信协议,它已经成为通用工业标准,在自动化通信领域得到了广泛应用。典型的应答协议,包括Modbus(一种串行通信协议)、国际电工委员会IEC60870-5-101标准、IEC60870-5-103标准等。在串行总线通信中,通信使用主(Master,也称主站)—从(Slave,也称从站、设备)技术,目前,在工业自动化领域,最广泛使用的串行总线为两线制RS485半双工模式。如图1所示,在同一时刻,主站仅能给一个从站发起初始化传输(查询,也叫请求,依次查询称为轮询),从站根据主站查询提供的数据作出相应反应,给主站回复的报文称为应答。我们特别地称正在和主站通信的设备为通信态设备。我们把串行总线上的主站及所有设备统称为通信节点(简称节点)。主站可单独和从站通信,也能以广播方式和所有从站通信。如果单独通信,从站返回一消息作为回应,如果是以广播方式查询的,则从站不作任何回应。
主站在准备新一次的请求时,一开始会优先检查是否有控制命令(包括遥控、遥调、校时等)需要发送,如果有,则获得控制信息并生成控制报文,发送控制报文并随后启动接收超时定时器,如果在超时时间内成功收到从站设备应答,则表明此次控制发送成功了。
除了控制命令外,我们将其他所有从站的普通请求置于轮询表中,所有设备都得排队等待主站轮询,如图2所示,不妨记轮询表中请求总数为N,N为所有设备的请求个数代数和。如图3所示,在传统的轮询方法中,主站按照轮询次序以及频率依次从轮询表中读取下一次需要发送的请求,生成报文,发送报文并随后启动超时定时器,如果在超时时间内成功收到从站设备应答,则表明此次请求发送成功了,主站处理接收到的应答数据,并准备下一次发送;如果在超时时间内没有接收到从站设备应答,则判断该从站设备为离线状态,并准备下一次发送。
众所周知,工业自动化领域,衡量自动化水平高低的一个重要指标就是轮询周期,通俗的讲,就是数据更新的快慢。显然,传统的轮询方法在设备都正常在线时,轮询周期表现正常,但一旦总线上有设备离线,轮询周期将受到明显影响,轮询周期会随着总线上离线设备的增多而显著加大。
发明内容
本申请提供了一种总线轮询方法和装置,能够使得轮询周期不会因总线上有设备离线而变大。
本发明实施例提供了一种总线轮询方法,包括:
将被轮询设备分为离线设备组和在线设备组;
在当前诊断周期内,对离线设备组的每个被轮询设备发送n次第一轮询请求,对在线设备组的每个被轮询设备依次发送多次第二轮询请求,n为大于或等于1的自然数;
检测是否接收到离线设备组的被轮询设备的第一轮询应答或在线设备组的被轮询设备的第二轮询应答,且根据接收到的第一轮询应答或第二轮询应答判断所述被轮询设备是否在线;
当接收到离线设备组的被轮询设备的第一轮询应答且根据接收到的第一轮询应答判断出该被轮询设备在线时,将该被轮询设备移入在线设备组;
当没有接收到在线设备组的被轮询设备的第二轮询应答且根据没有接收到第二轮询应答判断出该被轮询设备离线时,将该被轮询设备移入离线设备组。
在一种示例性实施例中,所述检测是否接收到离线设备组的被轮询设备的第一轮询应答或在线设备组的被轮询设备的第二轮询应答,包括:
检测是否在预设的第一超时时间间隔内,接收到所述离线设备组的被轮询设备的第一轮询应答;
检测是否在预设的第二超时时间间隔内,接收到所述在线设备组的被轮询设备的第二轮询应答。
在一种示例性实施例中,所述根据接收到的第一轮询应答判断出该被轮询设备在线,包括:
在所述第一超时时间间隔内,接收到所述被轮询设备的第一轮询应答,即判断出该所述被轮询设备在线;或者,
连续N次满足在所述第一超时时间间隔内,接收到所述被轮询设备的第一轮询应答,即判断出该所述被轮询设备在线,所述N为大于1的自然数。
在一种示例性实施例中,所述根据没有接收到第二轮询应答判断该被轮询设备离线,包括:
在所述第二超时时间间隔内,没有接收到所述被轮询设备的第二轮询应答,即判断出该所述被轮询设备离线;或者,
连续M次满足在所述第二超时时间间隔内,没有接收到所述被轮询设备的第二轮询应答,即判断出该所述被轮询设备离线,所述M为大于1的自然数。
在一种示例性实施例中,所述方法还包括:
当所有所述被轮询设备都被移入所述离线设备组时,在所述当前诊断周期内,按照预设的第一轮询次序对所述离线设备组的每个被轮询设备依次发送一次或多次所述第一轮询请求。
本发明实施例还提供了一种总线轮询装置,包括处理器及存储器,其中:所述处理器用于执行存储器中存储的程序,以实现如以上任一项所述的总线轮询方法的步骤。
本发明实施例还提供了一种总线轮询装置,包括分组模块和轮询模块,其中:
分组模块,用于将被轮询设备分为离线设备组和在线设备组;接收到轮询模块的第一通知,将所述离线设备组的被轮询设备移入在线设备组;接收到轮询模块的第二通知,将所述在线设备组的被轮询设备移入离线设备组;
轮询模块,用于在当前诊断周期内,对离线设备组的每个被轮询设备发送n次第一轮询请求,对在线设备组的每个被轮询设备依次发送多次第二轮询请求,n为大于或等于1的自然数;检测是否接收到离线设备组的被轮询设备的第一轮询应答或在线设备组的被轮询设备的第二轮询应答,且根据接收到的第一轮询应答或第二轮询应答判断所述被轮询设备是否在线;当接收到离线设备组的被轮询设备的第一轮询应答且根据接收到的第一轮询应答判断出该被轮询设备在线时,发送第一通知至分组模块;当没有接收到在线设备组的被轮询设备的第二轮询应答且根据没有接收到第二轮询应答判断出该被轮询设备离线时,发送第二通知至分组模块。
在一种示例性实施例中,所述轮询模块的检测是否接收到离线设备组的被轮询设备的第一轮询应答或在线设备组的被轮询设备的第二轮询应答,包括:
在预设的第一超时时间间隔内检测是否接收到所述被轮询设备的第一轮询应答;
在预设的第二超时时间间隔内检测是否接收到所述被轮询设备的第二轮询应答。
在一种示例性实施例中,所述轮询模块的根据接收到的第一轮询应答判断出该被轮询设备在线,包括:
在所述第一超时时间间隔内,接收到所述被轮询设备的第一轮询应答,即判断出该所述被轮询设备在线;或者,
连续N次满足在所述第一超时时间间隔内,接收到所述被轮询设备的第一轮询应答,即判断出该所述被轮询设备在线,所述N为大于1的自然数。
与相关技术相比,本申请的总线轮询方法和装置,通过在当前诊断周期内,对离线设备组和在线设备组的被轮询设备设置不同的轮询次数,使得不会因总线上有设备离线而导致轮询周期变大,恰恰相反,轮询周期反而随着离线设备增多而变小。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书、权利要求书以及附图中所描述的方案来实现和获得。
附图说明
附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为相关技术中的一种串行总线网络的结构示意图;
图2为相关技术中的一种轮询表的结构示意图;
图3为相关技术中的一种总线轮询方法的流程示意图;
图4为本发明实施例的一种总线轮询方法的流程示意图;
图5为本发明实施例的一种总线轮询装置的结构示意图;
图6为本发明实施例的另一种总线轮询方法的流程示意图。
具体实施方式
本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。
在串行总线通信中,由于控制命令非常稀疏,控制命令占用的通信带宽和普通轮询相比起来,我们认为可以忽略。简单起见,以下讨论中我们忽略控制命令。事实上,无论考虑或者不考虑控制命令,都不会影响本申请的专利性。
我们假设:1、设备正常通信时,一次应答需要50毫秒(包含应答后的休息时间,我们记一个请求正常应答的时间为t);2、设备应答的超时时间为500毫秒;3、总线上总共有5个设备;4、每个设备各自有4个请求。
显然,轮询表中请求总数N=5*4=20。我们记主站完成一轮总线上所有在线设备的数据更新所需要的时间为T(以下简称总线数据更新周期,或轮询周期)。我们特别的记T0,T1,T2,……分别表示为总线上分别对应0,1,2,……个设备离线时,完成一轮总线上所有在线设备的数据更新所需要的时间。显然,由于离线设备事实上无法更新数据,因此,T实际也表示了总线上所有设备数据更新所需要的时间。
当使用传统的总线轮询方法时,轮询周期T的取值情况如下:
当总线上所有设备都正常通信时,T0=N*t=20*50=1000(毫秒)。
当总线上有一个设备离线时,离线设备的每次请求所消耗的时间都将是一次超时时间500(毫秒),此时,T1=离线设备请求个数*超时时间+在线设备请求个数*t=4*500+16*50=2800(毫秒)。
当总线上有两个设备离线时,两个离线设备的每次请求所消耗的时间都将是一次超时时间500(毫秒),此时,T2=离线设备请求个数*超时时间+在线设备请求个数*t=(2*4)*500+12*50=4600(毫秒)。
当总线上有三个设备离线时,三个离线设备的每次请求所消耗的时间都将是一次超时时间500(毫秒),此时,T3=离线设备请求个数*超时时间+在线设备请求个数*t=(3*4)*500+8*50=6400(毫秒)。
传统轮询方法具有以下明显缺点:轮询周期T对总线上的离线设备高度敏感,一旦总线上有设备离线,轮询周期T将受到明显影响,轮询周期T会随着总线上离线设备的增多而显著加大。
本申请通过对串行总线上的离线设备和在线设备的轮询频率区别对待,离线设备采用大周期诊断、在线设备正常轮询的策略,不会因总线上有设备离线而导致轮询周期T变大,恰恰相反,轮询周期T反而随着离线设备增多而变小。本申请能够使得在线设备高效通信;离线设备单独大周期诊断;离线设备恢复为在线时,恢复该设备的高效通信;在线设备变为离线时,离开高效通信队列,进入大周期诊断。
实施例一总线轮询方法
本发明实施例提供了一种总线轮询方法,包括如下步骤:
步骤401:将被轮询设备分为离线设备组和在线设备组;
在启动初期时,所有设备状态未知,所有设备轮询机会均等,可以将所有被轮询设备全划入在线设备组,离线设备组的设备数为0。
步骤402:在当前诊断周期内,对离线设备组的每个被轮询设备发送n次第一轮询请求,对在线设备组的每个被轮询设备依次发送多次第二轮询请求,n为大于或等于1的自然数;
在一种示例性实施例中,所述步骤402包括:
在当前诊断周期内,按照预设的第一轮询次序对所述离线设备组的每个被轮询设备发送一次所述第一轮询请求,按照预设的第二轮询次序对所述在线设备组的每个被轮询设备依次发送多次所述第二轮询请求。
需要说明的是,在使用本申请的总线轮询方法时,在当前诊断周期内,对离线设备组的每个被轮询设备的轮询次数n是预先设置的一个比较小的数,在一个诊断周期内,在线设备组的每个被轮询设备的轮询次数要远大于离线设备组的每个被轮询设备的轮询次数。本申请对离线设备组与在线设备组的被轮询设备的轮询先后次序并不做限制,无论是先对离线设备组的每个被轮询设备发送第一轮询请求,还是先对在线设备组的每个被轮询设备发送所述第二轮询请求,或者轮询完一个离线设备后再轮询一个在线设备这样交替地发送轮询请求,都在本申请的保护范围之内。
示例性的,所述诊断周期可以设置为5分钟。所述诊断周期的配置方式可以通过在线修改方式或者启动时读取配置文件方式进行配置,本申请对此并不做任何限制。
步骤403:检测是否接收到离线设备组的被轮询设备的第一轮询应答或在线设备组的被轮询设备的第二轮询应答,且根据接收到的第一轮询应答或第二轮询应答判断所述被轮询设备是否在线;
在一种示例性实施例中,所述检测是否接收到离线设备组的被轮询设备的第一轮询应答或在线设备组的被轮询设备的第二轮询应答,具体为:
在预设的第一超时时间间隔内检测是否接收到所述离线设备组的被轮询设备的第一轮询应答;或者,
在预设的第二超时时间间隔内,检测是否接收到所述在线设备组的被轮询设备的第二轮询应答。
在本实施例的一示例中,所述第一超时时间间隔的值可以等于所述第二超时时间间隔的值。所述诊断周期的值通常远大于所述第一超时时间间隔的值或者所述第二超时时间间隔的值。
步骤404:当接收到离线设备组的被轮询设备的第一轮询应答且根据接收到的第一轮询应答判断出该被轮询设备在线时,将该被轮询设备移入在线设备组;
在一种示例性实施例中,所述根据接收到的第一轮询应答判断出该被轮询设备在线,包括:
在所述第一超时时间间隔内,接收到所述被轮询设备的第一轮询应答,即判断出该所述被轮询设备在线;或者,
连续N次满足在所述第一超时时间间隔内,接收到所述被轮询设备的第一轮询应答,即判断出该所述被轮询设备在线,所述N为大于1的自然数。
需要说明的是,离线设备变为在线设备的策略变化,例如,收到一次离线设备的应答即认为该离线设备变为在线,或是连续三次收到该离线设备的应答才认为该离线设备变为在线,这种次数可变化的策略,均视为本申请的保护范围之内。
在一种示例性实施例中,所述方法还包括:
当在所述第一超时时间间隔内,没有接收到所述离线设备组的被轮询设备的第一轮询应答时,判断出该所述被轮询设备仍为离线状态,准备发送下一次轮询请求。
步骤405:当没有接收到在线设备组的被轮询设备的第二轮询应答且根据没有接收到第二轮询应答判断出该被轮询设备离线时,将该被轮询设备移入离线设备组。
在一种示例性实施例中,所述根据没有接收到第二轮询应答判断该被轮询设备离线,包括:
在所述第二超时时间间隔内,没有接收到所述被轮询设备的第二轮询应答,即判断出该所述被轮询设备离线;或者,
连续M次满足在所述第二超时时间间隔内,没有接收到所述被轮询设备的第二轮询应答,即判断出该所述被轮询设备离线,所述M为大于1的自然数。
需要说明的是,所述在线设备变为离线设备的策略变化,例如,在线设备出现一次超时即认为该在线设备变为离线,或者是连续出现三次超时即认为该在线设备变为离线,又或者是连续出现十次超时即认为该在线设备变为离线,这种次数可变化的策略,均视为本申请的保护范围之内。
在一种示例性实施例中,所述方法还包括:
当在所述第二超时时间间隔内,接收到所述在线设备组的被轮询设备的第二轮询应答时,判断出该所述被轮询设备仍为在线状态,处理所述第二轮询应答,并准备发送下一次轮询请求。
在一种示例性实施例中,所述方法还包括:
当所有所述被轮询设备都被移入所述离线设备组时,在所述当前诊断周期内,按照所述预设的第一轮询次序对所述离线设备组的每个被轮询设备依次发送一次或多次所述第一轮询请求,并检测是否在预设的第一超时时间间隔内,接收到被轮询设备的第一轮询应答。
本申请的总线轮询方法通过对串行总线上的离线设备和在线设备的轮询频率区别对待,离线设备采用大周期诊断、在线设备快速正常轮询的策略,使得轮询周期T不会因总线上有设备离线而变大,恰恰相反,轮询周期T反而随着离线设备增多而变小。
实施例二总线轮询装置
本发明实施例还提供了一种总线轮询装置,包括处理器及存储器,其中:所述处理器用于执行存储器中存储的程序,以实现如以上任一项所述的总线轮询方法的步骤。
实施例三总线轮询装置
如图5所示,本发明实施例还提供了一种总线轮询装置,包括分组模块501和轮询模块502,其中:
分组模块501,用于将被轮询设备分为离线设备组和在线设备组;接收到轮询模块502的第一通知,将所述离线设备组的被轮询设备移入在线设备组;接收到轮询模块502的第二通知,将所述在线设备组的被轮询设备移入离线设备组;
轮询模块502,用于在当前诊断周期内,对离线设备组的每个被轮询设备发送n次第一轮询请求,对在线设备组的每个被轮询设备依次发送多次第二轮询请求,n为大于或等于1的自然数;检测是否接收到离线设备组的被轮询设备的第一轮询应答或在线设备组的被轮询设备的第二轮询应答,且根据接收到的第一轮询应答或第二轮询应答判断所述被轮询设备是否在线;当接收到离线设备组的被轮询设备的第一轮询应答且根据接收到的第一轮询应答判断出该被轮询设备在线时,发送第一通知至分组模块501;当没有接收到在线设备组的被轮询设备的第二轮询应答且根据没有接收到第二轮询应答判断出该被轮询设备离线时,发送第二通知至分组模块501。
在启动初期时,所有设备状态未知,所有设备轮询机会均等,所述分组模块501可以将所有被轮询设备全划入在线设备组,离线设备组的设备数为0。
在一种示例性实施例中,所述轮询模块502的对离线设备组的每个被轮询设备发送n次第一轮询请求,对在线设备组的每个被轮询设备依次发送多次第二轮询请求,包括:
按照预设的第一轮询次序对所述离线设备组的每个被轮询设备发送一次所述第一轮询请求;
按照预设的第二轮询次序对所述在线设备组的每个被轮询设备依次发送多次所述第二轮询请求。
在一种示例性实施例中,所述轮询模块502的检测是否接收到离线设备组的被轮询设备的第一轮询应答或在线设备组的被轮询设备的第二轮询应答,包括:
在预设的第一超时时间间隔内检测是否接收到所述离线设备组的被轮询设备的第一轮询应答;
在预设的第二超时时间间隔内检测是否接收到所述在线设备组的被轮询设备的第二轮询应答。
在一种示例性实施例中,所述轮询模块502的根据接收到的第一轮询应答判断出该被轮询设备在线,包括:
在所述第一超时时间间隔内,接收到所述被轮询设备的第一轮询应答,即判断出该所述被轮询设备在线;或者,
连续N次满足在所述第一超时时间间隔内,接收到所述被轮询设备的第一轮询应答,即判断出该所述被轮询设备在线,所述N为大于1的自然数。
在一种示例性实施例中,所述轮询模块502还用于:
当在所述第一超时时间间隔内,没有接收到所述离线设备组的被轮询设备的第一轮询应答时,判断出该所述被轮询设备仍为离线状态,准备发送下一次轮询请求。
在一种示例性实施例中,所述轮询模块502的根据没有接收到第二轮询应答判断该被轮询设备离线,包括:
在所述第二超时时间间隔内,没有接收到所述被轮询设备的第二轮询应答,即判断出该所述被轮询设备离线;或者,
连续M次满足在所述第二超时时间间隔内,没有接收到所述被轮询设备的第二轮询应答,即判断出该所述被轮询设备离线,所述M为大于1的自然数。
在一种示例性实施例中,所述轮询模块502还用于:
当在所述第二超时时间间隔内,接收到所述在线设备组的被轮询设备的第二轮询应答时,判断出该所述被轮询设备仍为在线状态,处理所述第二轮询应答,并准备发送下一次轮询请求。
在一种示例性实施例中,所述分组模块501还用于,当所有所述被轮询设备都被移入所述离线设备组时,发送第三通知至所述轮询模块502;
所述轮询模块502还用于,接收到所述分组模块501的第三通知,在所述当前诊断周期内,按照所述预设的第一轮询次序对所述离线设备组的每个被轮询设备依次发送一次或多次所述第一轮询请求,并检测是否在预设的第一超时时间间隔内,接收到被轮询设备的第一轮询应答。
实施例四具体应用实例
本申请针对上述传统轮询方法出现的轮询周期T会随着总线上离线设备的增多而显著加大的缺点,进行了针对性的优化。我们对离线设备和在线设备的轮询频率区别对待,我们把普通轮询表的请求总数N分为两类,分别是在线轮询表请求数Nx和离线轮询表请求数Ny,即任何时刻N=Nx+Ny。启动初期,设备状态未知,所有设备轮询机会均等,即启动初期Nx=N,Ny=0。在使用本申请的总线轮询方法时,需要先启动一个诊断周期定时器。如图6所示,所述总线轮询方法包括:从在线设备轮询表Nx中依次读取一条请求,生成报文,发送报文并启动超时定时器,检测是否在预设的超时时间间隔内成功接收到设备应答,如果在预设的超时时间间隔内成功接收到设备应答,则处理接收到的设备应答数据;如果在预设的超时时间间隔内没有接收到设备应答,则进行超时处理(此处的超时处理可以是:将离线设备的请求从Nx中挪出,并移入Ny),并准备发送下一次轮询请求;检测是否到了离线设备的诊断周期,如果到了离线设备的诊断周期,从离线设备轮询表Ny中依次读取一条请求,生成报文,发送报文并启动超时定时器,进入新一次的应答处理;如果未到离线设备的诊断周期,从在线设备轮询表Nx中依次读取一条请求,生成报文,发送报文并启动超时定时器,进入新一次的应答处理。
本申请中,所有离线设备的请求将从Nx中挪出,并被归入Ny;当离线设备变为在线时,其请求将从Ny挪入Nx中。Ny中的离线设备请求采用单独大周期诊断(诊断周期可配置,如5分钟一次),Nx中在线设备请求按正常模式轮询(高效通信),此后,当离线设备恢复为在线时,立即恢复该设备为高效通信,即把恢复通信的设备的请求从Ny中挪到Nx中。类似地,当在线设备变为离线时,立即离开高效通信队列,进入大周期诊断,即把通信刚中断设备的请求从Nx中挪到Ny中。注意,以上所有情形,任何时刻总会有N=Nx+Ny。
仍以上面例子为例:1、设备正常通信时,一次应答需要50毫秒;2、设备应答的超时时间为500毫秒;3、总线上总共有5个设备;4、每个设备各自有4个请求;5、离线设备的诊断周期为5分钟。
我们特别的记T1y,T2y,……分别表示为总线上分别对应1,2,……个设备离线时,依次给这1,2,……个离线设备,每个设备发送只一次诊断请求所需要的时间的代数和。显然,T1y=1(离线设备个数)*500(超时时间,毫秒)=500(毫秒),T2y=2*500=1000(毫秒),T3y=3*500=1500(毫秒),以此类推。
我们特别的记T1x,T2x,……分别表示为总线上分别对应1,2,……个设备离线时,依次给所有在线设备,每个在线设备遍历所在设备所有请求所需要的时间的代数和。显然,T1x=4(在线设备个数)*4(每个设备请求个数)*50(t)=800(毫秒),T2x=3*4*50=600(毫秒),T3x=2*4*50=400(毫秒),以此类推。
当总线上所有设备都正常通信时,T0=N*t=20*50=1000(毫秒)。
当总线上有一个设备离线时,在每5分钟(300秒,即300000毫秒)的通信时间里,离线设备占用的时间为T1y=500(毫秒),其余时间(300000-500=299500毫秒)均为在线设备的通信时间。离线设备的每次请求所消耗的时间都将是一次超时时间,即T1y=500(毫秒);而在线设备完成一次遍历需要的时间T1x=800(毫秒),即在299500毫秒的时间里,在线设备可以完成299500/800=374.375次轮询(为了计算严谨性,我们保留小数点)。换言之,每300000毫秒内,总计完成了375.375轮设备数据更新,其中包括一次对离线设备的诊断、374.375轮在线设备的轮询。此时,T1=300000/375.375=799.20毫秒。
当总线上有两个设备离线时,在每5分钟(300秒,即300000毫秒)的通信时间里,离线设备占用的时间为T2y=1000(毫秒),其余时间(300000-1000=299000毫秒)均为在线设备的通信时间。在线设备完成一次遍历需要的时间T2x=600(毫秒),即在299000毫秒的时间里,在线设备可以完成299000/600=498.33次轮询(为了计算严谨性,我们保留小数点)。换言之,每300000毫秒内,总计完成了500.33轮设备数据更新,其中包括两次对离线设备的诊断、498.33轮在线设备的轮询。此时,T2=300000/500.33=599.60毫秒。
当总线上有三个设备离线时,在每5分钟(300秒,即300000毫秒)的通信时间里,离线设备占用的时间为T3y=1500(毫秒),其余时间(300000-1500=298500毫秒)均为在线设备的通信时间。在线设备完成一次遍历需要的时间T3x=400(毫秒),即在298500毫秒的时间里,在线设备可以完成298500/400=746.25次轮询(为了计算严谨性,我们保留小数点)。换言之,每300000毫秒内,总计完成了749.25轮设备数据更新,其中包括三次对离线设备的诊断、746.25轮在线设备的轮询。此时,T3=300000/749.25=400.40毫秒。
综上所述,使用本申请的总线轮询方法和装置,通过对串行总线上的离线设备和在线设备的轮询频率区别对待,离线设备采用大周期诊断、在线设备正常轮询的策略,总线数据更新周期T不会因总线上有设备离线而会导致T变大,恰恰相反,T反而随着离线设备增多而变的更小,即数据更新更反而更快了。
进一步地,由于离线设备的诊断周期(分钟级)通常远大于一个请求正常应答的时间t(十毫秒级),即在一轮离线设备诊断的大周期内,实际绝大部分时间都是在线设备在正常轮询(快速通信),一个接一个的大诊断周期构成了总线持续的通信。因此,采用本申请的总线轮询方法的轮询周期T可以简单表示为:
T=(在线设备数/总设备数)╳T0。
特别地,当总线上在线设备数为0,即所有设备均离线时,总线上没有设备的数据能更新了,即T为0。
所有设备均离线时,由于没有设备需要快速轮询,也谈不上设备需要大周期轮询,这时,本申请的策略是,所有设备都是对等的普通轮询,即每隔一个超时时间(500毫秒)会依次给每个设备发送一个请求。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (10)
1.一种总线轮询方法,其特征在于,包括:
将被轮询设备分为离线设备组和在线设备组;
在当前诊断周期内,对离线设备组的每个被轮询设备发送1次第一轮询请求,对在线设备组的每个被轮询设备依次发送多次第二轮询请求,其中,离线设备的诊断周期为分钟级,一个轮询请求应答的时间为毫秒级;
检测是否接收到离线设备组的被轮询设备的第一轮询应答或在线设备组的被轮询设备的第二轮询应答,且根据接收到的第一轮询应答或第二轮询应答判断所述被轮询设备是否在线;
当接收到离线设备组的被轮询设备的第一轮询应答且根据接收到的第一轮询应答判断出该被轮询设备在线时,将该被轮询设备移入在线设备组;
当没有接收到在线设备组的被轮询设备的第二轮询应答且根据没有接收到第二轮询应答判断出该被轮询设备离线时,将该被轮询设备移入离线设备组。
2.根据权利要求1所述的总线轮询方法,其特征在于,所述检测是否接收到离线设备组的被轮询设备的第一轮询应答或在线设备组的被轮询设备的第二轮询应答,包括:
检测是否在预设的第一超时时间间隔内,接收到所述离线设备组的被轮询设备的第一轮询应答;
检测是否在预设的第二超时时间间隔内,接收到所述在线设备组的被轮询设备的第二轮询应答。
3.根据权利要求2所述的总线轮询方法,其特征在于,所述根据接收到的第一轮询应答判断出该被轮询设备在线,包括:
在所述第一超时时间间隔内,接收到所述被轮询设备的第一轮询应答,即判断出该所述被轮询设备在线;或者,
连续N次满足在所述第一超时时间间隔内,接收到所述被轮询设备的第一轮询应答,即判断出该所述被轮询设备在线,所述N为大于1的自然数。
4.根据权利要求2所述的总线轮询方法,其特征在于,所述根据没有接收到第二轮询应答判断该被轮询设备离线,包括:
在所述第二超时时间间隔内,没有接收到所述被轮询设备的第二轮询应答,即判断出该所述被轮询设备离线;或者,
连续M次满足在所述第二超时时间间隔内,没有接收到所述被轮询设备的第二轮询应答,即判断出该所述被轮询设备离线,所述M为大于1的自然数。
5.根据权利要求1所述的总线轮询方法,其特征在于,所述方法还包括:
当所有所述被轮询设备都被移入所述离线设备组时,在所述当前诊断周期内,按照预设的第一轮询次序对所述离线设备组的每个被轮询设备依次发送一次或多次所述第一轮询请求。
6.一种总线轮询装置,其特征在于,包括处理器及存储器,其中:所述处理器用于执行存储器中存储的程序,以实现如权利要求1至权利要求5中任一项所述的总线轮询方法的步骤。
7.一种总线轮询装置,其特征在于,包括分组模块和轮询模块,其中:
分组模块,用于将被轮询设备分为离线设备组和在线设备组;接收到轮询模块的第一通知,将所述离线设备组的被轮询设备移入在线设备组;接收到轮询模块的第二通知,将所述在线设备组的被轮询设备移入离线设备组;
轮询模块,用于在当前诊断周期内,对离线设备组的每个被轮询设备发送1次第一轮询请求,对在线设备组的每个被轮询设备依次发送多次第二轮询请求,其中,离线设备的诊断周期为分钟级,一个轮询请求应答的时间为毫秒级;检测是否接收到离线设备组的被轮询设备的第一轮询应答或在线设备组的被轮询设备的第二轮询应答,且根据接收到的第一轮询应答或第二轮询应答判断所述被轮询设备是否在线;当接收到离线设备组的被轮询设备的第一轮询应答且根据接收到的第一轮询应答判断出该被轮询设备在线时,发送第一通知至分组模块;当没有接收到在线设备组的被轮询设备的第二轮询应答且根据没有接收到第二轮询应答判断出该被轮询设备离线时,发送第二通知至分组模块。
8.根据权利要求7所述的总线轮询装置,其特征在于,所述轮询模块的检测是否接收到离线设备组的被轮询设备的第一轮询应答或在线设备组的被轮询设备的第二轮询应答,包括:
在预设的第一超时时间间隔内检测是否接收到所述被轮询设备的第一轮询应答;
在预设的第二超时时间间隔内检测是否接收到所述被轮询设备的第二轮询应答。
9.根据权利要求8所述的总线轮询装置,其特征在于,所述轮询模块的根据接收到的第一轮询应答判断出该被轮询设备在线,包括:
在所述第一超时时间间隔内,接收到所述被轮询设备的第一轮询应答,即判断出该所述被轮询设备在线;或者,
连续N次满足在所述第一超时时间间隔内,接收到所述被轮询设备的第一轮询应答,即判断出该所述被轮询设备在线,所述N为大于1的自然数。
10.根据权利要求8所述的总线轮询装置,其特征在于,所述轮询模块的根据没有接收到第二轮询应答判断该被轮询设备离线,包括:
在所述第二超时时间间隔内,没有接收到所述被轮询设备的第二轮询应答,即判断出该所述被轮询设备离线;或者,
连续M次满足在所述第二超时时间间隔内,没有接收到所述被轮询设备的第二轮询应答,即判断出该所述被轮询设备离线,所述M为大于1的自然数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910517428.6A CN110287135B (zh) | 2019-06-14 | 2019-06-14 | 一种总线轮询方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910517428.6A CN110287135B (zh) | 2019-06-14 | 2019-06-14 | 一种总线轮询方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110287135A CN110287135A (zh) | 2019-09-27 |
CN110287135B true CN110287135B (zh) | 2020-12-15 |
Family
ID=68003820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910517428.6A Active CN110287135B (zh) | 2019-06-14 | 2019-06-14 | 一种总线轮询方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110287135B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159089B (zh) * | 2019-12-30 | 2022-03-29 | 北京和利时系统集成有限公司 | 一种冗余主机链路冲突模式下设备通信方法和系统 |
CN111245687B (zh) * | 2020-03-20 | 2021-11-16 | 北京和利时系统工程有限公司 | 一种通信状态更新方法和装置 |
CN114070667A (zh) * | 2021-11-16 | 2022-02-18 | 张家口安智科为新能源有限公司 | 一种召唤采用Modbus规约设备数据的方法 |
CN115277482B (zh) * | 2022-06-10 | 2023-08-22 | 浙江清捷智能科技有限公司 | 一种工业边缘设备的在线检测方法 |
CN117240651B (zh) * | 2023-11-14 | 2024-03-22 | 广东宝莱特医用科技股份有限公司 | 查询设备上线的方法、遥测系统、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885429A (zh) * | 2014-03-31 | 2014-06-25 | 航天东方红卫星有限公司 | 一种智能遥测轮询控制方法 |
CN106128463A (zh) * | 2016-06-07 | 2016-11-16 | 张巍 | 一种基于云计算的人工同声传译方法及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1230737C (zh) * | 2002-09-23 | 2005-12-07 | 华为技术有限公司 | 一种设备数据轮询调度方法 |
CN100401709C (zh) * | 2004-12-17 | 2008-07-09 | 中兴通讯股份有限公司 | 基于固定服务质量保证策略的无线局域网分群轮询方法 |
CN101483646B (zh) * | 2009-01-22 | 2013-06-05 | 浙江大学 | 一种总线高速通信的方法及接口 |
US9258201B2 (en) * | 2010-02-23 | 2016-02-09 | Trane International Inc. | Active device management for use in a building automation system |
US10070277B2 (en) * | 2013-12-31 | 2018-09-04 | Nokia Technologies Oy | Method and apparatus for providing a dynamic polling notification system |
CN106411655B (zh) * | 2016-11-04 | 2019-08-02 | 合肥工业大学 | 基于串行通讯设备状态诊断的通讯处理方法 |
-
2019
- 2019-06-14 CN CN201910517428.6A patent/CN110287135B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885429A (zh) * | 2014-03-31 | 2014-06-25 | 航天东方红卫星有限公司 | 一种智能遥测轮询控制方法 |
CN106128463A (zh) * | 2016-06-07 | 2016-11-16 | 张巍 | 一种基于云计算的人工同声传译方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110287135A (zh) | 2019-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110287135B (zh) | 一种总线轮询方法和装置 | |
CN110187995B (zh) | 一种熔断对端节点的方法及熔断装置 | |
CN111884875A (zh) | 一种离线设备确定方法及装置 | |
US20110188382A1 (en) | Method for detecting hardware faults by determining a ratio of released connections | |
US20230198648A1 (en) | Time synchronization method, device and apparatus, and storage medium | |
CN104836679B (zh) | 通信异常处理方法及网元设备 | |
CN114546926B (zh) | 核心簇同步、控制方法、数据处理方法、核心、设备、介质 | |
CN110601920B (zh) | 一种高速通行链路传输质量检测方法、装置和系统 | |
CN111611186A (zh) | 一种嵌入式芯片中传输控制方法和装置 | |
CN111009111A (zh) | 一种基于spi总线的数据编码调制方法与系统 | |
CN111614534A (zh) | 通信方法、装置及电子设备 | |
CN112825579B (zh) | 一种确定非连续接收偏移参数的方法、设备及介质 | |
EP4362399A1 (en) | Polling scheme in an industrial network system | |
CN113141267A (zh) | 固件升级、信息处理方法、装置及设备 | |
US20240137247A1 (en) | Polling scheme in an industrial network system | |
CN104702364A (zh) | 时钟频率调整方法及装置 | |
CN114710255B (zh) | 一种基于蓝牙ble连接方式的数据接收方法及装置 | |
CN113757932B (zh) | 空调通讯故障处理方法、装置、计算机设备及存储介质 | |
CN114666425B (zh) | 风电场控设备的通信方法及装置 | |
CN114885393B (zh) | 一种设备入网的控制方法、装置及终端设备 | |
EP4362400A1 (en) | Polling scheme with priority in an industrial network system | |
US9847919B2 (en) | Data network device discovery optimization to reduce data transfer volume | |
CN112433191B (zh) | 脉冲信号的处理方法、装置、电子设备及存储介质 | |
US20240134808A1 (en) | Polling scheme with priority in an industrial network system | |
CN117676929A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211125 Address after: 100176 room 3412, floor 4, building 3, yard 2, Desheng Middle Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing Patentee after: Beijing Helishi system integration Co.,Ltd. Address before: 100176 No.2, Disheng Middle Road, Yizhuang Economic and Technological Development Zone, Daxing District, Beijing Patentee before: BEIJING HOLLYSYS Co.,Ltd. |