1)有可能电脑USB转串口接到设备上,使用的是标准串口功能,也就是除了RX,TX,GDN外,还使用了其它引脚。比如像欧姆龙PLC,三菱PLC,在实际与屏的通信中,就需要接某些引脚短接的情况。
2)电脑与控制器或PLC通信时,是扫描波特率参数,自适应的,屏通信可能参数没有设备好。在三菱,基恩士等PLC,就存在变化波特率进行通信交互的过程。
3)也有可能是接线方式不对。因为有些DB9,还需要公头,母头。如果不注意的话,也会存在把TX接到TX上,把RX接到RX上,这样需要注意的地方。
4) 在这里补充一下,有时候可能会使用一些串口助手发送测试数据与控制器通信,有些串口助手的奇偶校验是不起作用,这个要提醒一下。
2. 这A家的屏可以和设备通信,换成B家的屏就通信不上?
1) 首先确认一下接线是否正确了,RX和TX是否兼容。
2) 地线是否没有接。
3) 除了RX,TX,GND,是否还有其它引脚需要短接的。
4) 通信协议是否一致或不完善,波特率是否一样。
3. 以前不接地线可以通信,换个设备为什么需要接地线?因为有些设备使用了隔离电源。以前不接地可以通信,有可能是地线已经在另外一个环路已经共地了,实际地线已经接了,所以才可以通信。可能换了个带隔离电源的,两个设备的地是隔离的,就需要在串口上把地线接起来。
4. 一个设备是232,另一个设备是422,没有转换设备怎么办?
这个情况也经常遇到,客户的设备是422通信的,但是手边一时没有422设备,只有232通信可以测试。因此就需要把422转成232进行通信。
刚才也讲了422和232的接线,因为这两个都是全双工的,接收和发送都是分到的,而422只是以一种差分信号进行传输。
把422的Rx+与232的TX接,422的RX-与232的GND接。
把422的TX+与232的RX接,422的TX-与232的GND接。
这样,422设备要发送数据的,就可以发送到了232的RX上。232的TX发数据后,由于TX和GND也形成了差分信号给422,422就可以接收到数据了。
5. 用232通信没问题,用485通信没问题,使用232转485之后就通信不稳定?
232和485从通信原理上,大一个差别是全双工和半双工的区别。可是应用层发送数据和接收数据才不管底下是全双工还是半双工。
但是485就得管了。因为既然是半双工,就得严格保证通路上只能有发送或只能有接收的数据,一旦同时有发送和接收,数据就会冲突了。
所以解决的办法就是主站设备,也就是主动命令的一方就需要严格控制好发送数据命令的节奏了。当然有些232转485的设备做的比较好了,可以优化这个,但是主站还是要控制,比较把通信速率调节慢一些(不是调节波特率)。
6. 485单独接每个设备都通信正常,多个从站接一块通信就不稳定?
这个是属于485通信的不稳定因素了,关于这个问题,参见上篇《那些年趟过485的坑》。
7.针对串口通信的弱点,在使用上应该要注意哪些地方?
1)信号干扰的问题。建议使用带屏蔽线,接线要严格,比如要接地。有些485通信上,还考虑接上终端电阻来匹配。如果是232,尽量不要让线太长。通信协议上尽量避免长报文的数据通信。
2)波特率匹配的问题。因为有些设备的计算的波特率是存在误差的,特别是一些控制器,由于使用的晶振不一样。因此在一些波特率比如9600波特率就存在误差。存在误差带来的影响是什么呢。因为接收方是通过时间来计算一个位的。那么如果一个报文过长,就会存在误差积累的问题,算着算着就偏了。所以,这也是串口通信不稳定的一些地方,在使用上应注意避免发送太长数据的包。
3)在一些可能会存在干扰的情况,可以考虑使用奇校验或者偶校验。因为虽说出现错误的可能性不大,但既然存在干扰,如果加了校验,至少可以把错误的报文过滤掉。总好比没有校验然后通信数据错了不知道。或者尽量使用一些带校验的协议,防止数据出错。
4) 串口通信本来就比较慢,请降低对数据响应的要求。因为串口通信本身就比以太网慢。而且,串口通信并不是能像CPU那样多线程处理。因为就一个口一个线数据出去,即便你应用到程序再怎么用多线程处理数据,但是底下也只有一个口出去,一次也只能传一个位,一个字节过去。因为有客户在使用9600的波特率通信,但是又希望多少的数据可以在多少毫秒内得到响应。
2)电脑与控制器或PLC通信时,是扫描波特率参数,自适应的,屏通信可能参数没有设备好。在三菱,基恩士等PLC,就存在变化波特率进行通信交互的过程。
3)也有可能是接线方式不对。因为有些DB9,还需要公头,母头。如果不注意的话,也会存在把TX接到TX上,把RX接到RX上,这样需要注意的地方。
4) 在这里补充一下,有时候可能会使用一些串口助手发送测试数据与控制器通信,有些串口助手的奇偶校验是不起作用,这个要提醒一下。
2. 这A家的屏可以和设备通信,换成B家的屏就通信不上?
1) 首先确认一下接线是否正确了,RX和TX是否兼容。
2) 地线是否没有接。
3) 除了RX,TX,GND,是否还有其它引脚需要短接的。
4) 通信协议是否一致或不完善,波特率是否一样。
3. 以前不接地线可以通信,换个设备为什么需要接地线?因为有些设备使用了隔离电源。以前不接地可以通信,有可能是地线已经在另外一个环路已经共地了,实际地线已经接了,所以才可以通信。可能换了个带隔离电源的,两个设备的地是隔离的,就需要在串口上把地线接起来。
4. 一个设备是232,另一个设备是422,没有转换设备怎么办?
这个情况也经常遇到,客户的设备是422通信的,但是手边一时没有422设备,只有232通信可以测试。因此就需要把422转成232进行通信。
刚才也讲了422和232的接线,因为这两个都是全双工的,接收和发送都是分到的,而422只是以一种差分信号进行传输。
把422的Rx+与232的TX接,422的RX-与232的GND接。
把422的TX+与232的RX接,422的TX-与232的GND接。
这样,422设备要发送数据的,就可以发送到了232的RX上。232的TX发数据后,由于TX和GND也形成了差分信号给422,422就可以接收到数据了。
5. 用232通信没问题,用485通信没问题,使用232转485之后就通信不稳定?
232和485从通信原理上,大一个差别是全双工和半双工的区别。可是应用层发送数据和接收数据才不管底下是全双工还是半双工。
但是485就得管了。因为既然是半双工,就得严格保证通路上只能有发送或只能有接收的数据,一旦同时有发送和接收,数据就会冲突了。
所以解决的办法就是主站设备,也就是主动命令的一方就需要严格控制好发送数据命令的节奏了。当然有些232转485的设备做的比较好了,可以优化这个,但是主站还是要控制,比较把通信速率调节慢一些(不是调节波特率)。
6. 485单独接每个设备都通信正常,多个从站接一块通信就不稳定?
这个是属于485通信的不稳定因素了,关于这个问题,参见上篇《那些年趟过485的坑》。
7.针对串口通信的弱点,在使用上应该要注意哪些地方?
1)信号干扰的问题。建议使用带屏蔽线,接线要严格,比如要接地。有些485通信上,还考虑接上终端电阻来匹配。如果是232,尽量不要让线太长。通信协议上尽量避免长报文的数据通信。
2)波特率匹配的问题。因为有些设备的计算的波特率是存在误差的,特别是一些控制器,由于使用的晶振不一样。因此在一些波特率比如9600波特率就存在误差。存在误差带来的影响是什么呢。因为接收方是通过时间来计算一个位的。那么如果一个报文过长,就会存在误差积累的问题,算着算着就偏了。所以,这也是串口通信不稳定的一些地方,在使用上应注意避免发送太长数据的包。
3)在一些可能会存在干扰的情况,可以考虑使用奇校验或者偶校验。因为虽说出现错误的可能性不大,但既然存在干扰,如果加了校验,至少可以把错误的报文过滤掉。总好比没有校验然后通信数据错了不知道。或者尽量使用一些带校验的协议,防止数据出错。
4) 串口通信本来就比较慢,请降低对数据响应的要求。因为串口通信本身就比以太网慢。而且,串口通信并不是能像CPU那样多线程处理。因为就一个口一个线数据出去,即便你应用到程序再怎么用多线程处理数据,但是底下也只有一个口出去,一次也只能传一个位,一个字节过去。因为有客户在使用9600的波特率通信,但是又希望多少的数据可以在多少毫秒内得到响应。
更多关于繁易资料请咨询:http://flexem.gongboshi.com/