一种自适应轮询软件处理方法、装置及存储介质制造方法及图纸

技术编号:35754812 阅读:12 留言:0更新日期:2022-11-26 19:01
本发明专利技术提供一种自适应轮询软件处理方法,通过主节点设计了自适应轮询查询策略,根据从节点响应情况快速进行再次召唤,提高总线利用率和系统响应的实时性;设置查询式数据接收处理方案,将数据接收处理作为任务,根据端口数据指针判断是否有新数据接收,进行数据处理,取代常规的中断式处理方案,减少在中断中运行的代码量,提高了任务运行的实时性;从节点检测端口数据,出现长时间无有效数据接收时进行端口自复位,能有效减少因从节点端口异常导致的通信异常问题。的通信异常问题。的通信异常问题。

【技术实现步骤摘要】
一种自适应轮询软件处理方法、装置及存储介质


[0001]本专利技术涉及总线通信
,尤其是一种自适应轮询软件处理方法、装置及存储介质。

技术介绍

[0002]半双工总线通信是指数据可以沿两个方向传送,但同一时刻一个信道只允许单方向传送,即在通信过程的任意时刻,数据只能从A传到B或从B传到A,不能同时发送;若要改变传输方向,需要通过控制器进行方向切换。现有的基于Modbus半双工总线通信方法中,主节点按预设周期进行召唤,大量时间浪费在周期等待,无法根据响应时间调整召唤周期;因为通过控制器进行方向切换,在软件运行过程中会被中断或中断嵌套打断,执行完成所有中断任务返回任务继续执行。如果在软件设计中使用了较多的中断或中断执行消耗时间过多,会导致顺序执行的任务无法按照预设周期运行。
[0003]因此,针对这一现状,迫切需要开发一种自适应轮询软件处理方法,实现提高总线利用率和系统响应的实时性,避免在中断中进行数据处理,对嵌入式任务处理的实时性要求无影响的目的。

技术实现思路

