大家可能还是不能有感性的认知。结合上图给大家展示一个实验的结果,使用S7-1500作为IO控制器,(其它PLC也可以),使用两台ET200SP,在IO控制器侧设置SendClock为1ms,IO设备侧设置的刷新时间为2ms,那么可见下图左侧的实时数据的带宽。如果在IO控制器侧设置SendClock为2ms,IO设备侧的刷新时间仍为2ms,那么可见下图右侧的实时数据的带宽。由此一目了然!
我再具体解释一下,大家可以仔细观察Wireshark中的IOGraphs中的记录带宽结果,因为只有2个站,且数据较少,带宽不高,左侧图中带宽约为512bits/ms,右侧图中带宽是震荡的,Zui高为1025bits/ms,如果大家抓包请注意我图片中设置的单位和缩放后的刻度。右侧图中的带宽震荡的根本原因是2ms的SendClock中发送2个IO RT的数据是肩并肩的出现的,如下图。
我们再谈论第三个问题,结合第二个问题的回答,PROFINET的带宽计算以时间为单位是由于在Step7中计算RT或者IRT数据占用的带宽的大小的基数是SendClock,且SendClock的单位是时间,计算的RT/IRT预留带宽的大小就以时间为单位。而这个预留带宽的计算是基于IO控制器的接口输出RT/IRT数据的带宽计算结果。还是以上述的例子,在SendClock的时间为2ms,那么2个RT数据在一个SendClock中的发送是肩并肩的,下图Wireshark中MAC地址:F1是IO控制器,:8A和:41分别是两台IO设备。根据记录时间77112-70072,结果恰恰是7.04us,那么两个RT实时数据的带宽预留时间为7.04x2=14.08us。
此时Step7中的计算结果就如上述的计算结果一样,RT的计算带宽为0.014ms,而0.08us做了省略,因为0.704%的计算结果源于在2ms中PROFINET报文所传输的时间为0.01408ms,那么还是占用了0.704%(0.01408/2)。需要注意的是这个2ms是SendClock,而不是Update Time,切记!
以上就是我对这3个问题的解答,这里我想和大家讨论一下,根据故事中的知识,如果有4个IO设备,其中的1号设备的刷新时间是8ms,2号设备的刷新时间是4ms,3号设备的刷新时间是2ms,4号设备的刷新时间是1ms,而IO控制器中设置的SendClock为1ms,那么大家是否可以做出RT数据的时钟分布图,大家可以尝试一下来理解Send Clock和UpdateTime之间的区别。加精