APP下载

PROFINET的实时性及其协议分析

2017-03-27张国栋王有春

计算机测量与控制 2017年3期
关键词:实时性组态以太网

张国栋,王有春

(上海航天电子技术研究所,上海 201109)

PROFINET的实时性及其协议分析

张国栋,王有春

(上海航天电子技术研究所,上海 201109)

针对目前现场总线技术无法满足工业控制领域对信息传输的速率以及信息传输实时性的较高需求,PROFINET实时协议迅速发展起来,该协议在通信方面较现场总线技术有更好的实时性以及更高的传输速率;首先对标准TCP/IP协议进行了研究,分析了PROFINET对标准TCP/IP协议的优化方式;然后详细介绍了PROFINET RT和PROFINET IRT的帧结构以及基于具体数据的实时性分析,为西门子STEP7对PROFINET的组态配置提供了一定的借鉴作用;最后采用西门子的PROFINET IO设备、IO控制器等,通过STEP7的组态配置,验证了PROFINET IO之间的通信。

PROFINET;实时;RT;IRT; STEP 7

0 引言

20世纪八九十年代,现场总线技术飞速发展,但是随着它在工控界大肆推广之际,也发现了它的不足及缺点。首先是它的协议标准种类繁多,难以统一;其次是它的信息传输速率以及实时性达不到发展的要求[1]。

PROFINET是由PI推出的开放式以太网标准,它是基于IEEE802.3的用于快速数据交换的100%的以太网技术[2]。PROFINET是一种应用于自动化领域的以太网标准,支持不同制造商现场设备之间数据的高速安全通信。因此,PROFINET为机器与系统的各种创新设计带来了新的契机。如今,全球已有28个PROFINET技术中心,共同努力为用户解答各种PROFINET相关问题。

PROFINET一个重要特性是它具有可伸缩性,即基于以太网的通信是可以缩放的,具体来说有3个不同实时性能:

(1)普通的TCP/IP通信,适用于对实时性能没有要求的通信,例如参数配置及组态;

(2)实时通信(RT),适用于对时间过程数据要求较苛刻的通信,例如工厂自动化领域。

(3)等时同步实时通信(IRT),适用于对时间过程数据要求特别严格的通信,例如运动控制领域。

这3种不同实时性能等级通信覆盖了自动化领域的全部应用范围[3]。

1 PROFINET的实时性分析

实时性,表示系统对外部事件在确定的时间内做出反应,确定性表示系统有可以预测的响应。实时系统不仅仅是表现在“快”上,而更重要的是必须对外来事件在限定时间内做出反应。

表1是PROFINET与ISO/OSI七层模型对应关系,从表中可以看出PROFINET协议模型中省略了几层,并且在第2层添加了实时扩展以及优先级[4]。

表1 PROFINET与ISO/OSI模型的对应关系

普通的TCP/IP协议是难以实现实时通信的,因为当信息过载时会增加帧的长度,导致增加线路上的传输时间。此外,处理器处理对应的通信协议栈会占用相对更长的时间,导致增加信息发送的周期。

PROFINET协议采用优化过的TCP/IP协议来达到实时通信的目的,如图1。标准TCP/IP协议的第三层及第四层的作用是对以太网帧进行打包和解包,这就会大大增加数据在协议栈内的停留时间。而PROFINET实时协议跳过了这两层,从而大大减少了数据在通信协议栈内的停留时间[5]。

图1 PROFINET对标准TCP/IP协议的优化

2 PROFINET RT分析

2.1 PROFINET RT帧结构分析

PROFINET RT帧结构如图2所示[6]。

图2 PROFINET RT帧结构

PROFINET实时协议为了使RT数据优先传输,设置了VLAN标签,该标签中含有优先级标识符,用于发送数据的优先级设置。从图中可以看出优先级是长度为3bit的数据,可以设置0-7的优先级,RT帧主要使用优先级6或7。

RT帧结构中前面的以太网类型值为0x8100,表明其后紧跟的是VLAN标签。后面的以太网类型值为0x8892,表明该帧是一个RT帧。帧类型识别符描述的是不同设备之间特定的通信信道,通过帧类型标识符与以太网类型的结合,对RT帧的识别更加容易。CFI的值代表的是以太网或者是令牌环网的类型。

2.2 RT通信中数据转发方式

