欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种基于优化轮询机制的电力监控串行通信方法与系统独创技术18691字

一种基于优化轮询机制的电力监控串行通信方法与系统

2021-02-19 16:43:35

一种基于优化轮询机制的电力监控串行通信方法与系统

  技术领域

  本发明涉及电力监控技术领域,特别是一种基于优化轮询机制的电力监控串行通信方法与系统。

  背景技术

  随着现代技术的发展,电力自动化设备的信息化程度越来越高,具有联网通信接口逐渐成为一个必需要求。在电力监控系统中,设备需支持多种通信方式,RS485串行通信总线由于具有传输距离远、成本低、易部署、支持多节点通信等优点,因此得到了广泛应用。RS485串行通信总线以手牵手的方式进行连接,总线上的终端设备节点可多达几十台,并且节点数据能够及时采集,操作命令能够快速下发并执行。由于RS485串行通信总线采用半双工的通信机制,因此主设备对从设备的数据采集只能采用轮询问答的方式,即一个从设备的数据查询完成后,才能进行下一个从设备的数据查询。

  RS485总线通信方式固有的特性致使在从设备比较多时,存在以下缺点:对从设备数据采集周期较长,假设有N个从设备且通信正常,每个从设备采集周期为T,那么对一个从设备的采集周期至少为T*N;当从设备通信异常时,由于存在等待该设备的响应超时,会导致其他从设备的轮询查询周期更长,无法保证设备数据采集及控制任务的及时响应;当某一个从设备存在大量事项时,对该设备的查询会一直进行,导致其他从设备数据无法正常查询。

  因此,采用RS485串行总线的通信方式,对如何保证在从设备节点过多或通信异常情况下,通信正常的从设备节点数据能够正常采集提出了更高要求。

  发明内容

  本发明的目的是提供一种基于优化轮询机制的电力监控串行通信方法与系统,旨在解决现有技术中从设备节点过多或通信异常情况下,从设备采集周期长的问题,实现从设备数据快速、有效的查询,缩短采集周期,提高数据采集的可靠性。

  为达到上述技术目的,本发明提供了一种基于优化轮询机制的电力监控串行通信方法,所述方法包括以下操作:

  在主设备和从设备之间通信连接过程中,设置节点状态队列以及节点属性,所述节点状态队列包括在线节点队列、待重连节点队列、离线节点队列,根据节点属性,将不同节点放置于不同节点状态队列中;

  设置节点轮询的优先级以及节点内数据轮询的优先级,控制任务节点队列优先于节点状态队列,事项优先于周期数据;

  设置节点内数据查询次数限制,包括事项数据的最大查询次数,当达到最大查询次数时,进行该节点的后续数据查询。

  优选地,所述节点属性包括节点标识、正常查询未响应次数、待重连次数、待重连时间以及离线重连时间。

  优选地,所述主设备初始化时,所有从设备节点放入在线节点队列;所述主设备运行时,依次查询在线节点队列、待重连节点队列、离线节点队列。

  优选地,所述在线节点队列中存在节点时,依次对队列中的节点进行查询,若查询的节点正常响应,则该节点所在队列不变,否则累加查询未响应次数,当该次数达到正常查询未响应次数时,将该节点转移到待重连节点队列,同时计时该节点的待重连时间,并累计待重连次数。

  优选地,所述待重连节点队列存在节点时,依次对队列中的节点进行待重连时间及待重连次数进行判断:

  若该节点待重连时间未到,则不对该节点进行查询;若该节点待重连时间已到,则对该节点进行查询,若查询的节点正常响应,则将该节点转移到在线节点队列中,若查询的节点超时未响应,则判断该节点待重连次数,若未达到最大次数,则重新计时待重连时间,同时累加待重连次数,若达到最大次数,则将节点转移到离线节点队列,同时计时离线重连时间。

  优选地,所述离线节点队列存在节点时,依次对队列中的节点进行离线重连时间进行判断:

  若该节点离线重连时间未到,则不对该节点进行查询;若该节点离线重连时间已到,则对该节点进行查询,若查询的节点正常响应,则将该节点转移到在线节点队列中,若查询的节点超时未响应,则重新计时离线重连时间。

  优选地,所述控制任务节点队列有任务节点时,先对该节点的状态进行判断:

  若该节点处于在线状态,则下发节点任务并等待响应结果,若正确响应则继续进行下一个任务节点的查询,若此时队列没有任务节点则开始进行节点状态队列的查询,若超时未响应,则将该节点由在线节点队列转移到待重连节点队列;

  若该节点处于待重连状态或离线状态,则不进行该节点的任务查询,并将该节点移除任务节点队列。

  本发明还提供了一种基于优化轮询机制的电力监控串行通信系统,所述系统包括:

  通信连接模块,用于在主设备和从设备之间通信连接过程中,设置节点状态队列以及节点属性,所述节点状态队列包括在线节点队列、待重连节点队列、离线节点队列,根据节点属性,将不同节点放置于不同节点状态队列中;

  轮询优先级设置模块,用于设置节点轮询的优先级以及节点内数据轮询的优先级,控制任务节点队列优先于节点状态队列,事项优先于周期数据;

  查询次数限制设置模块,用于设置节点内数据查询次数限制,包括事项数据的最大查询次数,当达到最大查询次数时,进行该节点的后续数据查询。

  优选地,所述节点属性包括节点标识、正常查询未响应次数、待重连次数、待重连时间以及离线重连时间。

  发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:

  与现有技术相比,本发明通过设计通信连接机制,解决了无论节点是否在线,主设备都可傻瓜式的对从节点依次进行查询的问题,极大提高了在线节点的轮询效率及数据传输效率;通过数据轮询优先级机制,不仅对节点轮询进行了优先级处理,也对节点内的数据进行了优先级处理,有效确保了控制任务及时响应及高优先级的数据优先查询处理;通过节点内数据查询次数限制机制,有效抑制对节点事项不停查询、无法对后续节点查询的弊端,确保了所有节点数据的正常轮询,提高了节点数据的有效性;通过以上多种机制,确保了所有节点的数据都能快速、有效的查询,极大提高了数据采集的可靠性。

  附图说明

  图1为本发明实施例中所提供的一种基于优化轮询机制的电力监控串行通信方法流程图;

  图2为本发明实施例中所提供的电力监控系统RS485串行总线通信示意图;

  图3为本发明实施例中所提供的一种基于优化轮询机制的电力监控串行通信系统框图。

  具体实施方式

  为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

  下面结合附图对本发明实施例所提供的一种基于优化轮询机制的电力监控串行通信方法与系统进行详细说明。

  如图1、2所示,本发明实施例公开了一种基于优化轮询机制的电力监控串行通信方法,所述方法包括以下操作:

  在主设备和从设备之间通信连接过程中,设置节点状态队列以及节点属性,所述节点状态队列包括在线节点队列、待重连节点队列、离线节点队列,根据节点属性,将不同节点放置于不同节点状态队列中;

  设置节点轮询的优先级以及节点内数据轮询的优先级,控制任务优先于节点状态,事项优先于周期数据;

  设置节点内数据查询次数限制,包括事项数据的最大查询次数,当达到最大查询次数时,进行该节点的后续数据查询。

  本发明实施例设计通信连接机制、数据轮询优先级机制以及节点内数据查询次数限制机制,实现电力监控系统RS485串行总线通信。

  所述通信连接机制具体为:

  设计节点状态队列,包括在线节点队列、待重连节点队列、离线节点队列,设计节点属性包括节点标识、正常查询未响应次数、待重连次数、待重连时间、离线重连时间,设计节点查询响应超时时间。

  设计数据查询正常响应后,立即进行下一项数据查询,间隔的最大时间为线程周转时间。

  当主设备初始化时,将所有从设备节点放入在线节点队列,在主设备运行时,依次查询在线节点队列、待重连节点队列、离线节点队列。

  当在线节点队列中存在节点时,依次对队列中的节点进行查询,若查询的节点正常响应,则该节点所在队列不变,否则累加查询未响应次数,当该次数达到正常查询未响应次数时,将该节点转移到待重连节点队列,同时计时该节点的待重连时间,并累计待重连次数。

  当待重连节点队列存在节点时,依次对队列中的节点进行待重连时间及待重连次数进行判断:

  若该节点待重连时间未到,则不对该节点进行查询;若该节点待重连时间已到,则对该节点进行查询,若查询的节点正常响应,则将该节点转移到在线节点队列中,若查询的节点超时未响应,则判断该节点待重连次数,若未达到最大次数,则重新计时待重连时间,同时累加待重连次数,若达到最大次数,则将节点转移到离线节点队列,同时计时离线重连时间。

  当离线节点队列存在节点时,依次对队列中的节点进行离线重连时间进行判断:

  若该节点离线重连时间未到,则不对该节点进行查询;若该节点离线重连时间已到,则对该节点进行查询,若查询的节点正常响应,则将该节点转移到在线节点队列中,若查询的节点超时未响应,则重新计时离线重连时间。

  通过该通信连接机制,设计了依次查询的在线节点队列、待重连节点队列、离线节点队列,设计了数据查询正常响应后立即进行下一项数据查询,极大缩短了数据轮询间隔时间,从设备节点越多,该通信连接机制呈现的效果越好,有效提高了正常节点的数据响应效率。

  所述数据轮询优先级机制具体为:

  设计节点轮询的优先级由高到低依次有定值、遥控等控制任务节点队列、节点状态队列。

  设计节点内数据轮询的优先级由高到低依次有事项、周期数据等。

  当每一次查询时,都依次轮询控制任务节点队列、节点状态队列,当控制任务节点队列有任务节点时,先对该节点的状态进行判断:

  若该节点处于在线状态,则下发节点任务并等待响应结果,若正确响应则继续进行下一个任务节点的查询,若此时队列没有任务节点则开始进行节点状态队列的查询,若超时未响应,则将该节点由在线节点队列转移到待重连节点队列;

  若该节点处于待重连状态或离线状态,则不进行该节点的任务查询,并将该节点移除任务节点队列。

  通过数据轮询优先级机制,设计了节点轮询的优先级由高到低依次为控制任务节点队列、节点状态队列,设计了节点内数据轮询优先级由高到低依次为事项、周期数据,确保了控制任务及时响应及高优先级的数据优先查询处理。

  所述节点内数据查询次数限制机制具体为:

  设置节点内事项数据的最大查询次数,当开始查询节点的事项数据时,查询次数清零,等待响应,若事项正确响应,则查询次数累加;若还有事项需要查询,先判断查询次数,若查询次数小于最大查询次数时,则继续进行该节点的事项数据查询,否则进行该节点的后续数据查询。

  通过节点内数据查询次数限制机制,有效抑制对节点内事项的不停查询,无法对后续节点查询的弊端,确保了所有节点数据的正常轮询。

  如图3所示,本发明实施例还公开了一种基于优化轮询机制的电力监控串行通信系统,所述系统包括:

  通信连接模块,用于在主设备和从设备之间通信连接过程中,设置节点状态队列以及节点属性,所述节点状态队列包括在线节点队列、待重连节点队列、离线节点队列,根据节点属性,将不同节点放置于不同节点状态队列中;

  轮询优先级设置模块,用于设置节点轮询的优先级以及节点内数据轮询的优先级,控制任务节点队列优先于节点状态队列,事项优先于周期数据;

  查询次数限制设置模块,用于设置节点内数据查询次数限制,包括事项数据的最大查询次数,当达到最大查询次数时,进行该节点的后续数据查询。

  在通信连接模块中,设计节点状态队列,包括在线节点队列、待重连节点队列、离线节点队列,设计节点属性包括节点标识、正常查询未响应次数、待重连次数、待重连时间、离线重连时间,设计节点查询响应超时时间。

  设计数据查询正常响应后,立即进行下一项数据查询,间隔的最大时间为线程周转时间。

  当主设备初始化时,将所有从设备节点放入在线节点队列,在主设备运行时,依次查询在线节点队列、待重连节点队列、离线节点队列。

  当在线节点队列中存在节点时,依次对队列中的节点进行查询,若查询的节点正常响应,则该节点所在队列不变,否则累加查询未响应次数,当该次数达到正常查询未响应次数时,将该节点转移到待重连节点队列,同时计时该节点的待重连时间,并累计待重连次数。

  当待重连节点队列存在节点时,依次对队列中的节点进行待重连时间及待重连次数进行判断:

  若该节点待重连时间未到,则不对该节点进行查询;若该节点待重连时间已到,则对该节点进行查询,若查询的节点正常响应,则将该节点转移到在线节点队列中,若查询的节点超时未响应,则判断该节点待重连次数,若未达到最大次数,则重新计时待重连时间,同时累加待重连次数,若达到最大次数,则将节点转移到离线节点队列,同时计时离线重连时间。

  当离线节点队列存在节点时,依次对队列中的节点进行离线重连时间进行判断:

  若该节点离线重连时间未到,则不对该节点进行查询;若该节点离线重连时间已到,则对该节点进行查询,若查询的节点正常响应,则将该节点转移到在线节点队列中,若查询的节点超时未响应,则重新计时离线重连时间。

  通过该通信连接机制,设计了依次查询的在线节点队列、待重连节点队列、离线节点队列,设计了数据查询正常响应后立即进行下一项数据查询,极大缩短了数据轮询间隔时间,从设备节点越多,该通信连接机制呈现的效果越好,有效提高了正常节点的数据响应效率。

  在轮询优先级设置模块中,设计节点轮询的优先级由高到低依次有定值、遥控等控制任务节点队列、节点状态队列,设计节点内数据轮询的优先级由高到低依次有事项、周期数据等。

  当每一次查询时,都依次轮询控制任务节点队列、节点状态队列,当控制任务节点队列有任务节点时,先对该节点的状态进行判断:

  若该节点处于在线状态,则下发节点任务并等待响应结果,若正确响应则继续进行下一个任务节点的查询,若此时队列没有任务节点则开始进行节点状态队列的查询,若超时未响应,则将该节点由在线节点队列转移到待重连节点队列;

  若该节点处于待重连状态或离线状态,则不进行该节点的任务查询,并将该节点移除任务节点队列。

  通过数据轮询优先级机制,设计了节点轮询的优先级由高到低依次为控制任务节点队列、节点状态队列,设计了节点内数据轮询优先级由高到低依次为事项、周期数据,确保了控制任务及时响应及高优先级的数据优先查询处理。

  在查询次数限制设置模块中,设置节点内事项数据的最大查询次数,当开始查询节点的事项数据时,查询次数清零,等待响应,若事项正确响应,则查询次数累加;若还有事项需要查询,先判断查询次数,若查询次数小于最大查询次数时,则继续进行该节点的事项数据查询,否则进行该节点的后续数据查询。

  以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

《一种基于优化轮询机制的电力监控串行通信方法与系统.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)