恭喜,你发布的帖子
发布于 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内部到底是怎么处理的了。
请填写推广理由:
分享
只看
楼主