一种解决表号冲突的缩位搜表方法与流程

文档序号:30073917发布日期:2022-05-18 02:46阅读:530来源:国知局
一种解决表号冲突的缩位搜表方法与流程

1.本发明涉及电表技术领域,尤其涉及一种解决表号冲突的缩位搜表方法。


背景技术:

2.在海外电力采集领域中,为节约成本,大多采用一个电能表拖带一定数量的电能表,组成一个子母表级联形式的数据采集网络。在该数据采集网络中,主电能表通过485通信方式完成对网络内电能表数据的采集和自动维护网络内电表名单的功能。
3.为了了解现场电表的实际变化情况,主电表采集终端主要采用485缩位搜表方案来对现场各电表数据进行搜表,即主电表从表位地址的最低位开始,从0-9依次开始尝试,向表地址的各位逐个发送数据采集指令,遍历所有表地址,并根据子电表返回的报文信息,掌握现场各电表的实际变化数据。
4.但目前通用的485缩位搜表方案存在如下技术问题,由于接入级联网络内的子电表表号是随机分配的,在表位地址的相同位上可能存在号码相同的情况,这样,当针对表位地址的某一位按照从0—9依次轮询后,可能产生多个“冲突”号的情况,即主电表对所有子电表的同一表位地址发送寻址请求时,可能存在多个表位地址与当前寻址请求数值相等的子电表返回报文信息,导致返回的报文信息不合法,即网络中存在多个电表符合当前的寻址要求,此即为“冲突”。
5.在此种情形下,目前的搜表方法会使主电表采集终端在下一轮搜索前,直接将遍历对象左移一位表号位而进行新表位号的搜索,以试图通过新表位号地址的不同来区分当前产生“冲突”的具体表号。
6.在此操作下,若后续每一次轮询都至少有两次新的冲突号,目前的搜表方案就不能完全体现遍历尝试将所有的“冲突”号进行甄别的能力,搜表可能因多次出现同表位号码相同,导致覆盖遗漏的情况。


技术实现要素:

