APP下载

基于低压电力线载波的轮询通信改进

2018-06-21袁嫣红诸建强

成组技术与生产现代化 2018年1期
关键词:轮询重传包率

秦 坤,袁嫣红,诸建强

(1. 浙江理工大学 机械与自动控制学院,浙江 杭州 310018;2. 杭州依途科技有限公司 技术部,浙江 杭州 310018)

随着制造企业生产过程执行管理系统(Manufacturing Execution System,MES)的推广应用和普及,工业生产过程中的信息,如温湿度、加工工艺、条码数据等必须进行实时传输和保存,以便生产管理人员对工艺参数和过程进行监测,对问题进行追溯分析[1].生产过程的信息主要使用RS232、RS485、CAN、以太网等总线进行传输.这类总线都需要施工布线来构建物理层,但这在部分空间有限、布线困难的生产车间内是无法实现的.基于电力线载波(Power Line Carrier, PLC)的通信方式可以较好地解决重新布线问题,但是在电力线上进行通信,通常存在数据丢失率较高的问题.生产过程中产生的信息是MES分析处理的关键数据,因此保证数据传输的可靠性十分重要.

在电力线上构建通信网络需要合适的介质访问控制(Medium Access Control,MAC)层.MAC层主要使用的协议有以太网CSMA/CD、无线CSMA/CA、令牌环和轮询协议.殷树刚等研究发现,CSMA/CD协议虽已成熟地应用于用户的用电信息上报,但是无法完全避免节点并发数据冲突[2].余建波等[3]和刘雯静等[4]使用CSMA/CA协议重点解决了电力线节点并发数据冲突和网络吞吐量小的问题,但所用算法实现复杂.Gershon R等较早地将令牌环协议应用于电力线组网中,但在电力线干扰环境中令牌容易丢失,重组代价高[5].轮询协议抗干扰和抗网络终端失效的能力强,没有地址竞争冲突,不足之处是随终端数量的增多,传输时延会增加[6].本文设计的电力线载波轮询通信方案由于应用于信息采集场合,对数据传输的可靠性要求高,对实时性要求并不苛刻,且从机节点较少,因此其MAC层采用轮询仲裁协议可保证轮询可靠性,降低实现的复杂度,满足通信的要求.

电力线载波通信和传统通信相比存在巨大差异,其线路阻抗、噪声、衰落以及多径时延等都会严重影响电力线载波信道的性能和通信质量[7].因此,已广泛应用于专用有线网和无线网的MAC层协议不能直接用于电力线网络,必须相应改进后才能适用于信道恶劣的电力线上.对轮询系统改进的研究主要有以下方面:赵东风等[8]和Boon M A A等[9]对多级门限服务进行轮询系统建模分析,得到了排队长、平均循环周期、平均等待时延,使轮询控制更有效;Liu Q L等引入优先级轮询策略,对节点分级后让普通节点分配低优先级,从优先级角度增强了通信可靠性[10];何敏等提出可休眠的轮询服务策略,降低能耗的同时兼顾了系统性能[11].文献中从数据重传补发角度来增强系统可靠性和提升通信服务质量(Quality of Service,QoS)的研究很少.

本文首先介绍应用于MES条码信息采集的改进轮询方案,对网络层增加的机制和物理层使用的技术进行说明;其次叙述本方案主要的改进点,并通过实验发现传统轮询方案运用在电力线上存在的丢包等问题;之后详细介绍重传、帧序号等机制的实现,自行设计网络层通讯协议帧格式,组建16点电力线通信网络;最后通过实验引入生产线中常见的电机等噪声干扰,统计丢包率,对改进轮询方案与传统轮询方案进行比较.

1 轮询方案的改进

本文从网络层和物理层两方面对传统轮询方案进行改进,实现宽带电力线载波可靠轮询通信.其中网络层是改进轮询方案的重点.

在网络层引入TCP/IP(Transmission Control Protocol/Internet Protocol)网络的状态位、帧序号、超时重传、掉线重连、紧急帧等一系列概念,从机制上改进传统的轮询通信方式.物理层使用宽带类载波CR600芯片,其峰值速率最大为200 Mbps,载波频段被扩展为2~28 MHz,避开了电网干扰噪声集中的1 MHz频段[12],同时使用正交频分复用(Orthogonal Frequency Division Multiplexing,OFDM)技术,使通信的抗干扰能力更强.

