CN117354081A - Modbus超时响应自适应配置方法、装置、设备及存储介质 - Google Patents
Modbus超时响应自适应配置方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117354081A CN117354081A CN202311352789.2A CN202311352789A CN117354081A CN 117354081 A CN117354081 A CN 117354081A CN 202311352789 A CN202311352789 A CN 202311352789A CN 117354081 A CN117354081 A CN 117354081A
- Authority
- CN
- China
- Prior art keywords
- slave
- response time
- timeout
- container
- slave machine
- 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
- 230000004044 response Effects 0.000 title claims abstract description 241
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000001514 detection method Methods 0.000 claims description 46
- 230000003044 adaptive effect Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40169—Flexible bus arrangements
- H04L12/40176—Flexible bus arrangements involving redundancy
- H04L12/40195—Flexible bus arrangements involving redundancy by using a plurality of nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/103—Active monitoring, e.g. heartbeat, ping or trace-route with adaptive polling, i.e. dynamically adapting the polling rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/106—Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40228—Modbus
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种Modbus超时响应自适应配置方法、Modbus超时响应自适应配置方法、Modbus超时响应自适应配置装置、计算机设备及计算机可读存储介质。该方法包括:为每一从机在轮询周期内的超时响应时间配置初始值;为每一从机配置一对应的容器,所述容器用于存储对应从机的最近若干次实际响应时间;当有从机的容器存满时,基于该容器所存储的若干次实际响应时间,计算出该从机的动态超时响应时间;当为从机计算出新的动态超时响应时间,则将该动态超时响应时间配置为该从机的超时响应时间。采用该方法能够对从机的超时响应时间进行自适应动态配置,以适配不同从机的实际响应时间或者应对同一台从机的实际响应时间的变化。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种Modbus超时响应自适应配置方法、Modbus超时响应自适应配置装置、计算机设备及计算机可读存储介质。
背景技术
传统的Modbus主机通常使用统一、固定的超时响应时间来处理从机设备的响应,随着Modbus主机下接入从机数量的增多,这些从机实际的响应时间也会各不相同,并且对于单台从机设备而言,随着其工作状态或网络环境的变化,其实际的响应时间也可能产生变化。
然而,传统的超时响应时间配置方法难以适配不同从机的实际响应时间,也难以应对同一台从机的实际响应时间的变化,例如:
(1)某台或某些从机设备可能需要更长的时间来响应主机请求,而超时响应时间可能相较于这些设备配置得过短,容易导致判定超时甚至是经过多次重试后误判故障,容易发生数据读取失败的情况;
(2)超时响应时间可能相较于某台或某些从机的实际响应时间过长,这会在从机发生故障或网络异常时造成过长的、不必要的等待时间,增加整个轮询周期的轮询时间,降低系统整体的通信效率。
发明内容
为了克服现有技术的不足,本发明的目的在于提供一种Modbus超时响应自适应配置方法、Modbus超时响应自适应配置装置、计算机设备及计算机可读存储介质,能够对从机的超时响应时间进行自适应动态配置,以适配不同从机的实际响应时间或者应对同一台从机的实际响应时间的变化。
本发明的Modbus超时响应自适应配置方法采用如下技术方案实现:
一种Modbus超时响应自适应配置方法,该方法包括:
为每一从机在轮询周期内的超时响应时间配置初始值;
为每一从机配置一对应的容器,所述容器用于存储对应从机的最近若干次实际响应时间;
当有从机的容器存满时,基于该容器所存储的若干次实际响应时间,计算出该从机的平均实际响应时间,清空该容器以用于继续存储该从机的实际响应时间,在平均实际响应时间的基础上增幅预设的固定值或预设的百分比,以计算出该从机的动态超时响应时间;
当为从机计算出新的动态超时响应时间,则将该动态超时响应时间配置为该从机在轮询周期内的超时响应时间。
进一步地,当有从机的容器存满,计算该从机的平均实际响应时间时,采用的是加权平均法,其中,为该容器所存储的若干次实际响应时间分配权重时,是按照时间顺序依次递增的方式进行分配。
进一步地,在计算从机的动态超时响应时间时,所采用的预设的百分比为L,L满足:0<L≤100%。
进一步地,该方法还包括以下步骤:
若在轮询周期内,有从机超时未响应,则跳过该从机以继续该轮询周期,将该从机移出轮询节点并放入至待检测队列;
等到下一轮轮询周期开始时,启动心跳检测线程对所述待检测队列的每一从机进行心跳响应检测,所述心跳检测线程所执行的步骤包括:
对所述待检测队列中的每一从机进行心跳响应检测时,以该从机在轮询周期内的超时响应时间为基础,增幅预设的固定值或预设的百分比作为超时检测时间,检测是否能够在该超时检测时间内接收到该从机的响应,若是,则将该超时检测时间配置为该从机在轮询周期内的超时响应时间,清空该从机的容器,并将该从机放回轮询节点。
进一步地,所述心跳检测线程所执行的步骤还包括:
若待检测队列中有从机经过预设次数的心跳响应检测,均未能够收到该从机的响应,则判定该从机故障,进行标记并弃掉该从机。
本发明的Modbus超时响应自适应配置装置采用如下技术方案实现:
一种Modbus超时响应自适应配置装置,该装置包括:
第一预配置模块,用于:为每一从机在轮询周期内的超时响应时间配置初始值;
第二预配置模块,用于:为每一从机配置一对应的容器,所述容器用于存储对应从机的最近若干次实际响应时间;
动态计算模块,用于:当有从机的容器存满时,基于该容器所存储的若干次实际响应时间,计算出该从机的平均实际响应时间,清空该容器以用于继续存储该从机的实际响应时间,在平均实际响应时间的基础上增幅预设的固定值或预设的百分比,以计算出该从机的动态超时响应时间;
动态配置模块,用于:当为从机计算出新的动态超时响应时间,则将该动态超时响应时间配置为该从机在轮询周期内的超时响应时间。
进一步地,在所述动态计算模块中:当有从机的容器存满,计算该从机的平均实际响应时间时,采用的是加权平均法,其中,为该容器所存储的若干次实际响应时间分配权重时,是按照时间顺序依次递增的方式进行分配。
本发明的计算机设备采用如下技术方案实现:
一种计算机设备,包括存储器、处理器以及存储在存储器上并且可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述Modbus超时响应自适应配置方法。
本发明的计算机可读存储介质采用如下技术方案实现:
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述Modbus超时响应自适应配置方法。
相比现有技术,本发明的有益效果在于:
本发明所提供的Modbus超时响应自适应配置方法、Modbus超时响应自适应配置装置、计算机设备及计算机可读存储介质,能够对从机的超时响应时间进行自适应动态配置,以适配不同从机的实际响应时间或者应对同一台从机的实际响应时间的变化。
附图说明
图1为本发明实施例的Modbus超时响应自适应配置方法的流程图;
图2为图1中超时判定处理的流程图。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
参考图1和图2,本发明实施例提供一种Modbus超时响应自适应配置方法。首先,将Modbus主机下接入的各个从机记作S1,S2,……,Sn;即Modbus主机下接入有n个主机(n为正整数)。
本发明实施例的Modbus超时响应自适应配置方法包括以下步骤:
步骤①:为每一从机在轮询周期内的超时响应时间配置初始值,其中,每一从机的初始值可相同也可不同。
步骤②:为每一从机配置一对应的容器,所述容器用于按照时间顺序存储对应从机的最近N次实际响应时间;具体地,从机S1-Sn所对应的容器分别记作容器P1-Pn,即从机Si所配置为容器Pi,1≤i≤n;并且容器Pi存满时有N个元素(即N次实际响应时间),按时间顺序分别记为E1,E2,……,EN。
步骤③:当有从机的容器存满时,基于该容器所存储的N次实际响应时间,计算出该从机的平均实际响应时间,清空该容器以用于继续存储该从机的实际响应时间,在平均实际响应时间的基础上增幅预设的固定值D1(如D1为5ms、10ms、15ms等)或预设的百分比L(如L为10%、25%、50%等),以计算出该从机的动态超时响应时间。
步骤④:当为从机计算出新的动态超时响应时间,则将该动态超时响应时间配置为该从机在轮询周期内的超时响应时间。
在上述步骤②、步骤③中,容器所存储的实际响应时间,指的是从机在轮询周期内的响应时间,即从机响应轮询请求的时长。
在本发明实施例的Modbus超时响应自适应配置方法中,N的取值不能太小,否则受网络波动影响太大,难以较好地反映从机在一段时间的实际响应时间,且会大幅增加动态超时响应时间的计算次数以及配置操作的频率,过度增加系统负担;N的取值也不能太大,否则不容易跟上从机响应时间的变化,降低动态配置的效果;N的取值应当根据实际的设备状况或者经过前期测试所得,举例而言,可取5≤N≤20,例如N=7时,则意味着从站Si的容器Pi存满时有7个元素。
优选地,在本发明实施例的Modbus超时响应自适应配置方法的步骤③中:当有从机的容器存满,计算该从机的平均实际响应时间时,采用的是加权平均法,其中,为该容器所存储的N次实际响应时间分配权重时,是按照时间顺序依次递增的方式进行分配。其中,之所以按照时间顺序依次递增的方式进行权重分配,是为了更准确地平衡各个值的重要性,较新的值被赋予较高的权重,而较旧的值则具有较低的权重,将更多的重点放在较新的值上,因为较新的值更能反映出当前的状况。这种权重分配方式对于N的取值比较大(如100以上)的情况尤为合适,因为当N的取值比较大时,意味着容器需要较长的一段时间才能存满并且触发相关计算,此时简单的算数平均难以反映出实际响应时间的变化趋势。
举例而言,可如此进行权重的计算,对于容器Pi的元素Ej(1≤j≤N),该元素Ej的权重公式为Wj=j/[N*(N+1)/2];则从站Si当前的平均实际响应时间E=W1*E1+W2*E2+……+WN*EN。
例如,为了便于展示,取N=5时,各个权重的计算如下:
W1=1/(5*(5+1)/2)=0.0667;
W2=2/(5*(5+1)/2)=0.1333;
W3=3/(5*(5+1)/2)=0.2;
W4=4/(5*(5+1)/2)=0.2667;
W5=5/(5*(5+1)/2)=0.3333。
上述取N=5只是便于举例说明,实际上这种权重分配方式非常适合N取值比较大的情况,当N取值比较大时,则可大幅度降低相关计算和配置操作的频率,减轻系统处理负担,并且按照时间顺序分配权重,可较好地反映从机实际响应时间的变化趋势,保证动态配置效果;因此,这是一种兼顾系统性能和动态配置效果的技术方案。
优选地,步骤③中:在计算从机的动态超时响应时间时,所采用的预设的百分比L满足:0<L≤100%;其中,L取100%时,其含义表示超时响应时间配置为从机平均实际响应时间的2倍。当然,增幅L的取值同样既不能过小也不能过大,应当根据实际的设备状况或者经过前期测试所得,举例而言,可取L=25%。
关于本发明实施例如何适配不同从机的实际响应时间,可以这么理解:
首先可假定主机开启后的前面一段时间内,从机S1-Sn均未遭遇设备故障或网络异常;
可将各从机在轮询周期内的超时响应时间的初始值配置得比较大,这不会有什么影响,因为在N个轮询周期之后,从机S1-Sn的容器P1-PN均存满,在第N+1个轮询周期开始时,各从机的超时响应时间已被配置为各自的动态超时响应时间,该动态超时响应时间是基于从机在这之前N个轮询周期的平均实际响应时间的基础上增幅所得,因此这些动态超时响应时间可较好地适配各个从机的实际响应时间;
再经过N个轮询周期之后,各从机的超时响应时间又会被配置新的动态超时响应时间,如此循环,直至主机关闭服务。
关于本发明实施例如何应对同一台从机的实际响应时间的变化,可以这样么理解:
首先对于同一台从机而言,随着其工作状态或网络环境的变化,其实际的响应时间也可能产生变化,此处网络环境的变化并非指遭遇到剧烈的网络波动或者是遭遇到网络异常等偶发性事件;例如,为了分析和理解的简便,可将一天之内可分为网络繁忙的时间段和网络空闲的时间段,这两个时间段都很长且稳定;
当从机进入到网络繁忙的时间段,其实际响应时间会提升一定幅度,则经过N个轮询周期后,其超时响应时间也会有所往上调整;当从机进入到网络空闲的时间段,其实际响应时间会下降一定幅度,则经过N个轮询周期后,其超时响应时间也会有所往下调整。
当然,在上述说明中,当从机进入到网络繁忙的时间段,随着实际响应时间的提升,该从机是有可能触发超时判定的;另外,当从机遭遇到剧烈的网络波动时也是可能触发超时判定的;进一步地,当从机处于网络异常或者是遭遇故障,明显是会触发超时判定的。
优选地,关于如何进行超时判定的处理,本发明实施例的Modbus超时响应自适应配置方法还包括以下步骤,用于超时判定处理:
步骤⑤:若在轮询周期内,有从机超时未响应,则跳过该从机以继续该轮询周期,将该从机移出轮询节点并放入至待检测队列;
等到下一轮轮询周期开始时,启动心跳检测线程对所述待检测队列的每一从机进行心跳响应检测,所述心跳检测线程所执行的步骤包括:
对所述待检测队列中的每一从机进行心跳响应检测时,以该从机在轮询周期内的超时响应时间为基础,增幅预设的固定值D2或预设的百分比H作为超时检测时间,检测是否能够在该超时检测时间内接收到该从机的响应,若是,则将该超时检测时间配置为该从机在轮询周期内的超时响应时间,清空该从机的容器,并将该从机放回轮询节点。
另外,所述心跳检测线程所执行的步骤还包括:
若待检测队列中有从机经过预设次数的心跳响应检测,均未能够收到该从机的响应,则判定该从机故障,进行标记并弃掉该从机。
具体地,预设次数可以为三次,即心跳检测线程最多对待检测队列中的每一从机进行三次心跳响应检测(即最多发送三次心跳响应请求至该从机,判断是否在超时检测时间内得到该从机的应答),每次心跳响应检测的超时检测时间可相同也可不同,在本发明实施例中采用依次递增的方式;例如,对某台从机进行第一次心跳响应检测时,所采用的超时检测时间为该从机在轮询周期内所配置的超时响应时间增幅50%所得(即H=50%),进行第二次心跳响应检测时,所采用的超时检测时间为该从机在轮询周期内所配置的超时响应时间增幅100%所得(H=100%),进行第三次心跳响应检测时,所采用的超时检测时间为该从机在轮询周期内所配置的超时响应时间增幅150%所得(H=150%)。当然,如果主机在进行第一次心跳响应检测时,就接收到相关从机的应答,则无需再进行第二次、第三次心跳响应检测,并且将当前的超时检测时间配置为该从机在轮询周期内的超时响应时间,清空该从机的容器并且将该从机放回轮询节点。
具体地,在本发明实施例中,心跳检测线程基于自定义心跳包协议实现,该心跳包的协议组成如下:
主站发往从站:
数据包头 | 从站ID | 时间戳 | 优先级 | 心跳包标识 | 校验 |
2byte | 1byte | 4byte | 1byte | 2byte | 2byte |
例如0xAA 55 01 12 34 56 78 02 12 34 54 9E。
从站发往主站:
数据包头 | 从站ID | 时间戳 | 优先级 | 心跳包标识 | 校验 |
2byte | 1byte | 4byte | 1byte | 2byte | 2byte |
例如0x55 AA 01 12 34 56 78 02 12 34 53 EE。
校验算法默认用CRC-16/MODBUS。
需要说明的是:由于轮询和心跳检测属于两个不同的线程,同时运行,所以主机有可能同时收到轮询请求的响应和心跳请求的响应,为了避免卡住轮询线程,优先处理轮询请求的响应;即在主机配置里面,轮询响应的优先级Priority是高于心跳响应的优先级,主机根据响应的优先级异步处理心跳请求和普通请求的响应。
关于本发明实施例的Modbus超时响应自适应配置方法进行超时判定处理的技术效果,可以这么理解:
当某台从机遭遇偶发性的网络波动而导致在短时间内的实际响应时间提升较大幅度,超出该从机当前配置的超时响应时间,则会触发超时判定,此时主机将该从机放入至待检测队列,启动心跳检测线程对该从机进行心跳响应检测,该从机在某次心跳响应检测中做出应答,则主机将此时的超时检测时间配置为该从机的超时响应时间,如此步骤是为了让从机的超时响应时间有较大幅度的提升,以适应这短时间内的网络波动,并且这种提升也是暂时的,因为该从机对应的容器已被清空,因此以超时检测时间作为该从机的超时响应时间可持续N次轮询周期,若在这N次轮询周期中从机的网络情况变好,则后续计算出的动态超时响应时间也会逐渐下降至平常水平。
另外,当该从机处于长时间网络异常或者遭遇故障时,显然经过三次心跳响应检测也不可能收到其应答,因此判定该从机故障,进行标记并弃掉该从机,以避免影响到主机对其余从机的轮询。被丢弃的从机等待后续维护处理后再重新投入使用。
综上所述,本发明实施例所提供的Modbus超时响应自适应配置方法,能够对从机的超时响应时间进行自适应动态配置,以适配不同从机的实际响应时间或者应对同一台从机的实际响应时间的变化,最终达到提升主从通信效率的目的。
本发明实施例还提供一种Modbus超时响应自适应配置装置,该装置包括:
第一预配置模块,用于:为每一从机在轮询周期内的超时响应时间配置初始值;
第二预配置模块,用于:为每一从机配置一对应的容器,所述容器用于按照时间顺序存储对应从机的最近若干次实际响应时间;
动态计算模块,用于:当有从机的容器存满时,基于该容器所存储的若干次实际响应时间,计算出该从机的平均实际响应时间,清空该容器以用于继续存储该从机的实际响应时间,在平均实际响应时间的基础上增幅预设的固定值或预设的百分比,以计算出该从机的动态超时响应时间;
动态配置模块,用于:当为从机计算出新的动态超时响应时间,则将该动态超时响应时间配置为该从机在轮询周期内的超时响应时间。
优选地,在所述动态计算模块中:当有从机的容器存满,计算该从机的平均实际响应时间时,采用的是加权平均法,其中,为该容器所存储的若干次实际响应时间分配权重时,是按照时间顺序依次递增的方式进行分配。
优选地,在所述动态计算模块中:在计算从机的动态超时响应时间时,所采用的预设的百分比为L,L满足:0<L≤100%。
优选地,本发明实施例的Modbus超时响应自适应配置装置还包括超时判定处理模块,用于:
若在轮询周期内,有从机超时未响应,则跳过该从机以继续该轮询周期,将该从机移出轮询节点并放入至待检测队列;
等到下一轮轮询周期开始时,启动心跳检测线程对所述待检测队列的每一从机进行心跳响应检测,所述心跳检测线程所执行的步骤包括:
对所述待检测队列中的每一从机进行心跳响应检测时,以该从机在轮询周期内的超时响应时间为基础,增幅预设的固定值或预设的百分比作为超时检测时间,检测是否能够在该超时检测时间内接收到该从机的响应,若是,则将该超时检测时间配置为该从机在轮询周期内的超时响应时间,清空该从机的容器,并将该从机放回轮询节点。
优选地,在超时判定处理模块中,所述心跳检测线程所执行的步骤还包括:
若待检测队列中有从机经过预设次数的心跳响应检测,均未能够收到该从机的响应,则判定该从机故障,进行标记并弃掉该从机。
本发明实施例的Modbus超时响应自适应配置装置的各个模块的详细解释可参考本发明实施例的Modbus超时响应自适应配置方法的各个步骤。
本发明实施例所提供的Modbus超时响应自适应配置装置,能够对从机的超时响应时间进行自适应动态配置,以适配不同从机的实际响应时间或者应对同一台从机的实际响应时间的变化,最终达到提升主从通信效率的目的。
本发明实施例还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并且可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如本发明实施例所述的Modbus超时响应自适应配置方法。
本发明实施例所提供的计算机设备,能够对从机的超时响应时间进行自适应动态配置,以适配不同从机的实际响应时间或者应对同一台从机的实际响应时间的变化,最终达到提升主从通信效率的目的。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如本发明实施例所述的Modbus超时响应自适应配置方法。
本发明实施例所提供的计算机可读存储介质,能够对从机的超时响应时间进行自适应动态配置,以适配不同从机的实际响应时间或者应对同一台从机的实际响应时间的变化,最终达到提升主从通信效率的目的。
上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。
Claims (9)
1.一种Modbus超时响应自适应配置方法,其特征在于,该方法包括:
为每一从机在轮询周期内的超时响应时间配置初始值;
为每一从机配置一对应的容器,所述容器用于存储对应从机的最近若干次实际响应时间;
当有从机的容器存满时,基于该容器所存储的若干次实际响应时间,计算出该从机的平均实际响应时间,清空该容器以用于继续存储该从机的实际响应时间,在平均实际响应时间的基础上增幅预设的固定值或预设的百分比,以计算出该从机的动态超时响应时间;
当为从机计算出新的动态超时响应时间,则将该动态超时响应时间配置为该从机在轮询周期内的超时响应时间。
2.如权利要求1所述的Modbus超时响应自适应配置方法,其特征在于,当有从机的容器存满,计算该从机的平均实际响应时间时,采用的是加权平均法,其中,为该容器所存储的若干次实际响应时间分配权重时,是按照时间顺序依次递增的方式进行分配。
3.如权利要求1所述的Modbus超时响应自适应配置方法,其特征在于,在计算从机的动态超时响应时间时,所采用的预设的百分比为L,L满足:0<L≤100%。
4.如权利要求1所述的Modbus超时响应自适应配置方法,其特征在于,该方法还包括以下步骤:
若在轮询周期内,有从机超时未响应,则跳过该从机以继续该轮询周期,将该从机移出轮询节点并放入至待检测队列;
等到下一轮轮询周期开始时,启动心跳检测线程对所述待检测队列的每一从机进行心跳响应检测,所述心跳检测线程所执行的步骤包括:
对所述待检测队列中的每一从机进行心跳响应检测时,以该从机在轮询周期内的超时响应时间为基础,增幅预设的固定值或预设的百分比作为超时检测时间,检测是否能够在该超时检测时间内接收到该从机的响应,若是,则将该超时检测时间配置为该从机在轮询周期内的超时响应时间,清空该从机的容器,并将该从机放回轮询节点。
5.如权利要求4所述的Modbus超时响应自适应配置方法,其特征在于,所述心跳检测线程所执行的步骤还包括:
若待检测队列中有从机经过预设次数的心跳响应检测,均未能够收到该从机的响应,则判定该从机故障,进行标记并弃掉该从机。
6.一种Modbus超时响应自适应配置装置,其特征在于,该装置包括:
第一预配置模块,用于:为每一从机在轮询周期内的超时响应时间配置初始值;
第二预配置模块,用于:为每一从机配置一对应的容器,所述容器用于存储对应从机的最近若干次实际响应时间;
动态计算模块,用于:当有从机的容器存满时,基于该容器所存储的若干次实际响应时间,计算出该从机的平均实际响应时间,清空该容器以用于继续存储该从机的实际响应时间,在平均实际响应时间的基础上增幅预设的固定值或预设的百分比,以计算出该从机的动态超时响应时间;
动态配置模块,用于:当为从机计算出新的动态超时响应时间,则将该动态超时响应时间配置为该从机在轮询周期内的超时响应时间。
7.如权利要求6所述的Modbus超时响应自适应配置装置,其特征在于,在所述动态计算模块中:当有从机的容器存满,计算该从机的平均实际响应时间时,采用的是加权平均法,其中,为该容器所存储的若干次实际响应时间分配权重时,是按照时间顺序依次递增的方式进行分配。
8.一种计算机设备,包括存储器、处理器以及存储在存储器上并且可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如权利要求1-5任一项所述的Modbus超时响应自适应配置方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-5任一项所述的Modbus超时响应自适应配置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311352789.2A CN117354081B (zh) | 2023-10-18 | Modbus超时响应自适应配置方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311352789.2A CN117354081B (zh) | 2023-10-18 | Modbus超时响应自适应配置方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117354081A true CN117354081A (zh) | 2024-01-05 |
CN117354081B CN117354081B (zh) | 2024-06-25 |
Family
ID=
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01134638A (ja) * | 1987-11-20 | 1989-05-26 | Meidensha Corp | プロセッサのバスタイムアウト検出回路 |
US20080235346A1 (en) * | 2007-03-22 | 2008-09-25 | Moxa Technologies Co., Ltd. | Method of detecting response time-out based on master-slave protocol architecture |
CN105553768A (zh) * | 2015-12-15 | 2016-05-04 | 浙江工商大学 | 一种基于自适应超时时间的sdn控制器故障检测方法 |
CN106788948A (zh) * | 2016-12-05 | 2017-05-31 | 雷蕾 | 一种基于半双工通信的多主机通信机制 |
CN110768861A (zh) * | 2019-09-20 | 2020-02-07 | 北京字节跳动网络技术有限公司 | 一种获取超时阈值的方法、装置、介质和电子设备 |
CN110955626A (zh) * | 2019-11-26 | 2020-04-03 | 山东有人信息技术有限公司 | 一种在串行链路上实现Modbus通信的方法与系统 |
CN114661510A (zh) * | 2022-03-25 | 2022-06-24 | 北京百度网讯科技有限公司 | 一种请求超时检测方法、装置、设备以及存储介质 |
CN115202969A (zh) * | 2022-06-24 | 2022-10-18 | 中国平安财产保险股份有限公司 | 接口调用超时处理方法、装置、设备及存储介质 |
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01134638A (ja) * | 1987-11-20 | 1989-05-26 | Meidensha Corp | プロセッサのバスタイムアウト検出回路 |
US20080235346A1 (en) * | 2007-03-22 | 2008-09-25 | Moxa Technologies Co., Ltd. | Method of detecting response time-out based on master-slave protocol architecture |
CN105553768A (zh) * | 2015-12-15 | 2016-05-04 | 浙江工商大学 | 一种基于自适应超时时间的sdn控制器故障检测方法 |
CN106788948A (zh) * | 2016-12-05 | 2017-05-31 | 雷蕾 | 一种基于半双工通信的多主机通信机制 |
CN110768861A (zh) * | 2019-09-20 | 2020-02-07 | 北京字节跳动网络技术有限公司 | 一种获取超时阈值的方法、装置、介质和电子设备 |
CN110955626A (zh) * | 2019-11-26 | 2020-04-03 | 山东有人信息技术有限公司 | 一种在串行链路上实现Modbus通信的方法与系统 |
CN114661510A (zh) * | 2022-03-25 | 2022-06-24 | 北京百度网讯科技有限公司 | 一种请求超时检测方法、装置、设备以及存储介质 |
CN115202969A (zh) * | 2022-06-24 | 2022-10-18 | 中国平安财产保险股份有限公司 | 接口调用超时处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105468450B (zh) | 任务调度方法及系统 | |
EP3142011A1 (en) | Anomaly recovery method for virtual machine in distributed environment | |
CN103092712A (zh) | 一种任务中断恢复方法和设备 | |
US7971110B2 (en) | System and method for testing a serial attached small computer system interface | |
EP2892274A1 (en) | Fault recovery method of operation and maintenance channel and network management terminal | |
CN111669308A (zh) | 基于轮询优化策略的Modbus通讯方法方法、装置、终端及介质 | |
CN103164309A (zh) | Sol功能测试方法及系统 | |
CN111142801B (zh) | 分布式存储系统网络亚健康检测方法及装置 | |
CN106155826B (zh) | 用于在总线结构中检测及处理错误的方法和系统 | |
CN117354081B (zh) | Modbus超时响应自适应配置方法、装置、设备及存储介质 | |
CN112612631B (zh) | 一种消息队列堆积检测方法以及相关装置 | |
CN117354081A (zh) | Modbus超时响应自适应配置方法、装置、设备及存储介质 | |
CN111651350B (zh) | 测试用例处理方法、装置、设备及计算机可读存储介质 | |
CN106385343A (zh) | 一种分布式系统下监控客户端的方法及装置、分布式系统 | |
CN105634779B (zh) | 主备设备的运行处理方法及装置 | |
CN112104548A (zh) | 通信方法及装置 | |
CN106776034A (zh) | 一种任务批处理计算方法、主站计算机及系统 | |
CN101645811A (zh) | 一种自动测试嵌入式系统的装置及方法 | |
CN113965466B (zh) | 一种自适应网络带宽的数据传输系统 | |
CN111124710A (zh) | 一种数据处理方法及电子设备 | |
US8438261B2 (en) | Failover scheme with service-based segregation | |
CN112311621B (zh) | 通信检测方法及装置 | |
CN111865722B (zh) | 一种节点健康状态检测及处理方法 | |
CN112367386B (zh) | 基于Ignite的自动化运维方法、装置及计算机设备 | |
CN112134734B (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 |