这里的转发方式主要是针对交换机的,有两种方式:存储与转发(Store and Forward,S&F)和直通交换方式(Cut Through,CT)。在RT通信中的转发方式是存储与转发[7]。

对于S&F方式,如图3所示,交换机正在转发PROFINET报文,报文1是非实时的,报文2和3是实时的,报文3的优先级较高。但由于端口2正在对报文1进行转发,即使它是非实时的也不能中断,所以会首先被发送出去,而报文2和3按照优先级排列等待发送。所以最终端口1发送出去顺序是报文1,报文3,报文2。

图3 交换机转发PROFINET报文

2.3 PROFINET RT协议实时性分析

一个完整的帧必须包含前导码以及空闲时间,根据图4,一个RT帧最小为88字节,如表2所示。在全双工模式下的传输速率为100 Mb/s,传输每个字节所需的时间为0.08 μs。因此传输最小的RT帧的时间为7.04 μs。假设数据在传输介质上的速度为光速的2/3(即200000 km/s),规定两个站之间的最大距离为100 m,则数据传输的线运行时间为0.5 μs。于是,在距离100 m的两个PROFINET站之间发送一个最小RT帧的时间为7.54 μs。

表2 RT帧最小长度

由于RT帧是经过S&F方式通过交换机的,举例用西门子的SCALANCE X200交换机,查阅手册,最小RT帧的S&F延迟时间为10 μs。

现在考虑一种对RT数据的转发最为不利的情况:即假设RT数据通过交换机时,恰好交换机正在进行最大的非实时以太网报文的转发,此时RT数据必须等待该非实时报文发送完毕之后再进行传输。最大的非实时以太网报文有1518个字节,因此传输该报文的时间为1518*0.08 μs=121.44 μs,它在交换机内S&F延迟时间为123 μs。于是,在这种情况下,一个最小的RT帧通过一台交换机传输至下一设备的时间为244.44 μs+10 μs+7.54 μs=261.98 μs。

接下来研究最远IO设备的刷新时间,为了计算结果的严苛性,公式中假设的数据都是在比较苛刻的情况下给定的。通用IO设备刷新公式为:

T=Ns*TNRT+Ns*WRT*(RPB+CPB)+D/V

其中:T为传输到最远站所用的时间;Ns为要刷新的IO设备的数目,也就是数据要通过的交换机的总数目;TNRT为最大非实时以太网报文传输与交换机存储转发的总时间,为244.44 μs;WRT为所要传输的RT帧字节数,这里取最小字节数,即88个字节;RPB为传输每个字节所用的时间,为0.08 μs;CPB为一个字节在交换机内存储与转发所占用的时间,取0.113 μs;D为数据传输到某一站的距离;V为传输介质上数据的发送速度,约为200 m/μs。

假设有64台交换机串联在一起,每台交换机连接一台IO设备,每台交换机之间的距离为100 m,则D=64*100 m=6 400 m。将上述数据代入公式即可得到最远IO设备的刷新时间:

T=64*244.44μs+64*88*(0.08+0.113)μs+6400/200μs=16.763 ms。

STEP7中默认IO刷新时间是1ms,但是根据上述计算结果,假如一个IO控制器控制64个IO设备,如果使用默认的刷新时间,那么最远IO设备必然会出现数据丢失现象,导致数据传输故障。假如将刷新时间设置为17ms,则影响设备的实时性。但是根据现场设备的组态配置经验,上述情况只有很小的几率会发生,因此只需将最远IO设备的刷新时间设置为8ms左右,就可以既保证设备的实时性能,又能有效防止数据的传输故障。

上述刷新时间的计算方法适用于任何PROFINETRT拓扑结构,应用上述方法计算实际的IO设备的刷新时间,可以有效避免IO设备的数据传输故障。

3 PROFINET IRT分析

3.1PROFINETIRT帧结构分析

PROFINETIRT帧结构如表3所示。

表3 PROFINET IRT帧结构

由于IRT是按时间调度传输的通信,在IRT的现场设备里具有固定的时间调度表来定义准确的发送时间点。因此可以通过时间位置(Temporalposition)、以太网类型(0x8892)和帧类型标识符(FrameID)的组合来识别IRT帧,而且在IRT帧中不需要VLAN标签对发送数据进行优先级分配。

3.2IRT通信中数据转发方式

在IRT通信中数据在交换机中的转发方式是直通交换方式。

