本文针对电能表现场运行过程中RS485通信问题,存在通信不稳定、成功率低、通信死机等问题。分析其主要原因有现场环境变化导致的信号质量变差、时钟频率变化、数据延时发生变化,或由于网络节点数量和现场布线的不同引起,或由于电能表的通信部分对信号的软件滤波能力、带载能力、误码处理能力、波特率冗余度、协议延时准确度不够导致。本文主要研究了电能表RS485通信压力测试方法,包括RS485带载能力测试、RS485共模通信能力测试、RS485波特率精确度等测试。从而检测出电能表的RS485通信能力,降低电能表现场运行故障率。
0.引言
在智能电能表的全面推广和应用中,RS485作为主要的通信方式,发挥着非常重要的作用,但现场通信时,由于温度不同、网络节点数量不同、现场布线不同、外部环境干扰量不同、采集装置RS485通信接口波特率偏移等各方面因素的影响导致RS485通信失败,为了确保用电信息采集系统本地抄表的可靠应用,建立一套完整的智能电能表RS485通信压力测试方法是十分必要的。其可嵌入到现有的电能表校验台,自动完成大批量的电能表压力通信测试,大大提高检测效率。同时,在电能表检验环节可检出大量的通信成功但性能指标不满足需求的电能表,有效地降低电能表现场运行故障率。通过该系统测试方法可以模拟现场环境中的真实模型,检测出表计的RS485通信能力。本文从多个方面论述了影响RS485通信可靠性的因素及实际中模拟的检测措施、方法与原理。
1.电能表RS485通信功能压力测试原理
电能表RS485通信功能压力测试包含:RS485带载能力测试、RS485共模通信能力测试、RS485通信波特率精确度测试。
测试原理:上位机测试软件下发命令给RS485通信压力测试模块,使其与电能表进行通信。RS485通信压力测试模块接收到上位机的指令后通过负载调整电路切换负载,测试出与电能表的极限通信带载能力。共模电压输出电路通过调整电能表COM端的电位来改变电能表输入端A、B线相对COM端的接受共模电压,RS485通信压力测试模块与电能表通信可检测出其极限共模电压通信范围。RS485波特率精确度测试通过与电能表通信时,其信号采集电路捕捉A、B差分信号线上的瞬时电平信号变化持续时间来进行判断。其通信压力测试原理如图1所示。
2. RS485通信功能压力的测试方法
2.1 RS485带载能力测试
采用RS485组网通信的电能表,当网络节点超过一定数量时,抄表会失败。由于RS485通信是总线组网方式,当网络节点太多,电能表接收阻抗太小或者RS485发送驱动能力偏弱都会导致总线上传输的信号不满足RS485传输电气特性。究其原因是电能表RS485接收阻抗和发送驱动能力设计冗余度不够导致。
测试方法:将压力测试模块的A、B差分线与外部电能表A、B差分线相连接,在RS485接口上接阻性负载,来模拟多网络节点的通信工况。通过压力测试模块的负载调整电路内部继电器逐步增大负载阻抗,实时监控RS485通信是否成功,测试出电能表RS485的极限带载能力,同时将测试数据上传给上位机软件。极限带载能力的负载详细参数设置见表1。
采用电阻R1~R10进行串联,10个继电器S1~S10进行选择性短路,可配出1Ω~1024Ω的负载电阻。选择功率3W精度5%的水泥电阻,通过继电器切换进行调整。电阻值分别为:1Ω、2Ω、3.9Ω、9.1Ω、16Ω、32Ω、64Ω、128Ω、256Ω、510Ω。具体操作如图2所示。
测试结果:通过对不同厂家的电表进行测试,其测试数据见表2。
结果分析:对于表格中施加1Ω负载仍可通信上的厂家电能表,说明其RS485带载能力较强;对于表格中厂家6的电能表施加小于125Ω通信不上,说明其带载能力偏弱。实际产品中各个厂家所用的RS485通信芯片大都不同,而且不同芯片内部接收输入阻抗和发送驱动能力也有所差异,或者受到芯片外部A、B线上外部上、下拉电阻的影响导致了结果的差异性。
2.2 RS485共模通信能力测试
电能表RS485通信接口电气上与电网隔离,由于电能表的安装环境不同,每个系统具有各自独立的接地系统,存在着地电位差。且当节点间距离很远时,节点间存在共模电压,接收器输入端的共模电压就可能会有很大的幅度(十几伏甚至数十伏),并可能伴有强干扰信号,致使接收器共模输入A、B线的对公共地电压超出正常的范围,并在信号线上产生干扰电流,轻则影响RS485通信失败,重则损坏RS485通信口。
测试方法:将压力测试模块扩展出的RS485接口的COM端与电能表RS485接口的COM端相连,同时两者A、B线相连,通过共模电压输出电路使压力测试模块内部RS485芯片的GND与外部电能表RS485芯片的GND出现一个差值,从而实现电能表内部RS485差分线A、B对COM端的输入电压达到可调节的目的,实时监控RS485通信是否成功。测试出电能表RS485的极限共模通信能力。施加共模电压的参数设置见表3。
具体通过切换继电器,将共模输出电路的正端S1切换至电能表的COM端,将共模输出电路的负端S2切换至压力测试模块内部RS485_GND,同时调节共模输出电路内部的DCDC来产生0~32V的共模正压。通过切换继电器,将共模输出电路的正端S1切换至压力测试模块内部RS485_GND,将共模输出电路的负端S2切换至电能表的COM端,同时调节共模输出电路内部的DCDC来产生0~32V的共模负压。具体操作实施方式如图3所示。
测试结果:对不同厂家的电能表测试结果见表4。
结果分析:在实际应用中各个厂家电能表内部A、B差分线与COM端有TVS、热敏电阻等保护器件,并且各个厂家选用的RS485通信芯片也多不相同,所以测试结果参差不齐。对于施加共模电压≤-32V或≥32V也没有出现通信问题的厂家,说明电能表内部对于共模电压的保护及抗干扰能力比较好,由于受RS485通信压力测试模块所设计的施加共模电压范围的限制,以及担心施加共模电压太大,会烧毁电能表内部RS485通信芯片,所以共模电压施加测试到了±32V。单相表没有COM端则不做共模电压极限测试试验。
2.3 电能表RS485波特率精确度测试
电能表在软件设计时,由于波特率冗余度不够,或由于温湿度变化,内部电路信号延时发生微小变化,就会出现波特率超过标准要求,从而导致抄表失败。对于电能表波特率的精确度主要从应答数据帧里每bit的平均时间长度和单位bit高、低电平的时间长度两方面来评测。
测试方法:上位机通过压力测试模块向电能表下发固定波特率的DL/T 645抄读命令,压力测试模块内部信号采集电路捕捉电能表的应答数据帧,在一帧数据内通过对A、B差分线电平的上升沿与下降沿的变化来触发和停止中断,截取一部分数据上升沿和下降沿的总时间T(总),然后通过软件内部计算公式,得出一帧数据内每bit的平均时间近似值T(实际bit)。
(1)M为接受一帧数据的理论二进制总位数。
(2)T(总)为一帧数据里所截取的一部分数据的总时间。
(3)T(理论bit)为通信波特率的二进制单位bit的理论时间。
例:2400bps的波特率,则T(理论每bit)=1/2400≈416.667us。
(4)N为M四舍五入后的整数,即是该部分数据总时间内的实际二进制数据位数。
(5)T(实际每bit)为计算得出的一帧数据的二进制每bit的平均近似时间。
对于每bit高、低电平占空比时间的判断,如果中断是由上升沿触发的,程序便开始一次高电平脉冲宽度的测量:记录上升沿出现的时间,在中断里把触发方式改为下降沿触发,并清空溢出计数器,直到中断由下降沿触发,表示到达脉冲的未端,程序记录下降沿出现时间,利用以上公式(1)与(2)计算出每bit高电平脉冲的时间宽度。依次类推,可计算出每bit低电平脉冲的时间宽度。
测试结果:表5是在默认通信波特率2400bps的情况对不同厂家的电能表波特率精度的测试情况,对于其他波特率精度的测试不再赘述,其测试方法相同;注:时间数值近似0.1us。
结果分析:对于电能表默认通信波特率2400bps,每bit的时间应该约为416.667us。由以上厂家的测试结果可知,如果按照电能表厂家对于波特率一般内控3%的要求,则接受一帧数据的平均每bit时间是满足要求的,但对于单位bit高、低电平的时间长度有些厂家则是超出要求范围的。
结语
本文研究了在实际的RS485通信测试项目中的压力测试方法、原理及基本测试模型,可以很好地指导压力测试的实施,抓住了关键的测试位置,取得了测试项目所需要的关键数据。从带载能力、施加极限共模电压、通信波特率精确度测试等方面进行了详尽的分析论述。RS485通信目前虽然在用电信息采集系统中得到了广泛应用,但对于建立一套系统的RS485压力测试方法却还没有行之有效的检测措施,所以建立一套完整的电能表RS485通信压力测试方法将成为下一步研究的重点。
作者:赵永辉 李翔 王江涛 宋锡强 饶烜攀 刘清蝉 杨昊 杨明 来源:中国新技术新产品 2016年23期