本帖最后由 zyb329321151 于 2024-3-24 16:27 编辑
RS485通信故障案例分享<一>
在我分享的《RS485总线讨论》篇章中,主要讨论了RS485总线定义,主要特性、网络拓扑、应用电路以及失效理论分析。这里,我们将在对RS485的失效案例进行实际分享。本文将围绕以下几个异常案例进行分享:
案例一:RS485上拉电阻值、下拉电阻值的影响
问题现象:在某工业应用中, RS485总线上的A厂与B厂主机通信时断时续。在无人干预的情况下,又能自动恢复,以次反复。系统拓扑如图1所示。
图 1
验证过程:①实测发现,B厂主机发给A厂主机的数据存在异常,丢失了帧头的E6,异常现象见图二;②问题可能的原因:a. 软件收发时许不匹配;b.RS485总线硬件电路驱动能力不足。③增加B厂主机收到A厂数据后,增加延时再回复。发现异常依然存在,因此排除原因a。④对比A厂和B厂的硬件电路,发现B厂设备的上拉电阻和下拉电阻未焊接,驱动能力不足,导致通信失败。
图 2
问题原因:A厂与B厂通信数据异常,导致通信中断。B厂设备未焊接上拉电阻和下拉电阻,设备驱动能力不足,导致通信异常。
解决方案:①B厂设备增加上拉电阻和下拉电阻,以提升通信驱动能力;②A厂主设备减小上拉电阻和下拉电阻阻值,提升A厂主设备驱动能力。综合考虑方案实际可行性,最终选择方案②
问题复盘:
①为什么RS485需要上拉电阻和下拉电阻提升驱动能力?
在RS485通信电路设计中,要求485A、485B点电压压差大于0.2V。实际应用中,485通信距离达到1200m,485A、485B点电压会随着距离边长,压差将减小,信号的波形出现畸变,这将导致通信异常。因此,为提升485通信稳定性,实际产品设计中需要增加上拉电阻和下拉电阻。
②RS485上拉和下拉电阻如何选取?
将上述案例通信故障可以简化为如图3所示拓扑图:
图 3
根据RS485通信协议,要求485A、485B点电压压差大于0.2V。
则存在公式:
在本案例中,R1=10KΩ,R2=10KΩ,R3=10KΩ。因此,VA-VB=29.8mV
。
根据MAX485数据手册,485A、485B的电压压差大于0.2V 为高电平1,小于-0.2V为0。而29.8mV处于-0.2V~0.2V之间,难以判断电平,因此导致通信断断续续。
当主机A的上拉电阻和下拉电阻改为1K时,,VA-VB=283mV
。此时,压差大于0.2V,RS485通信稳定。
案例二:RS485线缆的直流电阻影响通信距离
问题现象:在某工业应用中,业主提供RS485通信线缆,厂家提供通信主机和从机。现场总共有16个从机,通信距离达到1Km。测试发现,距离较远的从机无法与主机进行通信,从机与主机距离越近,通信越稳定,距离越远,通信效果越差,1000m位置的主机通信100% Fail。
验证过程:①确认现场主机和从机的拓扑结构、端接匹配电阻、接线方式都符合设计要求;②断开所有从机,逐台进行测试。发现近端从机正常,远端从机通信失败;③测量每处从机的485A、485B波形,发现远端从机的波形发生畸变,不满足485总线通信要求。④测量通信电缆阻抗,发现其直流阻抗远超RS485通信线缆要求。更换新的符合标准的通信线缆,通信成功。
问题原因:通信线缆直流阻抗较大,大致远端从机接收到的信号畸变,电压差不满足RS485通信总线设计标准。
解决方案:更换新的符合标准的通信线缆。
问题复盘:为什么通信线缆阻抗对RS485的通信质量存在影响?
将上述案例通信故障可以简化为如图4所示拓扑图:
图 4
根据RS485通信电气标准可知,当主机输出高电平时,VA-VB>1.5V
。那么,从机接收到的信号电压差为从机端120Ω两端的压差。因此,存在公式:
Ra和Rb分别是线缆阻抗,由于采用双绞线,因此可以认为Ra=Rb。因此,如果要接收端压差>0.2V,就需要Ra=Rb<390Ω。一旦通信线缆阻抗大于390Ω,RS485通信就会出现异常,导致通信失败。