故事作者:赵欣

最近创作

看看TA的故事

【PLC通信原理探秘】大讲堂幕后彩蛋之远航

已锁定

赵欣

官方工程师

  • 帖子

    391
  • 精华

    54
  • 被关注

    186

论坛等级:奇侠

注册时间:2006-07-07

黄金 黄金 如何晋级?

【PLC通信原理探秘】大讲堂幕后彩蛋之远航

6364

4

2020-03-17 13:17:18

star star star

专家大讲堂《PLC通信原理探秘》系列视频:https://www.ad.siemens.com.cn/service/elearning/series/288.html

 

连载之一: 【PLC通信原理探秘】大讲堂幕后彩蛋之序言

连载之二: 【PLC通信原理探秘】大讲堂幕后彩蛋之初探

连载之三: 【PLC通信原理探秘】大讲堂幕后彩蛋之失败

连载之四: 【PLC通信原理探秘】大讲堂幕后彩蛋之曙光

连载之五: 【PLC通信原理探秘】大讲堂幕后彩蛋之黑暗

连载之六: 【PLC通信原理探秘】大讲堂幕后彩蛋之破局

连载之七: 【PLC通信原理探秘】大讲堂幕后彩蛋之扬帆

连载之八: 【PLC通信原理探秘】大讲堂幕后彩蛋之柳暗

连载之九: 【PLC通信原理探秘】大讲堂幕后彩蛋之花明

 

        理解时间片和CCP的概念是理解西门子PLC通信原理的钥匙,因为有了这个钥匙,才能进入到PLC通信世界,才能领略到PLC通信的精彩!

         研究完时间片和CCP概念,也理解了20%参数的作用和意义。喜悦的感觉油然而生,觉得过去辛苦的付出终于有了回报。然而在PLC通信上仅仅才刚刚开始,笔记本上的众多问题知识解决了一部分,还有很多尚未解决。还要不断前行,去探索那些未知的知识。

         眼前就有这样的问题,20%参数决定了发生在时间片上的通信,也就是发生在时间片上的通信会受这个参数的影响,那么调整20%的大小,对于通信的影响会是如何呢?

         还有前面的试验。PG与S7-300/400设置MW10参数的例子,无论 S7-300还是S7-400,甚至S7-1500,PG写入MW10的数据是先被某数据缓冲区缓存了,然后出现时间片或CCP通信,数据才出现在PLC的循环周期中,那么这个通信缓冲区与手册中提到的work memory,code memory是否存在关联?或者说它在哪?

         此外前面也谈到过数据一致性,通信的数据一致性到底是什么?按照什么来设定一致性长度的?为什么 S7-300还是S7-400,甚至S7-1500的S7通信的数据一致性的长度会不同?那么如果S7-300与S7-1500通信双方的数据一致性会不同还是相同?

         有了这些问题,我不知道该从哪里研究,似乎每个问题都很大,背后隐藏的知识好像都很多。好像要捋顺的东西也很多,不如去看看现成的成果吧,那就是Wireshark抓到的那些S7报文。

         从Wireshark看到的那些S7报文,其格式都是按照如下的S7数据帧的方式进行封装的。要理解这个报文的封装,应该从ISO/OSI参考模型说起。

        很幸运,研究Profinet,接触过这个概念,对于Profinet为什么具有实时的快速性,其中关键的一条就是通信堆栈的时间缩短了,也就是从第7层数据层直接落到第二层数据链路层,省略了6,5,4,3层的数据封装,所以通信的实时性尤为快速。所以,Profinet IO帧不会像S7帧那样,没有IP header以及TCP header。

        那么看到S7帧,就知道它是典型的IP包,从ISO/OSI的角度,在S7 data位于第7层,在进行下层封装时,会加载S7报文头,然后落到第4层,加载TCP报文头,接着落到第三层,加载IP报文头,以此类推,最后封装成帧,发送到接收方,然后再按照ISO/OSI参考模型解包,直到推送到第7层获取到S7 Data。

        在WIreshark中,除了S7 data可以解释外,S7 Header是无法解析的,因为这属于西门子的私有协议,不对外公开,然而这不影响我对它的研究和理解。首先,PLC的S7通信有3种方式,分别是BSEND/BRECV,USEND/URECV,PUT/GET,从手册和3种不同的功能块进行S7通信,说明这是3种不同的S7协议,因为它们的通信行为不同。例如手册中提到 BSEND/BRECV是面向连接的,USEND/URECV是面向非连接的。那么我们就不能把所有的S7协议混为一谈,或者说手册中常提到的S7协议,是有针对性的,或者说S7协议其实是一个协议集。 而对于BSEND/BRECV对于S7-300,S7-400,S7-1500它们的数据一致性长度分别是240B,480B,960B,那么它们仍然属于相同的协议,仅是数据一致性的大小不同而已,就好像TCP/IP通信,有些PLC只能做8K的数据传输,而有些PLC可以64K,但是它们仍然是同一种协议TCP/IP,这其实取决于CPU的性能而已。

        基础理论的学习,有利于去了解更深层次的概念和理论,在学习PLC高级通信过程中,这些是必不可少的,要想远航,需要这些装备,这是我能够乘风破浪的基础保障。

 

----------未完待续----------

 连载之十一:【PLC通信原理探秘】大讲堂幕后彩蛋之搁浅 

 连 载 汇 总 :【PLC通信原理探秘】系列连载故事汇总


【PLC通信原理探秘】大讲堂幕后彩蛋之远航 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

西家技术派

共有64条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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