回复:smart200 的modbus通讯

已锁定

yanxiao

版主

  • 帖子

    12317
  • 精华

    49
  • 被关注

    193

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2024-03-09 21:14:09

7楼

展开查看
以下是引用阳春节拍在2024-03-09 17:42:07的发言 >3楼

通常最有效的RTU从站:接收消息,起始判断以3.5字符空闲间隔加本站号;结束判断以3.5字符间隔,甚至可以以收到的消息数据结构来判断。

从站应答消息,起始时刻,以设定的最短延迟或应答数据准备完成,以先到者为准,很多变频器默认为2毫秒。

所以,设定50ms的应答延迟肯定是有点高了,作为plc来说,准备这么点应答数据,就是以最高通讯波特率来算,也超不过1个字符时长。之前研究过官方RTU库,感觉在很多方面都设计的通讯效率不高,而且在稍有干扰的情况下,程序自身的处理会无效地加大通讯延迟。但作为485来说,通常并没有很高的通讯速度需求,官方库足够用了

再讲一些看法吧。

1、楼主的50ms,仔细看他的问题描述,存在很多笔误的。

2、主站库设置的时间比如50ms,是指超时时间,也就是在这个时间内没有收到从站应答,认为从站不会再应答,设置Done=1。

3、主站发送完modbus帧后,立即进入接收,没有加入延迟。3.5字符的间隔判断,是从站作出的判断。

4、官方主站库的通讯处理,是在主扫描中进行的,因此,轮询速度受扫描周期的影响。如果要最快地轮询,可以写完全由中断驱动的程序,采用115200bps速度,一次简单的通讯,可以在10ms以内完成应该是有可能的。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9363条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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