摘 要:PROFINET是一種新的實(shí)時(shí)以太網(wǎng)標(biāo)準(zhǔn),本文介紹了PROFINET兩類(lèi)不同性能的實(shí)時(shí)通信的技術(shù)特點(diǎn),并對(duì)等時(shí)同步實(shí)時(shí)通信技術(shù)進(jìn)行了分析,說(shuō)明了其對(duì)IEEE1588的改進(jìn)。
關(guān)鍵詞:PROFINET; 實(shí)時(shí)通信; 等時(shí)同步
Analysis of Isochronous real-time communication and PROFINET
Peng Jie Li Xiuyuan Ying QiJia
Abstract: PROFINET is a emerging standard of real-time Ethernet. In this paper, isochronous real-time communication of PROFINET is analyzed and enhancements to IEEE1588 are explained after two kinds of real-time communication in PROFINET are introduced.
Key word: PROFINET; real-time communication; isochronous
1,概述
PROFINET實(shí)時(shí)以太網(wǎng)是由Profibus International(PI)組織提出的基于以太網(wǎng)的自動(dòng)化標(biāo)準(zhǔn)。從2004年4月開(kāi)始,PI與Interbus Club總線(xiàn)俱樂(lè)部聯(lián)手,負(fù)責(zé)合作開(kāi)發(fā)與制定標(biāo)準(zhǔn)。PROFINET構(gòu)成從I/O級(jí)直至協(xié)調(diào)管理級(jí)的基于組件的分布式自動(dòng)化系統(tǒng)的體系結(jié)構(gòu)方案,并可以將Profibus技術(shù)和Interbus現(xiàn)場(chǎng)總線(xiàn)技術(shù)在整個(gè)系統(tǒng)中無(wú)縫地集成。PROFINET能為緊要任務(wù)提供最低限度的性能保證服務(wù),同時(shí)也能為非緊要任務(wù)提供盡力服務(wù)。
2,PROFINET的實(shí)時(shí)通信分類(lèi)
PROFINET區(qū)分兩類(lèi)不同性能的實(shí)時(shí)周期通信,一種是實(shí)時(shí)(RT)通信,主要用于工廠自動(dòng)化,這一類(lèi)沒(méi)有時(shí)間同步要求,一般只要求響應(yīng)時(shí)間為5-10ms。另一種是等時(shí)同步實(shí)時(shí)(IRT),主要用于有苛刻時(shí)間同步要求的場(chǎng)合例如運(yùn)動(dòng)控制,電子齒輪。與此對(duì)應(yīng),PROFINET提供兩類(lèi)實(shí)時(shí)通信通道具體分為RT實(shí)時(shí)通道和IRT實(shí)時(shí)通道。另外還包括一個(gè)標(biāo)準(zhǔn)通信通道,標(biāo)準(zhǔn)通道是使用TCP/IP協(xié)議的非實(shí)時(shí)通信通道,主要用于設(shè)備參數(shù)化、組態(tài)和讀取診斷數(shù)據(jù)。
實(shí)時(shí)通道RT是軟實(shí)時(shí)SRT(Software RT) 方案,它旁路TCP/IP層,同時(shí)為優(yōu)化通信功能,PROFINET RT幀根據(jù)IEEE802.1Q/P定義了報(bào)文的優(yōu)先級(jí),最多可用7級(jí)。PROFINET RT幀中的狀況信息域用來(lái)標(biāo)識(shí)設(shè)備和數(shù)據(jù)的狀況(例如:運(yùn)行,停止,出錯(cuò))。其通信協(xié)議及幀結(jié)構(gòu)如圖1。
圖1 PROFINET RT通信協(xié)議及其幀結(jié)構(gòu)
實(shí)時(shí)通道IRT是硬實(shí)時(shí)HRT(Hardware RT) 方案,實(shí)時(shí)性是基于一個(gè)建立在快速以太網(wǎng)Layer2上的時(shí)間觸發(fā)(time-triggered)協(xié)議,由內(nèi)嵌的Switch-ASIC同步實(shí)時(shí)交換芯片保證。這樣可以進(jìn)一步縮短通信棧軟件的處理時(shí)間,特別適用于高性能傳輸、過(guò)程數(shù)據(jù)的等時(shí)同步傳輸、以及快速的時(shí)鐘同步運(yùn)動(dòng)控制。由于基于硬件實(shí)現(xiàn),IRT幀中通常無(wú)需RT幀中的IEEE802.1Q VLAN標(biāo)識(shí)。PROFINET的IRT通信協(xié)議及幀結(jié)構(gòu)如圖2。
圖2 PROFINET IRT通信協(xié)議及其幀結(jié)構(gòu)
從圖1,圖2也可以看出,PROFINET 實(shí)時(shí)數(shù)據(jù)幀(包括RT和IRT 幀)都是在按IEEE802.3所定義的標(biāo)準(zhǔn)化的幀格式基礎(chǔ)上略作改動(dòng),讓其L/T字段的值>1500,這是一個(gè)保留的EtherTypeⅡ,可以用于唯一地識(shí)別PROFINET的實(shí)時(shí)數(shù)據(jù)幀以區(qū)別于其他采用標(biāo)準(zhǔn)IT協(xié)議的以太網(wǎng)幀,優(yōu)先進(jìn)行傳輸。PROFINE的以太網(wǎng)類(lèi)型標(biāo)識(shí)中用0x0800標(biāo)識(shí)IP幀,使用0x8892標(biāo)識(shí)PROFINET實(shí)時(shí)幀。幀中的應(yīng)用標(biāo)識(shí)符(frame-ID)域標(biāo)識(shí)所接收的數(shù)據(jù)的傳輸,即標(biāo)識(shí)周期傳輸和非周期傳輸(報(bào)警和事件)。
按照PROFIBUS國(guó)際組織提供的數(shù)據(jù)[1],PROFINET在IRT通信方式下應(yīng)用在同步運(yùn)動(dòng)控制場(chǎng)合,其性能比目前的現(xiàn)場(chǎng)總線(xiàn)方案要提升100倍。這種基于硬件的同步實(shí)時(shí)(IRT)通信解決方案能夠在大量數(shù)據(jù)需要傳遞的情況下保持足夠高的時(shí)間確定性;同時(shí),可緩解PROFINET設(shè)備上處理器的通信任務(wù)。因此,本文以下對(duì)它進(jìn)行詳細(xì)分析。
3,PROFINET對(duì)IEEE 1588的改進(jìn)
PROFINET IRT所采用的時(shí)間同步協(xié)議是基于改進(jìn)的IEEE1588[2]。IEEE 1588 的基本功能是使分布式網(wǎng)絡(luò)內(nèi)的最精確時(shí)鐘(reference clock)與其它時(shí)鐘保持同步,它定義了一種精確時(shí)間協(xié)議PTP(Precision Time Protocol),用于對(duì)標(biāo)準(zhǔn)以太網(wǎng)或其它采用多播技術(shù)的分布式總線(xiàn)系統(tǒng)中的傳感器、執(zhí)行器以及其他終端設(shè)備中的時(shí)鐘進(jìn)行亞微秒級(jí)同步。
一個(gè)IEEE 1588 精密時(shí)鐘( PTP) 系統(tǒng)包括多個(gè)節(jié)點(diǎn), 可以認(rèn)為每一個(gè)都代表一個(gè)時(shí)鐘,時(shí)鐘之間經(jīng)由網(wǎng)絡(luò)連接。IEEE 1588 將整個(gè)網(wǎng)絡(luò)內(nèi)的時(shí)鐘分為兩種,普通時(shí)鐘OC(Ordinary Clock)和邊界時(shí)鐘BC(Boundary Clock),只有一個(gè)PTP 通信端口的時(shí)鐘是普通時(shí)鐘,有一個(gè)以上PTP 通信端口的時(shí)鐘是邊界時(shí)鐘,每個(gè)PTP端口提供獨(dú)立的PTP通信。其中,邊界時(shí)鐘BC通常用在網(wǎng)橋(交換機(jī))和路由器等這些用來(lái)劃分子網(wǎng)的網(wǎng)絡(luò)設(shè)備中,用于防止這些網(wǎng)絡(luò)設(shè)備產(chǎn)生大的延遲抖動(dòng)。普通時(shí)鐘通常用在節(jié)點(diǎn)上。
隨著溫度變化和時(shí)間推移,發(fā)送節(jié)點(diǎn)和接收節(jié)點(diǎn)的時(shí)鐘頻率將發(fā)生偏差,由此會(huì)造成漂移(drifts)。為此,在PTP中需要通過(guò)一個(gè)閉環(huán)控制(loop)進(jìn)行補(bǔ)償,以如下PI-loop為例。
其中, y[k]是被控量, x[k]是偏差變量, k代表同步循環(huán)。 K[sub]R[/sub],K[sub]n[/sub] 是控制參數(shù)。T是采樣時(shí)間,它等于PTP同步信息(Sync信息)之間的發(fā)送間隔。每個(gè)PTP從屬時(shí)鐘以及BC的每個(gè)從屬時(shí)鐘端口都必須含有類(lèi)似的閉環(huán)控制,閉環(huán)控制的設(shè)計(jì)直接關(guān)系到時(shí)間同步的精度。如圖3上半部分所示,在BC中的時(shí)鐘振蕩器(Oscillator)將會(huì)參照PTP Slave,以一定的函數(shù)關(guān)系進(jìn)行調(diào)節(jié),調(diào)節(jié)后的時(shí)鐘將成為下一個(gè)網(wǎng)段的PTP Master。以此類(lèi)推,反復(fù)進(jìn)行,直至目的節(jié)點(diǎn)Time Client。這樣,當(dāng)在總線(xiàn)式拓?fù)渲杏卸鄠€(gè)網(wǎng)橋鏈?zhǔn)铰?lián)結(jié)時(shí),這種方式實(shí)質(zhì)上產(chǎn)生了控制循環(huán)的級(jí)聯(lián)(cascade),會(huì)導(dǎo)致不穩(wěn)定,從而使得IEEE 1588無(wú)法滿(mǎn)足苛刻的同步要求 [3] 。
[align=center]
圖3 IEEE1588邊界時(shí)鐘和PROFINET旁路時(shí)鐘對(duì)比[/align]
相對(duì)于IEEE1588的“Boundary Clock”, PROFINET進(jìn)行了修正,修正后稱(chēng)之為旁路時(shí)鐘BpC(Bypass clock)[5]。
時(shí)間同步的關(guān)鍵問(wèn)題是網(wǎng)橋等網(wǎng)絡(luò)設(shè)備中的時(shí)延不定常,從而造成時(shí)間抖動(dòng)。如果能找出計(jì)算網(wǎng)橋中時(shí)延的方法,那么就可以對(duì)它進(jìn)行補(bǔ)償。如圖3下半部分所示,PROFINET的BpC正是基于這種思想,通過(guò)對(duì)PTP報(bào)文進(jìn)行必要的操作和處理(Message processing)來(lái)對(duì)時(shí)延進(jìn)行補(bǔ)償,具體的處理操作可能涉及商業(yè)秘密,尚未見(jiàn)公開(kāi)報(bào)道?;舅枷肴缦拢?
1) 假設(shè)一個(gè)PTP網(wǎng)橋在端口s收到一個(gè)Sync報(bào)文,那么接收時(shí)間戳T[sub]rx,s[/sub]將會(huì)產(chǎn)生, 當(dāng)BpC的其它端口j開(kāi)始向下游傳遞該Sync報(bào)文時(shí),發(fā)送時(shí)間戳T[sub]tx,j[/sub]將會(huì)產(chǎn)生。這樣,可以得到所需的時(shí)鐘校正值(clock correction):T[sub]tx,j[/sub] -T[sub]rx,s [/sub]。
2) 如圖4所示,使用Ldi代表傳輸距離造成的延遲,bdi代表網(wǎng)橋中的時(shí)延,將所得到的本網(wǎng)橋內(nèi)時(shí)延bdi和本段傳輸時(shí)延Ldi的信息加入到將要轉(zhuǎn)發(fā)的Sync報(bào)文中,這樣目的節(jié)點(diǎn)就可以得到報(bào)文所盡歷的精確時(shí)延。PTP 主時(shí)鐘到PTP 從屬時(shí)鐘的累積時(shí)延為:
借助這以一方式,就可以把網(wǎng)橋看成具有定常時(shí)延的網(wǎng)絡(luò)組件,從而避開(kāi)了控制循環(huán)的級(jí)聯(lián)。
圖4 時(shí)延疊加
5,結(jié)語(yǔ)
PROFINET將極大的改善現(xiàn)有自動(dòng)化技術(shù)發(fā)展過(guò)程中的通信瓶頸,同時(shí)實(shí)現(xiàn)自動(dòng)化技術(shù)從以實(shí)現(xiàn)控制任務(wù)為主導(dǎo)向?qū)崿F(xiàn)高度集成和優(yōu)化的信息收集、分析和處理任務(wù)為主導(dǎo)的轉(zhuǎn)移,使得實(shí)現(xiàn)控制任務(wù)將成為未來(lái)自動(dòng)化平臺(tái)的低層次要求。本文希望通過(guò)對(duì)PROFINET實(shí)時(shí)通信較詳細(xì)的分析,能有助于將來(lái)我國(guó)自有工業(yè)以太網(wǎng)標(biāo)準(zhǔn)的發(fā)展。
參考文獻(xiàn)
[1] PNO. Profibus User Organization. www.profibus.com, 2004.
[2] IEEE. IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems. IEEE, New York, 2002. ANSI/IEEE Std 1588-2002
[3] M. Mueller and K.Weber. Impact of Switch Cascading on Time Accuracy. In Workshop on IEEE-1588, Standard for a Precision Clock Synchronization Protocol for Networked Measurements and Control Systems. National Insitute of Standards and Technology (NIST), September 2003.
[4] 張妍 孫鶴 旭林濤. IEEE1588 在實(shí)時(shí)工業(yè)以太網(wǎng)中的應(yīng)用. 微計(jì)算機(jī)信息, 2005,21(9-1):19-21
[5] J. Jasperneite, E. Elsayed. Investigations on a Distributed Time-triggered Ethernet Realtime Protocol used by PROFINET. In 3rd International Workshop on Real-Time Networks, Catania, Sicily, Italy , July. 2004
?。ū疚膭?chuàng)新點(diǎn):PROFINET是一種新的實(shí)時(shí)以太網(wǎng)標(biāo)準(zhǔn),本文介紹了PROFINET兩類(lèi)不同性能的實(shí)時(shí)通信的技術(shù)特點(diǎn),并對(duì)等時(shí)同步實(shí)時(shí)通信技術(shù)進(jìn)行了詳細(xì)分析,說(shuō)明了其對(duì)IEEE1588的改進(jìn)。)
作者簡(jiǎn)介:彭杰(1976-),男,江西吉安人,上海理工大學(xué)光電學(xué)院博士,研究方向?yàn)椋嚎刂凭W(wǎng)絡(luò)
聯(lián)系方式:上海理工大學(xué)244信箱應(yīng)啟戛轉(zhuǎn)彭杰,200093,email:pj1976310@sohu.com
李秀元(1966-),男, 上海理工大學(xué)光電學(xué)院博士, 副教授,研究方向?yàn)椋嚎刂凭W(wǎng)絡(luò)
應(yīng)啟戛(1942-),男,教授,博導(dǎo),研究領(lǐng)域?yàn)椋嚎刂凭W(wǎng)絡(luò),自動(dòng)化儀表