quote:以下是引用依然在2011-07-24 15:10:40的发言:
Modbus通讯比较普遍,尤其在仪表方面,但是如果实时性要求比较高、从站比较多,还是存在一定的问题。
“从站掉电或者故障后,导致的通讯堵塞”--如果从站响应较快,可以把Reply monitoring time参数设置的小一些。这样主站就不会在故障从站上等待较多的时间。
“把该从站数据清除,结果跑偏,把正常的从站数据也清了”--CP341硬件在和从站通讯时,OB1主程序和341接收、发送数据过程之间应该是异步关系。在主程序中调用功能清除故障数据时,可能CP卡已经把下一个站的数据读到了通讯缓冲区。
通讯数据长度与通讯速率和Reply monitoring time也有很大的关系,如果Reply monitoring time太小,通讯数据太多的话,主站将不能接收到完整数据帧。
常用的方法是尽可能把Reply monitoring time时间设小一些,遇到通讯故障的从站时,置从站通讯失败标志,对于通讯故障时的从站数据主程序中不作处理。为了节省时间不进行重试操作。