侯朝勇, 庄 童, 胡 娟, 毛海波
(1.中国电力科学研究院 北京 100192;2.北京国网普瑞特高压输电技术有限公司 北京 100192)
PROFINET实时工业以太网是由Profibus International(PI)组织提出的基于以太网的自动化标准,也是IEC 61784和IEC61158的重要组成部分,完全兼容以太网,作为新一代工业自动化通信标准,PROFINET技术囊括了诸如实时工业以太网、运动控制、分布式自动化、故障安全以及网络安全等当前自动化领域的关键技术;在分散式现场设备中可以直接通过使用PROFINET IO实现集成,并可以将Profibus技术和Interbus现场总线技术在整个系统中无缝地集成,构成从I/O级直至协调管理级的基于组件的分布式自动化系统的体系结构方案[1];同时,PROFINET可以在一根电缆上提供适应各种类型设备的3种通信信道:标准通道(TCP/IP,UPD/IP),实时通道 RT(Real Time)和等时同步通道 IRT(IsochronousReal Time),能为紧要任务提供最低限度的性能保证服务,同时也能为非紧要任务提供尽力服务[2]。重点介绍了PROFINET总线的实时通信机制及通信协议,并对通信实时性进行了测试。
实时表示系统在一个确定的时间内处理外部事件,确定性表示系统有一个可预知的响应;对于标准系统应用,实时通信的一般要求是:时间确定性行为和不多于5 ms的响应时间,这包含从信息的提供者到消费者的通信、信息处理和响应时间;对于运动控制应用,要求参与通信的终端设备周期的同步,其周期时间小于1 ms[3]。传统的TCP/IP在数据帧过载的情况下会引起线路上传输时间的增加,TCP/IP栈的延时最高达200 ms左右。PROFINET对于不同的应用其实时性能要求的不同,包含了3种实时类型,且这3种通道可以在同一个网络或设备上同时运行[4-5]。
1)用于非苛求时间数据的 TCP/UDP和 IP(NRT),例如:参数赋值、组态数据和互联信息,适合对时间要求不高的普通应用场合,满足自动化层与其他网络连接的需求。
2)用于苛求时间过程数据的实时通信(RT),适合中断数据和周期数据的传输,例如:工厂自动化领域,需要对IEEE802.1Q进行应用扩展,需要使用特殊的工业交换机。
3)用于时间要求特别严格的等时同步实时通信(IRT),特别适用于高性能传输、过程数据的等时同步传输,以及快速的时钟同步运动控制,IRT通道可以在1 ms时间周期内,实现对100多个轴的控制,而抖动不足1 μs。IRT需要使用特殊的工业交换机,且须对通信路径进行规划,明确通信规则。
这3种性能等级的 PROFINET通信覆盖了自动化应用的全部范围[6-7]。
PROFINET IO的实时通信功能主要是在交换式以太网的基础上,通过优化数据帧、RT实时通道以及时分复用等技术来实现。
在全双工交换式以太网中,因网络冲突而产生的时间延迟得到了很好的解决,但是在交换机内部依然存在可能产生延迟而造成不确定性通信的因素,如果交换机的转发口正在转发,或者当前有其他的以太网数据帧处于转发口队列时,实时以太网数据帧将阻塞在发送队列得不到及时发送,为减少此类延迟,IEEE802.1Q协议为发送的以太网数据帧分配了一个优先级,采用在以太网数据帧中增加VLAN标签来划分数据的优先级,VLAN格式在IEEE802.1Q中定义,将以太网帧分为0-7个优先级,PROFINET使用了VLAN标签对数据进行优先级划分,PROFINET实时报文遵从IEEE802.1Q标准对标准以太网帧扩展了4个字节的VLAN标签,以此来划分数据帧的优先级;PROFINET设备之间的数据帧由实时以太网交换机依据优先级进行处理,PROFINET数据帧的优先级是5-7级,而标准网络应用的优先级为0,由此确保PROFINET实时数据对于一般数据的优先处理;如图1所示;同时,IEEE分配以太网类型0x8892标识PROFIENT实时帧以与其它协议相区别,该类型是由IEEE指定的区别于其他协议的惟一标准,这样,以太网类型和帧类型ID码(FrameID)标识符一起可以对实时帧进行快速识别。
图2 PROFINET IO实时通道Fig.2 Channel of PROFINET
PROFINET提供适应各种类型设备的3种通信信道:标准通道(TCP/IP,UPD/IP),实时通道RT和等时同步通道IRT。这3种通道在同一个网络或设备上能够同时运行。RT通道能够采用软件方案实现,IRT通道一般采用专门的ASIC芯片解决方案。
PROFINET实时通道划分如图2所示,实时通信允许确定的传输时间,并能保证其他的标准协议(如 TCP/IP)可以在同一个网络中使用。PROFINETRT在实时通道中只保留了ISO/OSI 7层模型结构中的第1、2和7层,同标准TCP/IP协议栈发送数据过程相比较,PROFINET的应用层实时数据将直接交付给数据链路层进行发送,实时数据不需要复杂的通信协议处理,这样就大量减少了数据在通讯协议找中的处理时间,保证了一个网络中的不同站点能够在一个确定的时间间隔内进行时间要求苛刻的数据传输,从而达到实时通信要求。但是由于没有使用第3层网络协议,数据包的寻址不是通过IP地址来实现的,这样实时数据传输失去了路由功能,通过使用接收设备的MAC地址来寻址。
PROFINET采用的是100Mbps全双工数据传输模式,理论上作何一个设备都有可能一直使用100Mbps的速度传输以太网数据帧,在极端情况下,假如这样的数据传输方式一直存在的情况下,将会使实时通信无法正常工作,针对这种情况,PROFINET设计了时分多路复用机制来限制各个设备的发送行为,图3为PROFINET时分复用机制示意图,对实时数据和TCP/IP数据分割时间域,实现不同的时间传输不同的数据,采用专用ASIC芯片实现对实时信息帧的时间槽分配。每个发送周期的起始,由同步主机通过基于IEEE1588改进型的精确透明时钟协议PTCP(Precision Transparent Clock Protocol)协议进行同步,而网络中的交换机将会同步其时钟及IRT时间表,在一个数据发送周期内,第一个发送时间阶段是IRT数据发送阶段,所有的IRT数据帧将在此时间内发送,第二个发送时间段为RT数据,最后发送非实时数据。
PROFINET RT数据帧结构如图1所示,采用帧类型标识符用来表征两个设备之间的一个特定的通信通道,同时,为保证RT数据帧能在交换机中优先进行传输,通过VLAN标签给帧赋予了优先级。用户优先级可以取 0到7之间的数值。其中,0的优先级最低,7的优先级最高,RT实时帧一般以优先级6或7进行传输。
对于一个完整数据帧,必须包含前导码和帧间隙空闲时间(12字节),根据图1,最小RT帧为 88字节,最大RT帧为1 488字节。在 100 Mbps的传输速度下每个字节耗时80 ns。那么传输最小RT帧和最大RT帧的时间分别为7.04 μs和119.04 μs。数据在屏蔽双绞线中的发送速度大约为200 m/μs,如果两个设备之间的距离是100 m,则传输延时大约为0.5 μs。由此可见,发送最小长度RT帧经过100 m的长度应该为7.04 μs加上 0.5 μs,即 7.54 μs。 RT 帧是以存储转发的方式通过交换机进行发送的,单台交换机的存储转发延时等于帧长度除以传输速率。以100 Mbps为例,RT最大帧长是1 488 Byte,交换机存储转发最长延时大约为120 μs,RT最小帧88 Bytes的数据存储转发延迟时间大约为10 μs,
这里考虑一种极端情况,PROFINET IO设备的最长报文网络传输延时:RT数据帧经过交换机准备发送时,恰好交换机正在转发一个最大的非实时(NRT)以太网报文,RT的数据必须等待非实时(NRT)数据发送完毕然后再进行传输,此时IO设备的刷新时间的计算公式:
N:PROFINET站点总数
TNRT:最大NRT数据帧(1 518 Byte)通过以太网时间和交换机存储转发时间总和。采用的菲尼克斯交换机存储转发时间约为 150 μs。
nRT:最大 RT数据帧
TSF:交换机存储转发一个字节数据需要的时间,采用的菲尼克斯交换机约为0.1 μs
TSW:交换机在100 Mbps的速度下发送一个字节数据需要的时间,为 0.08 μs
TWLA:数据帧在传输介质上的传输总延时,在双绞电缆中约为 200 m/μs
在后续测试中,采用一台控制器和7个IO站点的数据通信,传输最小的 RT报文(88字节),PLC主控制器与交换机之间的距离为100 m,交换机与IO设备之间的距离忽略不计,那么最远的IO设备的数据刷新时间为:
实际上,传输RT数据帧,交换机正在接收或者转发一个最大NRT数据帧的概率很小,在后续的测试中设置刷新时间为 1 ms。
PROFINET的等时同步实时通信IRT是按照最苛刻的实时要求来制定的,IRT要求总线周期小于 1 ms,总线周期的最大抖动小于 1 μs,为实现IRT,PROFINET使用精确透明时钟协议PTCP来精确地记录传输链路的所有时间参数,PTCP是基于数据链路层服务的协议,不具备路由能力,采用具有最精确时钟(PTCP主站)的网络节点对其它节点的本地时钟(PTCP从站)进行微秒级的时间同步,通过周期性地交换两个网络节点之间的同步帧序列来实现,图4为PTCP数据帧结构。
图4 PROFINET PTCP数据帧结构图Fig.4 Architecture of PTCP frame
图5 PROFINET IRT数据帧结构Fig.5 Architecture of IRT frame
IRT数据帧是基于时间的通信,所以它具有明确的传输时间点。IRT帧由其在传输周期中所处的位置、帧类型标识符(FrameID)以及以太网类型(0x8892)来确定,图5为IRT数据帧结构。与RT数据帧相比,不需要用 VLAN标签进行优先级分配,由图3,IRT通道与开放通道独立,在传输过程中不会与RT数据和NRT数据发生冲突,通过预留只用于传输IRT通信的时间段来保证传输带宽。IRT交换机采用直通(Cut Through)的方式转发,其传输速率远大于存储转发方式,在直通交换方式中,并不是将整个数据包临时存储在缓冲区中,而是在目标地址和目标端口已经确定后,马上将整个数据包直接传送到目标端口,这样通过交换机传送数据包所用的时间是最小的,且不受数据帧长度的影响。
PROFINET IRT协议可以分为两类,分别是IRT High flexibility(高度灵活性)和 IRT Top performance(顶级性能)。前一种是IRT在组态时不需要对路径行规划,控制器在发送数据时,先发送数据给哪个从站设备是随机的。而后者则具有较前者更高的实时性,它在组态时需要对路径进行规划,需要明确端口的连接顺序,控制器在发送数据时总是先发送最远站的数据,最后发送最近站的数据。我们分别对这两种IRT协议的实时性进行分析。
IRT High flexibility传输方式时,控制器随机发送数据包给IO从站,最坏的情况是控制器先发送数据包给离它最近站,最后发送给离它最远的站,控制器与N台设备交换数据所需要的最短时间为:
TCT:交换机采用直通方式传送一个IRT数据帧需要的时间,采用的菲尼克斯交换机约为3 μs
IRT Top performance协议在数据交换之前,已对通信通道进行了规划,明确了IO端口的传送顺序,控制器总是先发送离它最远站的数据,最后发送离它最近站的数据。这样可以最大限度的利用通道带宽,控制器与N台设备交换数据所需要的最短时间为:
在后续测试中,采用一台控制器和7个IO站点的数据通信,传输最小的IRT报文(64字节),PLC主控制器与交换机之间的距离为100 m,交换机与IO设备之间的距离忽略不计,那么采用IRT High flexibility和IRT Top performance时,最远的IO设备的数据刷新时间分别为:
从以上的分析可知,在数据传送时,RT数据优于和NRT数据公用开放通道,且交换机采用存储转发模式,在最不利情况下,NRT数据会占用较长的时间;IRT采用独立的通道且交换机采用直通的传输方式,数据传输更快。
菲尼克斯电气公司是最早涉足PROFINET网络的公司,它的 PROFINET产品非常丰富,应用范围广泛,针对菲尼克斯的PROFINET网络进行通信测试。IO主控制器采用菲尼克斯的 PLC(RFC470 PN 3TX),由于此款 PLC只支持 RT实时数据传输,尚不具备IRT功能,主要对PROFINET的RT实时通信性能进行测试,IO设备采用其开发的TPS-1的专门芯片完成,交换机采用菲尼克斯的FL SWITCH SMCS-14TX,图6为测试网络架构。
图6 PROFINET测试网络架构Fig.6 Architecture of PROFINETnetwork
测试中,在PC WORX里,将IO站数据更新时间设置为1 ms,为了监视通信速率,在交换机设置页面里打开端口镜像功能,将与IO主控器相连的通讯端口5的数据镜像到交换机的端口7(PC机监视口)上,以便进行实时监控。使用Wireshark软件监测PC机监视口上的报文,观察IO主控制器数据发送及接收情况。图7为实测结果,(a)为IO控制器向7个IO设备发送数据,(b)为IO主控器接收7个IO设备的数据。测试中,采用RT最小数据帧且NRT数据没有传输,设备刷新较快,发送和接收数据均满足设置的1 ms刷新要求。
图7 PROFINET RT测试结果Fig.7 Result of PROFINET RT
在文中,首先简要介绍了PROFINET IO的3种通信模式(NRT、RT与IRT)及使用场合,重点分析了采用的实时机制,阐述了PROFINET实现实时通信采用的策略,描述了3种实时通道在 OSI模型中的对应关系以及实时协议的3种类型,具体介绍了RT和IRT的数据帧结构以及在交换机中的转发方式,根据其转发方式和实时机制,详细分析了RT和IRT协议的实时性问题,并给出了计算公式。最后选择菲尼克斯的PROFINET产品进行了测试。
[1]Flatt H,Schriegel S,Neugarth T,et al.An FPGA based HSR architecture for seamless PROFINET redundancy[C]//Workshop on Factory Communication Systems (WFCS),2012:137-143.
[2]PROFIBUS International.PROFINET SystemDescription[EB/OL].2009.http://www.profibus.com.
[3]Felser M,Rentschler M.Simplifying the engineering of modular PROFINET IOdevices[C]//Emerging Technologies&Factory Automation (ETFA),2011:1-4.
[4]Wisniewski L,Schumacher M,Jasperneite J,et al.Fast and simple scheduling algorithm for PROFINET IRT networks[C]//Workshop onFactory Communication Systems (WFCS),2012:141-144.
[5]RaimondPigan,Mark Metter.西门子 PROFINET工业通信指南[M].汤亚锋,译.北京:人民邮电出版社,2007.
[6]李秀元,彭杰,应启戛.PROINET实时通信技术剖析[J].电气自动化,2006(28):29-31.LI Xiu-yuan,PENG Jie,YING Qi-xia.Analysis of real-time communication for PROFINET [J].Electrical Automation,2006(28):29-31.
[7]敖浪.Profinet在制丝线自动化系统中的应用[J].自动化应用,2010(4):8-9.AO Lang.Profinet used in processing line automation system[J].Automation Application,2010(4):8-9.