[0004]为解决现有技术存在的节点按预设周期进行召唤,大量时间浪费在周期等待,无法根据响应时间调整召唤周期的问题,本专利技术提供一种能够根据从节点响应情况快速进行再次召唤,比固定周期召唤提高了总线利用率和系统响应的实时性的自适应轮询软件处理方法,包括:
[0005]S1:设置通信超时时间Tout,设置主节点、从节点数据接收处理方式为查询式数据接收处理方式;
[0006]S2:主节点发送第一请求,第一从节点接收到所述主节点发送的所述第一请求的时间为第一发送时间Td1;
[0007]S3:所述第一从节点进行所述查询式数据接收处理,所述第一从节点进行数据解析消耗时间为第一解析时间Ts1;
[0008]S4:所述主节点检测判断所述第一发送时间Td1和所述第一解析时间Ts1之和是否超过所述通信超时时间Tout,如未超时,执行S5,否则,执行S7;
[0009]S5:所述第一从节点回复所述第一请求,所述主节点接收到所述第一从节点回复的时间为第二回复时间Td2;
[0010]S6:所述主节点进行所述查询式数据接收处理,所述主节点进行数据解析消耗时间为第二解析时间Ts2,所述第一从节点进行超时自复位处理,执行S8;
[0011]S7:所述第一从节点进行延时等待,并对超时的所述第一从节点进行标记;
[0012]S8:所述主节点发送第二请求,返回所述S2循环。
[0013]优选地,所述S1中还设置了从节点连续超时次数值上限值,所述S7中对超时的所
述第一从节点进行标记的具体内容为:所述主节点等待超时,对所述第一从节点超时计数加1,判断所述第一从节点连续超时次数是否超过所述连续超时次数值上限值,如超过,所述主节点发出告警信息,提示所述第一从节点出现异常。
[0014]优选地,所述查询式数据接收处理方式包括:主节点、从节点设置接收缓存区,端口接收的数据有序缓存到所述接收缓存区中;建立数据接收数组buf。
[0015]优选地,所述查询式数据接收处理方式包括:将数据处理指针Ptr、数据处理计步Step和报文长度Len用作数据处理过程记录。
[0016]优选地,设置判断所述接收缓冲区内数据是否合法的规则,当所述接收缓冲区内数据为合法数据时,将所述接收缓冲区内数据读取到所述数据接收数组buf内。
[0017]优选地,根据标准modbus协议,判断所述数据接收数组buf中第2个数据是否符合协议要求,若符合,则计算报文长度Len;若不符合,所述数据处理计步Step清零,筛除所述数据接收数组buf内第1个数据。
[0018]优选地,当所述数据处理计步Step等于所述报文长度Len时,并且通过数据校验后,进行报文解析。
[0019]优选地,所述超时自复位处理的包括:所述超时自复位处理的包括:设置从节点无数据接收时间的上限Tover,并设置从节点无数据接收时间的超时次数上限K,当从节点无数据接收时间超过Tover时,超时次数加1,当超时次数大于超时次数上限K时,所述从节点进行端口初始化。
[0020]优选地,一种自适应轮询软件处理装置,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上任一项所述的自适应轮询软件处理方法。
[0021]优选地,一种存储介质,所述存储介质用于存储计算机程序,当所述计算机程序在计算机上运行时,使得计算机执行如上任一项所述的方法。
[0022]本专利技术解决了当前现有主节点的召唤周期固定,大量时间浪费在周期等待,软件运行过程中会被中断或中断嵌套打断的问题。本专利技术通过主节点设计了自适应轮询查询策略,根据从节点响应情况快速进行再次召唤,提高总线利用率和系统响应的实时性;设计了查询式数据接收处理方案,将数据接收处理作为任务,根据端口数据指针判断是否有新数据接收,进行数据处理,取代常规的中断式处理方案,减少在中断中运行的代码量,提高了任务运行的实时性。
附图说明
[0023]为了更清楚地说明专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0024]图1是自适应轮询方案流程图;
[0025]图2是查询式数据接收处理流程图;
[0026]图3是从节点超时自复位流程图。
具体实施方式
[0027]为了能够更清楚地理解本专利技术的上述目的、特征和优点,下面结合附图和具体实施方式对本专利技术进行进一步的详细描述。需要说明的是,在不冲突的情况下,本专利技术的实施例及实施例中的特征可以相互组合。
[0028]在下面的描述中阐述了很多具体细节以便于充分理解本专利技术,但是,本专利技术还可以采用其他不同于在此描述的方式来实施,因此,本专利技术的保护范围并不受下面公开的具体实施例的限制。
[0029]实施例一
[0030]一种自适应轮询软件处理方法,基于Modbus半双工总线通信方法,如图1所示,包括
[0031]S1:设置通信超时时间Tout,设置主节点、从节点数据接收处理方式为查询式数据接收处理方式,还设置了从节点连续超时次数值上限值;此处不限制Tout的时间范围,可选的,通信超时时间Tout与固定召唤周期相同,在现有的通常设定召唤周期Tper,每Tper个周期顺序执行1次请求,即2次召唤请求相隔时间为Tper,设置Tout与Tper相同,可选的Tper取值为200ms—500ms,本实施例中Tper为200ms,即Tout设置为200ms。
[0032]此处查询式数据接收处理方式的具体内容可选的,主节点、从节点设置接收缓存区,端口接收的数据有序缓存到所述接收缓存区中,结合通信协议判断缓冲区内的数据,避免在中断中进本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种自适应轮询软件处理方法,其特征在于:包括S1:设置通信超时时间Tout,设置主节点、从节点数据接收处理方式为查询式数据接收处理方式;S2:主节点发送第一请求,第一从节点接收到所述主节点发送的所述第一请求的时间为第一发送时间Td1;S3:所述第一从节点进行所述查询式数据接收处理,所述第一从节点进行数据解析消耗时间为第一解析时间Ts1;S4:所述主节点检测判断所述第一发送时间Td1和所述第一解析时间Ts1之和是否超过所述通信超时时间Tout,如未超时,执行S5,否则,执行S7;S5:所述第一从节点回复所述第一请求,所述主节点接收到所述第一从节点回复的时间为第二回复时间Td2;S6:所述主节点进行所述查询式数据接收处理,所述主节点进行数据解析消耗时间为第二解析时间Ts2,所述第一从节点进行超时自复位处理,执行S8;S7:所述第一从节点进行延时等待,并对超时的所述第一从节点进行标记;S8:所述主节点发送第二请求,返回所述S2循环。2.根据权利要求1所述的自适应轮询软件处理方法,其特征在于:所述S1中还设置了从节点连续超时次数值上限值,所述S7中对超时的所述第一从节点进行标记的具体内容为:所述主节点等待超时,对所述第一从节点超时计数加1,判断所述第一从节点连续超时次数是否超过所述连续超时次数值上限值,如超过,所述主节点发出告警信息,提示所述第一从节点出现异常。3.根据权利要求1所述的自适应轮询软件处理方法,其特征在于:所述查询式数据接收处理方式包括:主节点、从节点设置接收缓存区,端口接收的数据有序缓存到所述接收缓存区中;建立数据接收数组buf。4.根据权利要求1所述的自适应轮询软件处理方法,其特征在于:所述查询式数...

【专利技术属性】
技术研发人员:唐超金心超伍恩占段明栋郑冬琛毛志平袁彬黄凯
申请(专利权)人:山东中康激宏科技开发有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1