当前位置:首页 > 通信技术 > 通信技术
[导读]针对目前电力公司按照面向人工抄表的习惯组织划分用户资料,致使理清配电台区与用电户的关系需要耗费很大的精力,现场排查困难等问题,提出了集中器自动获取表号的线性时间算法。该算法基于报文冲突和快速二分搜索技术,为抄表系统实现即插即用奠定了基础。

基于电力线通信(PLC)的自动抄表(AMR)应用在我国已有十多年历史。近几年来,技术的发展重点从点对点通信能力转向了网络系统能力,从而使自动抄表产品达到了实用的程度。目前,自动抄表技术正处于从小批量应用转向大面积推广的阶段。在这一阶段遇到了一些阻力。例如互联互通、模块互换等问题已经引起了业界的充分注意,并在国网公司的协调下制定了初步的可行解决方案和计划。但是,还有一些现实的问题未被充分注意和讨论,而这些问题有可能成为抄表系统大批量应用的瓶颈。本文着重讨论配电台区与电能表的管辖关系问题,它涉及到系统初始的施工量和日常的维护量。
1 典型的PLCAMR体系
    典型的PLCAMR体系由三级系统构成:主站、集中器和电能表终端。主站负责管理全局的集中器与电能表信息,可通过光纤、GPRS、公话网或其他方式与集中器通信;集中器一般每个配电台区安装一个,管理所在台区的全部电能表,其日常工作是通过电力线通信采集各电能表数据;电能表负责计量用电户的各类用电量。
    当前的集中器虽然不同程度地具备了自学习路由知识和自组网络的能力,但还不能基于纯零知识开始工作。只有在了解了要管辖的电能表编号及其计量项目后才能工作,这就要求电力营销部门理清配电台区的用电户档案,尤其是电能表编号,通过主站将这些资料下发到台区集中器,才能启动自动抄表。同样,在抄表系统运行过程中,当台区内发生更换电能表、新增用电户或者台区之间发生线路切换等业务时,必须及时正确地维护集中器中的用户资料。由于电力公司通常是按照面向人工抄表的习惯划分组织用户资料(例如按街道顺序组织),理清配电台区与用电户的关系往往需要耗费很大的人力。所以经常因为台区集中器装入了错误的表号而导致费时费力的现场排查工作,尤其对于用电历史长的老城区,理清电能表与台区的关系极其困难,成为普及自动抄表技术的关键瓶颈。
    解决上述问题的本质在于系统能够从零知识开始工作。所谓零知识是指初始时主站只知道有哪些配电台区和集中器,但是并不清楚哪些电能表属于哪个台区的集中器;集中器仅知道自己的编号(ID),但不知道有哪些,有多少电能表隶属自己;电能表仅知道自己的编号(还有自己的计量项目),但不知管辖自己的集中器是谁。
    在上述条件下,要求集中器能够自动获取所在台区已经安装的全部电能表表号(及其可抄读数据项)。在对等网络中这一要求较容易满足,因为对等网络的任意节点都可以主动地启动通信业务,只要配以载波冲突检测和随机回避等待机制即可完成主动注册任务。但目前国家电网关于自动抄表的通信协议都是主从结构的,电能表作为通信节点只有被动应答的能力,不能主动发起通信任务[1-4]。为了适应主从体系结构,本文设计了专门的电能表捕获算法。该算法的优点在于不需要额外的空间资源,线性时间,倘若台区内有n个电能表,算法可在O(n)次报文跳转时间内完成搜索任务。
2 表号捕获算法
    假设电能表编号的区间为[a,b](实际应用中a=0,b=1012,或者说是6 B的BCD码)。表号捕获算法的核心思想比较简单,有2点:
    (1)对于给定的表号区间I=[a,b],利用报文冲突判断出3种情况:在区间I中恰有1只电能表;在区间I中无电能表;在区间I中存在多只电能表。
    (2)利用二分搜索技术快速缩减查找空间。
    以下分4个子节描述基于上述思想的表号捕获算法。为了简明本文略去实现细节。在以后的叙述中,集中器和电能表统称为节点。
