电力线通信网络中设备状态检测方法和装置与流程

文档序号:15743274发布日期:2018-10-23 22:39阅读:112来源:国知局
本申请涉及通信技术,尤其涉及一种电力线通信(PowerLineCommunication,简称PLC)网络中设备状态检测方法和装置。
背景技术
:电力线通信是一种基于电力线通信的方法,近年来广泛应用到远程控制等领域。在电力线通信网络中,通过控制器(也称为中心节点)完成对同一区域内节点(也称为站点或终端设备)的组网,控制器与节点、节点与节点之间均通过电力线连接并通信。在电力线通信网络中,为了实时维护网络中节点的状态,保证组网的有效性,控制器需要实时监控各个节点的在线、离线、离网等状态,同时,各个节点也需要定期向控制器上报自己的在线状态。目前,电力线通信网络中的每个节点周期性上报心跳报文给控制器,控制器根据心跳报文确定节点的状态,具体的,假设控制器在检测周期内接收到节点上报的心跳报文,则根据心跳报文中包括的节点的组网网络号确定该节点是否属于控制器所在的电力线通信网络,如果该节点属于控制器所在的电力线通信网络,则确定该节点在线,如果该节点不属于控制器所在的电力线通信网络,则对该节点执行离线操作。如果控制器在检测周期内没有接收到某个节点发送的心跳报文,则确定该节点离线。同时,各节点也通过在一定的时间内与控制器的通信成功率是否为0,确定自己是否离线。上述的状态检测机制,如果电力线通信网络的规模较大,大量的节点周期性上报心跳报文会占用大量带宽,影响网络传输效率。技术实现要素:本申请提供一种电力线通信网络中设备状态检测方法和装置,可以节省电力线通信网络中节点发送心跳报文占用的带宽。本申请第一方面提供一种电力线通信网络中设备状态检测方法,所述方法应用在电力线通信网络中,所述电力线通信网络包括控制器和多个节点,所述电力线通信网络中的节点按照树形结构逐级上报心跳报文,所述控制器为根节点,所述多个节点为中间节点或者叶子节点,所述控制器与节点之间、节点与节点之间通过电力线连接并通信,其中,所述方法包括:中间节点在第一检测周期内检测相邻节点的状态,获取所述中间节点的相邻节点的状态信息,在第二检测周期内接收相邻下级节点发送的心跳报文,所述心跳报文中包括所述中间节点的下级节点的状态信息,以及所述中间节点的下级节点的相邻节点的状态信息,对所述中间节点的相邻节点的状态信息和所述心跳报文中包括的节点的状态信息进行聚合,得到所述中间节点关联节点的状态信息,其中,所述中间节点的关联节点包括所述中间节点的下级节点,以及所述中间节点的下级节点的相邻节点。所述中间节点将所述中间节点的关联节点的状态信息和所述中间节点的状态信息携带在所述心跳报文中发送给相邻上级节点。所述中间节点通过将自己的相邻节点的状态信息和接收到的心跳报文中包括的节点的状态信息进行聚合后,携带在心跳报文发送给相邻的上级节点,不需要每个节点都向控制器发送心跳报文,从而节省了发送心跳报文占用的带宽。结合第一方面,在第一方面的第一种可能的实现方式中,所述中间节点在第一检测周期内检测相邻节点的状态,获取所述中间节点的相邻节点的状态信息,具体为:所述中间节点判断所述第一检测周期内是否接收到所述中间节点的相邻节点发送的发现报文,如果所述中间节点在所述第一检测周期内接收到所述中间节点的相邻节点发送的发现报文,则所述中间节点确定所述中间节点的相邻节点处于在线状态,如果所述中间节点在所述第一检测周期内没有接收到所述中间节点的相邻节点发送的发现报文,则所述中间节点确定所述中间节点的相邻节点处于离线状态。结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述中间节点的相邻节点的状态信息用第一状态位图表表示,所述心跳报文中包括的节点的状态信息用第二状态位图表表示,所述第一状态位图表和所述第二状态位图表中每个节点的状态信息占用至少一比特。由于状态位图表占用数据量小,从而能够进一步降低发送心跳报文占用的带宽。结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述中间节点对所述中间节点的相邻节点的状态信息和所述心跳报文中包括的节点的状态信息进行聚合,得到所述中间节点关联节点的状态信息,具体为:所述中间节点对第一状态位图表和所述第二状态位图表取并集,得到所述中间节点的关联节点的状态信息。结合第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现方式中,在所述第一周期结束后,所述中间节点对所述第一状态位图表初始化,初始化后所述第一状态位图表中包括的节点的状态信息为离线状态。结合第一方面的第二种可能的实现方式,在第一方面的第五种可能的实现方式中,在所述第一周期结束后,所述中间节点确定自己为离线状态,关闭第一检测周期和所述第二检测周期对应的定时器。本申请第二方面提供一种电力线通信网络中设备状态检测方法,所述方法应用在电力线通信网络中,所述电力线通信网络包括控制器和多个节点,所述电力线通信网络中的节点按照树形结构逐级上报心跳报文,所述控制器为根节点,所述多个节点为中间节点或者叶子节点,所述控制器与节点之间、节点与节点之间通过电力线连接并通信,所述方法包括:控制器在第一检测周期内检测相邻节点的状态,获取所述控制器的相邻节点的状态信息;所述控制器在第二检测周期内接收相邻下级节点发送的心跳报文,所述心跳报文中包括所述控制器的下级节点的状态信息,以及所述控制器的下级节点的相邻节点的状态信息;所述控制器对所述控制器的相邻节点的状态信息和所述心跳报文中包括的节点的状态信息进行聚合,得到所述电力线通信网络内节点的状态信息;所述控制器根据所述电力线通信网络内节点的状态信息更新网络拓扑表。由于中间节点通过将自己的相邻节点的状态信息和接收到的心跳报文中包括的节点的状态信息进行聚合后,携带在心跳报文发送给相邻的上级节点,不需要每个节点都向控制器发送心跳报文,从而节省了发送心跳报文占用的带宽。结合第二方面,在第二方面的第一种可能的实现方式中,所述控制器在第一检测周期内检测相邻节点的状态,获取所述控制器的相邻节点的状态信息,具体为:所述控制器判断所述第一检测周期内是否接收到所述控制器的相邻节点发送的发现报文,如果所述控制器在所述第一检测周期内接收到所述控制器的相邻节点发送的发现报文,则所述控制器确定所述控制器的相邻节点处于在线状态,如果所述控制器在所述第一检测周期内没有接收到所述控制器的相邻节点发送的发现报文,则所述控制器确定所述控制器的相邻节点处于离线状态。结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述控制器根据所述电力线通信网络内节点的状态信息更新网络拓扑表,具体为:所述控制器根据所述电力线通信网络内所有节点的状态信息,执行以下更新操作:在所述网络拓扑表中增加新入网的节点;将所述网络拓扑表中已经存在的节点的状态修改为离线或在线,并记录离线节点的连续离线次数;将所述网络拓扑表中连续N次离线的节点从所述网络拓扑表中删除,N为大于或等于2的整数。结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述控制器的相邻节点的状态信息用第一状态位图表表示,所述心跳报文中包括的节点的状态信息用第二状态位图表表示,所述第一状态位图表和所述第二状态位图表中每个节点的状态信息占用至少一比特。结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述控制器对所述控制器的相邻节点的状态信息和所述心跳报文中包括的节点的状态信息进行聚合,得到所述电力线通信网络内节点的状态信息,具体为:所述控制器对第一状态位图表和所述第二状态位图表取并集,得到所述电力线通信网络内节点的状态信息。结合第二方面的第二种可能的实现方式,在第二方面的第五种可能的实现方式中,在所述第一周期结束后,所述方法还包括:所述控制器对所述第一状态位图表初始化,初始化后所述第一状态位图表中包括的节点的状态信息为离线状态。本申请第三方面提供一种中间节点,所述中间节点应用在电力线通信网络中,所述电力线通信网络包括控制器和多个节点,所述电力线通信网络中的节点按照树形结构逐级上报心跳报文,所述控制器为根节点,所述多个节点为所述中间节点或者叶子节点,所述控制器与节点之间、节点与节点之间通过电力线连接并通信,其中,所述中间节点包括:获取模块,用于在第一检测周期内检测相邻节点的状态,获取所述中间节点的相邻节点的状态信息;接收模块,用于在第二检测周期内接收相邻下级节点发送的心跳报文,所述心跳报文中包括所述中间节点的下级节点的状态信息,以及所述中间节点的下级节点的相邻节点的状态信息;处理模块,用于对所述中间节点的相邻节点的状态信息和所述心跳报文中包括的节点的状态信息进行聚合,得到所述中间节点关联节点的状态信息,其中,所述中间节点的关联节点包括所述中间节点的下级节点,以及所述中间节点的下级节点的相邻节点;发送模块,用于将所述中间节点的关联节点的状态信息和所述中间节点的状态信息携带在所述心跳报文中发送给相邻上级节点。结合第三方面,在第三方面的第一种可能的实现方式中,所述获取模块具体用于:判断所述第一检测周期内是否接收到所述中间节点的相邻节点发送的发现报文,如果所述中间节点在所述第一检测周期内接收到所述中间节点的相邻节点发送的发现报文,则确定所述中间节点的相邻节点处于在线状态,如果所述中间节点在所述第一检测周期内没有接收到所述中间节点的相邻节点发送的发现报文,则确定所述中间节点的相邻节点处于离线状态。结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述中间节点的相邻节点的状态信息用第一状态位图表表示,所述心跳报文中包括的节点的状态信息用第二状态位图表表示,所述第一状态位图表和所述第二状态位图表中每个节点的状态信息占用至少一比特。结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述处理模块具体用于:对第一状态位图表和所述第二状态位图表取并集,得到所述中间节点的关联节点的状态信息。结合第三方面的第二种可能的实现方式,在第三方面的第四种可能的实现方式中,所述中间节点还包括:初始化模块,用于在所述第一周期结束后,对所述第一状态位图表初始化,初始化后所述第一状态位图表中包括的节点的状态信息为离线状态。结合第三方面的第二种可能的实现方式,在第三方面的第四种可能的实现方式中,所述中间节点还包括:确定模块和定时模块,确定模块用于在所述第一周期结束后,确定所述中间节点为离线状态,定时模块用于关闭第一检测周期和所述第二检测周期对应的定时器。本申请第四方面提供一种控制器,所述控制器应用在电力线通信网络中,所述电力线通信网络包括所述控制器和多个节点,所述电力线通信网络中的节点按照树形结构逐级上报心跳报文,所述控制器为根节点,所述多个节点为中间节点或者叶子节点,所述控制器与节点之间、节点与节点之间通过电力线连接并通信,所述控制器包括:检测模块,用于在第一检测周期内检测相邻节点的状态,获取所述控制器的相邻节点的状态信息;接收模块,用于在第二检测周期内接收相邻下级节点发送的心跳报文,所述心跳报文中包括所述控制器的下级节点的状态信息,以及所述控制器的下级节点的相邻节点的状态信息;处理模块,用于对所述控制器的相邻节点的状态信息和所述心跳报文中包括的节点的状态信息进行聚合,得到所述电力线通信网络内节点的状态信息;更新模块,用于根据所述电力线通信网络内节点的状态信息更新网络拓扑表。结合第四方面,在第四方面的第一种可能的实现方式中,所述检测模块具体用于:判断所述第一检测周期内是否接收到所述控制器的相邻节点发送的发现报文,如果所述控制器在所述第一检测周期内接收到所述控制器的相邻节点发送的发现报文,则确定所述控制器的相邻节点处于在线状态,如果所述控制器在所述第一检测周期内没有接收到所述控制器的相邻节点发送的发现报文,则确定所述控制器的相邻节点处于离线状态。结合第四方面或第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述更新模块具体用于:根据所述电力线通信网络内所有节点的状态信息,执行以下更新操作:在所述网络拓扑表中增加新入网的节点;将所述网络拓扑表中已经存在的节点的状态修改为离线或在线,并记录离线节点的连续离线次数;将所述网络拓扑表中连续N次离线的节点从所述网络拓扑表中删除,N为大于或等于2的整数。结合第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式中,所述控制器的相邻节点的状态信息用第一状态位图表表示,所述心跳报文中包括的节点的状态信息用第二状态位图表表示,所述第一状态位图表和所述第二状态位图表中每个节点的状态信息占用至少一比特。结合第四方面的第三种可能的实现方式,在第四方面的第四种可能的实现方式中,所述处理模块具体用于:对第一状态位图表和所述第二状态位图表取并集,得到所述电力线通信网络内节点的状态信息。结合第四方面的第二种可能的实现方式,在第四方面的第五种可能的实现方式中,还包括初始化模块,用于在所述第一周期结束后,对所述第一状态位图表初始化,初始化后所述第一状态位图表中包括的节点的状态信息为离线状态。本申请第五方面提供一种中间节点,所述中间节点应用在电力线通信网络中,所述电力线通信网络包括控制器和多个节点,所述电力线通信网络中的节点按照树形结构逐级上报心跳报文,所述控制器为根节点,所述多个节点为所述中间节点或者叶子节点,所述控制器与节点之间、节点与节点之间通过电力线连接并通信,其中,所述中间节点包括:处理器,用于在第一检测周期内检测相邻节点的状态,获取所述中间节点的相邻节点的状态信息;接收器,用于在第二检测周期内接收相邻下级节点发送的心跳报文,所述心跳报文中包括所述中间节点的下级节点的状态信息,以及所述中间节点的下级节点的相邻节点的状态信息;所述处理器,还用于对所述中间节点的相邻节点的状态信息和所述心跳报文中包括的节点的状态信息进行聚合,得到所述中间节点关联节点的状态信息,其中,所述中间节点的关联节点包括所述中间节点的下级节点,以及所述中间节点的下级节点的相邻节点;发送器,用于将所述中间节点的关联节点的状态信息和所述中间节点的状态信息携带在所述心跳报文中发送给相邻上级节点。结合第五方面,在第五方面的第一种可能的实现方式中,所述处理器具体用于:判断所述第一检测周期内是否接收到所述中间节点的相邻节点发送的发现报文,如果所述中间节点在所述第一检测周期内接收到所述中间节点的相邻节点发送的发现报文,则确定所述中间节点的相邻节点处于在线状态,如果所述中间节点在所述第一检测周期内没有接收到所述中间节点的相邻节点发送的发现报文,则确定所述中间节点的相邻节点处于离线状态。结合第五方面或第五方面的第一种可能的实现方式,在第五方面的第二种可能的实现方式中,所述中间节点的相邻节点的状态信息用第一状态位图表表示,所述心跳报文中包括的节点的状态信息用第二状态位图表表示,所述第一状态位图表和所述第二状态位图表中每个节点的状态信息占用至少一比特。结合第五方面的第二种可能的实现方式,在第五方面的第三种可能的实现方式中,所述处理器具体用于:对第一状态位图表和所述第二状态位图表取并集,得到所述中间节点的关联节点的状态信息。结合第五方面的第二种可能的实现方式,在第五方面的第四种可能的实现方式中,所述处理器还用于:在所述第一周期结束后,对所述第一状态位图表初始化,初始化后所述第一状态位图表中包括的节点的状态信息为离线状态。结合第五方面的第二种可能的实现方式,在第五方面的第四种可能的实现方式中,所述处理器还用于:在所述第一周期结束后,确定所述中间节点为离线状态,关闭第一检测周期和所述第二检测周期对应的定时器。本申请第六方面提供一种控制器,所述控制器应用在电力线通信网络中,所述电力线通信网络包括所述控制器和多个节点,所述电力线通信网络中的节点按照树形结构逐级上报心跳报文,所述控制器为根节点,所述多个节点为中间节点或者叶子节点,所述控制器与节点之间、节点与节点之间通过电力线连接并通信,所述控制器包括:处理器,用于在第一检测周期内检测相邻节点的状态,获取所述控制器的相邻节点的状态信息;接收器,用于在第二检测周期内接收相邻下级节点发送的心跳报文,所述心跳报文中包括所述控制器的下级节点的状态信息,以及所述控制器的下级节点的相邻节点的状态信息;所述处理器,还用于对所述控制器的相邻节点的状态信息和所述心跳报文中包括的节点的状态信息进行聚合,得到所述电力线通信网络内节点的状态信息,根据所述电力线通信网络内节点的状态信息更新网络拓扑表。结合第六方面,在第六方面的第一种可能的实现方式中,所述处理器具体用于:判断所述第一检测周期内是否接收到所述控制器的相邻节点发送的发现报文,如果所述控制器在所述第一检测周期内接收到所述控制器的相邻节点发送的发现报文,则确定所述控制器的相邻节点处于在线状态,如果所述控制器在所述第一检测周期内没有接收到所述控制器的相邻节点发送的发现报文,则确定所述控制器的相邻节点处于离线状态。结合第六方面或第六方面的第一种可能的实现方式,在第六方面的第二种可能的实现方式中,所述处理器具体用于:根据所述电力线通信网络内所有节点的状态信息,执行以下更新操作:在所述网络拓扑表中增加新入网的节点;将所述网络拓扑表中已经存在的节点的状态修改为离线或在线,并记录离线节点的连续离线次数;将所述网络拓扑表中连续N次离线的节点从所述网络拓扑表中删除,N为大于或等于2的整数。结合第六方面的第二种可能的实现方式,在第六方面的第三种可能的实现方式中,所述控制器的相邻节点的状态信息用第一状态位图表表示,所述心跳报文中包括的节点的状态信息用第二状态位图表表示,所述第一状态位图表和所述第二状态位图表中每个节点的状态信息占用至少一比特。结合第六方面的第三种可能的实现方式,在第六方面的第四种可能的实现方式中,所述处理器具体用于:对第一状态位图表和所述第二状态位图表取并集,得到所述电力线通信网络内节点的状态信息。结合第六方面的第二种可能的实现方式,在第六方面的第五种可能的实现方式中,所述处理器还用于在所述第一周期结束后,对所述第一状态位图表初始化,初始化后所述第一状态位图表中包括的节点的状态信息为离线状态。上述第三方面和第五方面提供的中间节点可用于执行第一方面提供的方法,其有益效果可以参见上述第一方面以及各可能的实施方式所带来的有益效果,在此不再赘述。上述第四方面和第六方面提供的控制器可用于执行第二方面提供的方法,其有益效果可以参见上述第二方面以及各可能的实施方式所带来的有益效果,在此不再赘述。本申请提供一种电力线通信网络中设备状态检测方法和装置,中间节点在第一检测周期内检测相邻节点的状态,获取中间节点的相邻节点的状态信息,在第二检测周期内接收相邻下级节点发送的心跳报文,心跳报文中包括中间节点的下级节点的状态信息,以及中间节点的下级节点的相邻节点的状态信息,然后,中间节点对相邻节点的状态信息和心跳报文中包括的节点的状态信息进行聚合,得到中间节点关联节点的状态信息,最后将中间节点的关联节点的状态信息和中间节点的状态信息携带在该心跳报文中发送给相邻上级节点。中间节点通过将自己的相邻节点的状态信息和接收到的心跳报文中包括的节点的状态信息进行聚合后,携带在心跳报文发送给相邻的上级节点,不需要每个节点都向控制器发送心跳报文,从而节省了发送心跳报文占用的带宽。附图说明图1为本申请适用的一种电力线通信网络的心跳报文的上报路径示意图;图2为实施例一提供的电力线通信网络中设备状态检测方法的流程图;图3为中间节点的邻居节点的状态位图表;图4为实施例二提供的电力线通信网络中设备状态检测方法的流程图;图5为实施例三提供的中间节点的结构示意图;图6为实施例四提供的控制器的结构示意图;图7为实施例五提供的中间节点的结构示意图;图8为实施例六提供的控制器的结构示意图。具体实施方式本申请提供一种电力线通信网络中设备状态检测方法,该方法应用在电力线通信网络中,该电力线通信网络包括一个控制器和多个节点,电力线通信网络中的节点按照树形结构逐级上报心跳报文,该控制器为根节点,该多个节点为中间节点或者叶子节点,该控制器与节点之间、节点与节点之间通过电力线连接并通信。该控制器用于监测该电力线通信网络中的每个节点的状态,控制器也称为中心节点,叶子节点为没有下级节点的节点,中间节点为由下级节点的节点。该电力线通信网络例如是远程控制抄表系统,相应的,节点为智能电表。图1为本申请适用的一种电力线通信网络的心跳报文的上报路径示意图,如图1所示,该电力线通信网络包括一个控制器和11个节点,节点按照树形结构逐级上报心跳报文至控制器,图1所示例子中,10个节点共划分为四级,其中,第一级节点包括节点1和节点2,第二级节点包括节点3、节点4、节点5和节点6,第三级节点包括节点7、节点8、节点9、节点10和节点11。其中,节点7、节点8、节点9、节点10、节点11和节点3为叶子节点,节点1、节点2、节点4、节点5和节点6为中间节点,控制器为根节点。需要说明的是,图1所示的各个节点连接关系只是表示心跳报文的上报路径,并不表示节点的实际物理连接关系。图2为实施例一提供的电力线通信网络中设备状态检测方法的流程图,参照图1和图2,本实施例提供的方法包括以下步骤:步骤101、中间节点在第一检测周期内检测相邻节点的状态,获取该中间节点的相邻节点的状态信息。在电力线通信网络形成时,每个节点都会配置或者自学习得到一个发现列表,发现列表中包括多个节点,发现列表中的节点为该节点的相邻节点,每个节点可以监听到相邻节点发送的消息。具体的,中间节点可以通过如下方式检测相邻节点的状态:中间节点判断第一检测周期内是否接收到中间节点的相邻节点发送的发现报文,如果中间节点在第一检测周期内接收到中间节点的相邻节点发送的发现报文,则中间节点确定中间节点的相邻节点处于在线状态;如果中间节点在第一检测周期内没有接收到中间节点的相邻节点发送的发现报文,则中间节点确定中间节点的相邻节点处于离线状态。第一检测周期为在线状态检测周期,该发现报文可以是现有的任意报文,例如,节点发送的数据报文、心跳报文等,也可以是一种新定义的报文。中间节点在第一检测周期内接收到的报文也可能不是相邻节点的报文,则中间节点在第一检测周期内接收到报文后,会解析报文获取网络标识符(ShortNetworkIdentifier,简称SNID)和节点标示符,如果网络标示符为该电力线通信网络的标识符,则确定该节点属于该电力线通信网络,根据该节点标示符更新该节点的状态信息。如果网络标示符不是该电力线通信网络的标识符,则中间节点确定该节点不属于该电力线通信网络,不记录该节点的状态信息。需要明确的是,某个节点的相邻节点的划分并不是根据图1所示的心跳报文上报路径为依据的,而是根据电力线通信网络中节点的实际物理连接为依据确定,因此,对于某个节点来说,节点的相邻节点可能为上级节点、下级节点或没有上下级关系的节点。在电力线通信网络中,不仅中间节点要检测相邻节点的状态,控制器和叶子节点也需要检测相邻节点的状态信息,控制器和叶子节点的检测方式与中间节点的检测方式相同。中间节点的相邻节点的状态信息可以通过多种方式表示,例如,中间节点的邻居节点的状态信息以列表的形式表示,表一为中间节点的邻居节点的状态信息示意图。表一节点状态信息节点10节点21节点31节点41如表一所示,中间节点有4个邻居节点,每个节点的状态信息用1个比特位(bit)表示,其中,状态信息为0时表示节点状态为离线,状态信息为1时表示节点的状态为在线。当然,状态信息还可以用更多的比特位表示,或者,状态信息用ture和false表示,状态信息为ture表示节点的状态为在线,状态信息为false表示节点的状态为离线。中间节点的相邻节点的状态信息还可以通过状态位图表表示,状态位图表中每个节点的状态信息占用至少一个比特,每个节点的状态信息通过比特位的值表示。以表一所示例子为例,中间节点包括4个节点,每个节点的状态信息占用一个比特位,图3为中间节点的邻居节点的状态位图表,如图3所示,状态位图表包括4个比特位,每个比特位表示一个节点的状态信息,4个比特位从左到右依次表示节点1、节点2、节点3和节点4的状态,图3所示例子中,比特位的值为1表示节点的状态为在线,比特位的值为0表示节点的状态为离线。当然,也可以用0表示节点的状态为在线,用1表示节点的状态为离线。通过状态位图表表示节点的相邻节点的状态信息,可以减少存储节点的相邻节点的状态信息占用的存储空间。步骤102、中间节点在第二检测周期内接收相邻下级节点发送的心跳报文,该心跳报文中包括中间节点的下级节点的状态信息,以及中间节点的下级节点的相邻节点的状态信息。第二检测周期为心跳报文的上报周期,电力线通信网络中除了控制器外的所有节点(中包括间节点和叶子节点)都要向相邻上级节点发送心跳报文,叶子节点上报的心跳报文中包括叶子节点的相邻节点的状态信息以及叶子节点的状态信息,中间节点上报的心跳报文中包括中间节点的下级节点的状态信息,以及中间节点的下级节点的相邻节点的状态信息。其中,中间节点的下级节点为心跳报文的上报路径中,经过该中间节点的所有下级节点(包括相邻下级节点和非相邻下级节点)。图1所示电力线通信网络中,当中间节点为节点4时,节点4的下级节点为节点7、节点8和节点9。当中间节点为节点1时,节点1的下级节点包括节点3、节点4、节点7、节点8和节点9。当中间节点为节点5时,节点5的下级节点为节点10。当中间节点为节点6时,节点6的下级节点为节点11。当中间节点为节点2时,节点2的下级节点为节点5、节点6、节点10和节点11。可选的,中间节点的下级节点的状态信息以及中间节点的下级节点的相邻节点的状态信息用第二状态位图表表示,状态位图表中每个节点的状态信息占用至少一比特。即心跳报文中包括的节点的状态信息都用状态位图表示,由于状态位图表占用数据量小,从而能够降低发送心跳报文占用的带宽。当然,心跳报文中的节点的状态信息也可以用列表或者其他形式表示。步骤103、中间节点对中间节点的相邻节点的状态信息和该心跳报文中包括的节点的状态信息进行聚合,得到中间节点关联节点的状态信息。其中,中间节点的关联节点包括中间节点的下级节点以及中间节点的下级节点的相邻节点。步骤104、中间节点将中间节点的关联节点的状态信息和中间节点的状态信息携带在该心跳报文中发送给相邻上级节点。在电力线通信网络中节点按照树形结构逐级上报心跳报文,具体的,先由叶子节点上报自己的心跳报文,叶子节点上报的心跳报文中包括叶子节点的相邻节点的状态信息以及叶子节点的状态信息,叶子节点将心跳报文发送给相邻的上级节点,相邻的上级节点将自己的状态信息、相邻节点的状态信息和接收到的心跳报文中包括的节点的状态信息聚合后携带在心跳报文中发送给相邻的上级节点,依次类推最终将心跳报文发送给控制器。对于中间节点来说,可能会接收到多个相邻下级节点发送的心跳报文,中间节点会将所有相邻下级节点发送的心跳报文中包括的节点的状态信息与自身的相邻节点的状态信息进行聚合,由于多个相邻下级节点发送的心跳报文中包括的节点的状态信息可能重复,中间节点对中间节点的相邻节点的状态信息和心跳报文中包括的节点的信息进行聚合,得到中间节点关联节点的状态信息,即将重复节点的状态信息删除。其中,中间节点的关联节点包括中间节点的下级节点以及中间节点的下级节点的相邻节点。当中间节点的相邻节点的状态信息用第一状态位图表表示,心跳报文中包括的节点的状态信息用第二状态位图表表示时,中间节点对中间节点的相邻节点的状态信息和心跳报文中包括的节点的信息进行聚合,得到中间节点关联节点的状态信息,具体为:中间节点对第一状态位图表和所述第二状态位图表取并集,得到中间节点的关联节点的状态信息。现有的心跳报文上报机制,每个节点都向控制器发送心跳报文,中间节点不仅要向相邻的上级节点发送自己的心跳报文,还要将下级节点的心跳报文转发给相邻的上级节点,中间节点发送心跳报文会占用大量带宽。本实施例的上报机制中,中间节点接收到相邻下级节点发送的心跳报文中,将自己的相邻节点的状态信息和心跳报文中包括的节点的状态信息进行综合后,携带在心跳报文发送给相邻的上级节点,控制器最终只会收到相邻下级节点发送的心跳报文,从而节省了发送心跳报文占用的带宽。尤其在大规模组网中,电力线通信网络包括的节点数量较大,通过本实施例的方法可以显著的减少上报心跳报文占用的带宽。另外,现有的心跳报文上报机制,由于每个节点都向控制器发送心跳报文,导致心跳报文量大,因此为了保证带宽资源的有效利用,一般会延长心跳报文的上报周期,降低心跳报文在整个带宽中的占用率。但是,心跳报文的上报周期设置过长,会导致离线判断时间过长,节点离线后控制器并不能及时发现节点离线,依然会向节点发送消息,而此时节点由于已经离线无法接收到控制器发送的消息。而采用本实施例的方案后,由于减少了心跳报文,上报心跳报文占用的带宽也降低了,从而可以降低心跳报文的上报周期,在相同的带宽占有率的情况下,降低心跳报文的上报周期,可以降低节点在线的判断时间。以图1所示电力线通信网络为例,详细说明心跳报文的上报过程。在第二检测周期结束后,节点7、节点8、节点9分别向节点4发送心跳报文,节点10向节点5发送心跳报文,节点11向节点6发送心跳报文。其中,节点7发送的心跳报文中包括节点7的相邻节点的状态信息和节点7的状态信息,节点8发送的心跳报文中包括节点8的相邻节点的状态信息和节点8的状态信息,节点9发送的心跳报文中包括节点9的相邻节点的状态信息和节点9的状态信息,节点10发送的心跳报文中包括节点10的相邻节点的状态信息和节点10的状态信息,节点11发送的心跳报文中包括节点11的相邻节点的状态信息和节点11的状态信息。节点7、节点8和节点9的相邻节点可能相同也可能不同,节点7、节点8和节点9的第二检测周期可能相同也可能不同,即节点4可能同时接收到节点7、节点8和节点9发送的心跳报文,也可能不同时接收到节点7、节点8和节点9发送的心跳报文。同样,节点10和节点11的第二检测周期也可能相同,也可能不同。节点4在第二检测周期结束后,将节点7、节点8、节点9的发送的心跳报文中包括的节点的状态信息和节点4相邻节点的状态信息进行聚合,得到节点4的关联节点的状态信息。节点4得到关联节点的状态信息后,将节点4的状态信息和节点4的关联节点的状态信息携带在心跳报文中发送给节点2,节点3也会向节点2发送心跳报文,节点3发送的心跳报文中包括节点3的状态信息和节点3的相邻节点的状态信息,节点2将节点4、节点3发送的心跳报文中包括的节点的状态信息与节点2的相邻节点的状态信息聚合,得到节点2的关联节点的状态信息。节点2得到关联节点的状态信息后,将节点2的关联节点的状态信息和节点2的状态信息携带在该心跳报文中发送给控制器。同样,节点2也会向控制器发送心跳报文,节点2发送的心跳报文中包括节点2、节点5、节点6、节点10和节点11的自身的状态信息以及相邻节点的状态信息。控制器对节点1、节点2发送的心跳报文中包括的节点的状态信息和自身的相邻节点的状态信息进行聚合,得到电力线通信网络内的节点的状态信息。可选的,在第一检测周期结束后,中间节点对第一状态位图表初始化,初始化后第一状态位图表中包括的节点的状态信息为离线状态,即第一节点的相邻节点的初始状态信息为离线。后续,当检测到某个相邻节点在线时,则更新该节点的状态信息。可选的,在第一周期结束后,中间节点确定自己为离线状态,关闭第一检测周期和第二检测周期对应的定时器。中间节点可以通过如下几种方式确定自己是否为离线状态:(1)在第一检测周期内,是否接收到控制器发送的信标帧,控制器在第一检测周期内会在网络内广播信标帧,如果中间节点在第一检测周期接收到信标帧,则确定自己处于在线状态,如果中间节点在第一检测周期内没有接收到信标帧,则确定自己处于离线状态。(2)中间节点在第一检测周期内接收到控制器发送的指示信息,该指示信息用于指示中间节点离线。(3)中间节点在第一检测周期内接收到控制器发送的SNID,判断接收到的SIND是否与本地保存的SNID相同,如果接收到的SNID与本地保存的SNID不同,则说明自己处于离线状态,且移动到了其他网络中,如果接收到的SNID与本地保存的SNID相同,则说明自己处于在线状态。本实施例中,中间节点在第一检测周期内检测相邻节点的状态,获取中间节点的相邻节点的状态信息,在第二检测周期内接收相邻下级节点发送的心跳报文,心跳报文中包括中间节点的下级节点的状态信息,以及中间节点的下级节点的相邻节点的状态信息,然后,中间节点对相邻节点的状态信息和心跳报文中包括的节点的状态信息进行聚合,得到中间节点关联节点的状态信息,最后将中间节点的关联节点的状态信息和中间节点的状态信息携带在该心跳报文中发送给相邻上级节点。中间节点通过将自己的相邻节点的状态信息和接收到的心跳报文中包括的节点的状态信息进行聚合后,携带在心跳报文发送给相邻的上级节点,不需要每个节点都向控制器发送心跳报文,从而节省了发送心跳报文占用的带宽。图4为实施例二提供的电力线通信网络中设备状态检测方法的流程图,实施例一从中间节点的角度描述该方法,本实施例从控制器的角度描述该方法,参照图1和图4,本实施例提供的方法包括以下步骤:步骤201、控制器在第一检测周期内检测相邻节点的状态,获取控制器的相邻节点的状态信息。具体的,控制器判断第一检测周期内是否接收到控制器的相邻节点发送的发现报文,如果控制器在所述第一检测周期内接收到控制器的相邻节点发送的发现报文,则控制器确定控制器的相邻节点处于在线状态;如果控制器在第一检测周期内没有接收到控制器的相邻节点发送的发现报文,则控制器确定控制器的相邻节点处于离线状态。需要说明的是,控制器的相邻节点也不是根据图1所示的心跳报文上报路径为依据确定的,而是根据电力线通信网络中节点的实际物理连接为依据确定。控制器的相邻节点的状态信息也可以通过状态位图表或列表等方式表示,其中,状态位图表表中每个节点的状态信息占用至少一比特,具体形式可参照上述实施例一中中间节点的状态信息的表示形式,这里不再赘述。步骤202、控制器在第二检测周期内接收相邻下级节点发送的心跳报文,该心跳报文中包括控制器的下级节点的状态信息,以及控制器的下级节点的相邻节点的状态信息。该心跳报文中包括的节点的状态信息也可以通过状态位图表或列表等方式表示。其中,状态位图表表中每个节点的状态信息占用至少一比特。步骤203、控制器对控制器的相邻节点的状态信息和该心跳报文中包括的节点的状态信息进行聚合,得到电力线通信网络内节点的状态信息。当控制器的相邻节点的状态信息用第一状态位图表表示,心跳报文中包括的节点的状态信息用第二状态位图表表示时,控制器对控制器的相邻节点的状态信息和心跳报文中包括的节点的状态信息进行聚合,得到电力线通信网络内节点的状态信息,具体为:控制器对第一状态位图表和第二状态位图表取并集,得到电力线通信网络内节点的状态信息。步骤204、控制器根据电力线通信网络内节点的状态信息更新网络拓扑表。具体的,控制器根据电力线通信网络内所有节点的状态信息,执行以下更新操作:(1)在网络拓扑表中增加新入网的节点;(2)将网络拓扑表中已经存在的节点的状态修改为离线或在线,并记录离线节点的连续离线次数;(3)将网络拓扑表中连续N次离线的节点从网络拓扑表中删除,N为大于或等于2的整数。控制器将网络拓扑表中连续N次离线的节点从网络拓扑表中删除,即对节点执行离网操作。需要强调的是,本申请中涉及到的节点在线是指节点在网络内,且通信质量较好,能够接收到有效报文。节点离线是指节点在网络内,但通信质量不好,不能接收到有效报文。节点离网是指节点通信质量不好,不能接收到有效报文,已经离开网络。可选的,在第一周期结束后,控制器对第一状态位图表初始化,初始化后第一状态位图表中包括的节点的状态信息为离线状态。本实施例中,控制器在第一检测周期内检测相邻节点的状态,获取控制器的相邻节点的状态信息,在第二检测周期内接收相邻下级节点发送的心跳报文,心跳报文中包括控制器的下级节点的状态信息,以及控制器的下级节点的相邻节点的状态信息,然后,控制器对相邻节点的状态信息和心跳报文中包括的节点的状态信息进行聚合,得到电力线通信网络,最后根据电力线通信网络内节点的状态信息更新网络拓扑表。控制器只会接收到相邻下级节点发送的心跳报文,从而节省了发送心跳报文占用的带宽。图5为实施例三提供的中间节点的结构示意图,所述中间节点应用在电力线通信网络中,所述电力线通信网络包括控制器和多个节点,所述电力线通信网络中的节点按照树形结构逐级上报心跳报文,所述控制器为根节点,所述多个节点为所述中间节点或者叶子节点,所述控制器与节点之间、节点与节点之间通过电力线连接并通信,如图5所示,所述中间节点包括:获取模块21,用于在第一检测周期内检测相邻节点的状态,获取所述中间节点的相邻节点的状态信息;接收模块22,用于在第二检测周期内接收相邻下级节点发送的心跳报文,所述心跳报文中包括所述中间节点的下级节点的状态信息,以及所述中间节点的下级节点的相邻节点的状态信息;处理模块23,用于对所述中间节点的相邻节点的状态信息和所述心跳报文中包括的节点的状态信息进行聚合,得到所述中间节点关联节点的状态信息,其中,所述中间节点的关联节点包括所述中间节点的下级节点,以及所述中间节点的下级节点的相邻节点;发送模块24,用于将所述中间节点的关联节点的状态信息和所述中间节点的状态信息携带在所述心跳报文中发送给相邻上级节点。可选的,所述获取模块21具体用于:判断所述第一检测周期内是否接收到所述中间节点的相邻节点发送的发现报文,如果所述中间节点在所述第一检测周期内接收到所述中间节点的相邻节点发送的发现报文,则确定所述中间节点的相邻节点处于在线状态,如果所述中间节点在所述第一检测周期内没有接收到所述中间节点的相邻节点发送的发现报文,则确定所述中间节点的相邻节点处于离线状态。可选的,所述中间节点的相邻节点的状态信息用第一状态位图表表示,所述心跳报文中包括的节点的状态信息用第二状态位图表表示,所述第一状态位图表和所述第二状态位图表中每个节点的状态信息占用至少一比特。相应的,所述处理模块23具体用于:对第一状态位图表和所述第二状态位图表取并集,得到所述中间节点的关联节点的状态信息。可选的,所述中间节点还包括:初始化模块(图5中未示出),初始化模块用于在所述第一周期结束后,对所述第一状态位图表初始化,初始化后所述第一状态位图表中包括的节点的状态信息为离线状态。可选的,所述中间节点还包括:确定模块和定时模块(图5中未示出),确定模块用于在所述第一周期结束后,确定所述中间节点为离线状态;定时模块用于关闭第一检测周期和所述第二检测周期对应的定时器。本实施例的中间节点,可用于执行上述实施例一和实施例二中中间节点执行的方法,具体实现方式和技术效果类似,这里不再赘述。图6为实施例四提供的控制器的结构示意图,所述控制器应用在电力线通信网络中,所述电力线通信网络包括所述控制器和多个节点,所述电力线通信网络中的节点按照树形结构逐级上报心跳报文,所述控制器为根节点,所述多个节点为中间节点或者叶子节点,所述控制器与节点之间、节点与节点之间通过电力线连接并通信,如图6所示,所述控制器包括:检测模块31,用于在第一检测周期内检测相邻节点的状态,获取所述控制器的相邻节点的状态信息;接收模块32,用于在第二检测周期内接收相邻下级节点发送的心跳报文,所述心跳报文中包括所述控制器的下级节点的状态信息,以及所述控制器的下级节点的相邻节点的状态信息;处理模块33,用于对所述控制器的相邻节点的状态信息和所述心跳报文中包括的节点的状态信息进行聚合,得到所述电力线通信网络内节点的状态信息;更新模块34,用于根据所述电力线通信网络内节点的状态信息更新网络拓扑表。可选的,所述检测模块31具体用于:判断所述第一检测周期内是否接收到所述控制器的相邻节点发送的发现报文,如果所述控制器在所述第一检测周期内接收到所述控制器的相邻节点发送的发现报文,则确定所述控制器的相邻节点处于在线状态,如果所述控制器在所述第一检测周期内没有接收到所述控制器的相邻节点发送的发现报文,则确定所述控制器的相邻节点处于离线状态。可选的,所述更新模块34具体用于:根据所述电力线通信网络内所有节点的状态信息,执行以下更新操作:在所述网络拓扑表中增加新入网的节点;将所述网络拓扑表中已经存在的节点的状态修改为离线或在线,并记录离线节点的连续离线次数;将所述网络拓扑表中连续N次离线的节点从所述网络拓扑表中删除,N为大于或等于2的整数。可选的,所述控制器的相邻节点的状态信息用第一状态位图表表示,所述心跳报文中包括的节点的状态信息用第二状态位图表表示,所述第一状态位图表和所述第二状态位图表中每个节点的状态信息占用至少一比特。相应的,所述处理模块33具体用于:对第一状态位图表和所述第二状态位图表取并集,得到所述电力线通信网络内节点的状态信息。可选的,所述控制器还包括初始化模块(图6中未示出),初始化模块用于在所述第一周期结束后,对所述第一状态位图表初始化,初始化后所述第一状态位图表中包括的节点的状态信息为离线状态。图7为实施例五提供的中间节点的结构示意图,所述中间节点应用在电力线通信网络中,所述电力线通信网络包括控制器和多个节点,所述电力线通信网络中的节点按照树形结构逐级上报心跳报文,所述控制器为根节点,所述多个节点为所述中间节点或者叶子节点,所述控制器与节点之间、节点与节点之间通过电力线连接并通信,如图7所示,所述中间节点400包括:处理器41、存储器42、接收器43和发送器44。存储器42、接收器43和发送器44通过总线与所述处理器41连接并通信,所述存储器42用于存储指令,所述接收器43用于接收其他设备发送的数据,所述发送器44用于向其他设备发送数据,所述处理器41用于执行所述存储器42中存储的指令,以使所述中间节点执行上述方法实施例一和实施例二中中间节点执行的步骤,具体实现原理和技术效果与方法实施例类似,在此不再赘述。图8为实施例六提供的控制器的结构示意图,所述控制器应用在电力线通信网络中,所述电力线通信网络包括所述控制器和多个节点,所述电力线通信网络中的节点按照树形结构逐级上报心跳报文,所述控制器为根节点,所述多个节点为中间节点或者叶子节点,所述控制器与节点之间、节点与节点之间通过电力线连接并通信,如图8所示,所述控制器500包括:处理器51、存储器52、接收器53和发送器54。存储器52、接收器53和发送器54通过总线与所述处理器51连接并通信,所述存储器52用于存储指令,所述接收器53用于接收其他设备发送的数据,所述发送器54用于向其他设备发送数据,所述处理器51用于执行所述存储器52中存储的指令,以使所述控制器点执行上述方法实施例一和实施例二中控制器执行的步骤,具体实现原理和技术效果与方法实施例类似,在此不再赘述。可以理解,本申请中中间节点或者控制器使用的处理器可以是中央处理器(CPU),通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC),现场可编程门阵列(FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。本申请所述的总线可以是工业标准体系结构(IndustryStandardArchitecture,ISA)总线、外部设备互连(PeripheralComponent,PCI)总线或扩展工业标准体系结构(ExtendedIndustryStandardArchitecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-OnlyMemory,简称:ROM)、随机存取存储器(英文:RandomAccessMemory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1