掌桥专利:专业的专利平台
掌桥专利
首页

基于RS485总线的设备指令采集调度方法及装置

文献发布时间:2024-04-18 19:59:31


基于RS485总线的设备指令采集调度方法及装置

技术领域

本发明涉及一种工业设备组网通信领域,尤其涉及一种高效地进行设备间通信的方法。

背景技术

RS485是一个定义平衡数字多点系统中的驱动器和接收器的电气特性的标准,该标准由电信行业协会和电子工业联盟定义。使用该标准的数字通信网络能在远距离条件下以及电子噪声大的环境下有效传输信号。

RS485网络是基于主/从框架构建的,即一个主机接入多个设备。主机扮演发送器的角色,向指定的设备发出请求,设备充当接收器。主机监听响应,如果未在适当的时间范围内获得响应,则将终止通信,其通信模式属于半双工模式。

基于这种类似广播的通信模式,如果挂接的工业设备数量较多时,业界的通常做法是:基于设备的优先级进行数据采集,每个采集周期的通信时长固定。这样处理会导致通信吞吐量低;由于不同设备有不同的响应速度,一些高速设备必定会被低速设备影响;且一旦有设备发生故障,则会严重拖累整条总线上的设备通信,严重降低设备采集数据的吞吐量,降低了采集系统的实时性。

为此,本发明在无需改造现有总线以及各类从设备的情况下,优化主设备的轮询算法,使其可以适配各种高低速从设备,提高数据采集的实时性。

发明内容

本发明的目的是提供一种基于RS485总线的设备指令采集调度方法及装置,采集效率高,信息吞吐量大。

为了实现上述目的,本发明公开了一种基于RS485总线的设备指令采集调度方法,主机通过RS485总线与多个设备通讯连接,所述设备具有一个或多个设备指令,包括RTT哈希表的创建方法和数据采集方法;所述创建方法包括:步骤1,对每一所述设备的每一所述设备指令进行采集,获得每一设备指令的通信消息往返时间,依据所述通信消息往返时间获得每一所述设备指令的基准RTT值;步骤2,存储所述设备指令、基准RTT值的对应关系到RTT哈希表;所述数据采集方法包括:步骤3,依据每一所述设备指令的基准RTT值的大小确定每一所述设备指令的权重;步骤4,将所述设备指令的权重作为权重轮询调度算法的权重因子,通过所述权重轮询调度算法对每个设备指令进行轮询,以采集相应的数据,每一所述设备指令的基准RTT值越大,其权重越小。

较佳地,所述步骤1中依据所述通信消息往返时间获得每一所述设备指令的基准RTT值具体包括:依据通信消息往返时间的长短将设备指令分在不同速度区间,然后对不同的设备区间设置对应的校准时间,将通信消息往返时间加对应的校准时间以得到其对应的基准RTT值,其中,速度区间越快,校准时间越小。本方案针对高速设备指令(RTT值低)进行高频通信,低速设备指令(RTT值高)进行低频通信,自适应地充分利用“时分复用”特性实现最大限度的通信吞吐量。

具体地,所述步骤1中依据所述通信消息往返时间获得每一所述设备指令的基准RTT值具体包括:依据所述设备指令的通信消息往返时间的长短将所述设备指令分为高速设备指令和低速设备指令,在所述高速设备指令的通信消息往返时间上加第一校准时间以获得所述高速设备指令的基准RTT值,在所述低速设备指令的通信消息往返时间上加上第二校准时间以获得所述低速设备指令的基准RTT值,所述第一校准时间小于所述第二校准时间。

较佳地,所述RTT哈希表包括所述设备指令对应的设备的设备地址、设备指令的指令编号以及所述设备指令的基准RTT值。

较佳地,重复一次或多次步骤1,以重新得到所述设备指令的基准RTT值,获取每一所述设备指令的最大的基准RTT值,将最大的所述基准RTT值作为所述设备指令最终的基准RTT值。