在直通交换方式中,数据包并不是被临时存放在交换机中,而是检查该数据包的包头,获取该数据包的目的地址,启动内部的动态查找表转换成相应的输出端口,在输入与输出交叉处接通,把该数据包直接发送到输出端口,实现交换功能[8]。由于该方式只是检查数据包的包头(通常大约为14个字节),不需要对数据包进行缓存,因此该种方式既不受数据包大小的限制,又具有延迟小的优点。

3.3PROFINETIRT协议实时性分析

与分析RT协议实时性的方法类似,IRT帧在传输中的延迟主要分为3个部分:Tm代表IRT帧经过通信介质传输时产生的延迟;Tc代表交换机转发IRT帧产生的延迟;Tv代表IRT帧经过一个快速以太网端口产生的延迟,假设传输的IRT数据字节数为D,传输速度为V,则Tv=D/V,其中V为100 Mb/s。这样,一个IRT帧在整个通信过程中总的传输时间为Tpn=Tm+Tc+Tv。

PROFINET IRT有两种性能,一种是IRT High flexibility(高度灵活性),一种是IRT Top performance(顶级性能)。后者实时性能较前者好,两者产生这样区别的原因是是否在组态时对通信路径进行了规划。当控制器控制多个设备时,前者控制器先发送给哪个设备是随机的,而后者控制器是先发送给最远的设备,最后发送给最近的设备。

例如一台以太网控制器控制两台设备,那么IRT帧的发送有两种方式:一种是先发送给较近的设备,再发送给较远的设备;另一种则是相反。不难理解,第一种发送方式的传输时间为Tpn=Tpn1+Tpn2=Tm1+Tc1+Tv1+Tm2+Tc2+Tv2,而第二种的传输时间必然比第一种小,因为在先来的IRT帧在设备2中传送的时候,后来的IRT帧可以在设备1中传送,这样就有效利用了带宽资源。IRT High flexibility是第一种发送方式,而IRT Top performance是第二种。

为了方便理解以及公式的推导,作出如下假设:

(1)一台控制器要刷新N台设备;

(2)控制器与设备要交换的IRT帧大小相等;

(3)忽略同步帧。

于是,IRT High flexibility的刷新时间计算公式为:

Tflex=N*(Tm+Tc+Tv)

IRTTOPperformance的刷新时间计算公式为:

Ttop=Tm+Tc+N*Tv

例如一个系统中:

(1)一台IO控制器需要刷新64台IO设备,传输的IRT帧都为最小64字节,于是Tv=5.12 μs。

(2)IRT交换机转发一个IRT帧的延迟时间大约为3 μs,即Tc=3 μs。

(3)IO控制器和IO设备之间的距离为100 m,Tm=0.5 μs。

在IRT High flexibility性能下,IO控制器刷新64个IO设备的总时间为:

Tflex= 64*(0.5+3+5.12)=551.68 μs

在IRTTOPperformance性能下,IO控制器刷新64个IO设备的总时间为:

Ttop=0.5+3+64*5.12=331.18 μs

接下来假设一般情况,即要刷新的IO设备的个数是N,则:

由上式可知,随着N值的增大,K值也越来越大。也就是说,在上述情况下,IRT TOP performance与IRT High flexibility的实时性能差距随着IO设备数量的增加而逐渐拉大,当N值较大时,K值约为1.68,此时IRT TOP performance的实时性比IRT High flexibility高68%左右。

现在考虑IO设备的数量保持不变而IRT帧的字节数变化的情况,假设IRT帧的字节数为DIRT,那么Tv=DIRT*8/100M=0.08DIRT,代入上式得:

由图4可知,DIRT的大小为64~1518个字节,那么上式中K的值为1.669到1.028。随着DIRT的增大,K值在不断减小,也就是说IRT TOP performance与IRT High flexibility之间的实时性能差距是随着所传输的IRT帧字节数的增大而不断减小的。

图4 实验设备结构

上述计算结果是有现实意义的,因为在使用PROFINET IRT功能时,需要利用西门子组态软件STEP7为IRT进行带宽的分配。若带宽分配的过多,则不仅造成带宽的浪费,还会使得RT以及NRT数据的传输延迟更大。若带宽分配的过少,则较远IO设备的刷新不成功,必然会出现系统故障。所以,为IRT分配好合适的带宽是很重要的,既能够有效利用带宽资源,又能够使系统稳定无误的运行。

