距离上一次的故事4(我与PROFINET不得不说的事-04对比-技术论坛-工业支持中心-西门子中国 (siemens.com.cn))觉得已经有很久没有更新了,不是我不想去更新故事5,而是每次写到一半都在后来又删除了,所写的内容总是不满意,总是觉得不该先写这个或者那个部分,觉得这个部分太简单,或者觉得那个部分太难,犹犹豫豫间时间就这样流逝了。我想说:“我太难了!,哈哈!”。而这次我觉得和大家聊一聊带宽这个概念,从此入手,再拓展到PROFINET的报文,带宽预留本身上来,循序渐进,让大家逐渐理解这些我们常听见,或者看见,只是没有对这些概念的感性或者理性认识。
言归正传,手册上常说,PROFINET是开放的,标准的,实时的以太网标准,基于快速以太网。从概念的角度,对于10Mbits/S的以太网是标准的以太网,现在几乎看不见了。因为它被更快速的带宽100Mbits/S的以太网所取代,称为快速以太网。所以我们现在在谈自己的工业网络时,实际上都是基于快速以太网100Mbits/S,只是我们简单的称其为以太网。从技术术语或者专业概念的角度来说,我们要严格的区分使用的是以太网还是快速以太网。
对于百兆带宽,我简单的描述一下,就是每秒钟传输100000000个位,这就是对于带宽的简单描述。或者我们可以变形这个带宽的单位为12.5MBytes/S,即每秒钟传输12500000个字节。我们知道以太网中传输都是数据帧,数据帧的结构如下,那么用户数据从帧结构上看是46-1500Bytes字节长度,但真实的用户数据取决于使用什么样的通信协议,例如,TCP/IP协议通信,那么报文帧中的User Data部分包含IP报文头(20字节),TCP报文头(20字节),这样真正的用户数据最大为1460Bytes(1500-20-20)。所以报文除了协议数据单元PDU的报文头,以及除了帧部分的其它字段的字节,我们姑且认为快速以太网中的真实数据带宽约为10MBytes/S(也可考虑除去交互帧,例如:用于连接的帧所占的数据带宽)。利用这个数值有利于与用户交流时,大家谈的是同一个概念,因为我们在谈论的时候都是在说我有多少AI/AO数据或者你要传输给我多少字节的数据。
这些描述都是数字的概念,大家可能还是不能有感性的认知。可以给大家举一个PLC通信的例子,例如:OUC的TCP/IP通信。使用两台CPU1516-3PN/DP,都不采用最小的CPU循环周期选项,也就是程序有多快就运行多快。两个CPU之间使用TCON建立一个TCP的连接,发送方使用1个TSEND发送64Kbytes数据,这是TCP所能传输的最大字节数。自然,接收端使用1个TRECV来接收64Kbytes。对于发送端的REQ触发,采用最快的触发方式,例如使用M0.0的常闭触点输出至M0.0的线圈,即使用M0.0进行触发,这样REQ每隔一个CPU周期上升沿出现一次。这样实际上只是这样一个连接的投入,网络带宽就将近20Mbits/S。看下图!这样大家知道了原来这样的通信组态和编程会占用四分之一的百兆带宽!所以根据大家的网络拓扑情况,在组态和编程TCP/IP或者S7通信的时候,尤其是快速发送大量数据时需要注意带宽的问题。
这样在我们做PROFINET通信的时候,同样也要有这样的概念,设置的Update Time时间越短,IO设备的IO模板越多,占用的带宽就越大。但不会占用所有的百兆带宽,因为PROFINET规范中规定会预留50%的带宽用于非实时的数据,例如TCP/IP通信。所以我们在设置IO的Update Time的时候要根据实际情况来进行设置,如果需要IO的快速的响应,那么Update Time必然要符合工艺要求,理论上越快越好。如果读取现场的温度或者压力等模拟量的变量,那么可以适当的延长Update Time时间,这样可以减少对网络的带宽的占用。
我们再把目光投向PROFINET的报文帧的结构,除了加入4个字节的VLAN Tag,实际上和标准以太网报文之间毫无区别。大家都知道VLAN Tag的作用就是增加PROFINET实时通信的实时性能。
而这里还有一个12个字节的字段,就是最前面的MinNRTGap,它表示帧和帧之间传输的最小间隔时间。实际上任何的以太网通信中都会存在这个字段,只不过这个字段可能会>12Bytes长度。再回到前面的百兆带宽的单位100Mbits/S,通过换算可以知道以太网传输一个字节的时间为1000000us/12.5x1000000=0.08us。那么对于一个PROFINET的最小帧的传输时间的计算如下,(12+7+1+6+6+4+2+2+40+2+1+1+4)x0.08us=88x0.08us=7.04us。而7.04us就是PROFINET网络中带宽的概念!那么为什么在PROFINET通信中要提到且使用这个MinNRTGap概念?还有为什么在PROFINET这里采用传输时间的概念来理解带宽,而为什么不采用前面提到的Mbits/S的概念呢?这些问题我会在下一个故事中逐步展开,而这里再引用一张来自TIA Portal中组态PROFINET通信时,大家常常看见,可能却没有注意,或者没有深思过的关于PROFINET带宽预留的组态计算的结果,看看大家想到了什么?想想0.704%是如何而来?
我们会下一期继续深入的探讨关于PROFINET的概念、理论以及应用的注意事项,如果您对这一期的故事留有疑问,请点击下面的留言区,我们可以相互交流。