较佳地,所述步骤1和步骤4中,若采集设备指令时所述通信消息往返时间超出第一预设时间,则判断所述设备故障,并将故障的所述设备隔离并保存至故障设备列表中。本发明通过设备指令的采集的RTT值来判断相应的设备是否故障,可在某个设备遇到故障时,可根据该设备指令的RTT值,快速及时地发现故障,并将其隔离,隔离期间会间歇性地尝试“唤醒”该设备,达到自我恢复的目的。

更佳地,将每个设备指令采集的往返时间称为一个采集周期,所述主机在每一采集周期前,判断每一故障设备的通讯尝试次数和采集时间间隔,在所述故障设备的采集时间间隔超出预设的时间长度时进行一次通讯尝试,所述预设的时间长度依据所述通讯尝试次数获取,所述通讯尝试次数越多,所述预设的时间长度越长。本方案使得本发明可以在故障被修复后,尽最大努力地恢复该设备的通信。

具体地,所述主机会在一个采集周期前,对故障后,通讯尝试次数不超出第二预设值、采集时间间隔大于第二时间长度的故障的设备进行一次通讯尝试,若通讯成功,则将所述设备从故障设备列表删除,并恢复正常通讯流程;对于通讯尝试次数超出第二预设值,采集时间间隔大于第三时间长度的设备进行一次通讯尝试,若通讯成功,则将所述设备从故障设备列表删除,以恢复正常通讯流程;所述第三时间长度大于第二时间长度,所述第三时间长度为恒定常数,所述第二时间长度=a+b*c,a为常数,b为系数,c为通讯尝试的次数。该方案将尝试次数分为两个分区,第一个分区通过尝试次数的线性关系调整预设的时间长度,第二个分区采取恒定的时间长度进行故障尝试。

较佳地,所述步骤3具体包括:遍历所述RTT哈希表,寻找所有设备指令的基准RTT值最大的数值max,依据计算公式W=max/R计算每个设备指令的权重W,R为相应设备指令的基准RTT值。

本发明还公开了一种基于RS485总线的设备指令采集调度装置,设置于主机内,包括:通讯接口,通过RS485总线与所述设备通讯连接;一个或多个处理器;存储器;以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述一个或多个程序包括用于执行如上所述的基于RS485总线的设备指令采集调度方法的指令。

综上所述,本发明将设备指令作为权重轮询调度算法的排序单位,而非设备本身,通过对每个设备指令进行RTT值计算以获得其基准RTT值,依据其基准RTT值计算该设备指令的权重,将其权重作为权重轮询调度算法的权重因子以对每个设备指令进行轮询次数和/或频率的设定,以确定所述设备指令的轮序次序,不但可以有效提高采集效率,还可以提高采集数据的实时性,提升RS485总线的通信吞吐量大。

附图说明

图1是本发明RS485总线网络的结构图。

图2是本发明RTT哈希表的创建方法的流程图。

图3是本发明数据采集方法的流程图。

具体实施方式

为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。

本发明公开了一种基于RS485总线的设备指令采集调度方法,主机通过RS485总线与多个设备通讯连接,该设备指令采集调度方法包括RTT哈希表的创建方法和数据采集方法。本发明以基于RS485总线网络的多设备通信进行举例说明。参考图1,RS485总线网络分为一个主机、若干条总线以及若干台设备,主机和设备通讯,使得整条链路连通。一台设备可能涉及多个设备指令的采集。

参考图2,所述创建方法包括步骤S11至步骤S12。

步骤S11,对每一所述设备的每一所述设备指令进行采集,获得每一设备指令的通信消息往返时间,依据所述通信消息往返时间获得每一所述设备指令的基准RTT值。

具体地,该步骤S11包括步骤S11 a至步骤S11 c。

