張國棟,王有春
(上海航天電子技術研究所,上海 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
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與ISO/OSI七層模型對應關系,從表中可以看出PROFINET協議模型中省略了幾層,并且在第2層添加了實時擴展以及優先級[4]。

表1 PROFINET與ISO/OSI模型的對應關系
普通的TCP/IP協議是難以實現實時通信的,因為當信息過載時會增加幀的長度,導致增加線路上的傳輸時間。此外,處理器處理對應的通信協議棧會占用相對更長的時間,導致增加信息發送的周期。
PROFINET協議采用優化過的TCP/IP協議來達到實時通信的目的,如圖1。標準TCP/IP協議的第三層及第四層的作用是對以太網幀進行打包和解包,這就會大大增加數據在協議棧內的停留時間。而PROFINET實時協議跳過了這兩層,從而大大減少了數據在通信協議棧內的停留時間[5]。

圖1 PROFINET對標準TCP/IP協議的優化
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.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分配好合適的帶寬是很重要的,既能夠有效利用帶寬資源,又能夠使系統穩定無誤的運行。
實驗使用的是西門子的設備,通過設備間的組態來實現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 控制器和設備自動交換數據
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