quote:以下是引用szy868在2009-10-31 12:27:15的发言:quote:以下是引用Dawn Dawn在2009-10-31 08:06:53的发言:
我经常用到串口通讯,与PLC通讯,与各种仪表通讯。但是串口一旦阻塞或者中断就无法自动恢复通讯了,只能关闭串口在重新打开。麻烦高手们还有别的更好的办法吗?因为有些传上来的数据要求很高的实时性。
这里看到有几位提到串口阻塞的问题,我不明白这个阻塞到底指的什么状态。
通讯中断的问题是可以在编程中解决的,没有必要关闭串口后再重新找开。对于轮询方式,利用定时器监视查询仪表数据是否在一定时间内返回,如果没有返回,则重发一至两次,如果确认没有返回数据,则可在以后的轮询中跳过该仪表,这样可以节省时间。也可以设定一个较长的时间,用于通讯失败后的再次启动查询,还可设定一个位寄存器,用于人工启动通讯。只要把引起通讯中断的原因找到,总是可以找到办法解决的。
串口通讯的实时性本来就不高,不大可能用来做实时控制。