基于轮询优化策略的Modbus通讯方法方法、装置、终端及介质

文档序号:1159087 发布日期:2020-09-15 浏览:8次 >En<

阅读说明:本技术 基于轮询优化策略的Modbus通讯方法方法、装置、终端及介质 (Modbus communication method, device, terminal and medium based on polling optimization strategy ) 是由 尚德华 徐博渊 于 2020-06-15 设计创作,主要内容包括:本发明提出基于轮询优化策略的Modbus通讯方法方法、装置、终端及介质,若主从站通讯发生异常,主站并不立即重发数据请求,而是对当前的从站进行记录并直接向下一个从站发送数据请求,待主站轮询完一圈后再次对上一轮中被记录的响应异常的从站进行数据请求,如若获取正常响应则清除该记录并继续轮询,而若仍无法获取正常响应,则继续进行记录并继续轮询,如此往复。由于在发生通讯故障时不再刻板地轮询,而是进行记录并直接轮至下一从站,从而缩短主站等待故障从站的时间消耗,提高Modbus RTU总线的通讯性能。与此同时,本发明的技术方案仅是修改了报文发送策略,而对报文本身的具体内容不做任何的改变,不仅便于使用而且确保了数据传输的安全性。(The invention provides a Modbus communication method, a device, a terminal and a medium based on a polling optimization strategy, wherein if the communication between a master station and a slave station is abnormal, the master station does not immediately retransmit a data request, but records the current slave station and directly sends the data request to the next slave station, after the master station finishes polling for one circle, the master station performs the data request again to the slave station which is recorded in the previous circle and has abnormal response, if the master station obtains normal response, the master station clears the record and continues polling, and if the master station still cannot obtain normal response, the master station continues to record and continue polling, and the steps are repeated. Because the polling is not performed on a real-time basis when the communication fault occurs, the recording is performed and the polling is directly performed to the next slave station, so that the time consumption of the master station for waiting for the fault slave station is shortened, and the communication performance of the Modbus RTU bus is improved. Meanwhile, the technical scheme of the invention only modifies the message sending strategy, and does not change the specific content of the message, thereby not only being convenient for use, but also ensuring the safety of data transmission.)

基于轮询优化策略的Modbus通讯方法方法、装置、终端及介质

技术领域

本发明涉及通讯技术领域,特别是涉及基于轮询优化策略的Modbus通讯方法方法、装置、终端及介质。

背景技术

现有的Modbus RTU通讯协议通常基于485总线实现,Modbus为主从问答式,主站发起问询,对应从站进行应答。在实际使用中通常使用菊花链式结构,把所有从站和主站串联起来进行通讯。

然而,由于Modbus通讯为主从轮询结构,在从站数量较多的情况下,一旦总线中某个从站通讯中断,主站将不得不耗费大量时间去问询并等待该从站响应,从而大大降低了整体通讯效率。

发明内容

鉴于以上所述现有技术的缺点,本发明的目的在于提供基于轮询优化策略的Modbus通讯方法方法、装置、终端及介质,用于解决现有技术中,在从站数量较多的情况下,一旦总线中某个从站通讯中断,主站将不得不耗费大量时间去问询并等待该从站响应,从而大大降低了整体通讯效率等问题。

为实现上述目的及其他相关目的,本发明的第一方面提供一种基于轮询优化策略的Modbus通讯方法,包括:在当前轮询中向当前从站发送数据请求;判断当前从站是否响应异常;若响应正常,则继续向当前轮询队列中的下一个从站发送数据请;若响应异常,则对当前从站进行记录并向当前轮询队列中的下一个从站发送数据请求;待完成当前一轮的询问后,在下一轮的询问中向上一轮出现响应异常的从站再次发送数据请求,并判断是否响应异常;若响应正常,则清除该从站的记录并继续向下一个从站发送数据请求;若仍响应异常,则继续对该从站进行记录并累加记录次数,并继续向下一个从站发送数据请求;重复轮询,并将记录次数的累加值超过预设次数阈值的从站从轮询队列中剔除,直至轮询的循环数达到预设循环阈值后再次向剔除的从站发送数据请。

于本发明的第一方面的一些实施例中,所述对当前从站进行记录包括记录当前从站发生响应异常的时间戳信息、响应异常的类型信息、响应异常的累加次数信息;其中,响应异常的类型包括未响应或响应超时。