步骤S11 a,主机启动后,创建一个RTT哈希表,将其缓存在主机的内存中。当然,也可以将RTT哈希表存储在主机的其他存储器中。其中,RTT哈希表的数据结构为设备的地址-设备指令的指令编号-基准RTT值。其中,RTT为通信消息往返时间,RTT=收到反馈数据时间-发出请求时间。另外,主机也会同时创建一个故障设备列表,专门存放故障设备。之后,主机开始按照自适应设备通信速率进行轮询,其具体步骤如下:

步骤S11 b,设置调度流程,该调度流程依据实际需要设置,是本领域公知常识,在此不予详述。调度流程中,进行了每次的通信超时设置,即第一预设时间的设置,本实施例中,将第一预设时间设置为10s。

步骤S11 c,按照设置的调度流程,对每一个设备进行与其采集的设备指令数目对应的N次采集,每个采集周期对应一条不同的采集指令。采集完成后,会对该设备的不同设备指令产生N个通信消息往返时间,也就是RTT值。

在此过程中,若某一采集设备指令时采集的RTT值超出第一预设时间,则判断所述设备故障,并将所述设备隔离并保存至故障设备列表中。

步骤S11 d,对该RTT值进行加权处理,以得到其对应的基准RTT值,从而降低线路传输抖动带来的影响,增加通信的可靠性。当然,区别于该实施例,在另一实施例中,可以将该RTT值直接作为基准RTT值。

步骤S11 d具体为,本发明可依据通信消息往返时间的长短将设备指令分在不同速度区间,然后对不同的设备区间设置对应的校准时间,将通信消息往返时间加对应的校准时间以得到其对应的基准RTT值,其中,速度区间越快,校准时间越小。该方案使得本发明可针对高速设备指令(RTT值低)进行高频通信,低速设备指令(RTT值高)进行低频通信,自适应地充分利用“时分复用”特性实现最大限度的通信吞吐量。

具体地,依据所述通信消息往返时间的长短将对应所述设备指令分为高速设备指令和低速设备指令,在所述高速设备指令的通信消息往返时间上加第一校准时间以获得所述高速设备指令的基准RTT值,在所述低速设备指令的通信消息往返时间上加上第二校准时间以获得所述低速设备指令的基准RTT值,所述第一校准时间小于所述第二校准时间。其中,通信消息往返时间(RTT值)低于预设时长则设置为高速设备指令,将通信消息往返时间(RTT值)高于预设时长则设置为低速设备指令。当然,在另一实施例中,也可以依据所述通信消息往返时间的长短将对应所述设备指令还划分出位于高速设备指令和低速设备指令之间的中速设备指令。

本实施例中,对于低速类设备指令可将其RTT值加上150毫秒,高速类设备指令可将其RTT值加上50毫秒。当然,第一校准时间和第二校准时间可以依据实际需要设置,并不限制在上述数值。

其中,步骤S11 c和步骤S11 d中,从第一台设备对所有设备依次进行数据采集和加权处理,直至完成所有设备的设备指令的数据采集。

步骤S12,存储所述设备指令、基准RTT值的对应关系到RTT哈希表。也就是说,依据获得的基准RTT值更新RTT哈希表,以存储设备指令、基准RTT值的对应关系。

较佳者,重复步骤S11,以获取每一所述设备指令的最大的基准RTT值,将所述最大的基准RTT值作为所述设备指令最终的基准RTT值。

具体地,重复执行步骤S11 c至步骤S11 d,以获得新的基准RTT值,每次获得一次基准RTT值,均和RTT哈希表中存储的对应基准RTT值比对一下,将大的基准RTT值更新到RTT哈希表中。其中,步骤S11可以重复一次,也可以重复两次,重复的次数依据实际需要设置。

以上完成RTT哈希表的创建和使用,是提高RS485总线多个设备轮询的基础,有了这个基础,主机的调度系统会据此合理安排采集任务,使设备的采集数据实时性最高化。接下来,详细阐述主机是如何利用基准RTT值进行数据采集的。

参考图3,所述数据采集方法包括步骤S21至步骤S22。

步骤S21,依据每一所述设备指令的基准RTT值大小计算每一所述设备指令的权重。

