一种嵌入分布式组网方法及其系统的制作方法
【专利摘要】本发明提供了一种嵌入分布式组网方法,包括:网络拓扑形成步骤;初始路由生成步骤;实时路由维护步骤;消息发送路由步骤。本发明还提供一种嵌入分布式组网系统。本发明提供的技术方案采用四个步骤能极大提高电表抄读的效率。
【专利说明】
一种嵌入分布式组网方法及其系统
技术领域
[0001]本发明涉及电力技术领域,尤其涉及一种嵌入分布式组网方法及其系统。
【背景技术】
[0002]现有技术中,电力载波远程抄表系统通常由一安装在电力部门客户管理中心的主站计算机和一个以上的根据台区变压器供电范围划分的台区(在组网抄表中,有时也称为域)组成。主站计算机处于远程抄表网络的中心位置,负责统一管理各个台区的抄表工作,并永久保存客户的电能量数据。每个台区辖区内包括有一台台区变压器、一个安装在台区变压器附近的集中器、一个以上的安装在客户附近的电能表和采集器(或载波表)。
[0003]—般而言,抄表的过程由集中器自动完成,集中器会定时启动抄读任务,通过分散保存在抄表系统中(注意:不是集中器中)的路由跳转表引导消息在集中器与电能表之间进行通信以收集电能量数据,并将抄表数据暂存于其持久存储器中。主站计算机将会定期访问集中器,将集中器存储器中的数据汇总到自身的数据库中。但是,在台区初建的安装时期,抄表系统并没有建立起引导消息的路由跳转表,最初的电能量信息抄读通过洪泛路由算法完成,在洪泛抄读过程中,抄表系统各节点中的路由模块通过分析在抄表系统中流动的消息,建立起最终所需的分布式路由,然而这种抄表方式的效率较低,无法满足现代电力抄表的实时需求。
【发明内容】
[0004]有鉴于此,本发明的目的在于提供一种嵌入分布式组网方法及其系统,旨在解决现有技术中电表抄读的效率较低的问题。
[0005]本发明提出一种嵌入分布式组网方法,应用于电力线载波抄表系统,所述电力线载波抄表系统包括主站计算机以及多个台区,每个台区包括台区变压器、集中器、电能表,其中,所述方法包括:
[0006]网络拓扑形成步骤:所述集中器利用网络节点配置算法获取构建网络拓扑所需的信息,并通过网络拓扑生成算法生成网络拓扑;
[0007]初始路由生成步骤:当所述集中器中的路由模块内的邻居节点表在一预设时间段内不再发生变化时,所述集中器将开放其路由模块内邻居节点的路由生成,并根据已经生成的网络拓扑以集中器为中心由近及远生成全网初始路由;
[0008]实时路由维护步骤:当完成全网初始路由生成之后,所述集中器通过分析所接收到的消息的MAC层源地址、目的地址以及链路质量参数来进行实时路由维护;
[0009]消息发送路由步骤:在所述集中器发送抄读消息时,查询集中器存储的路由跳转表,并根据路由跳转表中路由跳转项的指引发送抄读消息。
[0010]所述网络拓扑形成步骤中的所述集中器利用网络节点配置算法获取构建网络拓扑所需的信息具体包括:
[0011 ]在所述集中器上电时,所述集中器的功能模块同步路由模块中的电表档案;
[0012]在所述集中器的路由模块生成抄读消息时,如果发现目标节点未进行初始配置,则会在所述抄读消息中附加目标节点配置信息域并发送之;
[0013]当所述目标节点收到所述抄读消息后,检查自身是否已配置,如果未配置,则从所述抄读消息中提取所述目标节点配置信息域以完成所述集中器对自身的配置,并发送抄读响应消息;
[0014]当中继节点收到所述抄读响应消息时,检查自身是否已配置,如果未配置且所述抄读响应消息中已有未配置节点报告域,则将该域中的节点唯一标识替换为自身的唯一标识,如果未配置且所述抄读响应消息中没有未配置节点报告域,则在所述抄读响应消息中附加未配置节点报告域,并报告自身的唯一标识;
[0015]当所述集中器收到所述抄读响应消息后,所述集中器的路由模块会检查所述目标节点是否处在已配置状态,如果是未配置状态则将所述目标节点配置状态更新为已配置,如果所述抄读响应消息中有未配置节点报告域,则提取报告域中的唯一标识保存在优先抄读表中;
[0016]所述集中器根据存储的所述优先抄读表挑选下一节点进行抄读。
[0017]优选的,所述网络拓扑形成步骤中的通过网络拓扑生成算法生成网络拓扑具体包括:
[0018]当所述集中器生成下行电表抄读消息时,在所述抄读消息中附加邻居信息域,所述邻居信息域包含自身邻居信息表的一个子段,用于向邻近节点通告自身收集的邻居信息;
[0019]在当前节点收到电力线上的消息后,提取消息中的源发送节点的MAC地址,并在自身的邻居表中通过所述MAC地址查询所述源发送节点是否已登记到邻居表中,如果未登记贝IJ在邻居表中生成新的邻近节点项,如果已登记则更新邻近节点项中有关子域;
[0020]在当前节点收到电力线上的消息后,查看收到消息中的邻居信息域,如果自身的标识出现在所述邻居信息域中,则表明自身已成为发送节点的邻居节点,从而将自身的邻居表中属于发送节点的邻近节点项的链路双向标志置为“I”,以表明自身与发送节点存在双向通信链接;
[0021]如果收到消息的当前节点是消息的中继节点且属于未配置节点,以及收到的消息中不存在长地址上报域的话,则在收到的消息中附加长地址上报域并将自身的唯一标识填入该域,如果消息在上行过程中已由前面的中继节点生成了长地址上报域的话,则以自身的唯一标识替换长地址上报域中的唯一标识;
[0022]如果收到消息的当前节点是消息的中继节点且属于已配置节点的话,则当前节点作为中继节点用自身的邻居表的一个子段替换邻居信息域中原有的内容,并向其他节点通告自身收集的邻居信息;
[0023]如果收到消息的当前节点是消息的目标节点且属于已配置节点的话,当前节点在发送抄表响应消息时,将在抄表响应消息中附加邻居信息域且包含自身的邻居信息表的一个子段,并向邻近节点通告自身收集的邻居信息。
[0024]优选的,所述初始路由生成步骤具体包括:
[0025]所述集中器检查网络拓补生成状态,如果在系统预置的时间内,邻居表都没有得到更新,则表明所述集中器可能已经获得自身周围所有邻近节点的信息;
[0026]所述集中器检查自身的邻居表,如果邻居表中已经存在与自身有双向连接的邻近节点,则设置路由生成开放标志,将路由生成开放级别设置为一级路由生成;
[0027]如果邻居表中没有双向连接的邻近节点,则不设置路由生成开放标志,重新设置路由生成定时器,并继续执行所述网络拓补生成算法;
[0028]在所述集中器生成下行电表抄读消息时,在消息中附加邻居信息域,该域中除了包含所述网络拓补生成算法中描述的邻居信息表子段外,如果开放路由生成,则在该信息域中填写路由开放标志以及路由开放级数;
[0029]在抄表消息由载波节点洪泛中继时,如果中继节点已生成自身与所述集中器之间的路由,则在更新中继消息的邻居信息域时,填写自身路由的路由级别与路由损耗;
[0030]在抄表消息由载波节点接收时,所有接收节点将检查邻居信息域中的路由生成开放信息,如果路由开放标志已置起,则接收节点将记录邻居信息域中的路由生成开放标志与路由生成开放级别;
[0031]在当载波节点响应抄表请求时,如果发现路由开放标志已设置,而自身未生成到所述集中器的路由时,则在自身的邻居信息表中寻找已生成到集中器路由的邻居节点,在这些节点中挑选那些路由级别不大于开放级别的节点,并根据自身到这些节点的链路质量以及这些节点到所述集中器路由的路由损耗挑选最优节点形成自身到所述集中器的路由,并在响应抄表信息中形成路由上报项;
[0032]在当中继节点中继上行消息时,发现消息中还可以附加新的信息域,如果发现路由开放标志已设置,而自身未生成到所述集中器的路由时,则在自身的邻居信息表中寻找已生成到所述集中器路由的邻居节点,在这些节点中挑选那些路由级别不大于开放级别的节点,根据自身到这些节点的链路质量以及这些节点到所述集中器路由的路由损耗挑选最优节点形成自身到所述集中器的路由,并在响应抄表信息中形成路由上报项;
[0033]当所述集中器收到抄表响应消息时,更新路由认可项,或者形成路由上报节点的路由认可项;
[0034]当所述集中器生成下行电表抄读消息时,检查路由认可队列,如果路由认可队列不为空,则在抄读消息中形成路由认可信息域;
[0035]在中继节点接收到任一个转发带有路由认可信息域的下行抄读消息时,检查所述带有路由认可信息域;
[0036]在目标节点接收到任一个带有路由认可信息域的下行抄读消息时,检查所述带有路由认可信息域;
[0037]如果一个具有路由上报条件的节点在上报路由后在预设时间内没有收到所述集中器的认可,则继续上报自身的路由;
[0038]在所述集中器开放一级路由上报后,将等待节点上报路由,并在每收到一个新路由时重新刷新自身的等待路由上报定时器,如果在预设时间内没有再收到新的上报路由,但在开放这一级路由后确实已收到过新路由,则所述集中器将路由开放级数加一,并重新向网络通告新的路由开放级别;
[0039]如果开放一级路由后没有收到一个新路由,或者路由开放级别已达15级,则将置起网络初始路由生成完成标志,并转入所述实时路由维护步骤。
[0040]另一方面,本发明还提供一种嵌入分布式组网系统,应用于电力线载波抄表,所述嵌入分布式组网系统包括主站计算机以及多个台区,每个台区包括台区变压器、集中器、电能表,所述集中器包括:
[0041 ]路由模块,用于存储邻居节点表;
[0042]网络拓扑形成模块,用于利用网络节点配置算法获取构建网络拓扑所需的消息,并通过网络拓扑生成算法生成网络拓扑;
[0043]初始路由生成模块,用于当所述路由模块内的邻居节点表在一预设时间段内不再发生变化时,将开放所述路由模块内邻居节点的路由生成,并根据已经生成的网络拓扑以集中器为中心由近及远生成全网初始路由;
[0044]实时路由维护模块,用于当完成全网初始路由生成之后,通过分析所接收到的消息的MAC层源地址、目的地址以及链路质量参数来进行实时路由维护;
[0045]消息发送路由模块,用于在发送抄读消息时,查询集中器存储的路由跳转表,并根据路由跳转表中路由跳转项的指引发送抄读消息。
[0046]优选的,所述网络拓扑形成模块中的网络节点配置算法具体用于:
[0047]在所述集中器上电时,所述集中器的功能模块同步路由模块中的电表档案;
[0048]在所述集中器的路由模块生成抄读消息时,如果发现目标节点未进行初始配置,则会在所述抄读消息中附加目标节点配置信息域并发送;
[0049]当所述目标节点收到所述抄读消息后,检查自身是否已配置,如果未配置,则从所述抄读消息中提取所述目标节点配置信息域以完成所述集中器对自身的配置,并发送抄读响应消息;
[0050]当中继节点收到所述抄读响应消息时,检查自身是否已配置,如果未配置且所述抄读响应消息中已有未配置节点报告域,则将该域中的节点唯一标识替换为自身的唯一标识,如果未配置且所述抄读响应消息中没有未配置节点报告域,则在所述抄读响应消息中附加未配置节点报告域,并报告自身的唯一标识;
[0051]当所述集中器收到所述抄读响应消息后,所述集中器的路由模块会检查所述目标节点是否处在已配置状态,如果是未配置状态则将所述目标节点配置状态置为已配置,如果所述抄读响应消息中有未配置节点报告域,则提取报告域中的唯一标识保存在优先抄读表中;
[0052]所述集中器根据存储的所述优先抄读表挑选下一节点进行抄读。
[0053]优选的,所述网络拓扑形成模块中的网络拓扑生成算法具体用于:
[0054]当所述集中器生成下行电表抄读消息时,在所述抄读消息中附加邻居信息域,所述邻居信息域包含自身邻居信息表的一个子段,用于向邻近节点通告自身收集的邻居信息;
[0055]在当前节点收到电力线上的消息后,提取消息中的源发送节点的MAC地址,并在自身的邻居表中通过所述MAC地址查询所述源发送节点是否已登记到邻居表中,如果未登记贝IJ在邻居表中生成新的邻近节点项,如果已登记则更新邻近节点项中有关子域;
[0056]在当前节点收到电力线上的消息后,查看收到消息中的邻居信息域,如果自身的标识出现在所述邻居信息域中,则表明自身已成为发送节点的邻居节点,从而将自身的邻居表中属于发送节点的邻近节点项的链路双向标志置为“I”,以表明自身与发送节点存在双向通信链接;
[0057]如果收到消息的当前节点是消息的中继节点且属于未配置节点,以及收到的消息中不存在长地址上报域的话,则在收到的消息中附加长地址上报域并将自身的唯一标识填入该域,如果消息在上行过程中已由前面的中继节点生成了长地址上报域的话,则以自身的唯一标识替换长地址上报域中的唯一标识;
[0058]如果收到消息的当前节点是消息的中继节点且属于已配置节点的话,则当前节点作为中继节点用自身的邻居表的一个子段替换邻居信息域中原有的内容,并向其他节点通告自身收集的邻居信息;
[0059]如果收到消息的当前节点是消息的目标节点且属于已配置节点的话,当前节点在发送抄表响应消息时,将在抄表响应消息中附加邻居信息域且包含自身的邻居信息表的一个子段,并向邻近节点通告自身收集的邻居信息。
[0060]优选的,所述初始路由生成模块具体用于:
[0061]所述集中器检查网络拓补生成状态,如果在系统预置的时间内,邻居表都没有得到更新,则表明所述集中器可能已经获得自身周围所有邻近节点的信息;
[0062]所述集中器检查自身的邻居表,如果邻居表中已经存在与自身有双向连接的邻近节点,则设置路由生成开放标志,将路由生成开放级别设置为一级路由生成;
[0063]如果邻居表中没有双向连接的邻近节点,则不设置路由生成开放标志,重新设置路由生成定时器,并继续执行所述网络拓补生成算法;
[0064]在所述集中器生成下行电表抄读消息时,在消息中附加邻居信息域,该域中除了包含所述网络拓补生成算法中描述的邻居信息表子段外,如果开放路由生成,则在该信息域中填写路由开放标志以及路由开放级数;
[0065]在抄表消息由载波节点洪泛中继时,如果中继节点已生成自身与所述集中器之间的路由,则在更新中继消息的邻居信息域时,填写自身路由的路由级别与路由损耗;
[0066]在抄表消息由载波节点接收时,所有接收节点将检查邻居信息域中的路由生成开放信息,如果路由开放标志已置起,则接收节点将记录邻居信息域中的路由生成开放标志与路由生成开放级别;
[0067]在当载波节点响应抄表请求时,如果发现路由开放标志已设置,而自身未生成到所述集中器的路由时,则在自身的邻居信息表中寻找已生成到集中器路由的邻居节点,在这些节点中挑选那些路由级别不大于开放级别的节点,并根据自身到这些节点的链路质量以及这些节点到所述集中器路由的路由损耗挑选最优节点形成自身到所述集中器的路由,并在响应抄表信息中形成路由上报项;
[0068]在当中继节点中继上行消息时,发现消息中还可以附加新的信息域,如果发现路由开放标志已设置,而自身未生成到所述集中器的路由时,则在自身的邻居信息表中寻找已生成到所述集中器路由的邻居节点,在这些节点中挑选那些路由级别不大于开放级别的节点,根据自身到这些节点的链路质量以及这些节点到所述集中器路由的路由损耗挑选最优节点形成自身到所述集中器的路由,并在响应抄表信息中形成路由上报项;
[0069]当所述集中器收到抄表响应消息时,更新路由认可项,或者形成路由上报节点的路由认可项;
[0070]当所述集中器生成下行电表抄读消息时,检查路由认可队列,如果路由认可队列不为空,则在抄读消息中形成路由认可信息域;
[0071]在中继节点接收到任一个转发带有路由认可信息域的下行抄读消息时,检查所述带有路由认可信息域;
[0072]在目标节点接收到任一个带有路由认可信息域的下行抄读消息时,检查所述带有路由认可信息域;
[0073]如果一个具有路由上报条件的节点在上报路由后在预设时间内没有收到所述集中器的认可,则继续上报自身的路由;
[0074]在所述集中器开放一级路由上报后,将等待节点上报路由,并在每收到一个新路由时重新刷新自身的等待路由上报定时器,如果在预设时间内没有再收到新的上报路由,但在开放这一级路由后确实已收到过新路由,则所述集中器将路由开放级数加一,并重新向网络通告新的路由开放级别;
[0075]如果开放一级路由后没有收到一个新路由,或者路由开放级别已达15级,则将置起网络初始路由生成完成标志,并转入所述实时路由维护步骤。
[0076]本发明提供的技术方案在网络拓扑形成步骤中采用网络拓补信息生成算法以监控网络连接状态并形成网络拓补,在初始路由生成步骤中采用路由生成算法以在系统安装后的最初路由生成,在实时路由维护步骤中采用路由维护算法以实时维护路由的有效性,在消息发送路由步骤中采用消息路由算法以使生成的路由表有效发送消息,通过这四种算法在四个步骤中的应用,极大地提高了电表抄读的效率,从而满足现代电力的实时需求。
【附图说明】
[0077]图1为本发明一实施方式中嵌入分布式组网方法流程图;
[0078]图2为本发明一实施方式中集中器10的内部结构示意图。
【具体实施方式】
[0079]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0080]本发明【具体实施方式】提供了一种嵌入分布式组网方法,应用于电力线载波抄表系统,所述电力线载波抄表系统包括主站计算机以及多个台区,每个台区包括台区变压器、集中器、电能表,其中,所述方法主要包括如下步骤:
[0081]S11、网络拓扑形成步骤:所述集中器利用网络节点配置算法获取构建网络拓扑所需的信息,并通过网络拓扑生成算法生成网络拓扑;
[0082]S12、初始路由生成步骤:当所述集中器中的路由模块内的邻居节点表在一预设时间段内不再发生变化时,所述集中器将开放其路由模块内邻居节点的路由生成,并根据已经生成的网络拓扑以集中器为中心由近及远生成全网初始路由;
[0083]S13、实时路由维护步骤:当完成全网初始路由生成之后,所述集中器通过分析所接收到的消息的MAC层源地址、目的地址以及链路质量参数来进行实时路由维护;
[0084]S14、消息发送路由步骤:在所述集中器发送抄读消息时,查询集中器存储的路由跳转表,并根据路由跳转表中路由跳转项的指引发送抄读消息。
[0085]本发明提供的一种嵌入分布式组网方法在网络拓扑形成步骤中采用网络拓补信息生成算法以监控网络连接状态并形成网络拓补,在初始路由生成步骤中采用路由生成算法以在系统安装后的最初路由生成,在实时路由维护步骤中采用路由维护算法以实时维护路由的有效性,在消息发送路由步骤中采用消息路由算法以使生成的路由表有效发送消息,通过这四种算法在四个步骤中的应用,极大地提高了电表抄读的效率,从而满足现代电力的实时需求。
[0086]以下将对本发明所提供的一种嵌入分布式组网方法进行详细说明。
[0087]请参阅图1,为本发明一实施方式中嵌入分布式组网方法流程图。
[0088]在本实施方式中,该嵌入分布式组网方法,应用于电力线载波抄表系统,所述电力线载波抄表系统包括主站计算机以及多个台区,每个台区包括台区变压器、集中器、电能表,其中,集中器通过电力线与电能表通信,收集电能表中的有关用户电能量消费的信息,一般而言,集中器不能够与电能表直接通信,一条消息要经过其他电能表(作为中继节点)中继,才能由集中器到达目的电能表(或由电能表到达集中器),这些中继节点构成一条路由。
[0089]在本实施方式中,主站计算机处于远程抄表网络的中心位置,负责统一管理各个台区的抄表工作,并永久保存客户的电能量数据。每个台区辖区内包括有一台台区变压器、一个安装在台区变压器附近的集中器、一个以上的安装在客户附近的电能表和采集器(或载波表)。其中,集中器负责收集由所在台区内台区变压器供电的所有客户的电能表数据,它一方面通过电力线与采集器(或载波表)连接,间接建立与电能表的通信连接,另一方面通过GPRS或其它网络通信媒介建立与主站计算机的通信连接;电能表用于计量用户消费的电能量,具有唯一的标识号码(即表号),抄表系统的目的就是收集客户电能表的电能量数据及电能表的其他状态数据;采集器(或者载波表)负责与集中器之间的数据通信,其中采集器一方面通过其他串行通信方式建立与电能表的通信连接,另一方面,通过电力线建立与集中器的通信连接。
[0090]在步骤Sll中,网络拓扑形成步骤:所述集中器利用网络节点配置算法获取构建网络拓扑所需的信息,并通过网络拓扑生成算法生成网络拓扑。
[0091]在本实施方式中,步骤Sll采用网络拓补信息生成算法来完成,以监控网络连接状态并形成网络拓补。步骤Sll还包括两个部分内容,分别由网络节点配置算法和网络拓扑生成算法来执行。其中,网络拓补信息生成算法的概要包括:集中器上电后,集中器功能模块会立即同步自身与集中器路由模块中的电表档案,此后,如果进入抄表时段,集中器功能模块将启动抄表,一旦启动抄表,电力线上将会出现抄表消息,由于所有节点都共享电力线媒介,所以,任何节点发送到电力线上的消息,都会被它的邻近节点感知到,分布于网络节点上的网络状态监控代码将会分析节点感知到的所有消息,从中提取出构建网络拓补所需要的消息;在节点收到的消息中,消息的子域:MAC层源地址子域保存了发送消息的源节点的标识,它标识了与接收节点有直接通信链接的节点,称这类节点为消息接收节点的邻近节点;链路质量子域保存了收到消息时接收节点附近电力线的通信质量,接收节点的网络拓补生成模块使用这些信息发现自身的邻近节点并构建自身的邻近节点表(又称“邻居表”),与此同时,当节点把接收的消息转发出去(如果必要的话,例如,收到的消息并不是最终发送给自身的时候)时,又会把自身的邻近节点表中的信息作为附加信息添加到转发消息中,向外广播自身的邻近节点信息,从而使邻近节点查知某节点以前收到过自身的消息,从而发现收发双向都连通的双向链路。
[0092]在本实施方式中,所述网络拓扑形成步骤中的所述集中器利用网络节点配置算法获取构建网络拓扑所需的信息具体包括S111-S116这六个子步骤,具体如下所示。
[0093]在子步骤Slll中,在所述集中器上电时,所述集中器的功能模块同步路由模块中的电表档案。其中,在同步之后,如果进入抄表时段,集中器的功能模块将启动抄表,一般情况下,如果集中器是首次上电,则会立即使用洪泛算法,预抄全部电表。
[0094]在子步骤S112中,在所述集中器的路由模块生成抄读消息时,如果发现目标节点未进行初始配置,则会在所述抄读消息中附加目标节点配置信息域并发送。
[0095]在子步骤S113中,当所述目标节点收到所述抄读消息后,检查自身是否已配置,如果未配置,则从所述抄读消息中提取所述目标节点配置信息域以完成所述集中器对自身的配置,并发送抄读响应消息。
[0096]在子步骤S114中,当中继节点收到所述抄读响应消息时,检查自身是否已配置,如果未配置且所述抄读响应消息中已有未配置节点报告域,则将该域中的节点唯一标识替换为自身的唯一标识,如果未配置且所述抄读响应消息中没有未配置节点报告域,则在所述抄读响应消息中附加未配置节点报告域,并报告自身的唯一标识。
[0097]在子步骤S115中,当所述集中器收到所述抄读响应消息后,所述集中器的路由模块会检查所述目标节点是否处在已配置状态,如果是未配置状态则将所述目标节点配置状态更新为已配置,如果所述抄读响应消息中有未配置节点报告域,则提取报告域中的唯一标识保存在优先抄读表中。
[0098]在子步骤S116中,所述集中器根据存储的所述优先抄读表挑选下一节点进行抄读。其中挑选步骤是:首先,如果优先抄读表不空,则挑选优先抄读表中节点进行抄读,否贝IJ,按照正常表库顺序抄读。
[0099]在本实施方式中,所述网络拓扑形成步骤中的通过网络拓扑生成算法生成网络拓扑具体包括S117-S122这六个子步骤,具体如下所示。
[0100]在子步骤S117中,当所述集中器生成下行电表抄读消息时,在所述抄读消息中附加邻居信息域,所述邻居信息域包含自身邻居信息表的一个子段,用于向邻近节点通告自身收集的邻居信息。
[0101]在子步骤S118中,在当前节点收到电力线上的消息后,提取消息中的源发送节点的MAC地址,并在自身的邻居表中通过所述MAC地址查询所述源发送节点是否已登记到邻居表中,如果未登记则在邻居表中生成新的邻近节点项,如果已登记则更新邻近节点项中有关子域。
[0102]其中,当前节点收到电力线上的消息后,不管是新收到消息还是重复包消息,提取消息中的源发送节点MAC地址,它是与当前节点有直接通信链接的邻近节点的网络标识,使用该标识在自己的邻居表中查询是否MAC地址标识的节点已登记到邻居表中,如果未登记则在邻居表中生成新的邻近节点项,其中包含源中继节点标识以及与通信链路质量有关的信息;如果表中已包含该邻近节点项,则更新该邻近节点项中有关子域,这些子域描述了邻居与中继节点之间通信链接的质量。
[0103]在子步骤S119中,在当前节点收到电力线上的消息后,查看收到消息中的邻居信息域,如果自身的标识出现在所述邻居信息域中,则表明自身已成为发送节点的邻居节点,从而将自身的邻居表中属于发送节点的邻近节点项的链路双向标志置为“I”,以表明自身与发送节点存在双向通信链接。
[0104]在子步骤S120中,如果收到消息的当前节点是消息的中继节点且属于未配置节点,以及收到的消息中不存在长地址上报域的话,则在收到的消息中附加长地址上报域并将自身的唯一标识填入该域,如果消息在上行过程中已由前面的中继节点生成了长地址上报域的话,则以自身的唯一标识替换长地址上报域中的唯一标识。
[0105]在子步骤S121中,如果收到消息的当前节点是消息的中继节点且属于已配置节点的话,则当前节点作为中继节点用自身的邻居表的一个子段替换邻居信息域中原有的内容,并向其他节点通告自身收集的邻居信息。
[0106]在子步骤S122中,如果收到消息的当前节点是消息的目标节点且属于已配置节点的话,当前节点在发送抄表响应消息时,将在抄表响应消息中附加邻居信息域且包含自身的邻居信息表的一个子段,并向邻近节点通告自身收集的邻居信息。
[0107]在本实施方式中,上述网络拓补生成算法中,所有节点(包括集中器以及其它载波节点)都会监控出现在电力线上的任何消息,包括重复包,因为,即使是同一条抄表消息,每一次在网络上被中继时,都会更新消息中附加的各种信息域,例如:中继节点本身的邻居表信息与其他上报信息。
[0108]在步骤S12中,初始路由生成步骤:当所述集中器中的路由模块内的邻居节点表在一预设时间段内不再发生变化时,所述集中器将开放其路由模块内邻居节点的路由生成,并根据已经生成的网络拓扑以集中器为中心由近及远生成全网初始路由。
[0109]在本实施方式中,在初始路由生成步骤中采用路由生成算法以在系统安装后的最初路由生成。其中,该路由生成算法的概要包括:使用了节点级数概念,将集中器邻近节点定义为一级节点,而一级节点的邻近节点集合中那些不是集中器邻近节点的节点称之为二级节点,同样,二级节点的邻近节点集合中,那些不是集中器与一级节点的邻近节点的节点,称之为三级节点,以此类推,形成一个以集中器为中心,由近及远的节点层次集合,与此对应,集中器与η级节点之间的路由称之为η级路由;集中器上电进入抄表时段后,启动抄表,如果网络系统还未形成初始网络拓补,路由模块首先会生成网络拓补,也就是存在于网络节点中的邻居表的集合,当集中器路由模块中的邻居节点表在一个固定时段内不再发生变化时,集中器将开放集中器邻居节点(也就是一级节点)的路由生成,集中器启动邻近节点路由生成后,集中器邻近节点将会上报路由,如果在一段时间后没有新的路由上报,集中器将会开放一级与二级节点的路由生成,此后,一级与二级节点都会开始上报路由,这样由近及远生成全网初始路由。
[0110]在本实施方式中,所述初始路由生成步骤具体包括S123-S137这十五个子步骤,具体如下所示。
[0111]在步骤S123中,所述集中器检查网络拓补生成状态,如果在系统预置的时间内,邻居表都没有得到更新,则表明所述集中器可能已经获得自身周围所有邻近节点的信息。
[0112]在步骤S124中,所述集中器检查自身的邻居表,如果邻居表中已经存在与自身有双向连接的邻近节点,则设置路由生成开放标志,将路由生成开放级别设置为一级路由生成,设置路由生成主定时器。
[0113]在步骤S125中,如果邻居表中没有双向连接的邻近节点,则不设置路由生成开放标志,重新设置路由生成定时器,并继续执行所述网络拓补生成算法。
[0114]在步骤S126中,在所述集中器生成下行电表抄读消息时,在消息中附加邻居信息域,该域中除了包含所述网络拓补生成算法中描述的邻居信息表子段外,如果开放路由生成,则在该信息域中填写路由开放标志以及路由开放级数;
[0115]在步骤S127中,在抄表消息由载波节点洪泛中继时,如果中继节点已生成自身与所述集中器之间的路由,则在更新中继消息的邻居信息域时,填写自身路由的路由级别与路由损耗;
[0116]在步骤S128中,在抄表消息由载波节点接收时,所有接收节点将检查邻居信息域中的路由生成开放信息,如果路由开放标志已置起,则接收节点将记录邻居信息域中的路由生成开放标志与路由生成开放级别。
[0117]其中,如果发送节点已生成到集中器路由,接收节点也会将发送节点的路由级别与路由损耗记录到邻居信息表对应于发送节点的邻居信息项中。
[0118]在步骤S129中,在当载波节点响应抄表请求时,如果发现路由开放标志已设置,而自身未生成到所述集中器的路由时,则在自身的邻居信息表中寻找已生成到集中器路由的邻居节点,在这些节点中挑选那些路由级别不大于开放级别的节点,并根据自身到这些节点的链路质量以及这些节点到所述集中器路由的路由损耗挑选最优节点形成自身到所述集中器的路由,并在响应抄表信息中形成路由上报项。
[0119]在步骤S130中,在当中继节点中继上行消息时,发现消息中还可以附加新的信息域,如果发现路由开放标志已设置,而自身未生成到所述集中器的路由时,则在自身的邻居信息表中寻找已生成到所述集中器路由的邻居节点,在这些节点中挑选那些路由级别不大于开放级别的节点,根据自身到这些节点的链路质量以及这些节点到所述集中器路由的路由损耗挑选最优节点形成自身到所述集中器的路由,并在响应抄表信息中形成路由上报项。
[0120]其中,最优节点为路由上报节点的路由邻近节点。
[0121]在步骤S131中,当所述集中器收到抄表响应消息时,更新路由认可项,或者形成路由上报节点的路由认可项。
[0122]其中,当集中器收到抄表响应消息时,在抄表响应消息的附加信息域中发现了某节点的路由生成上报信息,则首先检查路由认可队列,看是否已收到过同一节点的路由报告,如果收到过,则更新路由认可项(路由认可项由目标节点标识与最临近目标节点的最后一级中继节点标识构成,由于集中器到最后一级中继节点的路由已生成,只要使用认可项中的两个数据项,网络即可生成到当前目标节点的分布式路由);如果没有收到过该节点的路由上报项,则查询集中器电表档案库,提取路由邻近节点的表库记录,将路由邻近节点与路由上报节点的通信链路与路由邻近节点的路由拼接在一起形成路由上报节点的路由,形成集中器到上报节点的首级跳转项保存到集中器路由跳转表,形成路由上报节点的路由认可项。
[0123]在步骤S132中,当所述集中器生成下行电表抄读消息时,检查路由认可队列,如果路由认可队列不为空,则在抄读消息中形成路由认可信息域。
[0124]其中,该信息域并不是针对一个节点的路由的认可信息,该信息域最多可包含十条路由的认可。
[0125]在步骤S133中,在中继节点接收到任一个转发带有路由认可信息域的下行抄读消息时,检查所述带有路由认可信息域。
[0126]其中,任何一个转发带有路由认可信息域的下行抄读消息的中继节点,都会检查该信息域,具体包括:
[0127]首先,检查本节点是否为某一路由认可项的路由目标节点,如果是,则要在路由跳转表中形成到集中器的路由跳转项,跳转项的跳转目标为集中器,跳转项的下一跳是本节点的上行路由邻近节点。
[0128]其次,如果本节点不是任一路由认可项的路由目标节点,检查自己是否为某一路由认可项的上行路由邻近节点,如果是,形成到目标节点跳转项,其目标与下一跳均指定为路由目标节点。
[0129]最后,如果中继节点不是上述两类节点,则检查自己的路由跳转表,看是否有已认可信息域中某一认可项的路由上行邻近节点为目标的跳转项,如果有,则生成一个新的跳转项,该跳转项以该认可项的目标节点为目标,以刚找到的跳转项的下一跳为新跳转项的下一跳。
[0130]在步骤S134中,在目标节点接收到任一个带有路由认可信息域的下行抄读消息时,检查所述带有路由认可信息域。
[0131]在步骤S135中,如果一个具有路由上报条件的节点在上报路由后在预设时间内没有收到所述集中器的认可,则继续上报自身的路由。
[0132]在步骤S136中,在所述集中器开放一级路由上报后,将等待节点上报路由,并在每收到一个新路由时重新刷新自身的等待路由上报定时器,如果在预设时间内没有再收到新的上报路由,但在开放这一级路由后确实已收到过新路由,则所述集中器将路由开放级数加一,并重新向网络通告新的路由开放级别。
[0133]在步骤S137中,如果开放一级路由后没有收到一个新路由,或者路由开放级别已达15级,则将置起网络初始路由生成完成标志,并转入所述实时路由维护步骤。
[0134]在步骤S13中,实时路由维护步骤:当完成全网初始路由生成之后,所述集中器通过分析所接收到的消息的MAC层源地址、目的地址以及链路质量参数来进行实时路由维护。
[0135]在本实施方式中,在实时路由维护步骤中采用路由维护算法以实时维护路由的有效性,其中,路由维护算法的概要包括:当抄读系统完成初始路由生成后,也就结束了初始组网阶段,随即转入网络监控与路由维护阶段,如果初始组网并没有为每一个节点生成路由,或是由于噪声导致网络通信链路状态恶化,使某些节点的路由失效,或是因为删除电表使一些中继节点不存在导致一些路由失效,或是因为添加新节点需要建立新路由这些都会激活网络维护模块执行一些维护功能,但是,不同的原因会导致不同的处理,下面会分别介绍一些典型维护任务的执行流程,网络维护算法与前面的网络拓补生成以及路由生成一样,也是通过在消息中视情况附加一些网络维护用的信息域,或是分析消息中的MAC层源目地址以及链路质量参数来感知网络状态,进行网络维护的,这种网络维护没有独立于抄读流程,是与抄读流程并发执行的。以下将对每一种情况一一进行说明。
[0136]1、初始组网中没有生成路由的节点维护。
[0137]在网络拓补生成与路由生成流程结束后,初始网络已建立,但是,不能保证为每一个节点都生成了路由,通常,我们将这些在初始组网中没能成功生成路由的节点称之为边界节点。对于这些节点,我们使用寻找双向连通路径算法尽力为它们生成路由,详细流程如下:
[0138]I)如果初始组网已完成,抄读目标节点没有路由,集中器路由模块给抄读请求消息附加一个寻找到目标节点双向路径信息域,消息使用低速模式发送。
[0139]2)当目标节点收到带有寻找双向路径信息域的消息后,在生成抄读响应消息时,给消息附加寻找双向路径响应信息域,消息使用低速模式发送。
[0140]3)当中继节点收到带有寻找双向路径响应信息域的上行消息后,在自己的邻居节点表中查找,看消息中MAC层源地址标识的节点是否为自己的邻居节点,且该节点与自己之间是否存在双向链路,如果如此,则将自己加入到消息中的上行路径表中,将消息转发到电力线上。
[0141]4)集中器收到带有寻找双向路径响应信息域的消息后,检查响应信息域中的上行路径表(此时该表中节点序列代表了消息从目标节点到集中器的上行路程中依次经过的节点),从目标节点的最邻近节点开始,向集中器端搜寻,找到第一个已生成路由的节点,那么,与它最邻近的无路由节点是我们要生成路由的节点,生成它的路由。
[0142]2、删除从节点操作的网络维护
[0143]当集中器删除电表时,有可能删除了承担中继职责的节点,从而使某些节点的路由失效。如果删除的节点数目较大,那么以前形成的网络拓补会受到严重破坏,此种情况或许要求重启组网;如果仅删除个别节点,那么有可能只做一些轻微的失效路由修补即可。详细流程如下:
[0144]I)当集中器应用功能模块向路由模块发送删除节点命令后,集中器将从路由模块的表库内删除从节点,并且计数删除节点中中继节点的数目。如果系统是在添加节点之后立即删除节点的,设置系统状态进入更换节点维护任务状态,如果之前未处在添加节点或更新节点状态,则直接进入删除节点维护任务状态,设置网络维护任务定时器,等待一段指定时间后进入指定网络维护任务(等待一段时间后再启动网络维护任务是为了在应用功能模块连续发出多个删除或添加节点命令时,积累许多小任务后进入统一处理)。
[0145]2)当集中器网络维护任务定时器耗尽后,系统根据网络维护任务状态进入删除节点维护任务。
[0146]3)集中器检查删除节点集中有多少中继节点,如果删除中继节点数目超过总节点数的四分之一,则启动重新组网。否则,仅执行节点删除网络维护。
[0147]4)如果重启动组网,则集中器广播发送不带删除节点信息的节点删除信息;否则,集中器发送带有删除节点表的节点删除信息,告知现存的网络节点哪些节点被删除了。
[0148]5)当节点收到删除节点广播通知后,如果收到的是不带任何删除节点信息的通知,清除节点里以前形成的网络拓补与路由跳转的所有信息,重启组网;如果收到的是带有删除节点信息的通知,则转入下面步骤。
[0149]6)如果节点收到的是带有删除节点信息的通知,则对照消息中的删除节点表与自己的邻居表与路由表,进行相应处理:如果有删除节点是自己路由跳转表中某一路由跳转项的下一跳,清除邻居表中对应项,作废路由跳转表中的路由跳转项,进一步,如果该跳转项的目标节点是集中器,则表示节点上行路径已经中断,作废节点自己的路由,是节点能在自己的邻居表中寻找新的带有路由的邻居重新生成自己与集中器之间的路由。
[0150]3、添加从节点操作的网络维护
[0151]若集中器功能模块向路由模块的表库内增加从节点,则路由模块表库更新后,在集中器重新发送恢复或启动命令后,路由模块开始对新加入的节点执行洪泛抄读。抄读过程中,集中器路由模块如果发现节点未进行配置,将在抄读消息中生成附加的节点配置信息域,对新节点进行配置;配置后的节点将会在抄读过程中形成邻居表与路由跳转表,生成路由。
[0152]4、更新从节点操作的网络维护
[0153]若集中器重新刷新表库,增加某些电表,并删除某些电表,则路由模块表库更新后,在集中器重新发送恢复或启动命令后,首先洪泛抄读新加入电表。同时在新加入电表的抄读过程,不开放已配路径标示。使得新加入的电表不会立即选择自己的上行路径。
[0154]I)路由模块首先抄读新加入的节点,对新节点进行配置,同时生成新节点附近的网络拓补。
[0155]2)启动删除节点消息的广播。通知本域内的所有节点被删除电表的信息。并开放已配路径标示,使得在广播过程中,可形成新的路径。
[0156]3)集中器在多轮广播发送被删节点信息命令后,对受影响路径上的节点,开始级数少到多的洪泛抄读,以形成新的路径。
[0157]5、模块更换操作的网络维护
[0158]I)若某电表模块因为某种原因被更换,则新加的模块暂时不会有短地址存在。
[0159]2)当新加入的模块接收到邻近的路由消息包时,向监听到的路由模块洪泛上报自己的长地址。若无短地址的模块接收到组网洪泛路由消息包,则在上行消息包内扩展未配置节点地址域,请求路由模块配置本节点。
[0160]3)路由模块接收到长地址上报消息后,若表库内有此节点的长地址,则用洪泛配置此节点的短地址及上行路径。若表库内没有此节点的长地址,则发送禁止向本路由模块上报长地址的否认消息,新更换模块的节点将不再对此路由模块上报自己长地址。继续监听其他路由模块的消息,转2)。
[0161]4)若配置结束,有以下两个选择:
[0162]4.1路由模块根据路由表记录,按原路径配置被更换模块的路由表。
[0163]4.2路由模块查看路由表,对经过已更换节点模块才能到达节点,采用组网洪泛抄读。已更换模块的节点搜集自己的邻居表,上行路径收影响的节点重新选择自己的上行路径。
[0164]6、路径中断发现的网络维护
[0165]若路由模块按照分布式路由抄读某从节点,某路由节点连续接收不到下行消息的下一级路由的转发包且没有接收到响应的上行消息,则自主切换速率模式到低速模式,重法发送尝试通信。若通信成功,可以接收到下一级转发,则修改本级连接模式和连接损耗。若通信连接不成功,则按照相对相位关系,启动过零发送(不同相位考虑过零接收,非过零发送),尝试通信。若成功,则修改本级连接模式和连接损耗。若失败,则本级节点启动局部路径洪泛修复过程。具体流程如下:
[0166]I)首先启动本地修复,修复路径离目标节点的跳数不大于规定最修复最大跳数。若太大,则拒绝本地修复。由集中器发动远程修复。
[0167]2)本级节点自己产生修复路径消息,将下一级地址放入待修复地址内,然后选择低速或者过零洪泛到网络。
[0168]3)若修复路径消息被某路由节点接收到,则路由节点可以根据自己当前邻居表和路由表,重新选择上行路径。
[0169]4)目标节点接收到下行请求消息后,其响应消息需要暂时等待本网络内的下行洪泛消息静止,然后,响应消息按照上行路径上传。上行消息复制下行消息的修复路径信息域。等传递到待修复节点时,查看是否修复,若已经修复,则按照修复的路径上传,并且将修复的路径部分存入上行消息的修复路径信息域。上传到集中器,由集中器按照新的路径对原来此节点的路由表进行刷新。在此段路由后的路径上的相关节点的路由表都应按照此路径进行刷新。
[0170]5)若遇到一条路由路径上出现多个路径中断,则在上行消息传递过程中,遇到路径持续中断,则被中断的路径的发起点将选择备用路径向上转发。并将修复的路径地址和属性随消息带到集中器。由集中器更新相关路由表。
[0171]6)若本地修复失败,路由模块则需要启动路由寻找过程。
[0172]7)若仅有单个节点抄收失败。
[0173]7.1路由模块需要发送洪泛寻找路径消息帧,通过全网络寻找合适的途径。寻找路径消息帧的下行消息与一般消息相同。上行消息传递过程中,若在双向节点之间传递,则将自己的短地址放入上行路径消息域中。若寻找成功,则修复成功。若反复尝试都不成功,则放弃。修复失败。
[0174]7.2路由模块接收到不同的带扩展路径消息域的上行消息,为目标节点挑选最佳上行路径的下一跳节点(下行的最后一跳节点,考虑路径损耗最小的邻居节点)。由于仅有此节点未抄读成功,则其邻近节点都已抄收成功,目标节点的上行路径可以复制选择作为下一跳的邻居节点的上行路径。
[0175]7.3集中器在后续抄读中需要对邻近节点和目标节点的连接关系予以确认。
[0176]8)若有多个节点未抄读成功
[0177]8.1路由模块根据原节点路由的级数远近开始抄读失败节点。路由模块发送洪泛寻找路径消息,全网寻找合适路径,寻找路径的下行消息与一般消息相同,上行消息传递过程中,若是双向邻近节点,则将自己的短地址放入上行消息的路径扩展域中。
[0178]8.2路由模块接收到不同的带扩展路径消息域的上行消息,为目标节点挑选最佳上行路径的下一跳节点,且这个节点已被抄读成功,目标节点的上行路径可以复制选择作为下一跳的邻居节点的上行路径。
[0179]8.3集中器在后续抄读中需要对邻近节点和目标节点的连接关系予以确认。
[0180]在步骤S14中,消息发送路由步骤:在所述集中器发送抄读消息时,查询集中器存储的路由跳转表,并根据所述路由跳转表发送抄读消息。
[0181]在本实施方式中,在消息发送路由步骤中采用消息路由算法以使生成的路由表有效发送消息,以下将对消息发送路由步骤进行详细说明。
[0182]①、集中器发送抄读消息时,查询集中器存储中的路由跳转表(路由跳转表由多个以消息目标节点为标识的路由跳转项组成,每个路由跳转项由目标节点网络标识,下一跳节点在邻居表中的索引构成)。
[0183]②、如果与目标节点对应的路由跳转项存在,集中器使用路由跳转项中下一跳节点索引找到中继节点通信属性描述数据项,使用数据项中的当前最优通信模式为当前发送消息的通信模式,使用该中继节点网络标识作为消息MAC层目标地址,标记该消息为路由发送消息,然后发送消息到电力线上,然后,设置重发定时器并启动对电力线的监视。
[0184]③、当网络节点收到电力线上的消息后,如果发现其MAC层目标地址与自己的网络标识匹配,则认定自己是消息的中继节点或目标节点,从而将消息上交到自己的网络层做进一步路由处理;如果发现其MAC层目标地址与自己的网络标识不匹配,则在将消息交由自己的组网模块处理后再丢弃。
[0185]④、当节点网络层收到消息后,将其网络层目标地址与自己的节点标识进行匹配(此处匹配有可能使用唯一标识,也可能使用网络标识),如果匹配,则消息将上交到应用层由节点做接收处理;否则,如果不匹配,消息将由网路层作中继处理。
[0186]⑤、接收节点将查询自己存储中的路由跳转表,如果与目标节点对应的路由跳转项存在,接收节点使用路由跳转项中下一跳节点索引找到中继节点通信属性描述数据项,使用数据项中的当前最优通信模式为当前发送消息的通信模式,使用该中继节点网络标识作为消息MAC层目标地址,然后发送消息到电力线上,然后,设置重发定时器并启动对电力线的监视。
[0187]⑥、当消息发送节点发送消息后,如果在电力线上再接收到任何消息,将检查该消息是否是自己刚发送的消息的再次中继或刚发送的消息的响应消息,如果如此,表示自己的发送已被下一跳节点接收,不必执行重发;否则,如果节点在自己发送消息后在重发定时器时间耗尽之前,未再在电力线上接收到任何消息,表示消息发送到电力线上后未被其他节点成功接收,发送节点将使用更为可靠的通信模式启动重发。
[0188]⑦、如果节点在进行最多两次重发后,仍未监视到消息的任何再中继或响应,则丢弃该消息,当前集中器启动的通信会话失败,集中器将会对节点通信状况进行追踪,视情况启动网络维护。
[0189]本发明【具体实施方式】还提供一种嵌入分布式组网系统,应用于电力线载波抄表,所述嵌入分布式组网系统包括主站计算机以及多个台区,每个台区包括台区变压器、集中器10、电能表,其中,所述集中器10主要包括:
[0190]路由模块11,用于存储邻居节点表;
[0191]网络拓扑形成模块12,用于利用网络节点配置算法获取构建网络拓扑所需的信息,并通过网络拓扑生成算法生成网络拓扑;
[0192]初始路由生成模块13,用于当所述路由模块内的邻居节点表在一预设时间段内不再发生变化时,将开放所述路由模块内邻居节点的路由生成,并根据已经生成的网络拓扑以集中器为中心由近及远生成全网初始路由;
[0193]实时路由维护模块14,用于当完成全网初始路由生成之后,通过分析所接收到的消息的MAC层源地址、目的地址以及链路质量参数来进行实时路由维护;
[0194]消息发送路由模块15,用于在发送抄读消息时,查询集中器存储的路由跳转表,并根据路由跳转表中路由跳转项的指引发送抄读消息。
[0195]本发明提供的一种嵌入分布式组网系统,在集中器10的网络拓扑形成模块12中采用网络拓补信息生成算法以监控网络连接状态并形成网络拓补,在集中器10的初始路由生成模块13中采用路由生成算法以在系统安装后的最初路由生成,在集中器10的实时路由维护模块14中采用路由维护算法以实时维护路由的有效性,在集中器10的消息发送路由模块15中采用消息路由算法以使生成的路由表有效发送消息,通过这四种算法在四个模块中的应用,极大地提高了电表抄读的效率,从而满足现代电力的实时需求。
[0196]请参阅图2,所示为本发明一实施方式中集中器10的结构示意图。在本实施方式中,集中器10主要包括路由模块11、网络拓扑形成模块12、初始路由生成模块13、实时路由维护模块14以及消息发送路由模块15。
[0197]路由模块11,用于存储邻居节点表。
[0198]网络拓扑形成模块12,用于利用网络节点配置算法获取构建网络拓扑所需的消息,并通过网络拓扑生成算法生成网络拓扑。
[0199]在本实施方式中,所述网络拓扑形成模块12中的网络节点配置算法具体用于:
[0200]在所述集中器上电时,所述集中器的功能模块同步路由模块中的电表档案;
[0201]在所述集中器的路由模块生成抄读消息时,如果发现目标节点未进行初始配置,则会在所述抄读消息中附加目标节点配置信息域并发送;
[0202]当所述目标节点收到所述抄读消息后,检查自身是否已配置,如果未配置,则从所述抄读消息中提取所述目标节点配置信息域以完成所述集中器对自身的配置,并发送抄读响应消息;
[0203]当中继节点收到所述抄读响应消息时,检查自身是否已配置,如果未配置且所述抄读响应消息中已有未配置节点报告域,则将该域中的节点唯一标识替换为自身的唯一标识,如果未配置且所述抄读响应消息中没有未配置节点报告域,则在所述抄读响应消息中附加未配置节点报告域,并报告自身的唯一标识;
[0204]当所述集中器收到所述抄读响应消息后,所述集中器的路由模块会检查所述目标节点是否处在已配置状态,如果未配置则将所述目标节点配置状态置为已配置,如果所述抄读响应消息中有未配置节点报告域,则提取报告域中的唯一标识保存在优先抄读表中;
[0205]所述集中器根据存储的所述优先抄读表挑选下一节点进行抄读。
[0206]在本实施方式中,所述网络拓扑形成模块12中的的网络拓扑生成算法具体用于:
[0207]当所述集中器生成下行电表抄读消息时,在所述抄读消息中附加邻居信息域,所述邻居信息域包含自身邻居信息表的一个子段,用于向邻近节点通告自身收集的邻居信息;
[0208]在当前节点收到电力线上的消息后,提取消息中的源发送节点的MAC地址,并在自身的邻居表中通过所述MAC地址查询所述源发送节点是否已登记到邻居表中,如果未登记贝IJ在邻居表中生成新的邻近节点项,如果已登记则更新邻近节点项中有关子域;
[0209]在当前节点收到电力线上的消息后,查看收到消息中的邻居信息域,如果自身的标识出现在所述邻居信息域中,则表明自身已成为发送节点的邻居节点,从而将自身的邻居表中属于发送节点的邻近节点项的链路双向标志置为“I”,以表明自身与发送节点存在双向通信链接;
[0210]如果收到消息的当前节点是消息的中继节点且属于未配置节点,以及收到的消息中不存在长地址上报域的话,则在收到的消息中附加长地址上报域并将自身的唯一标识填入该域,如果消息在上行过程中已由前面的中继节点生成了长地址上报域的话,则以自身的唯一标识替换长地址上报域中的唯一标识;
[0211]如果收到消息的当前节点是消息的中继节点且属于已配置节点的话,则当前节点作为中继节点用自身的邻居表的一个子段替换邻居信息域中原有的内容,并向其他节点通告自身收集的邻居信息;
[0212]如果收到消息的当前节点是消息的目标节点且属于已配置节点的话,当前节点在发送抄表响应消息时,将在抄表响应消息中附加邻居信息域且包含自身的邻居信息表的一个子段,并向邻近节点通告自身收集的邻居信息。
[0213]初始路由生成模块13,用于当所述路由模块内的邻居节点表在一预设时间段内不再发生变化时,将开放所述路由模块内邻居节点的路由生成,并根据已经生成的网络拓扑由近及远生成全网初始路由。
[0214]在本实施方式中,所述初始路由生成模块13具体用于:
[0215]所述集中器检查网络拓补生成状态,如果在系统预置的时间内,邻居表都没有得到更新,则表明所述集中器可能已经获得自身周围所有邻近节点的信息;
[0216]所述集中器检查自身的邻居表,如果邻居表中已经存在与自身有双向连接的邻近节点,则设置路由生成开放标志,将路由生成开放级别设置为一级路由生成;
[0217]如果邻居表中没有双向连接的邻近节点,则不设置路由生成开放标志,重新设置路由生成定时器,并继续执行所述网络拓补生成算法;
[0218]在所述集中器生成下行电表抄读消息时,在消息中附加邻居信息域,该域中除了包含所述网络拓补生成算法中描述的邻居信息表子段外,如果开放路由生成,则在该信息域中填写路由开放标志以及路由开放级数;
[0219]在抄表消息由载波节点洪泛中继时,如果中继节点已生成自身与所述集中器之间的路由,则在更新中继消息的邻居信息域时,填写自身路由的路由级别与路由损耗;
[0220]在抄表消息由载波节点接收时,所有接收节点将检查邻居信息域中的路由生成开放信息,如果路由开放标志已置起,则接收节点将记录邻居信息域中的路由生成开放标志与路由生成开放级别;
[0221]在当载波节点响应抄表请求时,如果发现路由开放标志已设置,而自身未生成到所述集中器的路由时,则在自身的邻居信息表中寻找已生成到集中器路由的邻居节点,在这些节点中挑选那些路由级别不大于开放级别的节点,并根据自身到这些节点的链路质量以及这些节点到所述集中器路由的路由损耗挑选最优节点形成自身到所述集中器的路由,并在响应抄表信息中形成路由上报项;
[0222]在当中继节点中继上行消息时,发现消息中还可以附加新的信息域,如果发现路由开放标志已设置,而自身未生成到所述集中器的路由时,则在自身的邻居信息表中寻找已生成到所述集中器路由的邻居节点,在这些节点中挑选那些路由级别不大于开放级别的节点,根据自身到这些节点的链路质量以及这些节点到所述集中器路由的路由损耗挑选最优节点形成自身到所述集中器的路由,并在响应抄表信息中形成路由上报项;
[0223]当所述集中器收到抄表响应消息时,更新路由认可项,或者形成路由上报节点的路由认可项;
[0224]当所述集中器生成下行电表抄读消息时,检查路由认可队列,如果路由认可队列不为空,则在抄读消息中形成路由认可信息域;
[0225]在中继节点接收到任一个转发带有路由认可信息域的下行抄读消息时,检查所述带有路由认可信息域;
[0226]在目标节点接收到任一个带有路由认可信息域的下行抄读消息时,检查所述带有路由认可信息域;
[0227]如果一个具有路由上报条件的节点在上报路由后在预设时间内没有收到所述集中器的认可,则继续上报自身的路由;
[0228]在所述集中器开放一级路由上报后,将等待节点上报路由,并在每收到一个新路由时重新刷新自身的等待路由上报定时器,如果在预设时间内没有再收到新的上报路由,但在开放这一级路由后确实已收到过新路由,则所述集中器将路由开放级数加一,并重新向网络通告新的路由开放级别;
[0229]如果开放一级路由后没有收到一个新路由,或者路由开放级别已达15级,则将置起网络初始路由生成完成标志,并转入所述实时路由维护步骤。
[0230]实时路由维护模块14,用于当完成全网初始路由生成之后,通过分析所接收到的消息的MAC层源地址、目的地址以及链路质量参数来进行实时路由维护。
[0231]消息发送路由模块15,用于在发送抄读消息时,查询集中器存储的路由跳转表,并根据所述路由跳转表发送抄读消息。
[0232]本发明提供的一种嵌入分布式组网系统,在集中器10的网络拓扑形成模块12中采用网络拓补信息生成算法以监控网络连接状态并形成网络拓补,在集中器10的初始路由生成模块13中采用路由生成算法以在系统安装后的最初路由生成,在集中器10的实时路由维护模块14中采用路由维护算法以实时维护路由的有效性,在集中器10的消息发送路由模块15中采用消息路由算法以使生成的路由表有效发送消息,通过这四种算法在四个模块中的应用,极大地提高了电表抄读的效率,从而满足现代电力的实时需求。
[0233]值得注意的是,上述实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0234]另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如R0M/RAM、磁盘或光盘等。
[0235]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种嵌入分布式组网方法,应用于电力线载波抄表系统,所述电力线载波抄表系统包括主站计算机以及多个台区,每个台区包括台区变压器、集中器、电能表,其特征在于,所述方法包括: 网络拓扑形成步骤:所述集中器利用网络节点配置算法获取构建网络拓扑所需的信息,并通过网络拓扑生成算法生成网络拓扑; 初始路由生成步骤:当所述集中器中的路由模块内的邻居节点表在一预设时间段内不再发生变化时,所述集中器将开放其路由模块内邻居节点的路由生成,并根据已经生成的网络拓扑以集中器为中心由近及远生成全网初始路由; 实时路由维护步骤:当完成全网初始路由生成之后,所述集中器通过分析所接收到的消息的MAC层源地址、目的地址以及链路质量参数来进行实时路由维护; 消息发送路由步骤:在所述集中器发送抄读消息时,查询集中器存储的路由跳转表,并根据路由跳转表中路由跳转项的指引发送抄读消息。2.如权利要求1所述的嵌入分布式组网方法,其特征在于,所述网络拓扑形成步骤中的所述集中器利用网络节点配置算法获取构建网络拓扑所需的信息具体包括: 在所述集中器上电时,所述集中器的功能模块同步路由模块中的电表档案; 在所述集中器的路由模块生成抄读消息时,如果发现目标节点未进行初始配置,则会在所述抄读消息中附加目标节点配置信息域并发送; 当所述目标节点收到所述抄读消息后,检查自身是否已配置,如果未配置,则从所述抄读消息中提取所述目标节点配置信息域以完成所述集中器对自身的配置,并发送抄读响应消息; 当中继节点收到所述抄读响应消息时,检查自身是否已配置,如果未配置且所述抄读响应消息中已有未配置节点报告域,则将该域中的节点唯一标识替换为自身的唯一标识,如果未配置且所述抄读响应消息中没有未配置节点报告域,则在所述抄读响应消息中附加未配置节点报告域,并报告自身的唯一标识; 当所述集中器收到所述抄读响应消息后,所述集中器的路由模块会检查所述目标节点是否处在已配置状态,如果是未配置状态则将所述目标节点配置状态更新为已配置,如果所述抄读响应消息中有未配置节点报告域,则提取报告域中的唯一标识保存在优先抄读表中; 所述集中器根据存储的所述优先抄读表挑选下一节点进行抄读。3.如权利要求1所述的嵌入分布式组网方法,其特征在于,所述网络拓扑形成步骤中的通过网络拓扑生成算法生成网络拓扑具体包括: 当所述集中器生成下行电表抄读消息时,在所述抄读消息中附加邻居信息域,所述邻居信息域包含自身邻居信息表的一个子段,用于向邻近节点通告自身收集的邻居信息;在当前节点收到电力线上的消息后,提取消息中的源发送节点的MAC地址,并在自身的邻居表中通过所述MAC地址查询所述源发送节点是否已登记到邻居表中,如果未登记则在邻居表中生成新的邻近节点项,如果已登记则更新邻近节点项中有关子域; 在当前节点收到电力线上的消息后,查看收到消息中的邻居信息域,如果自身的标识出现在所述邻居信息域中,则表明自身已成为发送节点的邻居节点,从而将自身的邻居表中属于发送节点的邻近节点项的链路双向标志置为“I”,以表明自身与发送节点存在双向通信链接; 如果收到消息的当前节点是消息的中继节点且属于未配置节点,以及收到的消息中不存在长地址上报域的话,则在收到的消息中附加长地址上报域并将自身的唯一标识填入该域,如果消息在上行过程中已由前面的中继节点生成了长地址上报域的话,则以自身的唯一标识替换长地址上报域中的唯一标识; 如果收到消息的当前节点是消息的中继节点且属于已配置节点的话,则当前节点作为中继节点用自身的邻居表的一个子段替换邻居信息域中原有的内容,并向其他节点通告自身收集的邻居信息; 如果收到消息的当前节点是消息的目标节点且属于已配置节点的话,当前节点在发送抄表响应消息时,将在抄表响应消息中附加邻居信息域且包含自身的邻居信息表的一个子段,并向邻近节点通告自身收集的邻居信息。4.如权利要求1所述的嵌入分布式组网方法,其特征在于,所述初始路由生成步骤具体包括: 所述集中器检查网络拓补生成状态,如果在系统预置的时间内,邻居表都没有得到更新,则表明所述集中器可能已经获得自身周围所有邻近节点的信息; 所述集中器检查自身的邻居表,如果邻居表中已经存在与自身有双向连接的邻近节点,则设置路由生成开放标志,将路由生成开放级别设置为一级路由生成; 如果邻居表中没有双向连接的邻近节点,则不设置路由生成开放标志,重新设置路由生成定时器,并继续执行所述网络拓补生成算法; 在所述集中器生成下行电表抄读消息时,在消息中附加邻居信息域,该域中除了包含所述网络拓补生成算法中描述的邻居信息表子段外,如果开放路由生成,则在该信息域中填写路由开放标志以及路由开放级数; 在抄表消息由载波节点洪泛中继时,如果中继节点已生成自身与所述集中器之间的路由,则在更新中继消息的邻居信息域时,填写自身路由的路由级别与路由损耗; 在抄表消息由载波节点接收时,所有接收节点将检查邻居信息域中的路由生成开放信息,如果路由开放标志已置起,则接收节点将记录邻居信息域中的路由生成开放标志与路由生成开放级别; 在当载波节点响应抄表请求时,如果发现路由开放标志已设置,而自身未生成到所述集中器的路由时,则在自身的邻居信息表中寻找已生成到集中器路由的邻居节点,在这些节点中挑选那些路由级别不大于开放级别的节点,并根据自身到这些节点的链路质量以及这些节点到所述集中器路由的路由损耗挑选最优节点形成自身到所述集中器的路由,并在响应抄表信息中形成路由上报项; 在当中继节点中继上行消息时,发现消息中还可以附加新的信息域,如果发现路由开放标志已设置,而自身未生成到所述集中器的路由时,则在自身的邻居信息表中寻找已生成到所述集中器路由的邻居节点,在这些节点中挑选那些路由级别不大于开放级别的节点,根据自身到这些节点的链路质量以及这些节点到所述集中器路由的路由损耗挑选最优节点形成自身到所述集中器的路由,并在响应抄表信息中形成路由上报项; 当所述集中器收到抄表响应消息时,更新路由认可项,或者形成路由上报节点的路由认可项; 当所述集中器生成下行电表抄读消息时,检查路由认可队列,如果路由认可队列不为空,则在抄读消息中形成路由认可信息域; 在中继节点接收到任一个转发带有路由认可信息域的下行抄读消息时,检查所述带有路由认可信息域; 在目标节点接收到任一个带有路由认可信息域的下行抄读消息时,检查所述带有路由认可信息域; 如果一个具有路由上报条件的节点在上报路由后在预设时间内没有收到所述集中器的认可,则继续上报自身的路由; 在所述集中器开放一级路由上报后,将等待节点上报路由,并在每收到一个新路由时重新刷新自身的等待路由上报定时器,如果在预设时间内没有再收到新的上报路由,但在开放这一级路由后确实已收到过新路由,则所述集中器将路由开放级数加一,并重新向网络通告新的路由开放级别; 如果开放一级路由后没有收到一个新路由,或者路由开放级别已达15级,则将置起网络初始路由生成完成标志,并转入所述实时路由维护步骤。5.—种嵌入分布式组网系统,应用于电力线载波抄表,所述嵌入分布式组网系统包括主站计算机以及多个台区,每个台区包括台区变压器、集中器、电能表,其特征在于,所述集中器包括: 路由模块,用于存储邻居节点表; 网络拓扑形成模块,用于利用网络节点配置算法获取构建网络拓扑所需的信息,并通过网络拓扑生成算法生成网络拓扑; 初始路由生成模块,用于当所述路由模块内的邻居节点表在一预设时间段内不再发生变化时,将开放所述路由模块内邻居节点的路由生成,并根据已经生成的网络拓扑以集中器为中心由近及远生成全网初始路由; 实时路由维护模块,用于当完成全网初始路由生成之后,通过分析所接收到的消息的MAC层源地址、目的地址以及链路质量参数来进行实时路由维护; 消息发送路由模块,用于在发送抄读消息时,查询集中器存储的路由跳转表,并根据路由跳转表中路由跳转项的指引发送抄读消息。6.如权利要求5所述的嵌入分布式组网系统,其特征在于,所述网络拓扑形成模块中的网络节点配置算法具体用于: 在所述集中器上电时,所述集中器的功能模块同步路由模块中的电表档案; 在所述集中器的路由模块生成抄读消息时,如果发现目标节点未进行初始配置,则会在所述抄读消息中附加目标节点配置信息域并发送; 当所述目标节点收到所述抄读消息后,检查自身是否已配置,如果未配置,则从所述抄读消息中提取所述目标节点配置信息域以完成所述集中器对自身的配置,并发送抄读响应消息; 当中继节点收到所述抄读响应消息时,检查自身是否已配置,如果未配置且所述抄读响应消息中已有未配置节点报告域,则将该域中的节点唯一标识替换为自身的唯一标识,如果未配置且所述抄读响应消息中没有未配置节点报告域,则在所述抄读响应消息中附加未配置节点报告域,并报告自身的唯一标识; 当所述集中器收到所述抄读响应消息后,所述集中器的路由模块会检查所述目标节点是否处在已配置状态,如果是未配置状态则将所述目标节点配置状态置为已配置,如果所述抄读响应消息中有未配置节点报告域,则提取报告域中的唯一标识保存在优先抄读表中; 所述集中器根据存储的所述优先抄读表挑选下一节点进行抄读。7.如权利要求5所述的嵌入分布式组网系统,其特征在于,所述网络拓扑形成模块中的网络拓扑生成算法具体用于: 当所述集中器生成下行电表抄读消息时,在所述抄读消息中附加邻居信息域,所述邻居信息域包含自身邻居信息表的一个子段,用于向邻近节点通告自身收集的邻居信息;在当前节点收到电力线上的消息后,提取消息中的源发送节点的MAC地址,并在自身的邻居表中通过所述MAC地址查询所述源发送节点是否已登记到邻居表中,如果未登记则在邻居表中生成新的邻近节点项,如果已登记则更新邻近节点项中有关子域; 在当前节点收到电力线上的消息后,查看收到消息中的邻居信息域,如果自身的标识出现在所述邻居信息域中,则表明自身已成为发送节点的邻居节点,从而将自身的邻居表中属于发送节点的邻近节点项的链路双向标志置为“I”,以表明自身与发送节点存在双向通信链接; 如果收到消息的当前节点是消息的中继节点且属于未配置节点,以及收到的消息中不存在长地址上报域的话,则在收到的消息中附加长地址上报域并将自身的唯一标识填入该域,如果消息在上行过程中已由前面的中继节点生成了长地址上报域的话,则以自身的唯一标识替换长地址上报域中的唯一标识; 如果收到消息的当前节点是消息的中继节点且属于已配置节点的话,则当前节点作为中继节点用自身的邻居表的一个子段替换邻居信息域中原有的内容,并向其他节点通告自身收集的邻居信息; 如果收到消息的当前节点是消息的目标节点且属于已配置节点的话,当前节点在发送抄表响应消息时,将在抄表响应消息中附加邻居信息域且包含自身的邻居信息表的一个子段,并向邻近节点通告自身收集的邻居信息。8.如权利要求5所述的嵌入分布式组网系统,其特征在于,所述初始路由生成模块具体用于: 所述集中器检查网络拓补生成状态,如果在系统预置的时间内,邻居表都没有得到更新,则表明所述集中器可能已经获得自身周围所有邻近节点的信息; 所述集中器检查自身的邻居表,如果邻居表中已经存在与自身有双向连接的邻近节点,则设置路由生成开放标志,将路由生成开放级别设置为一级路由生成; 如果邻居表中没有双向连接的邻近节点,则不设置路由生成开放标志,重新设置路由生成定时器,并继续执行所述网络拓补生成算法; 在所述集中器生成下行电表抄读消息时,在消息中附加邻居信息域,该域中除了包含所述网络拓补生成算法中描述的邻居信息表子段外,如果开放路由生成,则在该信息域中填写路由开放标志以及路由开放级数; 在抄表消息由载波节点洪泛中继时,如果中继节点已生成自身与所述集中器之间的路由,则在更新中继消息的邻居信息域时,填写自身路由的路由级别与路由损耗; 在抄表消息由载波节点接收时,所有接收节点将检查邻居信息域中的路由生成开放信息,如果路由开放标志已置起,则接收节点将记录邻居信息域中的路由生成开放标志与路由生成开放级别; 在当载波节点响应抄表请求时,如果发现路由开放标志已设置,而自身未生成到所述集中器的路由时,则在自身的邻居信息表中寻找已生成到集中器路由的邻居节点,在这些节点中挑选那些路由级别不大于开放级别的节点,并根据自身到这些节点的链路质量以及这些节点到所述集中器路由的路由损耗挑选最优节点形成自身到所述集中器的路由,并在响应抄表信息中形成路由上报项; 当中继节点中继上行消息时,发现消息中还可以附加新的信息域,如果发现路由开放标志已设置,而自身未生成到所述集中器的路由时,则在自身的邻居信息表中寻找已生成到所述集中器路由的邻居节点,在这些节点中挑选那些路由级别不大于开放级别的节点,根据自身到这些节点的链路质量以及这些节点到所述集中器路由的路由损耗挑选最优节点形成自身到所述集中器的路由,并在响应抄表信息中形成路由上报项; 当所述集中器收到抄表响应消息时,更新路由认可项,或者形成路由上报节点的路由认可项; 当所述集中器生成下行电表抄读消息时,检查路由认可队列,如果路由认可队列不为空,则在抄读消息中形成路由认可信息域; 在中继节点接收到任一个转发带有路由认可信息域的下行抄读消息时,检查所述带有路由认可信息域; 在目标节点接收到任一个带有路由认可信息域的下行抄读消息时,检查所携带有路由认可信息域; 如果一个具有路由上报条件的节点在上报路由后在预设时间内没有收到所述集中器的认可,则继续上报自身的路由; 在所述集中器开放一级路由上报后,将等待节点上报路由,并在每收到一个新路由时重新刷新自身的等待路由上报定时器,如果在预设时间内没有再收到新的上报路由,但在开放这一级路由后确实已收到过新路由,则所述集中器将路由开放级数加一,并重新向网络通告新的路由开放级别; 如果开放一级路由后没有收到一个新路由,或者路由开放级别已达15级,则将置起网络初始路由生成完成标志,并转入所述实时路由维护步骤。
【文档编号】H04L12/24GK105827456SQ201610272213
【公开日】2016年8月3日
【申请日】2016年4月28日
【发明人】王旭, 刘宏军, 陈支龙, 刘玲, 谭志强, 刘文波, 肖洪东, 罗欢, 杨成, 黄烈琴
【申请人】瑞斯康微电子(深圳)有限公司