于本发明的第一方面的一些实施例中,所述方法包括:设定所述预设次数阈值和预设循环阈值为可调参数。

于本发明的第一方面的一些实施例中,所述方法还包括:若轮询的循环数达到预设循环阈值后再次向剔除的从站发送数据请求,且从站响应正常,则将剔除的从站重新加入轮询队列中。

于本发明的第一方面的一些实施例中,所述方法还包括:若轮询的循环数达到预设循环阈值后再次向剔除的从站发送数据请求,且从站仍然响应异常,则向外发出维修维护提示信息。

为实现上述目的及其他相关目的,本发明的第二方面提供一种基于轮询优化策略的Modbus通讯装置,包括:发送模块,用于向从站发送数据请求;判断模块,用于判断从站是否响应异常;记录模块,用于记录信息;累加模块,用于累加记录次数;处理模块;所述处理模块用于在当前轮询中令所述发送模块向当前从站发送数据请求;并令所述判断模块判断当前从站是否响应异常;若若响应正常,则令所述发送模块继续向当前轮询队列中的下一个从站发送数据请求;若响应异常,则令所述记录模块对当前从站进行记录并令所述发送模块向当前轮询队列中的下一个从站发送数据请求;待完成当前一轮的询问后,在下一轮的询问中令所述发送模块向上一轮出现响应异常的从站再次发送数据请求,并令所述判断模块判断是否响应异常;若响应正常,则清除该从站的记录并令所述发送模块继续向下一个从站发送数据请求;若仍响应异常,则令所述记录模块对该从站进行记录并令所述累加模块累加记录次数,并令发送模块继续向下一个从站发送数据请求;重复轮询,并将记录次数的累加值超过预设次数阈值的从站从轮询队列中剔除,直至轮询的循环数达到预设循环阈值后再次向剔除的从站发送数据请。

于本发明的第二方面的一些实施例中,所述Modbus通讯装置包括提示模块,用于在轮询的循环数达到预设循环阈值后再次向剔除的从站发送数据请求,且从站仍然响应异常时,向外发出维修维护提示信息。

为实现上述目的及其他相关目的,本发明的第三方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述基于轮询优化策略的Modbus通讯方法。

为实现上述目的及其他相关目的,本发明的第四方面提供一种电子终端,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行所述基于轮询优化策略的Modbus通讯方法。

如上所述,本发明的基于轮询优化策略的Modbus通讯方法方法、装置、终端及介质,具有以下有益效果:本发明提出一种Modbus通讯的优化方案,若主从站通讯发生故障,主站发送数据请求并等待超时后并不立即重发数据请求,而是对当前的从站进行记录并直接向下一个从站发送数据请求,待主站轮询完一圈后再次对上一轮中被记录的响应异常的从站进行数据请求,如若获取正常响应则清除该记录并继续轮询,而若仍无法获取正常响应,则继续进行记录并继续轮询,如此往复。对记录次数达到预设阈值后,把对应的从站从轮询队列中剔除,待轮询达到一定的循环数后再对其进行访问。因此,本发明的技术方案由于在发生通讯故障时不再刻板地轮询,而是进行记录并直接轮至下一从站,从而大大缩短了主站等待故障从站的时间消耗,提高Modbus RTU总线的通讯性能。与此同时,本发明的技术方案仅是修改了报文发送策略,而对报文本身的具体内容不做任何的改变,不仅便于使用而且确保了数据传输的安全性。

附图说明

图1显示为现有技术中的一种Modbus通讯方式的示意图。

图2显示为本发明一实施例中基于轮询优化策略的Modbus通讯方法的流程示意图。

图3显示为本发明一实施例中基于轮询优化策略的Modbus通讯装置的结构示意图。

图4显示为本发明一实施例中电子终端的结构示意图。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,在下述描述中,参考附图,附图描述了本发明的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本发明的精神和范围的情况下进行机械组成、结构、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本发明的实施例的范围仅由公布的专利的权利要求书所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本发明。空间相关的术语,例如“上”、“下”、“左”、“右”、“下面”、“下方”、“下部”、“上方”、“上部”等,可在文中使用以便于说明图中所示的一个元件或特征与另一元件或特征的关系。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”、“固持”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。

