modbus主站轮询从站策略涉及三个方面影响:1波特率;2从站个数;3从站寄存器分布
1波特率直接影响轮询间隔周期,对于9600bps,读取100个连续地址的寄存器数据,大约需要215ms;而对于115200bps,读取100个连续地址的寄存器数据,大约需要20ms,因此不同的波特率,轮询周期设置不同.
2从站个数影响轮询总体周期
3从站寄存器分布情况也会影响轮询总体周期
从站寄存器地址分三种情况:
(1)地址分散,无法一次性读取所有数据;
(2)地址连续,且读取寄存器个数在100以内;
(3)地址连续,读取寄存器个数超过100
优化策略:
对于可一次性读取所有设备数据来说,利用联合体特性,将主站接收的从站数据一次性转移至设备联合体中,字节存入bytes中,寄存器数据利用联合体内存一致特性,可直接解析出结果,部分MCU需要交换字节处理
对于不可一次性读取所有设备数据来说,依次将数据存入接收队列buff数组中,按队列顺序解析设备数据