RS485半双工modbus协议的读取速率问题。

2020-01-27 11:20发布

本帖最后由 QXKJ 于 2013-8-28 18:12 编辑

是这样的,通过MODBUS-rtu协议发送一个命令,比如03命令hex:01 03 00 00 00 01 84 0a 合计共8个字节。波特率9600.返回 :01 03 02 00 01 79 84 合计7个字节。如果算上帧头帧尾的3.5t,最快的收发次数1秒钟能达到多快?。我做下来两次发送最小间隔65ms收发正常,时间小于65ms则会出错,65ms测试10000次,无一次错误。请问这个1秒钟内的无误码读取的次数有要求吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
小徐
2020-01-27 16:19
理论计算:(8+7+3.5)*10 = 185bit (8,N,1),9600bps情况下1s通讯次数极限 = 9600/185 = 51.89,取51次。即每秒最多可通讯51次,20ms一次可以正常通讯。根据我的实际经验通讯间隔在理论值上增加5ms时完全可以可靠通讯,即25ms收发一次,每秒可通讯40次。当然这前提条件是你程序不能用查询方法接收数据,高速时你必须用中断,最好是用DMA,要不然你的CPU就不要干别的事了。做过测试,计算机做主站,软件用Modbus Slave,STM32主板做modbus从站,通讯一百七十多万次没出现一个错误,办公环境,没什么干扰。另外说下,通讯类程序我用的都是汇编,执行效率高。

一周热门 更多>