发明内容
本发明的目的在于提出一种低压电力载波点对点数据传输方法,其能解决实时上报的问题。
为了达到上述目的,本发明所采用的技术方案如下:
一种低压电力载波点对点数据传输方法,其包括以下步骤:
A、节点A在发送数据帧前,监测与其连接的电力线载波通信线路的状态,当所述与其连接的电力线载波通信线路持续空闲时间N后,向所述与其连接的电力线载波通信线路发送请求发送数据报文S1;
B、路由节点A监测到上一级的电力线载波通信线路的请求发送数据报文S1后,将请求发送数据报文S1的被转发次数R1加1后,将修改后的请求发送数据报文S1发送到下一级的电力线载波通信线路,并保存本次修改的被转发次数R1;
C、若路由节点A监测到下一级的电力线载波通信线路的请求发送数据报文S2,将请求发送数据报文S2的被转发次数R2与被转发次数R1进行比对,若R2<R1,则执行步骤D1,若R2=R1,则执行步骤D2,若R2>R1,则执行步骤D3;
D1、路由节点A不对请求发送数据报文S2进行转发;
D2、路由节点A对请求发送数据报文S2设置碰撞标志B,并将修改后的请求发送数据报文S2同时转发至上一级的电力线载波通信线路和下一级的电力线载波通信线路;
D3、路由节点A将请求发送数据报文S2转发至上一级的电力线载波通信线路;
E、节点A在报文生存期M内监测与其连接的电力线载波通信线路上的数据,若没有请求发送数据报文S2,则执行步骤F1,若有请求发送数据报文S2,则执行步骤F2;
F1、节点A将数据帧发送至与其连接的电力线载波通信线路,以使所述数据帧通过各级路由节点转发出去;
F2、若请求发送数据报文 S2没有碰撞标志B,则执行步骤G1,若请求发送数据报文S2有碰撞标志B,则执行步骤G2;
G1、节点A等待预设时间I后,执行步骤A;
G2、节点A等待随机时间J后,执行步骤A。
优选的,请求发送数据报文S1和请求发送数据报文S2均具有引导帧。
优选的,在步骤D1中,路由节点A将请求发送数据报文S2删除。
优选的,节点A的报文生存期M的起始点为节点A完成向与其连接的电力线载波通信线路发送请求发送数据报文S1的时刻。
本发明具有如下有益效果:
保证远方终端(即节点)的事件数据能实时上传,即实现远方终端与集中器间能实现平等的“点对点”通信。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述。
如图1所示,在一个配电变压器范围内,装设一台集中器及多个远方终端,远方终端通过低压电力载波通信以及路由组网技术将数据传送给集中器。图中A、B、C、D、E、F为远方现场数据采集终端(即节点),I为远方集中器, G为远方现场低压电力线载波通信线路,H为远方现场配电变压器。
如图2所示,一种低压电力载波点对点数据传输方法,其包括以下步骤:
步骤S101、节点A在发送数据帧前,监测与其连接的电力线载波通信线路的状态,当所述与其连接的电力线载波通信线路持续空闲时间N后,向所述与其连接的电力线载波通信线路发送请求发送数据报文S1。
步骤S102、路由节点A监测到上一级的电力线载波通信线路的请求发送数据报文S1后,将请求发送数据报文S1的被转发次数R1加1后,将修改后的请求发送数据报文S1发送到下一级的电力线载波通信线路,并保存本次修改的被转发次数R1。请求发送数据报文S1可以是经过多个路由节点转发而来的,请求发送数据报文S1的被转发次数R1每被路由节点转发一次,都加1。
步骤S103、若路由节点A监测到下一级的电力线载波通信线路的请求发送数据报文S2,将请求发送数据报文S2的被转发次数R2与被转发次数R1进行比对,若R2<R1,则执行步骤S104,若R2=R1,则执行步骤S105,若R2>R1,则执行步骤S106。请求发送数据报文S2可以是由节点B发出的,请求发送数据报文S2可以是经过多个路由节点转发而来的,请求发送数据报文S2的被转发次数R2每被路由节点转发一次,都加1。
步骤S104、路由节点A不对请求发送数据报文S2进行转发,路由节点A将请求发送数据报文S2删除。
步骤S105、路由节点A对请求发送数据报文S2设置碰撞标志B,并将修改后的请求发送数据报文S2同时转发至上一级的电力线载波通信线路和下一级的电力线载波通信线路。转发至上一级的电力线载波通信线路的请求发送数据报文S2沿原转发路径返回,每经过一次原来的路由节点,被转发次数R2均减1。
步骤S106、路由节点A将请求发送数据报文S2转发至上一级的电力线载波通信线路。
步骤S107、节点A在报文生存期M内监测与其连接的电力线载波通信线路上的数据,若没有请求发送数据报文S2,则执行步骤S108,若有请求发送数据报文S2,则执行步骤S109。节点A的报文生存期M的起始点为节点A完成向与其连接的电力线载波通信线路发送请求发送数据报文S1的时刻。
步骤S108、节点A将数据帧发送至与其连接的电力线载波通信线路,以使所述数据帧通过各级路由节点转发出去。
步骤S109、若请求发送数据报文 S2没有碰撞标志B,则执行步骤S110,若请求发送数据报文S2有碰撞标志B,则执行步骤S111。
步骤S110、节点A等待预设时间I后,执行步骤S1。
步骤S111、节点A等待随机时间J后,执行步骤S1。
请求发送数据报文S1和请求发送数据报文S2均具有引导帧。
上述空闲时间N、报文生存期M和预设时间I均为预先设定的值,可根据使用需求进行修改。随机时间J为系统随机激活的时间。
此外,步骤107可与步骤102同时进行。
下面,将以具体的应用示例对本实施例进行详细说明,以便于对本实施例的原理进行理解。
如图3所示,为节点A冲突竞争避让胜出的工作流程图。
节点A获得需要立即发送的事件数据(步骤1)。
节点A送出事件数据(即数据帧)前,监测电力线载波通信线路(以下简称“线路”)状态(步骤2),线路持续空闲一定时间N后,才发送出请求发送数据报文(以下简称“报文”)S1(步骤3)。报文S1包括:引导帧及被转发次数C1。B为碰撞标志,0为没有,1为有。
路由节点1监测到线路L1上的报文S1后,将该报文S1的被转发次数C1加1后发送到线路L2上(步骤4),并保存本次的被转发次数C1。
节点A在报文S1的生存期M内将一直监测线路上的数据(步骤5)。
如果直到M结束,线路上都没有其它数据帧出现,则本次冲突避让竞争中胜出。
节点A将需要发送的数据帧发送至线路L1(步骤6),并通过路由节点逐个转发出去(步骤7)。
如图4所示,为节点A冲突避让竞争失败的工作流程图。
节点A获得需要立即发送的事件数据(步骤1)。
节点A送出事件数据前,监测电力线载波通信线路(以下简称“线路”)状态(步骤2),线路持续空闲一定时间N后,才发送出报文S1(步骤3)。
路由节点1监测到线路L1上的报文S1后,将该报文S1的被转发次数C1加1后发送到线路L2上(步骤4),并保存本次的被转发次数C1。
路由节点2收到远方传来另一节点的报文S2后,将报文S2发送到线路L2上(步骤5),该报文S2已经过3次转发,因此被转发次数C2 为3。
路由节点1监测到线路L2上的报文S2,当C2 大于保存的C1时,路由节点1将继续转发S2到线路L1上(步骤6),此时C2 =4。
节点A监测到线路L1上的报文S2后,表示发送S2的节点比节点A更早发出申请,节点A在本次竞争中失败(步骤7)。
在经过一段时间等待(步骤8)后,节点A重新开始监测电力线载波通信线路状态(步骤9),线路持续空闲一定时间N后,才发送出报文S1(步骤10)。开始新一轮冲突避让的竞争。
如图5所示,为节点A冲突避让竞争碰撞的工作流程图。
节点A获得需要立即发送的事件数据(步骤1)。
节点A送出事件数据前,监测电力线载波通信线路(以下简称“线路”)状态(步骤2),线路持续空闲一定时间N后,才发送出报文S1(步骤3)。
路由节点2监测到线路L2上的报文S1后,将该报文S1的被转发次数C1加1后发送到线路L2上(步骤4),并保存本次的被转发次数C1。
路由节点3收到远方传来另一节点的报文S2后,将报文S2发送到L3上(步骤5),该报文S2已经过2次转发,因此被转发次数C2 为2。
路由节点2监测到线路L3上的报文S2,当C2 等于保存的C1时,路由节点2将同时转发S2到线路L2上与线路L3上(步骤6),此时C2 =1、碰撞标志B=1。
节点A监测到线路L1上的报文S2后,发现碰撞标志B=1,即节点A与远方节点同时开始发送报文,本次竞争结果为碰撞(步骤7),需要两个节点再次进行竞争。
两个节点需要经过一段随机时间等待(步骤8)后,节点A重新开始发送出报文S1(步骤9)。开始新一轮冲突避让的竞争。
本实施例利用电力载波通信线路上各路由节点的转发计数与碰撞标志,在多个节点同时发送请求发送数据报文申请的情况下,通过在路由节点的转发次数比较,判断哪个节点较早发出申请,确保在数据发送前,较早发送请求发送数据报文申请的节点的请求发送数据报文能被转发到网络各个角落。此时,请求发送数据报文有两个作用:1、抑制其它待发节点的发送请求,2、在路由节点进行竞争判断。由于请求发送数据报文封包很小,传送的无效开销也很小。
对于本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及变形,而所有的这些改变以及变形都应该属于本发明权利要求的保护范围之内。