一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种Modbus响应处理方法及主机设备与流程

2022-03-16 02:37:55 来源:中国专利 TAG:

一种modbus响应处理方法及主机设备
技术领域
1.本发明属于串口通信领域,尤其涉及一种modbus响应处理方法及主机设备。


背景技术:

2.随着modbus主站下接入的modbus从站数量增多,这些从站设备属于不同厂商,从站的应答响应时间也各不相同,导致每次接入新的从站设备需要重新配置主站端的接收响应超时,而响应时间太短,一些设备不能被正常轮询到数据,时间太长又会造成程序里不必要的等待时间,会增加在配置系统上的时间消耗。
3.目前,对于从站设备的响应超时,如中国专利201210151822.0和200910140443.x公开的方案,多是在给定响应时间范围内,重新发送请求等待响应,若一定重试次数内仍未接收到响应消息,则进行异常标记,由于这类方法给定的响应时间固定,难以适应所有从机设备的响应速度,系统配置时间长。


技术实现要素:

4.有鉴于此,本发明实施例提供了一种modbus响应处理方法及主机设备,用于解决主站配置中难以适应所有从机设备的响应速度的问题。
5.在本发明实施例的第一方面,提供了一种modbus响应处理方法,包括:
6.modbus主站设备启动后,获取主站配置信息中的默认响应超时时间;
7.向第一modbus从站发送数据读取指令,若超过默认响应超时时间未接收到第一modbus从站响应数据,则判断是否超过最大允许重试次数和最大允许响应超时时间;
8.若超过最大允许重试次数且未超过最大允许响应超时时间,则为默认响应超时时间增加预定时间间隔,重试读取第一modbus从站设备;
9.若超过默认响应超时时间仍未接到第一modbus从站响应数据,则标记第一modbus从站设备状态,并将默认响应超时时间恢复至上一次可用的响应超时时间。
10.在本发明实施例的第二方面,提供了一种主站设备,包括:
11.获取模块,用于modbus主站设备启动后,获取主站配置信息中的默认响应超时时间;
12.指令发送模块,用于向第一modbus从站发送数据读取指令;
13.响应超时处理模块,用于若超过默认响应超时时间未接收到第一modbus从站响应数据,则判断是否超过最大允许重试次数和最大允许响应超时时间;
14.若超过最大允许重试次数且未超过最大允许响应超时时间,则为默认响应超时时间增加预定时间间隔,重试读取第一modbus从站设备;
15.若超过默认响应超时时间仍未接到第一modbus从站响应数据,则标记第一modbus从站设备状态,并将默认响应超时时间恢复至上一次可用的响应超时时间。
16.在本发明实施例的第三方面,提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器运行的计算机程序,所述处理器执行所述计算机程序时
实现如本发明实施例第一方面所述方法的步骤。
17.在本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例第一方面提供的所述方法的步骤。
18.本发明实施例中,可以在不需要人工干预的情况下,主机设备能自适应下面所有的不同响应速度的从机设备,完成所有从机设备的正常数据读取,节省系统配置时间,且适应性好。
附图说明
19.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见地,下面描述的附图仅仅是本发明的一些实施例,对本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获取其他附图。
20.图1为本发明一个实施例提供的一种modbus响应处理方法的流程示意图;
21.图2为本发明一个实施例提供的modbus主站与从站连接示意图;
22.图3为本发明一个实施例提供的一种主站设备的结构示意图。
23.图4为本发明的一个实施例提供的一种电子设备的结构示意图。
具体实施方式
24.为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
25.应当理解,本发明的说明书或权利要求书及上述附图中的术语“包括”以及其他相近意思表述,意指覆盖不排他的包含,如包含一系列步骤或单元的过程、方法或系统、设备没有限定于已列出的步骤或单元。此外,“第一”“第二”用于区分不同对象,并非用于描述特定顺序。
26.请参阅图1,本发明实施例提供的一种modbus响应处理方法的流程示意图,包括:
27.s101、modbus主站设备启动后,获取主站配置信息中的默认响应超时时间;
28.modbus为plc控制器间的串行通信协议,也是工业电子设备间常用的连接方式。modbus主站用于在接收到任务请求后,如图2所示,将数据传送至从站,主站与从站进行数据通信前需要配置从站响应时间,避免不必要的响应等待。
29.一般的,主站设备中可以包含有从站响应超时配置信息。对于本技术而言,由于新接入的从站设备类型不同,可以动态自动配置响应超时时间。
30.具体的,读取主站配置中的默认响应超时时间,并准备向modbus从站发送的数据读取指令。
31.s102、向第一modbus从站发送数据读取指令,若超过默认响应超时时间未接收到第一modbus从站响应数据,则判断是否超过最大允许重试次数和最大允许响应超时时间;
32.modbus主站在默认响应超时时间内等待判断是否接收到从站响应数据,默认响应超时时间为一个固定时间。
33.可选的,若默认响应超时时间内接收到第一modbus从站响应数据,将重试计数清零,记录当前能接收到从站设备响应的响应超时时间,并向第二modbus从站发送数据读取指令。
34.重试计数为modbus主站向从站发送数据读取请求,重试直至接收到从站响应的次数。所述能接收到从站设备响应的响应超时时间为从站设备的实际响应时间,在从站设备故障时,可以将默认响应超时时间恢复为上一次能接收到从站设备响应的响应超时时间。
35.其中,若未超过最大允许重试次数,则将重试计数加一后,重新向第一modbus从站发送数据读取指令。
36.其中,若超过最大允许重试次数且超过最大允许响应超时时间,则标记第一modbus从站设备状态,并将默认响应超时时间恢复至上一次可用的响应超时时间。若不存在上一次可用的响应超时时间则可以使用初始默认响应超时时间。
37.s103、若超过最大最大允许重试次数且未超过最大允许响应超时时间,则为默认响应超时时间增加预定时间间隔,重试读取第一modbus从站设备;
38.当modbus主站重试等待响应时间仍在最大允许响应超时时间内,则增加默认响应超时时间,增加的时间间隔可在一定范围内取值,具体取值可根据默认响应超时时间、重试次数和最大允许响应超时时间,计算确定,也可以为预定值。
39.s104、若超过默认响应超时时间仍未接到第一modbus从站响应数据,则标记第一modbus从站设备状态,并将默认响应超时时间恢复至上一次可用的响应超时时间。
40.可选的,将第一modbus从站设备标记为故障状态,并不再进行轮询。
41.可选的,将第一modbus从站设备标记为故障状态,并延长轮询间隔周期。
42.判定从站设备为故障状态后,可以对故障设备不再进行轮询,或者延长轮询间隔周期,如由每次轮询修改为每5个轮询周期进行一次故障设备轮询。
43.其中,当不存在上一次可用的响应超时时间(从站设备成功响应时间),可以仍采用默认响应超时时间。
44.本实施例中,主站能适应更多不同响应时间的modbus从站设备,可以自动匹配合适的响应超时时间,无需人工干预,并能节省系统配置时间,减少人工试错。同时,对设备维护人员技术素质要求低,能快速配置好设备。
45.在另一实施例中,modbus响应处理流程包括:
46.步骤1:设备启动后,程序读取配置里的默认响应超时时间t_response,准备第一个modbus从站的数据读取指令;
47.步骤2:发送modbus从站的数据读取指令;
48.步骤3:程序在响应超时时间t_response内,判断是否能收到modbus从站的响应数据,如果能收到从站响应数据,进入到步骤4,否则进入到步骤6;
49.步骤4:将重试计数retry_count清零,记录此次能收到从站设备响应的响应超时时间t_record=t_response,进入到步骤5;
50.步骤5:准备下一个从站的指令数据,然后进入到步骤2;
51.步骤6:判断是否已经超过了最大允许的重试次数retry_max,如果未超过retry_
max,对retry_count重试计数进行自增1次,进入到步骤2,否则,进入到步骤7;
52.步骤7:判断t_response值是否已经超过了最大允许的响应超时时间t_response_max,如果未超过,进入到步骤8,否则,进入到步骤9;
53.步骤8:将t_response增加一定的间隔n毫秒(可在50ms~500ms范围内取值,可以假设为100ms间隔),然后进入到步骤2,再次重试读取此次的从站设备;
54.步骤9:此时可标记该从站设备为故障设备状态,可以以后不再进行轮询,或者拉长此故障从站设备的轮询间隔周期(可选每5个轮询周期进行一次故障设备的轮询),然后进入到步骤10;
55.步骤10:因前一个设备可能故障,所以需要将t_response值恢复到上次可用的响应时间值t_record,然后进入到步骤4。
56.应理解,上述实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
57.图3为本发明实施例提供的一种主站设备的结构示意图,该设备包括:
58.获取模块310,用于modbus主站设备启动后,获取主站配置信息中的默认响应超时时间;
59.指令发送模块320,用于向第一modbus从站发送数据读取指令;
60.响应超时处理模块330,用于若超过默认响应超时时间未接收到第一modbus从站响应数据,则判断是否超过最大允许重试次数和最大允许响应超时时间;
61.其中,若默认响应超时时间内接收到第一modbus从站响应数据,将重试计数清零,记录当前能接收到从站设备响应的响应超时时间,并向第二modbus从站发送数据读取指令。
62.其中,若未超过最大允许重试次数,则将重试计数加一后,重新向第一modbus从站发送数据读取指令。
63.其中,若超过最大允许重试次数且超过最大允许响应超时时间,则标记第一modbus从站设备状态,并将默认响应超时时间恢复至上一次可用的响应超时时间。
64.若超过最大最大允许重试次数且未超过最大允许响应超时时间,则为默认响应超时时间增加预定时间间隔,重试读取第一modbus从站设备;
65.若超过默认响应超时时间仍未接到第一modbus从站响应数据,则标记第一modbus从站设备状态,并将默认响应超时时间恢复至上一次可用的响应超时时间。
66.可选的,将第一modbus从站设备标记为故障状态,并不再进行轮询。
67.可选的,将第一modbus从站设备标记为故障状态,并延长轮询间隔周期。
68.所述领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程可以参考前述方法实施例中对应的过程,在此不再赘述。
69.图4是本发明一实施例提供的一种电子设备的结构示意图。所述电子设备用于modbus从站响应时间配置,通常为plc设备。如图4所示,该实施例的电子设备4包括:存储器410、处理器420以及系统总线430,所述存储器410包括存储其上的可运行的程序4101,本领域技术人员可以理解,图4中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
70.下面结合图4对电子设备的各个构成部件进行具体的介绍:
71.存储器410可用于存储软件程序以及模块,处理器420通过运行存储在存储器410的软件程序以及模块,从而执行电子设备的各种功能应用以及数据处理。存储器410可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据(比如缓存数据)等。此外,存储器410可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
72.在存储器410上包含有可运行程序4101,所述可运行程序4101可以被分割成一个或多个模块/单元,所述一个或多个模块/单元被存储在所述存储器410中,并由处理器420执行,以实现从站响应时间自动配置等,所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序4101在所述电子设备4中的执行过程。例如,所述计算机程序4101可以被分割为获取模块、指令发送模块和响应超时处理模块。
73.处理器420是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器410内的软件程序和/或模块,以及调用存储在存储器410内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体状态监控。可选的,处理器420可包括一个或多个处理单元;优选的,处理器420可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器420中。
74.系统总线430是用来连接计算机内部各功能部件,可以传送数据信息、地址信息、控制信息,其种类可以是例如pci总线、isa总线、vesa总线等。处理器420的指令通过总线传递至存储器410,存储器410反馈数据给处理器420,系统总线430负责处理器420与存储器410之间的数据、指令交互。当然系统总线430还可以接入其他设备,例如网络接口、显示设备等。
75.在本发明实施例中,该电子设备所包括的处理420执行的可运行程序包括:
76.modbus主站设备启动后,获取主站配置信息中的默认响应超时时间;
77.向第一modbus从站发送数据读取指令,若超过默认响应超时时间未接收到第一modbus从站响应数据,则判断是否超过最大允许重试次数和最大允许响应超时时间;
78.若超过最大允许重试次数且未超过最大允许响应超时时间,则为默认响应超时时间增加预定时间间隔,重试读取第一modbus从站设备;
79.若超过默认响应超时时间仍未接到第一modbus从站响应数据,则标记第一modbus从站设备状态,并将默认响应超时时间恢复至上一次可用的响应超时时间。
80.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
81.以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献