专家大讲堂《PLC通信原理探秘》系列视频:https://www.ad.siemens.com.cn/service/elearning/series/288.html
最新更新:
连载之十八: 【PLC通信原理探秘】大讲堂幕后彩蛋之前行
连载之十九: 【PLC通信原理探秘】大讲堂幕后彩蛋之一步
连载之二十: 【PLC通信原理探秘】大讲堂幕后彩蛋之之遥
连载之二十一: 【PLC通信原理探秘】大讲堂幕后彩蛋之残余
连载之二十二: 【PLC通信原理探秘】大讲堂幕后彩蛋之新敌
时光如梭,一转眼在西门子技术支持这个岗位上工作快15年了,我也从一名年轻的工程师也变成了老工程师。很遗憾,没有经历过S5到S7换代,那时我还在学校里,到工作中直接使用的是S7,可以说S7是看着我成长的,我也是看着它更新换代的,从S7-300/400PLC更新到S7-1500PLC,而它的很多通信的基本概念和理论没有改变。像我这样的“老生”还需要把这些“老”概念再好好谈一谈。
S7-300/400PLC通信负荷默认20%,到1500PLC的默认50%,前面提到很多通信,例如TCP都是发生在时间片的,并且这个参数的调整是直接影响这些发生在时间片上的通信的。那么调整通信负荷对于通信的影响到底是什么?
首先,根据手册公式,用来计算在一定通信负荷情况下的CPU的实际的循环周期。
我们都知道通信负荷会延长PLC的周期时间的,如果纯粹的OB1的循环周期是10ms,那么当通信负荷为20%的时候,切记这里说的不是参数调整为20%,是指实际的通信负荷为20%,那么PLC的循环周期会延长到12.5ms。那么设置通信负荷参数15%和50%,对于通信的影响是什么呢?
使用2台CPU1516-3PN/DP,取消最小循环周期为1ms的使能,建立TCP/IP通信,数据发送字节数为64K。在设置通信负荷为15%的时候,发送TCP的64K数据大约需要160ms,该时间的计算是来在Wireshark中的64K的TCP报文首尾的时间差。而在设置通信负荷为50%的时候,同样发送TCP的64K数据大约需要28ms。这意味着设置高的通信负荷可以在单位时间内发送出更多的数据,这是好的方面,因为这符合你设置高的通信负荷的预期,而负面影响就是产生高的带宽负荷,这又是你需要格外考虑的。
如果纯粹的OB1的循环周期是10ms,且设置最小的循环周期是15ms,通信负荷为20%,那么意味着整个循环周期将延长到18.75ms,而通信部分是3.75ms,死区时间是5ms。
但是由于CPU内部的优化,实际上的通信可用的时间是8.75ms,即如果设置的通信负荷是20%,这种情况下可用的通信负荷实际上高达46.67%。那么如果有这么高的可用的通信负荷是不是通信更快了呢?
仍然使用2台CPU1516-3PN/DP,设置最小循环周期为50ms,建立TCP/IP通信,发送数据仍为64K。在设置通信负荷为50%的时候,发送TCP的64K数据通过Wireshark查看大约需要350ms。什么?是不是哪里弄错了?
按照上面的公式,且不说可用的通信负荷可以超过50%,就单纯的通信负荷为50%,发送64K的数据,对于1500来说是绰绰有余的,上面的实验只需要28ms。而现在的350ms是什么原因导致的呢?看来还有未解之谜。
----------未完待续----------
连载之二十四: 【PLC通信原理探秘】大讲堂幕后彩蛋之常谈
连 载 汇 总: 【PLC通信原理探秘】系列连载故事汇总