回复:MODBUS TCP 通讯数据长度选择与数据一致性读写的疑问

Xu Shanhai

  • 帖子

    73
  • 精华

    3
  • 被关注

    22

论坛等级:侠客

注册时间:2006-06-21

普通 普通 如何晋级?

发布于 2017-09-13 11:15:08

18楼

 

Modbus tcp 实际上就是 TCP 通信,分析其数据一致性,其实可以参考 TCP 的数据一致性。

S7-1200 的 TCP 的发送与接收按流程来说可以分为:

发送方:数据区 -----> 发送缓冲区(应用层)-----> 发送区

接收方:接收区 -----> 接收缓冲区(应用层)-----> 数据区

S7-1200/1500 和 S7-300/400 PLC TCP 通信可以保证的数据一致性都为 8 K 字节

这个大家可以测试,比如说发送8K的数据过程中,在高优先级的OB中修改发送区数据,比如1ms修改一次,测试的结果是接收的8K数据中的并不存在被修改的数据。是不是很纳闷,发送8K 数据怎么也得100ms吧以上,怎么1ms的OB都没修改其数据那,我也奇怪。我是这样理解的,从数据区到发送缓冲区(应用层)的数据传输并不是依靠 MOVE 指令传输的,而已采用的地址映射过去并不存在传输。也就是说发送的数据只要小于 8K ,都应该是一致性的。

接收的过程也类似。

另外,TCP 、Modbus TCP 通信都是异步指令,我们可以采用 Done , NDR 等完成标准位来判断通信完成,完成后再修改数据发送区或读取数据接收区,这样就不用关心PLC内部到底是怎么处理的了。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15688条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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