由于Modbus通讯为主从轮询结构,在从站数量较多的情况下,一旦总线中某个从站通讯中断,主站将不得不耗费大量时间去问询并等待该从站响应,从而大大降低了整体通讯效率。如图1所示,展示了现有技术中的一种Modbus通讯方式,Modbus主站通过通讯总线和Modbus从站1、Modbus从站2……Modbus从站N通讯;其中Modbus从站N因故发生中断,Modbus因此不得不逐个问询,这就必然需要耗费大量时间,尤其是发生故障的从站距主站较远的情况,更是难以快速恢复通讯。

有鉴于此,本发明提出基于轮询优化策略的Modbus通讯,所述轮询优化策略具体是指,若主从站通讯发生故障,主站发送数据请求并等待超时后并不立即重发数据请求,而是对当前的从站进行记录并直接向下一个从站发送数据请求,待主站轮询完一圈后再次对上一轮中被记录的响应异常的从站进行数据请求,如若获取正常响应则清除该记录并继续轮询,而若仍无法获取正常响应,则继续进行记录并继续轮询,如此往复。对记录次数达到预设阈值后,把对应的从站从轮询队列中剔除,待轮询达到一定的循环数后再对其进行访问。

因此,本发明的技术方案由于在发生通讯故障时不再刻板地轮询,而是进行记录并直接轮至下一从站,从而大大缩短了主站等待故障从站的时间消耗,提高Modbus RTU总线的通讯性能。与此同时,本发明的技术方案仅是修改了报文发送策略,而对报文本身的具体内容不做任何的改变,不仅便于使用而且确保了数据传输的安全性。

为了使本发明的目的、技术方案及优点更加清楚明白,通过下述实施例并结合附图,对本发明实施例中的技术方案的进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定发明。

实施例一:

如图2所示,展示了本发明一实施例中基于轮询优化策略的Modbus通讯方法的流程示意图。应理解的是,本实施例提供的Modbus通讯方法应用于通讯主站,所述Modbus通讯方法主要包括如下各个步骤。

在步骤S21中,在当前轮询中向当前从站发送数据请求。

具体来说,Modbus主站对与之通讯连接的多个Modbus从站进行轮询访问,Modbus主站在每一轮的轮询访问中依次向每个Modbus从站发送数据请求,并等待Modbus从站的响应。在对这一轮中每个Modbus从站都访问过后,表示Modbus主站已经完成这一轮的轮询访问,于是可进行下一轮的轮询访问。

在步骤S22中,判断当前从站是否响应异常。

在本实施例中,主站判断当前从站是否响应异常的方式包括但不限于:主站向当前从站发送数据请求后并未接收到来自当前从站的数据响应或者等待超时。

在步骤S23中,若响应正常,则继续向当前轮询队列中的下一个从站发送数据请求。

在步骤S24中,若响应异常,则对当前从站进行记录并向当前轮询队列中的下一个从站发送数据请求。具体来说,可记录当前从站发生响应异常的时间戳信息、响应异常的类型信息、响应异常的累加次数信息;其中,响应异常的类型包括未响应或响应超时。

在步骤S25中,待完成当前一轮的询问后,在下一轮的询问中向上一轮出现响应异常的从站再次发送数据请求,并判断是否响应异常。

在步骤S26中,若响应正常,则清除该从站的记录并继续向下一个从站发送数据请求。

在步骤S27中,若仍响应异常,则继续对该从站进行记录并累加记录次数,并继续向下一个从站发送数据请求。

在步骤S28中,重复轮询,并将记录次数的累加值超过预设次数阈值的从站从轮询队列中剔除,直至轮询的循环数达到预设循环阈值后再次向剔除的从站发送数据请求。

具体来说,若在第N轮的轮询中首次发现一个响应异常的从站,那么记录该从站在第N轮中的响应异常信息,并累加记录次数为1;若在第N+1轮的轮询中发现该从站仍然响应异常,那么记录该从站在第N+1轮中的响应异常信息,并累加记录次数为2。以此类推,不断累加记录次数,直至累加记录次数超过预设次数阈值,那么可认为该从站确实出现了通讯异常,于是可将该从站从轮询队列中剔除掉,避免主站每一轮都要重复访问它而造成资源浪费和通讯时耗的增加。而等到轮询的循环数达到预设循环阈值后可再次访问被剔除的从站。

在本实施例中,所述预设次数阈值和预设循环阈值设为可调的开口参数,用户可在使用中根据实际情况进行参数调节,例如将预设次数阈值设为3次或将预设循环阈值设为500次等,这样可大大提高灵活性和便捷性。

