欢迎来到西门子工业支持中心网站!
欢迎来到西门子工业支持中心网站!
今天我们开始故事6,继续故事5来讨论一下PROFINET中带宽。在故事5(我与PROFINET不得不说的事-05-带宽-技术论坛-工业支持中心-西门子中国 (siemens.com.cn))中,提到了带宽的两个单位,一个是Mbits/S,例如100MBits/S,就是我们常说的快速以太网的百兆带宽;另外一个是us,例如7.04us,就是最小PROFINET RT报文在快速以太网上的传输时间。而在Step7中显示0.704%,表示的是循环数据的计算带宽,即在1ms中PROFINET RT报文所传输的时间为0.00704ms,那么就占用了1ms的0.704%。
这里有三个问题我们需要考虑清楚,第一个问题,1ms表示的什么?是否是用户定义的IO的刷新时间?第二个问题,PROFINET RT报文的传输时间计算为什么要考虑MinNRTGap;第三个问题PROFINET计算的带宽(Calculated bandwidth)为什么以时间为单位。
我们先看第二个问题,这个答案我简单的描述一下,与传统的TCP/IP,或者用户常常使用的S7通信不同,PROFINET的循环数据,例如RT数据,IO控制器在一个Send Clock中发送多个RT报文时,这些RT报文是肩并肩、连续发送出去的,那么大家可能会回想做TCP/IP通信,TCP的报文不也是连续的吗,但是这些报文不是肩并肩,也就是报文和报文之间的时间间隔时间都比较长,所以这个NRTGAP可以忽略不计,而PROFINET由于其实时性的要求,RT报文都是肩并肩排队发送出去的,这时RT报文之间的间隔就变为MinNRTGap,也就是12个字节,是报文之间最小的时间间隔。所以PROFINET循环数据的计算传输时间7.04us就需要考虑这12个字节。
然后再回答第一个问题,因为在问题2的解答中,我提到了Send Clock这个概念,而我们在Step7组态PN IO通信时,大家可能会经常看到,那么它和Update time之间的区别或者有什么关联呢?
IO控制器中的Send Clock的设置:
IO Device中的Update Time的设置:
先描述一下Send Clock,这个词中文翻译就是发送时钟,用来表示在一个发送时钟的时间间隔内提供RT/IRT数据的能力,或者说是发送RT/IRT数据的最小时间间隔,再者说是RT/IRT数据的出现本质上是在Send Clock时间内。说来说去,大家可能还是不理解,那么我们再结合Update Time,例子中为2ms,就是用户希望IO控制器与IO设备相互交换数据的循环周期时间。而2ms的Update Time实际上有2个Send Clock组成,这样Update Time=Send Clock x Reduction Ration (2ms=1msx2),2就是这个例子中的减速比。也许大家看过详细的PROFINET标准中关于这方面的计算,还有Sendclockfactor,Phase等其它概念,这些放在一起计算比较复杂且难以理解,这里我所描述的公式更便于大家理解。PROFINET的Send Clock就是发送RT数据的时间单位,为了优化带宽,RT数据会自动分布在多个Send Clock中,下图例子中使用了2个IO设备,Send Clock为1ms,Update Time都是2ms。图中是优化的结果,两个IO设备的刷新时间都是2ms,而不是Frame1和Frame2都出现在Send Clock1中。
大家可能还是不能有感性的认知。结合上图给大家展示一个实验的结果,使用S7-1500作为IO控制器,(其它PLC也可以),使用两台ET200SP,在IO控制器侧设置Send Clock为1ms,IO设备侧设置的刷新时间为2ms,那么可见下图左侧的实时数据的带宽。如果在IO控制器侧设置Send Clock为2ms,IO设备侧的刷新时间仍为2ms,那么可见下图右侧的实时数据的带宽。由此一目了然!
我再具体解释一下,大家可以仔细观察Wireshark中的IO Graphs中的记录带宽结果,因为只有2个站,且数据较少,带宽不高,左侧图中带宽约为512bits/ms,右侧图中带宽是震荡的,最高为1025bits/ms,如果大家抓包请注意我图片中设置的单位和缩放后的刻度。右侧图中的带宽震荡的根本原因是2ms的Send Clock中发送2个IO RT的数据是肩并肩的出现的,如下图。
然后我们再谈论第三个问题,结合第二个问题的回答,PROFINET的带宽计算以时间为单位是由于在Step7中计算RT或者IRT数据占用的带宽的大小的基数是Send Clock,且Send Clock的单位是时间,所以计算的RT/IRT预留带宽的大小就以时间为单位。而这个预留带宽的计算是基于IO控制器的接口输出RT/IRT数据的带宽计算结果。还是以上述的例子,在Send Clock的时间为2ms,那么2个RT数据在一个Send Clock中的发送是肩并肩的,下图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是Send Clock,而不是Update Time,切记!
以上就是我对这3个问题的解答,这里我想和大家讨论一下,根据故事中的知识,如果有4个IO设备,其中的1号设备的刷新时间是8ms,2号设备的刷新时间是4ms,3号设备的刷新时间是2ms,4号设备的刷新时间是1ms,而IO控制器中设置的Send Clock为1ms,那么大家是否可以做出RT数据的时钟分布图,大家可以尝试一下来理解Send Clock和Update Time之间的区别。
还有我想倾听一下大家的想法和需求,需要我给大家阐述哪些相关的PROFINET知识和概念,大家可以点击下面的留言区,留下您的需求,我可以把你们的问题和我的答案编辑到我的故事中。如果您有相关的技术问题和疑问,我们也可以在这里相互交流。
也就是说:A、首先保证每个设备刷新周期恒定;然后平均分配每个时间片段通信量
B、首先保证每个设备刷新周期恒定;然后每个设备起始时间是通讯周期的一半
提到冗余,S7-400H可以通过CPU集成的PN接口进行冗余的modbus tcp通信,为什么这里用modbus tcp来进行冗余,能不能用profinet进行冗余,
手机用户20210311894516:15楼2021-07-02 21:34:25
1 请问profinet支持千兆带宽吗,对工业交换机有什么要求吗
2 profinet与ethercat相比有什么区别,在profinet网络中如果有一个设备出现通讯故障,对整个网络会有什么影响,
3.怎样提高整个profinet网络的通讯速度与可靠性,这个速度最快可以到多少
4.抗干扰的性能如何
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
1,PLC的以太网接口支持千兆,但并不意味着PN支持千兆,因为目前所有的做PN通信的接口都是百兆,且规范也说是百兆全双工的以太网,且不能是千兆还有一个原因,就是算法一旦是千兆会全部改变。对于交换机的要求,可以说任何交换机都支持,但是需要更好的支持,那么需要交换机支持IEEE802.1e就是识别VLAN标签的优先级,可以优先转发优先级高的报文。但是有些交换机,例如SCALANCE X414-3E还支持IEEE802.1Q,会对VLAN标签进行识别和操作,那么一旦使用这种交换机,PN的标签会被默认情况下去掉,优先级不再存在,就失去了原来的优先级的优势。所以可以选择XM400新的交换机,并选择透传方式。或者使用简单的200系列的交换机。
2,PN可以做到125us实时周期的通信,通过PN v2.3,(这里我不提第三方的产品的特点,您可以自己对比,我说的这些),且是以太网,可以连接所有的以太网设备在网络中。且抖动精度为1us,是目前最高的通信的抖动精度,可以实现更高精度的运动控制。
对于一个设备出现故障,这就要看这个设备的重要性和在网络中的位置来决定对于网络的影响。如果重要,可以使用MRP或者MRPD实现冗余来通信。否则与通用的以太网区别不大,因为你连接的网络拓扑可能是树形或者星型,只要连接的交换机不断电,DTE故障对于其它的通信没有什么影响。
3,提高可靠性,说白了就是不发生掉站,那么除了前面说的冗余之外,就是接线要标准,不要发生线芯以及屏蔽线短路的情况。速度可以高达125us,当然取决于你使用什么样的CPU,例如1518.
4,抗干扰性能,要知道干扰一般都在同频,那么100MHz现场干扰信号难找,此外西门子的总线的抗干扰做的非常好,所以现场应用基本无需考虑这一点。
1 请问profinet支持千兆带宽吗,对工业交换机有什么要求吗
2 profinet与ethercat相比有什么区别,在profinet网络中如果有一个设备出现通讯故障,对整个网络会有什么影响,
3.怎样提高整个profinet网络的通讯速度与可靠性,这个速度最快可以到多少
4.抗干扰的性能如何
对于aaaapk的回复,我想多说两句关于技术点的澄清:
send clock默认1ms,表示发送RT数据的最小的时间间隔,也表示发送RT报文数量的能力。
因为我们知道一个最小的RT报文,最小的长度为88字节,带宽7.04us,这意味着1ms可以发送500us/7.04us=70的数量,理论上。但是由于访问寄存器(大学中的数电知识)的问题,可以连接64个站。
500us表示50%的send clock,这是由PN标准决定的,因为要给NRT预留50%的带宽。
所以1ms可以存在多个RT报文帧.
对于1ms可以连接多少IO设备,你在博途中使用1200和1500来组态就清楚实际和理论的差异,也会理解两款PLC的性能。
感谢各位网友的回复和支持!!!特别感谢aaaapk的回复和积极参与,这里我给出我的答案,供您参考!
如果您有其它问题,我想我们有如下途径:
1,专家诊断,http://www.ad.siemens.com.cn/club/bbs/bbsdoc.aspx?b_id=153
有详细,复杂的案例需求,可以提交相应的文档,西门子会有Certificated专家给大家解答或者现场支持,目前免费!!
2,可以在原帖上不断的提问。
3,不知道大家需不需要我开辟一个专门帖子,回答大家的技术问题?
请填写推广理由: