发表于:2010-08-16 09:46:56
楼主
在RS485网络的通信中出现通信故障时,可能存在很多方面的原因,可以考虑按照下面思路进行分析:
1、通讯电缆连接不正确(包括接触不良)
物理上不通虽然是最简单的问题,但也是最容易犯错的地方。正确的电缆连接是完成通信的基础,实际的应用中要确保接线的正确。
很多时候连接器上的管脚码小,不易看清;焊接工艺上不熟练等都是容易连接错误的问题所在。
当实际的通信电缆长度大于50米时,要在总线的两端加匹配的终端电阻。当然这个50米也不是绝对值,如果大家手头上有电阻是,可以考虑都加上而不必拘泥于通信电缆的长度。
确保A、B信号线的正确连接。如果通讯电缆的A、B线接反了,将导致0和1的信号是反的,颠倒A、B线。
2、第三方设备的使用问题
当网络中使用了第三方设备,例如RS232/485转换器时,问题可能出在转换器上,或者转换器的接线不对,按照电缆连接图仔细检查,或更换转换器测试。还有一些转换器需要外部供电,也容易被忽略。
3、编程问题
在确保硬件连接没有问题的情况下,要检查程序是否有问题,包括通信参数的设置,通信功能块的使用,轮询程序等。可以通过功能块的返回信息判断错误原因,例如波特率设置错误,接收的缓冲区溢出,接收数据块设置过小,发送的数据长度为0等。
3.1 关于编程方面的问题,使用串口调试软件是最起码的。不管是单独对双方调试,还是联网调试,都可以使用串口调试软件来发送与监视报文,分析编程指令问题所在。同时也能判读指令是否有问题,接线是否有错的可能性。
3.2 编程上切忌先求全,不要一股脑全部编写完再去调试。可以将通讯部分的程序先单独调试,甚至是单独调试发送或接收;等单独调试完毕后再增加数据处理部分的程序(包括错误报文的处理)。
4、通信模板(或适配器)硬件故障
可以通过更换通信模板的方式测试。更换也是最常见的解决方法,当然也容易受“巧妇难为无米之炊”的影响。
5、干扰问题
这个也是最麻烦的问题,有的时候不知所从。由于实际的现场环境比较复杂,不可避免地存在干扰问题,所以应该在项目规划过程和安装过程中给予充分的考虑,尽量按照相关的规范进行安装、布线,并做好接地等。