7.鉴于上述问题,本发明的目的在于提供一种搜表全面,搜表精准度高且通用性强的可有效解决表号冲突的缩位搜表方法。
8.为了实现上述目的,本发明的技术方案为:一种解决表号冲突的缩位搜表方法,其特征在于:所述方法对应的电表表号地址具有m位,所述方法包括,
9.s1、对表号地址的最低位发送寻址请求k,判断是否收到返回的报文信息,若是,执行s2,若否,执行s3,其中,k∈[0,n],n≤9;
[0010]
s2、判断返回的报文信息是否合法,合法时,接收表号地址为当前第i位时取当前k值所对应的子电表信息,并执行s4;不合法时,则在k完成所属范围的一轮周期搜索后,将表号地址左移一位,再次进行寻址请求k的轮询搜索,其中,i∈[0,m-1]且i=0时表示表号地址的最低位;
[0011]
s3、将k加1,并进行下一轮寻址请求k的轮询搜索
[0012]
s4、判断当前k是否≥n,若是,则搜索结束,若否,则k加1后,再次执行s1。
[0013]
进一步的,所述s3具体包括,
[0014]
s31、判断当前k是否≥n,若是,返回无外接子表或子表的表号定义不在允许范围内并停止搜索,若否,执行k加1的继续轮询搜索操作。
[0015]
进一步的,所述s31中的执行k加1的继续轮询搜索操作,具体包括,
[0016]
s32、k加1,并再次执行s1,直至k>n。
[0017]
进一步的,所述s2中的在k完成所属范围的一轮周期搜索后,将表号地址左移一位,再次进行寻址请求k的轮询搜索,具体包括,
[0018]
s21、标记表号地址为当前第i位且取值为当前k值时的数组元素a[i][k],s加1,其中,s表示对表号地址第i位进行寻址搜索时,在寻址请求k的一个周期内产生的表号冲突的次数,s初始取值为0;
[0019]
s22、判断k是否≥n,若是,执行s23,若否,k加1并继续执行搜索操作;
[0020]
s23、表号地址左移一位再次进行寻址请求操作。
[0021]
进一步的,所述s22中的k加1并继续执行搜索操作,具体包括,k加1,并再次执行s1,直至k>n时跳转执行s23。
[0022]
进一步的,所述s23具体包括,
[0023]
s231、k清零,i加1,对表号地址的第i位发送寻址请求k,此时,表号地址的第(i-1)位取值为k’,k’的数值取自由表号地址未左移前发生表号冲突时的k的取值所形成的集合;
[0024]
s232、判断返回的报文信息是否合法,若合法,则接收表号地址的第i位取值为当前k值且表号地址的第(i-1)位取值为当前k’时的子电表信息,若不合法,则在k’完成一个周期轮询后,表号地址继续左移一位进行寻址请求操作。
[0025]
进一步的,所述s232中的在k’完成一个周期轮询后,表号地址继续左移一位进行寻址请求操作,具体包括,
[0026]
s2321、标记表号地址第i位取值为当前k值且表号地址第(i-1)位取值为当前k’值时的数组元素a[i][k]
k’;
[0027]
s2322、判断k是否≥n,当判断为否时,k加1,执行s232,当判断为是时,q加1,k’取所述集合中的剩余数值中的一个,k清零,然后再次执行寻址请求k的一个周期轮询搜索操作,其中,q初始值为0;
[0028]
s2323、判断q是否≥s,若是,则执行s23,若否,则继续执行s2322,直至对表号地址第i位取值为(m-1)时完成k∈[0,n]的一个周期寻址操作。
[0029]
进一步的,所述s的最大取值为10。
[0030]
进一步的,所述n取值为9。
[0031]
进一步的,所述m取值为4。
[0032]
与现有技术相比,本发明的优点在于:
[0033]
对表号地址的每一位均在完成所有的冲突记录后,才进行表号地址的左移,进行后续表号地址的区分判断,相较于以往的缩位搜表方法而言,避免了一个表位上一个周期内存在多个冲突,但却被遗漏检测的问题,提高了搜表的全面性和精准性。。
附图说明
[0034]
图1为本技术缩位搜表的流程图。
[0035]
图2为本技术缩位搜表中的冲突解决流程图。
具体实施方式
[0036]
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0037]
如图1-2所示的解决表号冲突的缩位搜表方法,该方法对应的电表表号地址具有m位,此方法包括,
[0038]
s1、对表号地址的最低位发送寻址请求k,判断是否收到返回的报文信息,若是,执行s2,若否,执行s3,其中,k∈[0,n],n≤9;
[0039]
s2、判断返回的报文信息是否合法,合法时,接收表号地址为当前第i位时取当前k值所对应的子电表信息,并执行s4;不合法时,则在k完成所属范围的一轮周期搜索后,将表号地址左移一位,再次进行寻址请求k的轮询搜索,其中,i∈[0,m-1]且i=0时表示表号地址的最低位;
[0040]
s3、将k加1,并进行下一轮寻址请求k的轮询搜索;
[0041]
s4、判断当前k是否≥n,若是,则搜索结束,若否,则k加1后,再次执行s1。
[0042]
其中,该s3具体包括,
[0043]
s31、判断当前k是否≥n,若是,返回无外接子表或子表的表号定义不在允许范围内并停止搜索,若否,则k加1,并再次执行s1,直至k>n。
[0044]
其中,s2中的在k完成所属范围的一轮周期搜索后,将表号地址左移一位,再次进行寻址请求k的轮询搜索,具体包括,
[0045]
s21、标记表号地址为当前第i位且取值为当前k值时的数组元素a[i][k],s加1,其中,s表示对表号地址第i位进行寻址搜索时,在寻址请求k的一个周期内产生的表号冲突的次数,s初始取值为0;
[0046]
s22、判断k是否≥n,若是,执行s23,若否,k加1并再次执行s1,直至k>n时跳转执行s23;
[0047]
s23、表号地址左移一位再次进行寻址请求操作。
[0048]
其中,所述s23具体包括,
[0049]
s231、k清零,i加1,对表号地址的第i位发送寻址请求k,此时,表号地址的第(i-1)位取值为k’,k’的数值取自由表号地址未左移前发生表号冲突时的k的取值所形成的集合;
[0050]
s232、判断返回的报文信息是否合法,若合法,则接收表号地址的第i位取值为当前k值且表号地址的第(i-1)位取值为当前k’时的子电表信息,若不合法,则在k’完成一个周期轮询后,表号地址继续左移一位进行寻址请求操作。
[0051]
其中,所述s232中的在k’完成一个周期轮询后,表号地址继续左移一位进行寻址请求操作,具体包括,
[0052]
s2321、标记表号地址第i位取值为当前k值且表号地址第(i-1)位取值为当前k’值时的数组元素a[i][k]
k’;
[0053]
s2322、判断k是否≥n,当判断为否时,k加1,执行s232,当判断为是时,q加1,k’取所述集合中的剩余数值中的一个,k清零,然后再次执行寻址请求k的一个周期轮询搜索操作,其中,q初始值为0;
[0054]
s2323、判断q是否≥s,若是,则执行s23,若否,则继续执行s2322,直至对表号地址第i位取值为(m-1)时完成k∈[0,n]的一个周期寻址操作。
[0055]
在本技术中,n取值为9,m取值为4,即表号地址具有4位,这样,每次0-9轮询中最多的冲突次数为10,即两两冲突时s最大取值为10。
[0056]
现在举例对本技术的方案进行说明。
[0057]
电表表号地址具有4位,搜表场景如下:
[0058]
场景1:表地址从aaa0开始匹配,如果网络内所有子电能表没有返回任何报文信息给采集终端主电表,此时说明网络中不存在最低位以0结尾的电能表,此时对最低位地址加1,然后重新尝试,直至完成当前表位aaa0—aaa9轮询。如果轮询结束还未收到合法的报文信息,则说明没有外接子表或子表的表号定义不在允许范畴,可结束搜表流程。
[0059]
场景2:假设某次尝试有表地址为aaa2的子电能表返回合法的报文信息给主电表采集终端,此时说明网络内存在最低位以2结尾的电能表,则该表地址作为有效地址记录进档案名单,然后主电表采集终端再将最低位地址加1后的地址aaa3发送出去,尝试搜索其他的有效表地址。
[0060]
场景3:同场景2假设,有表地址为aaa2的子电能表返回报文信息给主电表采集终端,但是返回的报文信息不合法,此时说明网络内可能存在多个电能表符合当前的寻址要求,即存在表号“冲突”,主电表采集终端会对当前表地址的最低位以及与当前k所形成的数组元素a[0][2]进行标记,并将冲突次数s加1,然后再将最低位地址加1后的地址aaa3发送出去,尝试搜索其他的有效表地址,若中途依旧存在冲突,则像先前操作一样,进行a[i][k]的数组元素标记以及冲突次数s加1操作,直至完成从aaa0-aaa9的轮询搜索。
[0061]
若对最低位进行一个周期搜索后,存在两次冲突,比如第一次冲突是k=2,第二次冲突是k=4,则表号地址左移一位后,令最低位的寻址请求采用k’表示,则k’取值为{2,4}中的一个。
[0062]
在进行次低位的缩位搜索时,固定k’=2,即在aa02-aa92中进行轮询搜索,尝试能否在其他表号位中将其区别出来,然后固定k’=4,再次在aa04-aa94中进行轮询搜索。
[0063]
若在固定k’=2时的轮询中依旧无法将表号区分出来,比如当k取值为3时返回了信息,但不合法,则标记a[1][3]2,同时q加1,q初始值为0,在对k’=2和k’=4进行固定并分别进行k∈[0,9]的一个周期轮询后,可知q=s,此时继续左移一位,然后固定k”=3和k’=2,在a032-a932中进行轮询,依此操作直至将i=3也即表号的最高位进行0-9的遍历轮询后得出结论。
[0064]
如此,通过本方法可有效放置同一表地址位上存在多个冲突时,被遗漏的问题,大大提高了搜索全面性和搜索的准确性,通用性强。
[0065]
尽管已经示出和描述了本发明的实施例,本领域技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变形,本发明的范围由权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1