18252776113 发表于 2014-5-6 09:50:39

请教大侠,RS485数据发不出来是怎么回事?

最近小弟在写一个下位机随机生成地址,上位机判断地址是否有效的代码,发现一个问题,困惑不解;
485通讯,当两台下位机产生相同地址,同时向上位机发送数据,数据是乱码,上位机检查到数据是乱码,发送命令让地址重复的下位机重新产生地址,这是正常状态下;
问题出现了,有时候地址重复的两个下位机向上位机发送数据,出现一个下位机的数据发出去了,另一台数据没能发出去,上位机接收到了一台下位机的数据,判断正确,于是地址重复了;
这种现象反复试30次就会有1次这种概率;地址重复之后,地址重复的两个下位机继续向上位机发送数据时,数据由于冲突又变成了乱码,又对了,上位机再来判断,可以补救;
但是对于,有一台下位机发不出数据的现象,却是找不到原因,困惑不解,用串口监控软件,监控到确实就是地址重复两个下位机,有一个数据没能发出来,但是两台下位机的代码完全一样,SP485E芯片也是好的;
为甚么出现一台数据发不出来的现象?请教大侠。。。

wjshmily 发表于 2014-5-6 10:56:56

估计是两个下位机同时发送485信号,直接信号重叠然后导致数据乱码吧!尽量保证485在发送的时候只有一个在发

dellric 发表于 2014-5-6 11:03:24

调试RS485的时候出现的问题大多是人品问题,考虑问题不周全,急功近利,基础知识不牢靠,轻视设计需求等。但是,一旦调试成功后,这些人的人品会有大的爆发,因为他们知道了以后该怎么做。

lcw_swust 发表于 2014-5-6 11:10:49

发不出数据,首先需要确定485芯片的收发切换引脚、发送数据引脚是否有动作,才能确定是否在往外发数据。
如果确实没发送数据,那就要看程序了,看是否把下位机的数据当成上位机数据了,造成状态错乱。

咖啡可乐 发表于 2014-5-6 11:32:49

下位机返回数据不要固定不变,要带一些随机数,以确保数据不一致。
判断是否重复至少要进行3次以上。

18252776113 发表于 2014-5-6 11:57:39

本帖最后由 18252776113 于 2014-5-6 12:08 编辑

咖啡可乐 发表于 2014-5-6 11:32
下位机返回数据不要固定不变,要带一些随机数,以确保数据不一致。
判断是否重复至少要进行3次以上。 ...

感谢大侠指导,感觉很有道理,我试试,再次感谢。

18252776113 发表于 2014-5-6 12:06:35

wjshmily 发表于 2014-5-6 10:56
估计是两个下位机同时发送485信号,直接信号重叠然后导致数据乱码吧!尽量保证485在发送的时候只有一个在发 ...

谢谢你的回复,其实就是要地址重复的下位机,同时发送,产生乱码,然后上位机,就知道下位机地址重复了;
现在是两个地址相同的下位机,只有一个发出了数据,另一个没发出来,上位机只接收到一个下位机发出的正确数据,无法判断地址重复;

18252776113 发表于 2014-5-6 13:17:38

18252776113 发表于 2014-5-6 11:57
感谢大侠指导,感觉很有道理,我试试,再次感谢。

十分感谢,按照您的方法试了试,果然好多了;我总算明白了,通讯就是要用时间来换可靠性,{:handshake:}

18252776113 发表于 2014-5-6 13:18:54

咖啡可乐 发表于 2014-5-6 11:32
下位机返回数据不要固定不变,要带一些随机数,以确保数据不一致。
判断是否重复至少要进行3次以上。 ...

十分感谢,按照您的方法试了试,果然好多了;我总算明白了,通讯就是要用时间来换可靠性, {:handshake:}
页: [1]
查看完整版本: 请教大侠,RS485数据发不出来是怎么回事?