具体地,遍历所述RTT哈希表,寻找最大的设备指令的基准RTT值max,依据计算公司W=max/R计算每个设备指令的权重,R为相应设备指令的基准RTT值。

步骤S22,将所述设备指令的权重作为权重轮询调度算法的权重因子,通过所述权重轮询调度算法对每个设备指令进行轮询,以采集相应的数据。

其中,当轮询到对应设备指令时,将获取该设备指令对应的采集数据,如果本次采集的时间超出RTT值超出第一预设时间,则判断所述设备故障,并将所述设备隔离并保存至故障设备列表中,从轮询次序中删除该设备的所有设备指令的采集任务,在后续的采集周期中,会降低该故障设备的采集频率。

其中,通过权重轮询调度算法计算出每个设备指令的轮询次数和/或频率,依次制定通讯正常的所有设备的每一设备指令的具体轮询次序,以确定未来一段时间内或者未来M次采集中所述设备指令的轮序次序,M为预设的数值,可以为100、200等。该轮询次数为一个固定时长中采集的次数。然后通过该轮询次序,无限循环地对每个设备指令进行轮询,以采集相应的数据。其中,权重越高,轮询的次数越高,轮序频率大。

对于故障的设备,所述主机会在一个采集周期前,对通讯尝试次数不超出第二预设值、采集时间间隔大于第二时间长度的设备进行一次通讯尝试,若通讯成功,则将所述设备从故障设备列表删除,以恢复正常通讯流程;对于通讯尝试次数超出第二预设值,采集时间间隔大于第三时间长度的设备进行一次通讯尝试,若通讯成功,则将所述设备从故障设备列表删除,以恢复正常通讯流程;所述第三时间长度大于第二时间长度。

其中,在一设备被加入故障设备列表时,主机会初始化该设备最近一次的采集时间戳以及通讯尝试次数。

举例说明,在进行一次采集周期(每个设备指令采集的往返时间)前,会检查故障设备列表中的设备,如果一个故障设备的尝试次数小于10(当然,该数值可以依据实际需要设置,不限制在10),且距离上次采集时间已超过第二时间长度(本实施例中,计算公式:3秒+10*尝试次数)时,主机也会对该故障设备进行一次通信尝试。如果通信成功,则将其从故障设备列表中删除,恢复其正常通信流程。

在进行一次采集周期(每个设备指令采集的往返时间)前,会检查故障设备列表中的设备,如果一个故障设备的尝试次数大于等于10(当然,该数值可以依据实际需要设置,不限制在10),且距离上次采集时间已超过第三时间长度(本实施例中,第三时间长度为300秒)时,主机也会对该故障设备进行一次通信尝试。如果通信成功,则将其从故障设备列表中删除,恢复其正常通信流程。

本发明还公开了一种基于RS485总线的设备指令采集调度装置,设置于主机内,包括:通讯接口,通过RS485总线与所述设备通讯连接;一个或多个处理器;存储器;以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述一个或多个程序包括用于执行如上所述的基于RS485总线的设备指令采集调度方法的指令。

综上,本发明基于这种探测机制,来达到有效适配高速设备和低速设备,提高RS485总线通信吞吐量,并且能够尽可能快速地、又尽可能降低对其他正常设备的影响的目的。

以上所揭露的仅为本发明的优选实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。

相关技术
  • 防渗透低温加热不燃烧卷烟纸燃烧抑制剂、卷烟纸及制备方法
  • 一种低温卷烟纸、低温卷烟及其制备方法和应用
  • 一种卷烟纸、卷烟及其制备方法和应用
  • 一种具有降低加热不燃烧卷烟烟气温度滤棒添加剂及其制备方法
  • 一种加热不燃烧卷烟烟丝模块及其制备方法
  • 一种膜纸复合材料、制备方法、加热卷烟
  • 一种加热烟草卷烟纸及加热烟草卷烟纸的制备方法
技术分类

06120116519922