产品推荐:水表|流量计|压力变送器|热电偶|液位计|冷热冲击试验箱|水质分析|光谱仪|试验机|试验箱


仪表网>技术中心>使用指南>正文

欢迎联系我

有什么可以帮您? 在线咨询

RS485通讯接口在电能表使用中的常见问题及分析

来源:浙江华夏仪表有限公司   2012年06月25日 19:04  

在电能表中的应用

 由于历史的原因,我国在制定DLT6141997《电子式多功能电能表》及DLT6451997《电子式多功能电能表通讯协议》时将RS485标准串行通讯接口作为电表的通讯接口,并详细地定义了物理层、链路层、应用层,结束了以前电表厂家规约各不兼容、互相不能抄的尴尬局面。各电表厂家遵循相同的协议标准对电表进行读写操作,简化了电表抄表应用及维护的工作量。使得国内的智能电表基本上可以做到互联互通。但是目前国内的485抄表还存在一些问题,主要是通信成功率低、不能做到即连即通、易损坏等。
 
RS485通讯接口物理层、链路层及数据传输
 
1.物理层
A)共模输入电压:-7V~+12V
B)差模输入电压:大于02V
C)三态方式输出。
D)半双工通信方式。
E)驱动能力不小于32个同类接口。
F)总线是无源的,由费率装置或数据终端提供电源。
G)逻辑“1”AB两线间的电压差为+(26V表示;逻辑“0”以两线间的电压差为-(26V表示。
 
2. 链路层及数据传输
 
 通讯链路的建立与解除由主站发出的信息帧来控制,帧的组成如表:
 
 
 由上表可知,帧由起始符、地址域、控制码、数据长度、数据域、校验码及结束符等7个域组成,每部分由若干字节组成。
 DLT6451997规定,在发送帧信息之前,先发送14个字节FEH,其目的是预先拉高控制总线,以唤醒接收方,保障帧信息的顺利接收。
 DLT6451997规定了主—从结构的半双工通讯方式。每次通讯都是由主站向从站发出请求命令帧开始,从站根据要求作出响应。收到命令帧后的响应延时称作帧间延时Td20msTd500ms。字节之间停顿时间称作字节间延时TbTb500ms
 
RS485在电表通讯中的常见问题及解决方案
 
1.收发时序不匹配
 现象1485通讯不成功,用逻辑分析仪查看,发送的码字正确,电能表返回码字也符合规约。再细看,主站发送的码字的zui后一位同电能表应答的数据帧的*位之间几乎没有停顿。
 分析:由于485总线是一个半双工的通讯方式,收和发不能同时进行,从发送完成到变为接收状态,无论是软件的处理抑或是硬件的切换都需要一定的延时,因此DLT645规定帧间延时Td20msTd500ms,主要是给发送方一个由发转为收的时间,保证接收方返回的数据能完整的被接收。而有些电能表,尤其是一些早期的多功能表对此考虑不够,在接收到主站的请求命令帧后,未进行帧响应延时,就立刻发送应答帧,而此时主站还处于发送状态,等主站返回到接收状态时,电能表前面的码字已发送完,主站接收到的应答数据帧不完整引起通信失败。
 现象2:当主站对某块表连续抄几帧数据时,*帧通讯成功,第二帧开始电表不回应答帧。
 分析:同样的道理,电表的485由发转为收也需要延时,而有的主站软件编程时,没有考虑,接收完一帧数据后没有延时或延时不够就又开始抄下一帧,而此时电表还没有回到接收状态,通讯失败。在这里我们建议通信双方在编程时都必须严格遵守DLT645所规定的帧间延时,并留有余量,具体应用时可取一个中间值,如100ms
 
2.判断帧起始符出错
 对于电能表485总线来讲,它是一种数字异步通信方式。异步通信不象同步通信,其没有专门的同步信号进行同步,接收方无法准确判知哪一个字节是一帧数据通信的开始,因此DLT645中规定68H作为帧起始符(帧同步码),代表一帧数据的开始。有些主站和电能表在软件编程时考虑得比较理想,接收数据时未按照DLT645中规定68H来判定数据帧的开始,而是呆板的以接收到的*个字符作为帧起始标志;如果电表在此帧数据之前发了几个FEH,其接收到的数据将会出现同步错误。另外,如总线上平时有干扰信号存在,导致485芯片不停地收到诸如FCHDEH这样杂乱数据;当总线上有正常信号产生时,由于干扰信号比较小的原因,其对通信并无太大的影响,但对接收方来讲,其接收正确数据帧前会混有若干个字节的杂乱数据,由于同步处理不当,通讯也会失败。通常的做法是每接收一个字节都要判是否是68H,若不是则丢掉该字节,然后继续往下判,直到收到68H才启动一帧数据的接收。
 
3.帧奇偶校验位/帧结束符不合理
 目前看来,由于这个原因引起485通信不成功占有很大的比例。我们知道,在485通信时,对于接收到的数据一般都会按收、发双方事先约定的奇偶校验方式进行数据检错,并将错误的数据帧剔除,等待发送方重发。这种ARQ的通信方式本身是无可厚非的,但是有的软件人员在编程时考虑问题不够全面,在判断一帧结束处理时,没有根据所收数据帧的长度和结束符“16H”及时地将数据接收任务结束,而是依据多长时间内收不到新的一个字节数据来认为一帧已收完。这种处理方法在下面这种情况下就会导致通信失败。
 *,RS485芯片的接收灵敏度为±200mV,即当电压UA—UB200mV时,输出逻辑“1”UA—UB≤-200mV时,输出逻辑“0”。当-200mVUA—UB200mV时,输出不确定。这样一来,当总线上所有的485芯片均处于接收状态时,总线处于高阻状态,此时AB间的压差为0V,芯片输出处于不定状态,可能输出“1”,也可能输出“0”,而且状态会随着时间而变化。如果输出为“0”,在某些时候则会导致通信失败。我们知道,电能表在发送完应答帧后,一般会马上从发送状态转换到接收状态。正常情况应该是:主站的485芯片收完zui后一个字节的停止位后继续保持为“1”(波形见图2),而有的485芯片则可能跳变保持为“0”(波形见图3),UART(通用异步收发器)则认为又收到一个字节00H,且很有可能校验和是错的,这样接收软件可能会判断到一个字节校验位出错,而将前面接收*正确的一帧丢掉,造成通信失败。
 
4.接口电路不合理
 由于485在实际使用中存在这样或那样的问题,人们对其接口电路采取了各种保护、滤波措施。如加上保护二极管、热保险丝、电容、上拉电阻等(见图4),这些措施有的有效,但有的无效甚至有害。
 485总线的理想介质是双绞线,其等效阻抗约为120Ω,因此为了在长距离、高速通信时做到阻抗匹配,一般在电表的485AB线之间加一个120Ω的电阻。此种方式对于一对一的通信是实用的,但一对多时,如果每个电表内部均加一个120Ω的电阻,并在一起整个总线上的负载就很重,这样挂在总线上的485收发器就可能达不到标准的数量32个,且距离也会缩短。因此,只应在网络的起点和终点各加一个。
 有的产品为了滤波而在AB线对地加上电容,现在看来这样会带来问题。电容加小了不起作用;加大了,正常的信号会被滤除或造成波形失真。我们曾经做过试验,以1200bps通信时,01μF的电容就会影响通信的成功率。如果通信速率达到几百kbps,电容就不能加了。
 485总线处于悬浮状态时AB线等电位。为了保证AB200mV以上,有的厂家将AB线分别通过10k电阻上拉到5V、下拉到地,这样在都处于接收状态时,AB间的电位差约为5V485芯片的接收端为高,通信不受影响。这个想法是好的,但是实际组网中往往好几个厂家的表连在一起,如别的表中加了120Ω电阻,则上拉电阻、120Ω、下拉电阻之间构成分压关系,AB线间的电压只有几十毫伏,接收端的电平还是不定。

   目前国内应用的单片机大部分只有一个UART串口,而电能表一般均需一个485接口和一个红外光接口,受成本所限,有的厂家就将这两个信号通过线与、线或的方式合在一起共用一个UART口。这样就带来一个问题,当红外通信时,485就会不通;另外,当红外收到各种可见光的干扰时,红外口不停地输出干扰信号,由于线与、线或逻辑的原因,485不能通信或485时通时不通。

免责声明

  • 凡本网注明“来源:仪表网”的所有作品,均为浙江兴旺宝明通网络有限公司-仪表网合法拥有版权或有权使用的作品,未经本网授权不得转载、摘编或利用其它方式使用上述作品。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:仪表网”。违反上述声明者,本网将追究其相关法律责任。
  • 本网转载并注明自其它来源(非仪表网)的作品,目的在于传递更多信息,并不代表本网赞同其观点或和对其真实性负责,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品第一来源,并自负版权等法律责任。
  • 如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
联系我们

客服热线: 15024464426

加盟热线: 15024464426

媒体合作: 0571-87759945

投诉热线: 0571-87759942

关注我们
  • 下载仪表站APP

  • Ybzhan手机版

  • Ybzhan公众号

  • Ybzhan小程序

企业未开通此功能
详询客服 : 0571-87759942