【技术实现步骤摘要】
轮询方法、装置、电子设备及存储介质
[0001]本申请实施例属于计算机
,特别是涉及一种轮询方法
、
装置
、
电子设备及存储介质
。
技术介绍
[0002]Modbus
协议是工业领域常用的一种串行通信协议,通过
Modbus
协议轮询主机可以依次向从机发送多个请求报文,并根据从机返回的回执报文读取从机寄存器中存储的内容
。
现有技术中,轮询主机向从机发送请求报文后,可以根据统一的等待时间读取回执报文,若超过等待时间从机仍未返回正确的回执报文,则轮询主机可以直接放弃读取并向从机发送下一条请求报文
。
由于现有技术未能根据各个请求报文的情况设置相应的等待时间,因此容易出现等待时间过长的情况
。
此外,由于现有技术中缺乏请求报文的辅助生成方案,因此轮询主机通常采用一个控制指令生成一条请求报文的方式进行轮询,从而导致轮询主机发送请求报文通常未能最大化利用请求报文的请求资源,存在资源浪费的情况
。
[0003]由于现有技术中存在轮询主机读取回执报文时的等待时间设计不合理
、
轮询主机生成的请求报文不合理等问题,因此现有的
Modbus
轮询方案均无法逼近轮询主机能达到的轮询时间极限值,从而使得现有的
Modbus
轮询方案轮询速度较慢
。
技术实现思路
[0004]有鉴于此,本申请实施例提供了一种轮询方法
、r/>装置
、
电子设备及存储介质,用以提高轮询主机的轮询速度
。
[0005]本申请实施例的第一方面提供了一种轮询方法,包括:
[0006]根据从机对应的报文配置列表,将寄存器地址连续且具有相同功能码的控制指令封装至同一请求报文,以生成所述从机对应的多个请求报文;所述报文配置列表记录了每个所述控制指令在所述从机中对应的寄存器地址;
[0007]响应于轮询指令,基于每个所述请求报文的发送时机,依次将各个所述请求报文发送至所述从机;所述发送时机为在读取到所述从机基于上一请求报文返回的回执报文之后,向所述从机发送下一请求报文
。
[0008]本申请实施例的第二方面提供了一种轮询装置,包括:
[0009]请求报文生成模块,用于根据从机对应的报文配置列表,将寄存器地址连续且具有相同功能码的控制指令封装至同一请求报文,以生成所述从机对应的多个请求报文;所述报文配置列表记录了每个所述控制指令在所述从机中对应的寄存器地址;
[0010]轮询模块,用于响应于轮询指令,基于每个所述请求报文的发送时机,依次将各个所述请求报文发送至所述从机;所述发送时机为在读取到所述从机基于上一请求报文返回的回执报文之后,向所述从机发送下一请求报文
。
[0011]本申请实施例的第三方面提供了一种电子设备,包括存储器
、
处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时
实现如上述第一方面所述的轮询方法
。
[0012]本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的轮询方法
。
[0013]本申请实施例的第五方面提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述第一方面所述的轮询方法
。
[0014]与现有技术相比,本申请实施例具有以下优点:
[0015]本申请实施例,轮询主机可以根据从机对应的报文配置列表,将寄存器地址连续且具有相同功能码的控制指令封装至同一请求报文中,以生成从机对应的多个请求报文;响应于轮询指令,轮询主机可以基于每个请求报文对应的发送时机,依次将各个请求报文发送至从机;其中第
N+1
个发送时机为,轮询主机在读取到从机基于上一请求报文返回的回执报文之后,向所述从机发送下一请求报文;所述
N
为大于或等于1的正整数;通过本申请实施例提供的方法,轮询主机在执行轮询操作时,可以通过一个请求报文连续读取从机多个寄存器的内容,因此可以大幅度提升轮询主机的轮询速度
。
附图说明
[0016]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍
。
显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图
。
[0017]图1是本申请实施例提供的一种轮询方法的示意图;
[0018]图2是本申请实施例提供的一种报文配置列表的示意图;
[0019]图3是本申请实施例提供的一种轮询方法
S102
的具体实现流程图;
[0020]图4是本申请实施例提供的一种轮询方法
S1022
的具体实现流程图;
[0021]图5是本申请实施例提供的一种回执报文的示意图;
[0022]图6是本申请实施例提供的一种轮询操作的执行流程示意图;
[0023]图7是本申请实施例提供的一种轮询方法
S102
的具体实现流程图;
[0024]图8是本申请实施例提供的一种经验等待时间的生成流程示意图;
[0025]图9是本申请实施例提供的一种轮询方法
S101
的具体实现流程图;
[0026]图
10
是本申请实施例提供的一种轮询方法
S1013
的具体实现流程图;
[0027]图
11
是本申请实施例提供的一种生成请求报文的流程示意图;
[0028]图
12
是本申请实施例提供的一种轮询方法
S1002
的具体实现流程图;
[0029]图
13
是本申请实施例提供的一种生成请求报文的流程示意图;
[0030]图
14
是本申请实施例提供的一种轮询方法
S1002
的具体实现流程图;
[0031]图
15
是本申请实施例提供的一种轮询装置的示意图;
[0032]图
16
是本申请实施例提供的一种电子设备的示意图
。
具体实施方式
[0033]以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构
、
技术之类的具
体细节,以便透彻理解本申请实施例
。
然而,本领域技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请
。
在其他情况中,省略对众所周知的系统
、
装置
、
电路本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.
一种轮询方法,其特征在于,应用于轮询主机,包括:根据从机对应的报文配置列表,将寄存器地址连续且具有相同功能码的控制指令封装至同一请求报文,以生成所述从机对应的多个请求报文;所述报文配置列表记录了每个所述控制指令在所述从机中对应的寄存器地址;响应于轮询指令,基于每个所述请求报文的发送时机,依次将各个所述请求报文发送至所述从机;第
N+1
个发送时机为在读取到所述从机基于上一请求报文返回的回执报文之后,向所述从机发送下一请求报文;所述
N
为大于或等于1的正整数
。2.
根据权利要求1所述的方法,其特征在于,第一请求报文包含经验等待时间;所述第一请求报文为任一所述请求报文;所述响应于轮询指令,基于每个所述请求报文的发送时机,依次将各个所述请求报文发送至所述从机,包括:基于所述第一请求报文的发送时机向所述从机发送所述第一请求报文;基于所述经验等待时间读取所述从机基于所述第一请求报文返回的回执报文
。3.
根据权利要求2所述的方法,其特征在于,所述回执报文由所述从机基于各个数据段的返回次序依次返回至所述轮询主机,所述基于所述经验等待时间读取所述从机基于所述第一请求报文返回的回执报文,还包括:在所述经验等待时间读取所述从机返回的实时数据;若所述实时数据包含第一数据段,则根据所述第一数据段的字节数确定所述实时数据对应的第一期望字节数;若所述实时数据的实际字节数小于所述第一期望字节数,则基于预设的间隔等待时间间隔读取所述从机返回的所述实时数据,并更新所述第一请求报文对应的重复读取次数,直至所述实时数据满足预设的报文停止条件或所述重复读取次数满足预设的读取停止条件;所述报文停止条件为所述实时数据的实际字节数大于或等于第二期望字节数;所述读取停止条件为所述重复读取次数大于或等于预设的重复读取阈值
。4.
根据权利要求1所述的方法,其特征在于,所述响应于轮询指令,基于每个所述请求报文的发送时机,依次将各个所述请求报文发送至所述从机,包括:向所述从机发送第二请求报文,记录所述第二请求报文的发送时间,并执行多次重复读取操作;所述第二请求报文为任一所述请求报文;所述重复读取操作用于基于预设的读取间隔读取从机基于所述第二请求报文返回的多个实时数据;若当前重复读取操作未读取到所述实时数据,则基于读取到的多个所述实时数据确定所述第二请求报文对应的回执报文,并记录所述当前重复读取操作的执行时间;基于所述发送时间
、
所述执行时间和所述读取间隔生成所述第二请求报文对应的经验等待时间,并将所述经验等待时间写入所述第二请求报文,以使响应下一轮询指令时,基于所述第二请求报文中的经验等待时间确定所述第二请求报文对应的回执报文的读取时机
。5.
根据权利要求1‑4任一项所述的方法,其特征在于,所述报文配置列表中还记录了各个所述控制指令对应的所述功能码,所述根据从机对应的报文配置列表,将寄存器地址连续且具有相同功能码的控制指令封装至同一请求报文,以生成所述从机对应的多个请求报文,包括:基于所述功能码,将报文配置列表中的多个所述控制指令划分为多个请求小组,并依次获取任一请求小组中的第一控制指令;所述第一控制指令为所述任一请求小组中的其中
一个控制指令;针对任一请求小组,若所述请求小组中的第一控制指令满足预设的连续请求条件,则将所述第一控制指令写入连续请求列表中,并判断所述请求小组中的其他控制指令是否满足所述连续请求条件;将满足所述连续请求条件的所述其他控制指令写入所述连续请求列表,并持续获取所述请求小组中的所述其他控制指令进行判断,直至任一所述其他控制指令不满足所述连续请求条件或所述请求...
【专利技术属性】
技术研发人员:宋佳城,万跃敏,胡衍平,吕恒,曹晨鑫,
申请(专利权)人:深圳市泰和安科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。