本帖最后由 denvice 于 2011-11-18 11:54 编辑
最近在研究485通信,结果遇到了问题;公司有两种产品一种是温控器,采用485总线通信,协议是Modbus协议,另外一种是我设计的一种协议转换器,使用的协议也Modbus协议;一开始编程序的时候,我的转换器接收数据的方法是将3082设置为接收模式,一收完数据马上置为发送模式,如果数据不是发送给我的那么我将3082置为接收模式。这么设计的话通信过程中传递55个字节都是很正常的,但是如果传送的数据量大了就会丢失一两个数据;比如发送205个结果收到了203个,我用示波器观察过数据,数据是没有丢失的,我怀疑中途有某个数据的起始位或者是结束位等受到了破坏。后来我将程序改了一下,程序一上来3082是接收模式,如果发送的数据是给我的那么我将转换器置为发送模式,如果不是我不做任何更改,这么处理的话我的数据传输不会出错,但是我发现如果将我的协议转换器和温控器联网,我的没有任何问题,但是温控器会有传输数据丢失的情况;我的转换器影响了别的产品的通信;我觉得有我的问题也有温控器的问题;首先我的产品应该是存在干扰的,然后温控器的程序的抗干扰性做的不好;希望有类似经验的同志指导!!! |