在本实施例中,所述基于轮询优化策略的Modbus通讯方法还包括:若轮询的循环数达到预设循环阈值后再次向剔除的从站发送数据请求,且从站响应正常,则将剔除的从站重新加入轮询队列中,由此来提升从站的利用率。

在本实施例中,所述基于轮询优化策略的Modbus通讯方法还包括:若轮询的循环数达到预设循环阈值后再次向剔除的从站发送数据请求,且从站仍然响应异常,则向外发出维修维护提示信息。应理解的是,虽然在第一次检测到从站响应异常或者在从站被剔除出轮询队列时,都可向外发出维修维护提示信息,但由于有些从站只是暂时通讯受阻,其在一定时间后能自行恢复通讯,所以本发明的技术方案是在从站被剔除出轮询队列后再次进行询问时仍响应异常,才向外发出维修维护提示信息,这样可增加维修提示的可信度,降低维修维护成本。

由上述内容可知,本实施例提供的基于轮询优化策略的Modbus通讯方法,在发生通讯故障时不再刻板地轮询,而是进行记录并直接轮至下一从站,从而大大缩短了主站等待故障从站的时间消耗,提高Modbus RTU总线的通讯性能。与此同时,本发明的技术方案仅是修改了报文发送策略,而对报文本身的具体内容不做任何的改变,不仅便于使用而且确保了数据传输的安全性。

实施例二:

如图3所示,展示了本发明一实施例中基于轮询优化策略的Modbus通讯装置的结构示意图。本实施例的Modbus通讯装置30包括发送模块31、判断模块32、记录模块33、累加模块34、处理模块35。

发送模块31用于向从站发送数据请求;判断模块32用于判断从站是否响应异常;记录模块33用于记录信息;累加模块34用于累加记录次数;处理模块35用于在当前轮询中令所述发送模块31向当前从站发送数据请求;并令所述判断模块32判断当前从站是否响应异常;若若响应正常,则令所述发送模块31继续向当前轮询队列中的下一个从站发送数据请求;若响应异常,则令所述记录模块33对当前从站进行记录并令所述发送模块向当前轮询队列中的下一个从站发送数据请求;待完成当前一轮的询问后,在下一轮的询问中令所述发送模块向上一轮出现响应异常的从站再次发送数据请求,并令所述判断模块判断是否响应异常;若响应正常,则清除该从站的记录并令所述发送模块继续向下一个从站发送数据请求;若仍响应异常,则令所述记录模块对该从站进行记录并令所述累加模块34累加记录次数,并令发送模块31继续向下一个从站发送数据请求;重复轮询,并将记录次数的累加值超过预设次数阈值的从站从轮询队列中剔除,直至轮询的循环数达到预设循环阈值后再次向剔除的从站发送数据请求。

在本实施例中,Modbus通讯装置30还包括提示模块36;提示模块36用于在轮询的循环数达到预设循环阈值后再次向剔除的从站发送数据请求,且从站仍然响应异常时,向外发出维修维护提示信息。

需说明的是,本实施例提供的基于轮询优化策略的Modbus通讯装置,其实施方式与实施例中基于轮询优化策略的Modbus通讯方法类似,故而不再赘述。

应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,处理模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上处理模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。

例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital signal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。

实施例三:

如图4所示,展示了本发明实施例提供的再一种电子终端的结构示意图。本实例提供的电子终端,包括:处理器41、存储器42、通信器43;存储器42通过系统总线与处理器41和通信器43连接并完成相互间的通信,存储器42用于存储计算机程序,通信器43用于和其他设备进行通信,处理器41用于运行计算机程序,使计算机设备执行如上基于轮询优化策略的Modbus通讯方法的各个步骤。

上述提到的系统总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于实现数据库访问装置与其他设备(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

实施例四:

本实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述基于轮询优化策略的Modbus通讯方法。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

综上所述,本发明提供基于轮询优化策略的Modbus通讯方法方法、装置、终端及介质,本发明由于在发生通讯故障时不再刻板地轮询,而是进行记录并直接轮至下一从站,从而缩短主站等待故障从站的时间消耗,提高Modbus RTU总线的通讯性能。与此同时,本发明的技术方案仅是修改了报文发送策略,而对报文本身的具体内容不做任何的改变,不仅便于使用而且确保了数据传输的安全性。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种建立VxLAN的方法及无线控制器、交换机

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!