4 实验验证PROFINET通信

实验使用的是西门子的设备,通过设备间的组态来实现PROFINET的通信。

PROFINET的IO现场设备在PROFINET上有着相同的等级,在使用STEP7进行组态的过程中,这些现场设备(IO device,IO 设备)制定由一个中央控制器(IO controller,IO 控制器)控制。现场IO设备的文件描述定义在GSD(XML)文件。

实验步骤主要包括:

(1)导入GSD文件,并在STEP7中进行硬件组态,图5为硬件组态的最终结果。

图5 STEP 7中硬件组态

(2)编写相关程序,下载到IO控制器中,图6为使用STL语言编写的用户程序。根据在硬件组态中的ET200S两个站的DI,DO模板地址,在Network1中,对ET200S1进行数据读写,在Network2中,对ET200S2进行数据读写。

(3)IO控制器和IO设备自动的交换数据,如果ET200S1的DI模板,有信号输入,那么相应的位会显示为1,如图7所示。

图7 控制器和设备自动交换数据

5 结束语

PROFINET在国内的研究还处于比较落后的阶段,大多数的研究都偏应用方面,对PROFINET的协议标准、实时性等较深层次的研究还是比较少的。研究PROFINET的实时性,可以广泛的应用在运动控制领域、过程控制领域、分布式自动化等工业控制领域,甚至在航天分布式设备控制领域也有不可估量的应用价值。

[1] 李 程. 基于PROFINET协议的现场总线设备研究[D].青岛:青岛科技大学,2010.

[2] 汤亚锋. 西门子PROFINET工业通信指南[M]. 北京: 人民邮电出版社,2007.

[3] 白 硕. PROFINET技术的研究与开发[D].北京:北京化工大学,2010.

[4] Peter Neumann, Axel Poschmann. Ethernet-based Real-Time Communications with PROFINET IO [A].WSEAS Transactions on Communications[C]. 2005:122-130.

[5] 孙凡金,刘彦程,潘新祥.PROFINET工业以太网实时通信协议分析[J].低压电器,2008,21:30-33.

[6] 李 鑫. 工业以太网PROFINET技术的研究与实现[D]. 北京: 北京化工大学,2006.

[7] 梁伟光. PROFINET的实时通信技术分析[J]. 中国仪器仪表,2011:104-105.

[8] 刘喜梅,李 程. PROFINET IO通信实时性分析[J].微型机与应用, 2010, 2:38-39.

Analysis of Real-time Performance and Protocol Based on PROFINET

Zhang Guodong, Wang Youchun

(Shanghai Aerospace Electronic Technology Institute, Shanghai 201109, China)

In order to meet the high demand of the transmission rate and real-time performance in industrial control field, a real-time protocol of PROFINET for industrial Ethernet is proposed. The protocol has better real-time performance and higher transmission rate than the field bus technology. Firstly, the standard TCP/IP protocol was studied, and the optimization of the standard TCP/IP protocol for PROFINET was analyzed. Then, the frame structure of PROFINET RT and PROFINET IRT were analyzed in detail. The real-time analysis based on concrete data was introduced and this will be a certain reference for STEP7 configuration of Siemens. Finally, with the help of Siemens PROFINET IO devices and IO controller, through the configuration of Siemens STEP7, the communication between PROFINET IO devices were finally realized.

PROFINET;Real-time;RT;IRT;STEP 7

2016-10-13;

2016-11-11。

张国栋(1989-),男,山东日照人,硕士研究生,主要从事测试与控制方向的研究。

1671-4598(2017)03-0187-04

10.16526/j.cnki.11-4762/tp.2017.03.051

TP301

A

猜你喜欢

实时性组态以太网
浅谈力控ForceControl V7.2组态软件在自动化控制工程中的应用
Rh XIII—Cd XVI 离子4s24p3—4s4p4 能级与跃迁的理论计算*
组态软件技术现状与发展
航空电子AFDX与AVB传输实时性抗干扰对比
高职“工业组态技术”课程建设探析
三大因素驱动创新提速以太网快步迈入“灵活”时代
三大因素驱动创新提速 以太网快步迈入“灵活”时代
谈实时以太网EtherCAT技术在变电站自动化中的应用
计算机控制系统实时性的提高策略
可编程控制器的实时处理器的研究