展开查看
以下是引用Zaxife在2019-11-02 09:45:01的发言 >3楼:波特率9600的话,Modbus的数据位8位、停止位1位、无校验、一个起始位,也就是传输一个字节大概10位,也就是大概传输一个字节需要1/9600/10=1.04ms。
理想的一次读取返回单个寄存器数据消耗时间: 沉默4ms、主站读取指令8个字节9ms、沉默4ms、等待从站处理数据5ms、从站返回字节7个8ms、沉默4ms、主站接收处理完成5ms,一个流程下来 4 + 9 + 4 + 5 + 8 + 4 + 5 = 39ms。
如果超出这个时间说明时间都消耗在从站处理数据、主站处理数据上消耗太多时间。比如那RTOS单片机系统,每个任务时间片10ms的话,上面的任务时间就在39ms以上了。不过,对于处理器更快的单片机系统,从站处理等待2ms就完成、PLC处理2ms就完成,上面一次通讯任务时间可以缩短到29ms,嗯这是最快的了。
主站从发送数据请求到接收到从站数据的应答,真如你说的那样七七八八加起来的总时间和的过程。
这个时间就包含主、从双方接收到数据,再处理,再发送的全过程。