恭喜,你发布的帖子
发布于 2024-07-11 23:05:00
3楼
串口Uart组态,你不是设定了起止条件约定。任意或特定字符,超过多少时间之类的,就是帧的范围界定。就相当于Receive-Config指令的管脚设定。
本质上,就是在OSI模型第二层(数据链路层)实现的协议。ModbusRTU只是嵌入进字符约定格式内部,被字符封装和承载的一种高层协议。
下图示波器是一个485线路上从站的ModbusRTU应答,其实是一个回答。
只是长度超过了64字节,超过了仪表的单次发送能力,就分两次发送,中间就有不到10ms的空闲(9600速度下,一个字符基本耗时1ms)。
官方Modbus指令会把这当作2帧来理解,就会报错。这种情况就需要自己用自由口制作Master指令。
下图是一次主从问答
如果发送能力强,可以一次发送很多字符,那就是很长的帧,甚至可以超过1024,比如嫦娥六号。
但现实世界不同仪器的能力有强有弱,有贵由便宜。大多仪器的通信芯片都比较便宜。随着时代,基本能力也会增强。但是老设计的低通信能力仪表也会大量存在。所以在给定串口组态条件下的,帧长度不一是必然。
1024字节是极限,基本上用不到这么多字符。20条信息,是限制字符总量,当然也在1024个字节里。从你的截图来看,35个字发送都要10ms周期了,更何况1024个字节。
请填写推广理由:
分享
只看
楼主