2.1 判定给定区间的邻居分布情况
    首先定义一种查询报文Q={IDsource,a,b}。其中IDsource为报文源节点(发出者)的编号,IDmin≤a≤b≤IDmax。报文Q向编号在区间[a,b]内的节点发出查询请求,凡是编号在此区间的节点(即编号IDme满足a≤IDme≤b的节点)收到该报文后立即回应一个报文R={IDme,r},报出自己的编号IDme和自己的属性r。
    定义了以上2种报文,节点IDsource判定给定区间[a,b]的邻居情况的方法是依靠区别冲突信号与背景噪音的能力。这种能力是指当有多个节点同时发送报文时,接收节点虽然由于报文冲突不能正确地收到任何一个报文,但不会和无报文(线路上只有背景噪音)混为一谈,接收者能够根据冲突信号与背景噪音的特征差异判断出有多个报文同时到达并造成了冲突。正如当多人同时讲话时,可能听不清楚任何一个人说的内容,但能够断定有多人在讲话。如果PLC的物理层能够将冲突信号与背景噪音区分出来,则一个节点IDsource就可以发送报文Q={IDsource,a,b},然后利用载波侦听判定其周围节点的编号。在给定编号区间[a,b]内的3种分布情况为:
    (1)正确完整地侦听到一个报文R={IDme,r}:说明存在编号为IDme的节点,且是唯一的一个编号在a和b之间的节点。
    (2)未能正确地侦听到任何一个报文,并且线路只有背景噪音:说明没有节点其编号在a和b之间;
    (3)未能正确地侦听到任何一个报文,但是存在冲突信号:说明存在多个节点,其编号在a和b之间。
    然而,目前的PLC技术还不能提供区分冲突信号与背景噪音的能力,从而分辨不清情况(2)、(3)。目前的低成本技术仅能做到接收到报文或者接收不到报文。在未收到报文时,区分不出是情况(2)还是情况(3)。对于低成本的载波芯片,实现这一功能目前还是一项极具挑战性的任务。在此,本文给出一个方法可绕过这一难题。该方法利用报文冲突实现这一功能,在收不到报文时,利用报文冲突进一步区分出是的确没有报文,还是由于多个节点同时发送报文造成了冲突。采用该方法需要付出额外的代价是:多一次报文应答过程;源节点需要事先知道一个确实存在的节点IDknown;需要定义一种新型的报文S={IDsource,IDknown,a,b}。
    S型报文比Q型报文多了一个已知节点的编号IDknown,该报文的功能是令编号为IDknown的节点或编号处于a、b之间的节点收到该S报文后立即回应R型报文,报出自己的编号和属性。区分上述3种情况的算法如下:
算法1 WhoIn(a,b):
算法说明:该算法的输入是两个非负整数 a、b,使得[a,b]形成节点ID区间; 设运行该算法的节点的ID为IDsource,节点IDsource已知其一个邻居节点IDknown,算法要求IDknown不属于区间[a,b];该算法判定节点IDsource有一个、还是没有、还是有多个邻居其ID属于区间[a,b];对应这三种情况,算法分别报告唯一邻居的ID、或者ZERO、或者MANY。
     send out a packet Q={IDsource,a,b}
    wait for a packet R
    if a packet R={IDme,r} arrived
        then return IDme    //*IDme is the unique neighbor
in[a,b]*/
        else if a=b
            then return ZERO
        else send out a packet S={IDsource,IDknown,a,b}
            wait for a packet R
            if a packet R={IDme,r} arrived
                then return ZERO  //*Dme must be IDknown
and whose packet has not been
                          collided*//
                else if no packet received
                    then return MANY //*IDme must have been interfered with some neighbors
                    in[a,b]*//
        end if
    end if
    显然,该算法最坏情况下也能在4次报文跳转的时间内作出正确判断。
2.2 搜索编号最小的邻居节点
    使用普通的二分搜索技术,节点IDsource在表号区间[a,b]上重复地调用算法WhoIn,可以快速地搜索出编号最小的邻居节点(若存在)。算法可递归描述如下:
算法2 MinID(a,b):
算法说明:该算法的输入及要求同算法WhoIn(a,b);如果区间[a,b]有邻居节点,算法返回其中最小的ID,否则返回ZERO。
    let result=WhoIn(a,b)
    if result is a valid ID or result=ZERO
        then return result
    let result=MinID(a,[(a+b)/2])
    if result is a valid ID
        then return result
        else return MinID([(a+b)/2],b)
    该算法log(b-a)次调用算法WhoIn,其总的时间复杂度不大于4log(b-a)次报文跳。
2.3 搜索全部邻居节点编号
    有了MinID算法,节点IDsource通过在表号区间[a,b]重复地搜索最小的未知表号,直至获得ZERO值。算法如下:
算法3  IDsIn(a,b):
result=MinID(a,b)
while result≠ZERO do
    report result
    result=MinID(result+1,b)
end while
    该算法最多每4log(b-a)跳时间搜索到一个节点。若节点IDsource在区间[a,b]上有n个邻居节点,节点IDsource在4nlog(b-a)跳时间内可完成捕获这n只电能表的任务。
2.4 集中器捕获全部电能表节点
    假设一个台区内存在n个电能表节点,由集中器节点直接运行算法IDsIn(0,248),可在 4nlog(248-0)≤192n跳时间内搜索到全部一跳(直抄)电能表节点。然后由集中器通知一跳表,二跳表,……。运行同一算法,并将发现的节点编号上报集中器,于是集中器可以继续搜索到二跳表,三跳表,……。全部过程进行完最多用192n2跳时间。
    为了简单易读,上述的2.1~2.4节中只是在思路层叙述算法设计,忽略了很多重要的实现细节。
    时间界192n2在2.4节中估计得很粗略。将一些精细的实现细节纳入考虑后,该时间界可下降。例如在任何节点执行该算法时,如果其他节点记录侦听到的节点,则时间可降至192n跳。
    在青岛东软公司的一个实验台区运行本文所述算法,捕获全部的620只电能表需要1.5 h。算法实现细节上可以进一步优化,使捕获效率更高。
参考文献
[1] Q/GDW 376.1-2009电力用户用电信息采集系统通信协议,第一部分:主站与采集终端通信协议.
[2] Q/GDW 376.2-2009电力用户用电信息采集系统通信协议,第二部分:集中器本地通信模块接口协议.
[3] DL/T645-2007,多功能电能表通信协议.
[4] DL/T645-1997,多功能电能表通信规约.
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