专家大讲堂《PLC通信原理探秘》系列视频:https://www.ad.siemens.com.cn/service/elearning/series/288.html
最新更新:
连载之十: 【PLC通信原理探秘】大讲堂幕后彩蛋之远航
连载之十一: 【PLC通信原理探秘】大讲堂幕后彩蛋之搁浅
连载之十二: 【PLC通信原理探秘】大讲堂幕后彩蛋之有谁
连载之十三: 【PLC通信原理探秘】大讲堂幕后彩蛋之头疼
连载之十四: 【PLC通信原理探秘】大讲堂幕后彩蛋之求助
当通过300CP卡和400CP卡之间建立一个S7通信时,我们都知道无论是CPU还是CP卡都会占用一个S7连接资源,那么令我烦恼的问题又来了,既然CP343-1承担了S7协议的数据处理,这很好理解CP343-1会占用一个连接资源,那么300CPU为什么要占用一个S7连接资源呢?而400CPU承担了S7协议的数据处理,那么400CPU占用一个连接资源,那么为什么CP443-1还要占用一个S7连接资源呢?
愁深似海!苦大愁深!愁,何去何从!
这个问题的复杂超过了我的想象,我想我还有一些概念没有理解或者没有发现,该从哪里入手?或许我应该需要好好把资源这个概念弄清楚,这里有可能还是我对连接资源的理解不够深刻,否则我如何知道这个问题的答案?!
回顾开始接触通信的时候,接触到连接资源这个概念。其实在当时我也不是很懂这个概念到底什么意思,就是知道CPU属性中的连接资源16,就表示该CPU可以建立16个S7的连接。这似乎也没有什么值得研究的,16数字表示可以连接几个通信伙伴,仅此而已,仅此而已!
那从哪里去探寻一下,再去深入理解这个概念呢?突然有一天我看到手册中提到的做S7通信时Instances的个数限制。例如CPU319-3PN/DP手册中所提到的。
这又是什么?为什么还有这个限制?通过手册这个Instances就是编写S7通信所用到的背景DB,也叫任务Job,竟然发现编写S7通信程序,例如PUT,如果在一个程序中编写多个S7通信任务Job(例如:连接ID=1中存在10个PUT通信任务Job),那么其它S7连接的通信任务Job只能使用剩余的22个PUT或GET通信任务Job。若是一个连接中的通信任务Job占满,那么其它的连接的通信无法建立。这意味着连接资源的16并不能保证一定能连接到16个通信伙伴,这取决于Instances的数量。这个参数决定了连接伙伴的数量上限。既然两者在一个框框中出现,那么想象一下是不是两者结合一起代表通信资源呢,是不是两者存在某些联系,是不是一个是连接资源,而另一个是任务资源呢,是不是前者就是表示数量,而后者则表示质量。手册中并没有明确的说明,那么又如何证明是这样呢?
这个时候只能用参考来证明,例如CP343-1(343-1GX30-0XE0)手册中提到PROFINET IO的性能参数。按照上述的想象,同样128表示连接资源,即数量,而4096B表示任务资源,即质量。这样也是合理的,于是我就重新整理了手册中的这些概念,并统一称为通信资源。
这样看起来很美,很合理,然而在对待上述问题时,却无法使用这个概念来解释,来说服自己,肯定还有自己没有理解到位的地方,这又在哪里?
----------未完待续----------
连载之十六: 【PLC通信原理探秘】大讲堂幕后彩蛋之愁深
连 载 汇 总: 【PLC通信原理探秘】系列连载故事汇总