1. 百度知道:超时时间的设置主要取决于总线上反应最慢的节点的反应时间,另外,也要考虑主节点轮询所有的节点需要的时间。
假设总线上所有的从节点里面,反应最慢的从节点的反应时间是100ms,超时时间设置在这个基础上加上一个完整数据包收发的长度就差不多了。最长的数据包一般是256字节,在11位9600BPS下这大概需要300ms,那么超时时间比400ms长一些就可以,比如说500ms。当然,再长一点也可以,比如说1秒钟,但太长就会出现另一个问题,总线轮询时间。
假设总线上的所有期望的从节点都在线,正常情况下,超时时间设的再长也问题不大,但如果有一个从节点不在线,那每次访问这个不在线的从节点,都会经历一次超时时间,这时,如果超时时间设置太长,就会影响主节点对其他从节点的访问。
结论,一般设置500ms到1000ms就可以,太长影响总的轮询时间,太短可能会有的从节点反应慢,来不及响应。
个人总结:说的比较片面吧,或者说modbus这种方法不一定适合公司这个"网关代理"产品,我觉得在收到数据的时候,重新加载一个数据就好。
时间: 2024-10-13 02:10:59