对比传统轮询方案,改进方案的主要优点如下:①物理层无需专用通信线路;②从机一个节点发生故障时,整个总线不会瘫痪;③网络层使用多种保障通信机制,改进了基本轮询应答协议;④宽带载波方式通信的速率较高.

改进方案在工业环境信道恶劣的电力线上完成了16点高速可靠轮询通信.该通信网络的物理拓扑如图1所示.主机和从机通过220 V电力线相连,共有16个从机模块,主机将从机采集的条码数据汇集后输入服务器.

图1 通信网络拓扑

2 可靠的通信保障机制

尽管在物理层已经使用OFDM技术来提升抗干扰性,但是并不能保证数据的完全可靠传输.传统的轮询应答协议应用在电力线载波通信的实际工作中,存在以下几种典型问题:①从机因故障掉线时,主机因未收到应答帧会重复询问当前从机;②重传导致从机发送的数据在主机中排列错位,没有排序;③从机的空应答帧重发状态与有数据应答帧重发状态重叠,造成主机接收丢帧;④当从机出现紧急状况需要及时响应时,没有紧急处理机制.

为解决这些问题,改进方案对电力线网络QoS进行研究,加入重传、帧序号等通信保障机制,以实现可靠高速的电力线载波通信.

2.1 通信帧协议

通信帧协议格式以网络层所包含的数据链路层协议携带的功能标识码为基础,由主从机地址、帧命令码、轮询状态码、帧序号、数据区长度、数据区、CRC(Cyclic Redundancy Check)码组成(图2).

图2 通信帧协议格式

(1)主/从机地址 (Host/Slave Address).它表明数据的源地址和到达的从机地址.电力线属于共享信道,总线上每帧都能被各节点侦听到.当地址为0xFF时定义为广播帧,主机地址和从机地址各占一个字节.

(2)帧命令码 (Command).通信中需要传输不同的帧类型,分为数据帧、命令帧、无数据应答帧、数据接收完成应答帧、紧急帧等.传输的帧类型由帧命令码给出,占用一个字节.

(3)轮询状态码 (Polling State).轮询状态码指上次轮询中主机接收从机数据的正确与否,它占用一个字节.

(4)帧序号 (Sequence Number).每个数据包都分配了唯一的序列号,用以标识包,不但能避免重复,还能保证数据的顺序.此次发送和接收成功后,下个数据包为刚发送的数据序号加1,序号在0~255内循环.帧序号占用一个字节.

(5)数据区长度 (Data Length).在通信帧协议中,一帧数据区最大传输1 450个字节.数据区长度值占用2个字节.

(6)循环冗余校验(CRC).通过它对传输的数据进行高质量检错,以保证数据的正确性.CRC计算采用快速查表法,占用2个字节.

2.2 轮询状态位

主机询问帧的轮询状态位用来标明上次主机接收从机的数据正确与否.无论从机是否应答,主机都会在下一时间点开始时询问下一个从机,以解决主机未收到从机应答而重复询问的问题.主机开始询问从机到从机数据返回主机耗时为4~6 ms,加上数据处理时间,主机轮询每个从机间隔设定在10 ms.主机如果在限定时间内接收到从机A的应答帧,则将状态码 .state置为0x01,主机在下次询问A时,若询问帧携带此状态码,则说明主机上次接收是成功的.如果主机等待超时而未收到从机应答,状态码置0x00,则说明主机未接收成功,从机重发缓冲区中上次发送的数据.主机轮询状态流程如图3所示.

图3 主机轮询状态流程

2.3 超时重传

主机按照一个从机点分配10 ms的速度进行轮询.主从机之间的传输帧由于信道干扰会出现丢失的情况.主机每次发送数据帧都要启动定时器开始计时,设置一个单位为毫秒的定时器,复用成对应最多容纳64个从机数据的等待计时器Slave_time.当主机询问帧发出时,定时器开始计时,超过设定时间Limit_time未收到应答时判断为超时.超时设定可根据网络负载、信道干扰的具体情况进行.轮询状态Slave_state为0,说明未收到应答,继续计时.如果主机成功收到从机应答,Slave state则置1,对应的从机定时器停止计时.超时重传的部分代码如下:

