回复:1200串口通信当中的缓冲区问题

已锁定

手机用户20220609663610

  • 帖子

    165
  • 精华

    0
  • 被关注

    2

论坛等级:游侠

注册时间:2022-06-09

钻石 钻石 如何晋级?

发布于 2024-07-12 00:39:12

4楼

展开查看
以下是引用莘莘学子在2024-07-11 23:05:00的发言 >3楼

1024字节是极限,基本上用不到这么多字符。20条信息,是限制字符总量,当然也在1024个字节里。从你的截图来看,35个字发送都要10ms周期了,更何况1024个字节。

以下是引用宝冬在2024-07-11 21:10:30的发言 >1楼:串口Uart组态,你不...

引用1楼详细内容:

串口Uart组态,你不是设定了起止条件约定。任意或特定字符,超过多少时间之类的,就是帧的范围界定。就相当于Receive-Config指令的管脚设定。

本质上,就是在OSI模型第二层(数据链路层)实现的协议。ModbusRTU只是嵌入进字符约定格式内部,被字符封装和承载的一种高层协议。



下图示波器是一个485线路上从站的ModbusRTU应答,其实是一个回答。

只是长度超过了64字节,超过了仪表的单次发送能力,就分两次发送,中间就有不到10ms的空闲(9600速度下,一个字符基本耗时1ms)。

官方Modbus指令会把这当作2帧来理解,就会报错。这种情况就需要自己用自由口制作Master指令。



下图是一次主从问答


如果发送能力强,可以一次发送很多字符,那就是很长的帧,甚至可以超过1024,比如嫦娥六号。

但现实世界不同仪器的能力有强有弱,有贵由便宜。大多仪器的通信芯片都比较便宜。随着时代,基本能力也会增强。但是老设计的低通信能力仪表也会大量存在。所以在给定串口组态条件下的,帧长度不一是必然。


感谢回答

我还是没明白这个20条信息是啥意思?这里的信息指的是由多个字符帧组成的一条消息吗?还是指20个字符帧?

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15117条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。