关于s7-300和s7-400/1500对通信处理机制的不同的疑问(时间片和CCP)

看到西门子网站上西门子专家对300和400/1500 PLC对通信处理机制的深入分析的视频,我现在感觉越来越模糊了,视频上说300 PLC对各种通信(有限制)是在循环周期的末尾CCP(cycle control point)来进行处理的,而400/1500则是采用时间片(time slice)技术在循环周期的不同阶段进行处理,那如果我在400H系统中增加一个CP341进行modbus通信,那也是在400 CPU的TS(time slice)中的communication中进行数据的打包处理的嘛?那不是挺消耗cpu的资源,
那请问在TS的OS阶段cpu主要完成什么工作呢?  哪位大师有没有这方面比较深入的资料能否共享下看看,什么shadow buffer ,同步异步啊之类的,一头雾水现在!

最佳答案

问题还挺多,需要梳理一下,先按着自己的理解逐条回答你的问题
1.modbus RTU是7层协议,通过CP341来处理从应用层的数据处理,PLC中CPU和CP341做数据交互,即Programme程序处理将DB或者M或者IQ地址区的数据交互到CP341中,其它的都由CP341来完成。所以我认为如果采用了CP341处理的话,TS(time slice)中的communication部分应该是没有用到。
2.所以从你的问题来说,增加了CP341帮助CPU分担了通讯处理的内容。
3.TS的OS阶段cpu主要完成什么工作呢?主要用来程序里涉及硬件的部分交互,因为我们的OB组织块即是我们的程序和底层硬件的交互接口。
4.shadow buffer 的主要作用就是控制通信数据一致性的大小
5。同步,异步通讯-是指针对PLC,手册中所谈到的同步和异步,都是相对PLC的Cycle
事件在PLC的Cycle中处理就是同步的,否则是异步的,异步指令的执行需要占用PLC的资源。
关于通讯建议可以多做实验,多用抓包工具进行数据分析,慢慢就会有抽丝剥茧的认识!

提问者对于答案的评价:
十分感谢,不过我想问下,你所说的,多做实验,多用抓包的方式进行深入认识,比如我用个BSEND和BRECV功能块在414cpu和315cpu间进行s7通讯,那要用什么工具,什么样的方式抓包呢?谢谢!

最佳答案作者回复:
实际上我们的bsend&breceive 是我们程序指令,他做的事情就是把我们的DB区的数据推送给shadow buffer,它只做到这里只做到这个地步,剩余呢是CPU本身处理
用wireshark抓包,可以看到通讯的过程
wireshark抓包参考
https://www.cnblogs.com/moonbaby/p/10528401.html

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc287472.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月30日
下一篇 2020年10月30日

相关推荐