void user_TIMER_IRQHandler( )

{ /* 判断定时器标志是否置位 */

if ( TIM_GetITStatus( TIM3 ) == SET ){

/* Slave_counts为从机数量 */

for( j = 0;j < Slave_counts; j++ ){

/* 遍历每个从机定时器 */

if( Slave_state[j] == 0 ){

/* 无应答状态计时 */

Slave_time[j] ++;

}

}

}

}

主机通过比较Slave_time与Limit_time来判断接收是否超时.如果超时,则轮询状态置0,表示此从机在下次轮询需重传数据.超时设定的部分代码如下:

/* 判断是否超过限定时间 */

if ( Slave_time[j] > Limit_time ){

Slave_state[j] = 0;

}

else Slave_state[j] = 1;

2.4 帧序号和队列缓存

物理层加入载波中继和重传机制后,数据包到达主机端存在重复接收数据和乱序问题.可加入帧序号来解决这一问题,主机只接受期望得到的数据,特别是对从机到达数据有顺序要求时,通过判断帧序号进行排序存储,能够保证数据的有序性.主机询问帧状态位 .state为1,说明从机上次发送给主机的数据被成功接收,从机将帧序号自动加1并与新读出的数据组成应答帧发送给主机,如果 .state为0则序号不变,和上次发送的数据组成应答帧重发.应答帧序号如图4所示.

图4 应答帧序号示意图

采用轮询机制时,正常轮询从机所有点的周期为16×10 ms,每10 ms至多传输1 450个字节,网络理论带宽在1.1 Mbps左右.该轮询速度对于当前方案完全可以满足要求.但是,考虑到从机可能瞬时接收大量数据的情况,对从机建立了16个队列来缓存数据.当判断上次传输成功时读出队列中下个数据单元,否则重发上次数据.CR600的Flash存储容量达1 MB,能够充分容纳缓存条码数据.从机重发分为重发空数据应答帧和重发数据帧.对于帧丢失导致本应该重发数据应答帧却重发了空数据帧的问题,从机需要每次发送完成后记住所发送的帧类别,收到询问帧时进行准确判断并重发.从机接收询问帧的处理流程如图5所示.

图5 从机接收询问帧的处理流程

2.5 紧急帧

当队列接近满位或从机因发生故障需要及时处理时,从机发出紧急帧命令,请求主机及时询问处理.主机轮询一个从机点分配的是10 ms,在信道正常的情况下传输时延为4~6 ms(实测).因此,轮询空隙是允许紧急帧传输的.从机有紧急请求时会通过当前总线中主机询问帧的帧命令码最高位是否为1,判断当前是否有别的紧急帧占用,如果没有则发出请求,否则继续等待下个轮询节点的轮询空隙.轮询空隙的时间占用情况如图6所示.主机接收完成后立刻在下个轮询间隔询问发出紧急命令的从机.

图6 轮询空隙的时间占用情况

为了避免多个紧急帧造成的轮询网络拥塞,改进方案在一个轮询周期内只允许5个紧急帧.这在一定程度上提高了轮询响应的及时性.

2.6 CRC校验

改进方案采用广泛使用的CRC16算法,对协议帧校验码区之前所有字节进行校验.将CRC表值存储于Flash中,采用快速查表法加快校验速度.主机询问帧和从机应答帧都在校验通过的情况下读取和发送.

3 实验及结果分析

3.1 实验环境

用电力线上1台主机和16台从机组成网络.其工作设备中,850 W三相电机、镇流器、600 W伺服电机等对电力线通信会产生较强干扰.实验所用电力线网络设备组成如图7所示.电力线处于一个电能计量表范围内,每个从机连接若干个霍尼韦尔3310g型串口条码采集枪,以便将条码数据发送给主机.

图7 实验用电力线网络设备组成

3.2 实验过程

实验测量了在电力线信道不同信噪比下,基本轮询和改进轮询两种传输模式的丢包率,首先通过PLC Tool Manager工具测量不同时刻的物理层信噪比,并逐步将干扰设备启动后接入电网,使电力线信道的信噪比逐渐降低(代表当前电力线信道环境变差);然后进行16个点的整网络测试,在不同信噪比环境下,从机把每帧128个字节的条码数据打包发送至主机,统计从机的发送包总量与主机的接收包总量之差,通过该差值与发送总量的比得出丢包率.两种方案(基本轮询和改进轮询)在相同环境下丢包率比较测试结果如图8所示.

图8 两种方案丢包率比较测试的结果

3.3 结果分析

电力线上噪声是影响通信质量的主要因素.它具有脉冲性、连续性和随机性,是各种干扰设备产生的噪声叠加.图8所示,在信噪比为60 dB,信道环境优良时,基本轮询与改进轮询的丢包率相差很小,两种方案的性能接近;随着信噪比降低,噪声对电力线通信的质量产生了较大的影响,基本轮询不具有数据重传机制,导致电力线通信的丢包率增大,在信噪比为15 dB时,丢包率达到了5.2%,而改进轮询方案的丢包率略微升高,为0.08%.这是因为改进轮询加入了通讯保障机制,丢包率被控制在较低的水平,通信质量得到了改善.

信噪比较低时,由于噪声干扰会启动重传机制,一个数据包某些时刻会经过多个轮询周期才能传输完成,带来的时延相应增加,因此改进方案较适用于非实时性信息的采集场合.

4 结束语

(1)本文提出了具有重传、帧序号等机制的改进轮询方案,在信道环境恶劣的电力线上进行了实验验证.结果表明,该方案改进通信质量效果明显,可以实现在数据实时性要求不敏感场合的信息可靠传输.

(2)该方案已应用于泰州乐叶光伏科技有限公司MES智能制造信息采集系统,为现场布线困难的生产过程信息的可靠传输提供了保障,也可为基于电力线载波的信息采集应用提供参考.

(3)下阶段,计划引入快速信令重传机制,使轮询通信更加可靠,实现更好的QoS保障.

参考文献:

[1] 盛步云,苏佳奇,卢其兵,等.面向MES的生产线数据采集系统的研究[J].计算机测量与控制,2015,23(9):3162-3164.

[2] 殷树刚,张成文,田海亭,等. 载波侦听/冲突检测机制应用于低压电力线载波通信的适应性分析[J].电网技术,2012,36(8):233-238.

[3] 余建波,宗卫周,程 辉.基于CSMA/CA的电力载波通信及在照明系统应用[J].东北大学学报,2017,38(6):766-771.

[4] 刘雯静,郭静波.基于优先级策略的跨层优化NPLC CSMA/CA机制[J].清华大学学报(自然科学版),2014:54(9):1148-1154.

[5] Gershon R,Propp D,Propp M.A token passing network for powerline communications[J].IEEE Transactions on Consumer Electronics,2002,37(2):129-134.

[6] (德)哈斯尼加,(德)海迪纳,(德)勒耐特.宽带电力线通信网络设计[M].宋 健,赵丙镇,李 晓,译.北京:人民邮电出版社,2008:148-151.

[7] 妙红英,高 寅,王 松,等.宽带电力线载波通信技术在用电信息采集系统中的应用[J].华北电力技术,2015(4):16-19.

[8] 赵东风,丁洪伟,赵一帆,等.多级门限服务轮询系统MAC离散时间控制协议模型分析[J].电子学报,2010,38(7):1495-1499.

[9] Boon M A A,Adan I J B F,Boxma O J.A polling model with multiple priority levels[J].Performance Evaluation,2010,67(6):468-484.

[10]Liu Q L,Zhao D F,Zhao Y F.An efficient priority service model with two-level-polling scheme[J].High Technology Letters,2011,17(3):245-251.

[11]何 敏,官 铮,保利勇,等.无线传感器网轮询接入控制平均查询周期分析[J].仪器仪表学报,2016,37(11):2637-2644.

[12]许国强. 自适应跳频PLC技术研究[D].保定:华北电力大学,2008.

猜你喜欢

轮询重传包率
支持向量机的船舶网络丢包率预测数学模型
一种基于喷泉码的异构网络发包算法*
电磁线叠包率控制工艺研究
基于等概率的ASON业务授权设计∗
面向异构网络的多路径数据重传研究∗
一种基于散列邻域搜索网络编码的机会中继重传方法
依托站点状态的两级轮询控制系统时延特性分析
利用时间轮询方式操作DDR3实现多模式下数据重排
TCN 协议分析装置丢包率研究
选择性重传法在IPTV中的应用