李永生,杜文博
(北京奔馳汽車有限公司,北京 100176)
Profinet是國際標(biāo)準(zhǔn)IEC 61784和IEC 61158共同確認(rèn)的工業(yè)以太網(wǎng)技術(shù)之一。由于Profinet技術(shù)性能滿足工業(yè)通信的需求,再加上其主要推動(dòng)者西門子公司在工業(yè)自動(dòng)化市場上的優(yōu)勢地位,Profinet在目前的工業(yè)以太網(wǎng)市場上占有較大份額。
與其他工業(yè)以太網(wǎng)技術(shù)一樣,Profinet的技術(shù)架構(gòu)基于IEEE的標(biāo)準(zhǔn)以太網(wǎng),并在此基礎(chǔ)上進(jìn)行了實(shí)時(shí)擴(kuò)展,以滿足工業(yè)通信所要求的實(shí)時(shí)性和確定性。
實(shí)時(shí)性是工業(yè)以太網(wǎng)重要的性能。為了驗(yàn)證西門子Profinet的實(shí)時(shí)性能,國內(nèi)外眾多學(xué)者作了研究和測試,積累了許多值得借鑒的案例和數(shù)據(jù),但是也存在相當(dāng)多的錯(cuò)誤理解和計(jì)算。這些研究的對(duì)象集中于西門子Profinet產(chǎn)品中應(yīng)用廣泛、能體現(xiàn)工業(yè)以太網(wǎng)接近現(xiàn)場特點(diǎn)的Profinet IO系統(tǒng)。這些研究的方向主要集中于交換機(jī)和IO設(shè)備連接造成的通信時(shí)間延遲。本文的研究方向?qū)⒉幌抻诖恕?/p>
本文將從Profinet IO系統(tǒng)的工程應(yīng)用出發(fā),全面分析Profinet IO系統(tǒng)的實(shí)時(shí)技術(shù)架構(gòu),試圖揭示影響Profinet IO系統(tǒng)實(shí)時(shí)性能的因素,并據(jù)此嘗試探討未來技術(shù)改進(jìn)的方向。另外,本文還將依據(jù)通信和可編程邏輯控制器(programmable logic controller,PLC)的基本原理,對(duì)某些西門子未作詳盡說明但是與Profinet IO系統(tǒng)實(shí)時(shí)性能相關(guān)的因素作出合理推測。
從通信功能看,衡量Profinet IO實(shí)時(shí)性能,即其提供的通信服務(wù)質(zhì)量(quality of service,QoS),有以下兩個(gè)指標(biāo)。①響應(yīng)時(shí)間(response time,RT),也稱為延遲時(shí)間(latency time,LT)。其一般理解為以下過程經(jīng)過的時(shí)間在一個(gè)設(shè)備應(yīng)用中生成一個(gè)變量,然后通過通信系統(tǒng)將該變量發(fā)送給一個(gè)伙伴設(shè)備,其后可以在該伙伴設(shè)備的應(yīng)用中再次獲得該變量。②抖動(dòng)(jitter)是響應(yīng)時(shí)間的變化,即實(shí)際最大響應(yīng)時(shí)間和實(shí)際最小響應(yīng)時(shí)間的差值。
西門子在產(chǎn)品推廣中對(duì)QoS多有表述。西門子Profinet QoS如表1所示[1]。

表1 西門子Profinet QoS Tab.1 Siemens Profinet QoS
參數(shù)中,QoS等級(jí)2對(duì)應(yīng)的分布式IO設(shè)備,就是本文討論的Profinet IO系統(tǒng)RT技術(shù)。
Profinet IO系統(tǒng)RT技術(shù)基于IEEE 802.3和IEEE 802.1Q標(biāo)準(zhǔn),繼承了全雙工快速以太網(wǎng)、交換以太網(wǎng)、優(yōu)先級(jí)標(biāo)簽和虛擬局域網(wǎng)等技術(shù),擴(kuò)展了實(shí)時(shí)特性之后也對(duì)IEEE標(biāo)準(zhǔn)進(jìn)行了修改[2]。
①全雙工快速以太網(wǎng)。Profinet IO系統(tǒng)RT技術(shù)以IEEE 802.3為基礎(chǔ),采用了100BASE-TX和100BASE-FX全雙工快速以太網(wǎng)技術(shù)。對(duì)于未使用全雙工技術(shù)的以太網(wǎng)來說,全雙工支持同時(shí)發(fā)送和接收,故在理論上可以使帶寬增加一倍,即傳輸速度翻一番。全雙工的特性之一體現(xiàn)在發(fā)送和接收各使用一對(duì)雙絞線,共有兩對(duì)雙絞線。
快速以太網(wǎng)始于1993年,至今已經(jīng)有近30年的歷史。無論是略高于100 MB的傳輸速度,還是4B5B編解碼的可靠性[3],其性能在今天看來已經(jīng)很平常了。
IEEE 802.1中定義的標(biāo)準(zhǔn)以太網(wǎng)為基于快速以太網(wǎng)的TCP(UDP)/IP通信。標(biāo)準(zhǔn)以太網(wǎng)的點(diǎn)對(duì)點(diǎn)數(shù)據(jù)傳輸如圖1所示。

圖1 標(biāo)準(zhǔn)以太網(wǎng)的點(diǎn)對(duì)點(diǎn)數(shù)據(jù)傳輸示意圖 Fig.1 Point to point data transporting of standard ethernet
T1為提供者和消費(fèi)者內(nèi)部生成數(shù)據(jù)和處理數(shù)據(jù)的時(shí)間,不屬于通信時(shí)間,對(duì)應(yīng)ISO/OSI模型中的應(yīng)用層。T2為在協(xié)議棧中進(jìn)行數(shù)據(jù)處理的時(shí)間,包括數(shù)據(jù)由提供者三次封包和消費(fèi)者三次解包的時(shí)間。三次解包和封包分別對(duì)應(yīng)ISO/OSI模型中的傳輸層、網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層。T3為數(shù)據(jù)在屏蔽雙絞線中傳輸所經(jīng)歷的時(shí)間,對(duì)應(yīng)ISO/OSI的物理層。Profinet傳送標(biāo)準(zhǔn)數(shù)據(jù),即非實(shí)時(shí)(non real time,NRT)數(shù)據(jù)時(shí),使用標(biāo)準(zhǔn)以太網(wǎng)協(xié)議。Profinet標(biāo)準(zhǔn)結(jié)構(gòu)如圖2所示。Profinet傳送最大的幀為NRT的標(biāo)準(zhǔn)快速以太網(wǎng)幀1 518 b,在100 Mbit/s的傳輸速度下每個(gè)字節(jié)耗時(shí)80 ns。那么傳輸時(shí)間T2為121.44 μs。數(shù)據(jù)在屏蔽雙絞線中的發(fā)送速度大約為200 m/μs,兩個(gè)設(shè)備之間的最大距離設(shè)定為100 m,則傳輸時(shí)間T3大約為0.5 μs。由此可見,Profinet點(diǎn)對(duì)點(diǎn)傳輸標(biāo)準(zhǔn)TCP/IP最大幀的時(shí)間為T2+T3+T2=243.38 μs。如果Profinet IO系統(tǒng)中的通信流量足夠小,則通信的響應(yīng)時(shí)間(延遲時(shí)間)為243.3 8 μs。

圖2 Profinet標(biāo)準(zhǔn)結(jié)構(gòu)示意圖 Fig.2 Profinet standard structure
②交換機(jī)。以太網(wǎng)需要采用載波偵聽多路訪問/沖突檢測協(xié)議(carrier sense multiple access with collision detection,CSMA/CD)機(jī)制來解決數(shù)據(jù)在傳輸媒體中的沖突。這就造成了不確定性。在交換機(jī)組成的以太網(wǎng)(即所謂交換以太網(wǎng))中,交換機(jī)的每個(gè)端口都是一個(gè)沖突域。各個(gè)沖突域通過交換機(jī)進(jìn)行隔離,各端口之間根據(jù)報(bào)文幀中的MAC源地址和目的地址形成數(shù)據(jù)通道,避免了由CSMA/CD造成的不確定性。標(biāo)準(zhǔn)以太網(wǎng)交換機(jī)在解析報(bào)文幀獲得MAC源地址和目的地址、促成各端口之間通信的過程中,一般按照存儲(chǔ)轉(zhuǎn)發(fā)機(jī)制(store & forward,s&f)。這會(huì)造成時(shí)間延遲。如西門子的Scalance X200交換機(jī),經(jīng)查閱手冊(cè),其最小RT幀的存儲(chǔ)轉(zhuǎn)發(fā)延遲時(shí)間為10 μs、最大RT幀延遲時(shí)間為120 μs。
③優(yōu)先級(jí)標(biāo)簽。IEEE 802.1Q以在報(bào)文中增加優(yōu)先級(jí)標(biāo)簽的方式對(duì)以太網(wǎng)報(bào)文進(jìn)行了優(yōu)先級(jí)分級(jí)。在交換機(jī)中進(jìn)行儲(chǔ)存轉(zhuǎn)發(fā)時(shí),對(duì)不同類別的報(bào)文幀按照優(yōu)先級(jí)分級(jí)排隊(duì),并以優(yōu)先級(jí)高低順序進(jìn)行報(bào)文轉(zhuǎn)發(fā)。RT數(shù)據(jù)擁有比TCP/IP數(shù)據(jù)更高的優(yōu)先級(jí)。對(duì)于儲(chǔ)存轉(zhuǎn)發(fā)方式,交換機(jī)的優(yōu)先級(jí)機(jī)制如圖3所示。

圖3 交換機(jī)的優(yōu)先級(jí)機(jī)制示意圖 Fig.3 Switch priority ranking
交換機(jī)轉(zhuǎn)發(fā)報(bào)文過程中:報(bào)文1是非實(shí)時(shí)的;報(bào)文2和報(bào)文3是實(shí)時(shí)的,且報(bào)文3的優(yōu)先級(jí)較高。但由于端口2正在對(duì)報(bào)文1進(jìn)行轉(zhuǎn)發(fā),即使它是非實(shí)時(shí)的也不能中斷,所以會(huì)首先被發(fā)送出去;而報(bào)文2和報(bào)文3按照優(yōu)先級(jí)排列等待發(fā)送。最終端口1的發(fā)送順序是:報(bào)文1→報(bào)文3→報(bào)文2。
對(duì)于Profinet IO系統(tǒng),正常運(yùn)行時(shí),交換機(jī)端口上的數(shù)據(jù)一般都是優(yōu)先級(jí)相同的RT數(shù)據(jù)。這時(shí)按先后順序排隊(duì)轉(zhuǎn)發(fā)。如果數(shù)據(jù)的負(fù)荷或者流量過大、排隊(duì)過長,有可能延長儲(chǔ)存時(shí)間,所以需要控制數(shù)據(jù)流量,具體來說就是限制IO設(shè)備數(shù)量。
④虛擬局域網(wǎng)(virtual local area network,VLAN)。虛擬局域網(wǎng)可以跨多個(gè)交換機(jī)。交換機(jī)每一個(gè)端口只能標(biāo)記一個(gè)VLAN。同一個(gè)VLAN中所有端口擁有一個(gè)廣播域,而不同VLAN之間廣播信息是相互隔離的。這樣就避免了廣播風(fēng)暴的產(chǎn)生。網(wǎng)絡(luò)劃分VLAN,不需要對(duì)網(wǎng)絡(luò)的物理結(jié)構(gòu)重新進(jìn)行調(diào)整,也不需要追加網(wǎng)絡(luò)設(shè)備,只需要在具有網(wǎng)管功能的設(shè)備如交換機(jī)和路由器上進(jìn)行設(shè)置即可。劃分VLAN是一項(xiàng)高度靈活的工作,需要積累實(shí)踐經(jīng)驗(yàn)才能獲得優(yōu)化的VLAN劃分,從而提高網(wǎng)絡(luò)通信質(zhì)量,避免故障與丟包。而劃分VLAN也與網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)直接相關(guān)。
⑤拓?fù)浣Y(jié)構(gòu)。標(biāo)準(zhǔn)以太網(wǎng)以星形拓?fù)浣Y(jié)構(gòu)較為常見,Profinet則有星形、線形、樹形、環(huán)形等多種拓?fù)浣Y(jié)構(gòu)。這是由于Profinet所應(yīng)用的現(xiàn)場設(shè)備的復(fù)雜情況造成的。從對(duì)Profinet的實(shí)時(shí)性影響來看,星形拓?fù)浣Y(jié)構(gòu)最優(yōu);通過多個(gè)交換機(jī)串聯(lián)形成的線形拓?fù)浣Y(jié)構(gòu)對(duì)實(shí)時(shí)性影響最大,尤其是離IO控制器越遠(yuǎn)影響越大。這是因?yàn)槊慷嘁粋€(gè)交換機(jī)都會(huì)增加一個(gè)儲(chǔ)存轉(zhuǎn)發(fā)延遲。Profinet的拓?fù)浣Y(jié)構(gòu),從規(guī)劃施工到運(yùn)營維護(hù)都可能會(huì)帶來問題。拓?fù)浣Y(jié)構(gòu)經(jīng)常和VLAN的劃分、線路連接、網(wǎng)絡(luò)配置交織在一起,設(shè)置不合理就會(huì)造成網(wǎng)絡(luò)通信不穩(wěn)定甚至中斷,從而引起生產(chǎn)中斷[4-5]。這一點(diǎn)在文獻(xiàn)[4]所描述的案例中得到了集中體現(xiàn),最為典型。
⑥實(shí)時(shí)擴(kuò)展。從上文對(duì)標(biāo)準(zhǔn)以太網(wǎng)的分析中,可以知道數(shù)據(jù)在協(xié)議棧中進(jìn)行處理的時(shí)間占了延遲時(shí)間的絕大部分,而在屏蔽雙絞線中的傳輸時(shí)間基本可以忽略。為了提高實(shí)時(shí)性能、減小延遲時(shí)間,一個(gè)顯而易見的改進(jìn)手段是減少數(shù)據(jù)在協(xié)議棧中的處理時(shí)間。Profinet IO采取的實(shí)時(shí)擴(kuò)展辦法是減少協(xié)議棧中的處理層級(jí),略去網(wǎng)絡(luò)層和傳輸層,只保留數(shù)據(jù)鏈路層。Profinet IO系統(tǒng)對(duì)以太網(wǎng)的實(shí)時(shí)擴(kuò)展如圖4所示。這樣,Profinet的RT數(shù)據(jù)通過MAC地址進(jìn)行通信,因沒有網(wǎng)絡(luò)層而無法進(jìn)行路由。因?yàn)镻rofinet的RT數(shù)據(jù)只在本地現(xiàn)場設(shè)備中使用,也無需路由到其他網(wǎng)絡(luò)。由此可以認(rèn)為,數(shù)據(jù)在Profinet RT協(xié)議棧中的傳輸時(shí)間約為快速以太網(wǎng)協(xié)議棧中的1/3。Profinet最小RT幀為88 b,最大RT幀為1 488 b。每個(gè)字節(jié)耗時(shí)為標(biāo)準(zhǔn)快速以太網(wǎng)80 ns的1/3,即26.67 ns。那么傳輸最小RT幀和最大RT幀的時(shí)間分別為2.35 μs和39.68 μs。數(shù)據(jù)在屏蔽雙絞線中的傳輸延時(shí)仍為0.5 μs。

圖4 Profinet IO系統(tǒng)對(duì)以太網(wǎng)的實(shí)時(shí)擴(kuò)展示意圖 Fig.4 Profinet IO system RT extensions for ethernet
Profinet IO RT技術(shù)僅使用ISO/OSI模型的一層和二層,使用MAC地址進(jìn)行通信,無法進(jìn)行路由,是一種局域網(wǎng)技術(shù),完全符合IEEE 802.3所規(guī)定的以太網(wǎng)特性。因此,西門子在進(jìn)行產(chǎn)品推廣時(shí)經(jīng)常說Profinet IO RT技術(shù)是百分百的以太網(wǎng)。實(shí)際上,Profinet IO系統(tǒng)實(shí)時(shí)幀在IEEE 802.3中有一個(gè)特定的類型標(biāo)簽0X8892。這是Profinet IO RT對(duì)IEEE802.3標(biāo)準(zhǔn)的修改與擴(kuò)展。
由于現(xiàn)場設(shè)備情況復(fù)雜,所應(yīng)用的IO設(shè)備數(shù)量和拓?fù)浣Y(jié)構(gòu)變化不定,所以沒有一個(gè)固定不變的延遲時(shí)間。但是,可以通過合理設(shè)定條件計(jì)算得出一個(gè)最大的延遲時(shí)間。對(duì)于一個(gè)通信系統(tǒng)而言,為了保證通信質(zhì)量,需要控制通信負(fù)荷(或者說流量)。對(duì)于Profinet IO系統(tǒng),控制通信流量的主要方法就是控制系統(tǒng)中的IO設(shè)備數(shù)量。西門子S7-300系列PLC產(chǎn)品目錄中性能最強(qiáng)大的CPU319,可連接的最大IO設(shè)備數(shù)目為256。但在實(shí)際應(yīng)用中,每個(gè)PLC連接的IO設(shè)備數(shù)量不會(huì)超過64個(gè),超過64個(gè)就分配給兩個(gè)以上PLC。首先,設(shè)定有64個(gè)IO設(shè)備,再設(shè)定對(duì)響應(yīng)時(shí)間影響最大的拓?fù)浣Y(jié)構(gòu)。如果有一個(gè)IO設(shè)備通過64個(gè)交換機(jī)串聯(lián)形成線形拓?fù)浣Y(jié)構(gòu)與IO控制器相連,那么這個(gè)IO設(shè)備與IO控制器之間的通信延遲時(shí)間是最長的,故可由此計(jì)算出Profinet系統(tǒng)的最大延遲時(shí)間。在正常運(yùn)行時(shí),Profinet IO系統(tǒng)中的RT幀都是高頻率小幀。這里,為了計(jì)算最大延遲時(shí)間,設(shè)定為1 488 b的RT最大幀[6-8]。
除了上述設(shè)定之外,還需要考慮Profinet IO系統(tǒng)在應(yīng)用中的兩個(gè)現(xiàn)實(shí)情況。這兩個(gè)現(xiàn)實(shí)情況并非設(shè)定。首先,Profinet IO系統(tǒng)作為現(xiàn)場設(shè)備網(wǎng)絡(luò),與企業(yè)管理網(wǎng)絡(luò)系統(tǒng)是隔離的。在正常運(yùn)行時(shí),企業(yè)管理網(wǎng)絡(luò)中的標(biāo)準(zhǔn)TCP/IP數(shù)據(jù)是嚴(yán)格限制進(jìn)入Profinet IO系統(tǒng)的。進(jìn)入Profinet IO系統(tǒng)的管理級(jí)TCP/IP數(shù)據(jù)一般發(fā)生在IO控制器所連接的交換機(jī)上,且流量受限,可以不用考慮對(duì)IO系統(tǒng)實(shí)時(shí)性能的影響。其次,在正常運(yùn)行時(shí),Profinet IO系統(tǒng)中只有循環(huán)RT數(shù)據(jù)。對(duì)Profinet IO系統(tǒng)進(jìn)行診斷與設(shè)置的TCP(UDP)/IP數(shù)據(jù)很小,僅在設(shè)置與診斷時(shí)(比如使用WBM對(duì)IO控制器或設(shè)備進(jìn)行設(shè)置和診斷)發(fā)生;發(fā)生實(shí)時(shí)報(bào)警時(shí)的狀態(tài),也并非正常運(yùn)行狀態(tài),不考慮對(duì)IO系統(tǒng)實(shí)時(shí)性能的影響。
結(jié)合上述條件計(jì)算如下:一個(gè)1 488 b的最大RT幀,在協(xié)議棧中的處理時(shí)間為2×T2=1 488×26.67×2=79 369.92 ns=79.37 μs。在64個(gè)交換機(jī)和64段100 m電纜中的延遲時(shí)間為64×(120+0.5)=7 712 μs,則延遲時(shí)間為79.37+7 712=7 791.37 μs,約7.79 ms,接近8 ms。雖然西門子公司宣稱RT延遲時(shí)間為10 ms,但是考慮到西門子在其PLC編程軟件中設(shè)定的刷新時(shí)間都是2的次方數(shù)(即1 ms,2 ms,4 ms,8 ms,16 ms,32 ms,64 ms…),并沒有10 ms這一選項(xiàng),那么8 ms就是與西門子公司宣稱的RT延遲時(shí)間10 ms最為接近的。另外,西門子公司向客戶建議的最大刷新時(shí)間一般為8 ms。這在文獻(xiàn)[9]~文獻(xiàn)[11]中都有體現(xiàn)[9-11]。
文獻(xiàn)[9]、文獻(xiàn)[10]和文獻(xiàn)[12]都對(duì)延遲時(shí)間進(jìn)行了計(jì)算,尤其文獻(xiàn)[9]的計(jì)算方法直接來自于西門子公司的一個(gè)培訓(xùn)教程視頻。這個(gè)視頻雖然出自西門子某位工程師之手,但是計(jì)算延遲時(shí)間的方法存在錯(cuò)誤。首先,對(duì)RT數(shù)據(jù)在協(xié)議棧中傳輸時(shí)間的理解存在錯(cuò)誤。在計(jì)算Profinet RT每字節(jié)數(shù)據(jù)在協(xié)議棧中的傳輸時(shí)間時(shí)仍舊按標(biāo)準(zhǔn)快速以太網(wǎng)每字節(jié)傳輸時(shí)間計(jì)算,甚至也不按RT數(shù)據(jù)每幀的大小來計(jì)算,而是按標(biāo)準(zhǔn)以太網(wǎng)數(shù)據(jù)每幀的大小來計(jì)算。Profinet RT對(duì)標(biāo)準(zhǔn)快速以太網(wǎng)進(jìn)行實(shí)時(shí)擴(kuò)展,省去了標(biāo)準(zhǔn)以太網(wǎng)ISO/OSI模型中的傳輸層和控制層,只剩下了數(shù)據(jù)鏈路層,從而節(jié)約傳輸時(shí)間。故RT數(shù)據(jù)傳輸時(shí)間理應(yīng)按標(biāo)準(zhǔn)以太網(wǎng)數(shù)據(jù)傳輸時(shí)間的1/3進(jìn)行計(jì)算,數(shù)據(jù)大小應(yīng)按RT幀大小進(jìn)行計(jì)算。其次,有的設(shè)定條件與實(shí)際不符。實(shí)際應(yīng)用中,Profinet IO系統(tǒng)中應(yīng)按只有循環(huán)RT數(shù)據(jù)進(jìn)行計(jì)算,即使有NRT數(shù)據(jù)和非循環(huán)RT數(shù)據(jù),其流量之小可忽略不計(jì)。再次,有的設(shè)定條件不符合邏輯。計(jì)算最大延遲時(shí)間,理應(yīng)使用RT最大數(shù)據(jù)幀,而非RT或NRT最小數(shù)據(jù)幀。
1.1節(jié)中各項(xiàng)技術(shù),每一項(xiàng)都和交換機(jī)直接相關(guān),都通過交換機(jī)實(shí)現(xiàn)。交換機(jī)理應(yīng)是Profinet IO系統(tǒng)通信功能的核心。但是在Profinet標(biāo)準(zhǔn)中,并未把交換機(jī)列為和IO控制器、IO設(shè)備、IO監(jiān)視器并列的單獨(dú)一種,而是被視為一種IO設(shè)備。這也許是為了體現(xiàn)Profinet使用標(biāo)準(zhǔn)以太網(wǎng)交換機(jī),因而不在Profinet標(biāo)準(zhǔn)中另作說明。
根據(jù)上述延遲時(shí)間計(jì)算,可以確認(rèn)拓?fù)浣Y(jié)構(gòu)是造成Profinet IO系統(tǒng)通信延遲的主要因素。與之相比,Profinet IO對(duì)于標(biāo)準(zhǔn)以太網(wǎng)作實(shí)時(shí)擴(kuò)展所節(jié)約的時(shí)間甚至是微不足道的。即使沒有經(jīng)過實(shí)時(shí)擴(kuò)展,在采用上述計(jì)算條件的情況下,標(biāo)準(zhǔn)以太網(wǎng)最大延遲時(shí)間為121.44×2+(0.5+120)×64=242.88+7 712=7 954.88 μs=7.95 ms,與實(shí)時(shí)擴(kuò)展所得的結(jié)果(即7.79 ms)并沒有太大的差別。所以,正如文獻(xiàn)[13]和文獻(xiàn)[14]所說,即使沒有實(shí)時(shí)擴(kuò)展,采用全雙工快速以太網(wǎng)、交換以太網(wǎng)、優(yōu)先級(jí)標(biāo)簽和虛擬局域網(wǎng)技術(shù)的標(biāo)準(zhǔn)以太網(wǎng)也可以達(dá)到10 ms的延遲時(shí)間。其關(guān)鍵在于控制通信流量。在西門子網(wǎng)絡(luò)規(guī)劃軟件Sinetplan中,通信流量(即網(wǎng)絡(luò)負(fù)載)是一項(xiàng)重要指標(biāo)。當(dāng)網(wǎng)絡(luò)負(fù)載超過20%,軟件就會(huì)自動(dòng)發(fā)出警告。
以上討論的是Profinet IO系統(tǒng)的通信功能技術(shù)架構(gòu)對(duì)實(shí)時(shí)性能的影響,著重在通信功能的延遲時(shí)間或響應(yīng)時(shí)間。通信功能的響應(yīng)時(shí)間只是Profinet IO系統(tǒng)響應(yīng)時(shí)間的一部分。
評(píng)價(jià)包括Profinet IO系統(tǒng)在內(nèi)的工業(yè)以太網(wǎng)的實(shí)時(shí)性能,理應(yīng)評(píng)價(jià)整個(gè)系統(tǒng)的響應(yīng)時(shí)間,而不應(yīng)僅僅著眼于通信功能的響應(yīng)時(shí)間。系統(tǒng)的響應(yīng)時(shí)間,才是工程應(yīng)用中需要的實(shí)際響應(yīng)時(shí)間。在Profinet IO系統(tǒng)中,IO控制器居于核心地位,其實(shí)時(shí)技術(shù)架構(gòu)對(duì)整個(gè)系統(tǒng)的實(shí)時(shí)性能起著決定性的作用。本文接下來分析IO控制器技術(shù)架構(gòu)中與實(shí)時(shí)性能相關(guān)的部分,由此分析影響Profinet IO系統(tǒng)實(shí)時(shí)性的因素。
Profinet IO系統(tǒng)中的IO控制器一般指PLC。以下均以西門子PLC為例。
在實(shí)際應(yīng)用過程中,Profinet IO系統(tǒng)的響應(yīng)時(shí)間是指從檢測到輸入信號(hào)開始,到更改與該信號(hào)相關(guān)的輸出信號(hào)結(jié)束的時(shí)間。Profinet IO系統(tǒng)的響應(yīng)時(shí)間和多種處理周期有關(guān)。Profinet IO系統(tǒng)響應(yīng)時(shí)間結(jié)構(gòu)如圖5所示。輸入信號(hào)在分布式IO信號(hào)模板中的被讀入周期為T1,ET200背板總線的循環(huán)周期為T2,Profinet總線通信周期為T3,PLC的循環(huán)周期為T4,反方向T5~T7為輸出周期。計(jì)算Profinet IO系統(tǒng)的響應(yīng)時(shí)間,理應(yīng)考慮到這幾個(gè)周期所造成的影響。而這幾個(gè)周期是如何造成影響的,則需要首先分析PLC的實(shí)時(shí)技術(shù)架構(gòu)[15]。

圖5 Profinet IO系統(tǒng)響應(yīng)時(shí)間結(jié)構(gòu)圖 Fig.5 Profinet IO system response time structure
通信系統(tǒng)一般都會(huì)涉及到信號(hào)采樣和信號(hào)恢復(fù)兩個(gè)過程,并且遵循香農(nóng)-奈奎斯特采樣定理。香農(nóng)-奈奎斯特采樣定理簡單表述如下:采樣頻率大于信號(hào)中最高頻率的2倍時(shí),或者說采樣周期小于信號(hào)最小周期的1/2時(shí),才能使采樣之后的信號(hào)完整地恢復(fù)原始信號(hào)。
①信號(hào)采樣。Profinet IO系統(tǒng)的信號(hào)采樣體現(xiàn)在IO設(shè)備向PLC周期性發(fā)送輸入信號(hào)。這個(gè)周期即IO設(shè)備的刷新時(shí)間。每個(gè)IO設(shè)備的刷新時(shí)間都基于其通信響應(yīng)時(shí)間,可以在PLC編程軟件中設(shè)置。為了保證確定性,需要設(shè)置比實(shí)際響應(yīng)時(shí)間略大的值,最大不能超過信號(hào)最小周期的1/2,以保證有效采樣。這就是Profinet IO系統(tǒng)通信功能的響應(yīng)時(shí)間體現(xiàn)其作用的方式。西門子Profinet IO設(shè)備的刷新時(shí)間都是在給定的2的次方數(shù)的時(shí)間中作選擇,如某IO設(shè)備響應(yīng)時(shí)間為7.79 ms,那么刷新時(shí)間可以選為8 ms。在PLC編程軟件中組態(tài)IO設(shè)備時(shí),其刷新時(shí)間是編程軟件讀取IO設(shè)備的GSD文件來自動(dòng)確定的,并不考慮拓?fù)湓O(shè)置,所以在拓?fù)浣Y(jié)構(gòu)中線性連接較多的情況下仍需手動(dòng)設(shè)置刷新時(shí)間。
②通信周期。所有IO設(shè)備完成一次刷新的時(shí)間就是一個(gè)刷新周期,即一個(gè)通信周期。由于每個(gè)IO設(shè)備的刷新時(shí)間不同,故Profinet IO系統(tǒng)的通信周期由刷新時(shí)間最長的IO設(shè)備決定。由于西門子Profinet IO設(shè)備的刷新時(shí)間都是在給定的2的次方數(shù)的時(shí)間中選擇,所以通信周期是很容易確定的。刷新時(shí)間和通信周期如圖6所示。1#、2#、3#、4#IO設(shè)備的刷新時(shí)間分別是1 ms、2 ms、2 ms、4 ms。因此,通信周期是4 ms。

圖6 刷新時(shí)間和通信周期示意圖 Fig.6 Update time and communication cycle
③信號(hào)恢復(fù)。輸入信號(hào)的采樣值恢復(fù)為原始信號(hào)值,然后在外設(shè)IO緩存區(qū)被CPU讀入過程映像輸入?yún)^(qū)。這是PLC處理輸入值的一般流程。為了把孤立的每個(gè)時(shí)間點(diǎn)上的采樣信號(hào)恢復(fù)為真實(shí)信號(hào),至少需要兩個(gè)采樣值,因?yàn)橹辽賰纱尾蓸硬拍荏w現(xiàn)采樣頻率。即使對(duì)于實(shí)際應(yīng)用中最常使用的開關(guān)量信號(hào),也需要至少兩次采樣才能取得正確的恢復(fù)信號(hào)。這是為了避免一次采樣采到開關(guān)量信號(hào)的末端造成信號(hào)失真。也就是說,至少在兩個(gè)通信周期之后,PLC才能取得采樣的原始信號(hào)值。
④過程映像。過程映像是西門子PLC的一個(gè)重要概念。一般流程中,在用戶程序?qū)斎胼敵?IO地址區(qū)進(jìn)行尋址時(shí)不查詢數(shù)字信號(hào)模塊的信號(hào)狀態(tài),而是訪問CPU系統(tǒng)存儲(chǔ)器中的過程映像存儲(chǔ)區(qū),包括輸入過程映像和輸出過程映像兩部分。與直接訪問輸入/輸出模塊相比,訪問過程映像的優(yōu)勢在于:在循環(huán)程序處理期間,可為CPU 提供一致的過程信號(hào)映像。如果在程序執(zhí)行期間輸入模塊的信號(hào)狀態(tài)發(fā)生變化,過程映像中的信號(hào)狀態(tài)將保持不變,直到過程映像在下一個(gè)循環(huán)周期中被刷新。這樣能使PLC程序在一個(gè)循環(huán)周期中處理相同的輸入信號(hào),避免發(fā)生異常擾動(dòng),導(dǎo)致輸入值不一致發(fā)生意外的輸出動(dòng)作。此外,由于過程映像存儲(chǔ)在 CPU 的系統(tǒng)存儲(chǔ)器中,訪問過程映像的速度明顯快于直接訪問信號(hào)模塊。
⑤循環(huán)周期。循環(huán)周期代表PLC操作系統(tǒng)執(zhí)行一個(gè)程序的時(shí)間,即執(zhí)行一個(gè)循環(huán)程序OB1的周期,包括中斷OB1執(zhí)行過程的所有程序段和系統(tǒng)活動(dòng)。在循環(huán)程序處理過程中,CPU 需要一致的過程映像信號(hào)。為此,在程序執(zhí)行之前讀取/寫入過程映像信號(hào)。對(duì)于西門子PLC,由于循環(huán)周期能被中斷,所以循環(huán)周期并不固定。循環(huán)周期可以在PLC編程和選型時(shí)確定,使循環(huán)周期至少為通信周期的兩倍。如選擇的PLC性能過高,循環(huán)周期將遠(yuǎn)小于兩倍的通信周期,造成PLC的浪費(fèi)。這時(shí),通信功能是Profinet IO系統(tǒng)實(shí)時(shí)性能的短板。選擇的PLC性能過低,循環(huán)周期將遠(yuǎn)大于兩倍的通信周期。這時(shí),PLC是Profinet IO系統(tǒng)實(shí)時(shí)性能的短板。理想的循環(huán)周期和通信周期如圖7所示。

圖7 理想的循環(huán)周期和通信周期示意圖 Fig.7 Ideal cycle time and communication cycle
⑥外設(shè)尋址和循環(huán)中斷。按照一般流程,PLC的CPU至少在兩個(gè)通信周期之后才能取得恢復(fù)信號(hào)并寫入到輸入過程映像,且在循環(huán)周期內(nèi)過程映像的值保持不變。雖然有的IO設(shè)備刷新時(shí)間短,但還是要等到取得刷新時(shí)間最長的IO設(shè)備恢復(fù)信號(hào)(即兩個(gè)通信周期)之后,才能在循環(huán)周期開始時(shí)寫入過程映像輸入?yún)^(qū)。這有可能影響PLC處理某些信號(hào)的實(shí)時(shí)性。外設(shè)尋址和循環(huán)中斷就是西門子PLC為了保證實(shí)時(shí)性所打的兩種系統(tǒng)補(bǔ)丁,即兩種特殊流程。外設(shè)尋址是指PLC程序不經(jīng)過過程映像區(qū)讀某些輸入信號(hào)或?qū)懩承┹敵鲂盘?hào),而是直接從外設(shè)存儲(chǔ)區(qū)讀某些輸入信號(hào)或?qū)懩承┹敵鲂盘?hào),不需要等待兩個(gè)通信周期,也不受限于過程映像區(qū)。外設(shè)尋址雖然保證了某些信號(hào)的實(shí)時(shí)性,但是不再具備過程映像防止信號(hào)意外擾動(dòng)的優(yōu)點(diǎn)。循環(huán)中斷(OB30-OB38)在循環(huán)程序OB1運(yùn)行過程中以可設(shè)定的時(shí)間間隔循環(huán)啟動(dòng),然后處理某些刷新時(shí)間比通信周期短的信號(hào)。循環(huán)中斷雖然保證了某些信號(hào)的實(shí)時(shí)性,但是延長了循環(huán)周期,影響了整體的實(shí)時(shí)性。
在Profinet IO系統(tǒng)所涉及的7個(gè)周期時(shí)間,雖然是按照順序發(fā)生,但是各周期并不同步,尤其是循環(huán)周期還是可變的,所以系統(tǒng)的響應(yīng)時(shí)間是可變的。通信周期T3、T5和循環(huán)周期T4是組成Profinet IO系統(tǒng)響應(yīng)時(shí)間的主要部分。T3、T4和T5的時(shí)間單位通常是ms級(jí)的,而根據(jù)西門子的技術(shù)手冊(cè),T1、T2、T6、T7都是μs級(jí)的,實(shí)際計(jì)算中適當(dāng)忽略不計(jì)。評(píng)估系統(tǒng)的響應(yīng)時(shí)間,在極端情況下可能發(fā)生的最大響應(yīng)時(shí)間具有參考意義,只要最大響應(yīng)時(shí)間滿足了工程應(yīng)用的要求即可。
西門子的技術(shù)手冊(cè)中對(duì)循環(huán)周期、最小響應(yīng)時(shí)間和最大響應(yīng)時(shí)間的計(jì)算都作了詳細(xì)的說明,并且把包含兩個(gè)循環(huán)周期的響應(yīng)時(shí)間設(shè)為最大響應(yīng)時(shí)間。但是,西門子最大響應(yīng)時(shí)間發(fā)生在什么情況下都沒有作出明確說明。
合理的解釋是,對(duì)于一個(gè)開關(guān)量信號(hào),如果在兩次通信周期中取得的信號(hào)值并不一致,那么在第二個(gè)通信周期中取得的信號(hào)值(即發(fā)生變化的值)將被忽略,仍舊把第一個(gè)通信周期取得的信號(hào)值作為信號(hào)的恢復(fù)值寫入過程映像輸入?yún)^(qū),并在程序中進(jìn)行處理。正常情況下,這會(huì)發(fā)生在開關(guān)量信號(hào)的上升沿或下降沿。高電平信號(hào)1和低電平信號(hào)0恰好在這兩個(gè)周期中分別被采樣。這是很偶然的情況。在下次兩個(gè)通信周期的采樣過程中,變化后的值將被兩次采樣,然后取得一致的信號(hào)恢復(fù)值,被寫入過程映像輸入?yún)^(qū)并在程序中進(jìn)行處理。因此,這個(gè)信號(hào)的響應(yīng)時(shí)間包括了兩個(gè)循環(huán)周期。信號(hào)的最長響應(yīng)時(shí)間如圖8所示。

圖8 信號(hào)的最長響應(yīng)時(shí)間 Fig.8 The longest response time of a signal
如果在下次兩個(gè)通信周期的采樣過程中,仍舊取得與變化前一致的信號(hào)恢復(fù)值,那么這次改變將會(huì)被視為一次意外擾動(dòng)而被忽略。如果這種情況頻繁發(fā)生,有可能是采樣頻率過小,也就是刷新時(shí)間過長導(dǎo)致的。對(duì)此,需要采用更小的刷新時(shí)間,甚至采用外設(shè)尋址和循環(huán)中斷。
IO控制器是Profinet IO系統(tǒng)的核心。這也是Profinet IO系統(tǒng)和以太網(wǎng)技術(shù)架構(gòu)的不同之處。在以太網(wǎng)中,每一個(gè)節(jié)點(diǎn)都是平等的、去中心化的,互相之間隨機(jī)通信。但是,Profinet IO系統(tǒng)中的節(jié)點(diǎn)則不同,IO控制器占據(jù)著主導(dǎo)地位,控制著與每一個(gè)IO設(shè)備、IO監(jiān)視器的通信,而每一個(gè)IO設(shè)備、IO監(jiān)視器都與IO控制器通信,互相之間通信極少。這就造成了IO控制器連接到交換機(jī)的端口通信負(fù)荷最重,所連接的交換機(jī)通信負(fù)荷最重,有可能造成延遲。因此,必須限制流量。這主要通過控制Profinet IO系統(tǒng)中的IO設(shè)備的數(shù)量來實(shí)現(xiàn)。
優(yōu)化Profinet IO系統(tǒng)響應(yīng)時(shí)間,需要從通信周期和循環(huán)周期兩個(gè)主要部分著手。Profinet IO作為一種工程技術(shù),其RT通信的響應(yīng)時(shí)間能夠滿足大部分工廠自動(dòng)化應(yīng)用需求。即使把通信周期即最大刷新時(shí)間設(shè)為8 ms,那么采樣頻率為125 Hz。這已經(jīng)是一個(gè)較高的頻率,超過大部分行業(yè)應(yīng)用的需求。所以,外設(shè)尋址和循環(huán)中斷兩種特殊流程也很少用得上。在通信周期為8 ms的情況下,系統(tǒng)的響應(yīng)時(shí)間超過40 ms,極端情況下需要兩個(gè)循環(huán)周期使響應(yīng)時(shí)間超過56 ms。另外一個(gè)可以參考的關(guān)于時(shí)間的數(shù)據(jù),是西門子PLC的循環(huán)周期報(bào)警時(shí)間為150 ms。當(dāng)循環(huán)周期超過150 ms時(shí),PLC將停止運(yùn)行,并報(bào)警。
通過對(duì)Profinet IO系統(tǒng)的實(shí)時(shí)技術(shù)架構(gòu)進(jìn)行全面分析,明確了通信功能和IO控制器這兩個(gè)主要方面是如何對(duì)系統(tǒng)的實(shí)時(shí)性能即響應(yīng)時(shí)間發(fā)生影響的。對(duì)于IO控制器來說,改進(jìn)其響應(yīng)時(shí)間的方法比較簡單直接,就是提升PLC CPU的運(yùn)算能力。這也是目前西門子公司采用的主要方法。最新的S7-1500系列PLC性能要遠(yuǎn)比S7-300/400系列強(qiáng)大。PLC作為Profinet IO系統(tǒng)的核心,過于中心化,并非分布式控制,對(duì)于這種技術(shù)架構(gòu)的改進(jìn)還沒有具體方案。對(duì)于通信功能的響應(yīng)時(shí)間來說,拓?fù)浣Y(jié)構(gòu)是影響Profinet IO響應(yīng)時(shí)間的主要因素。未來改善的方法應(yīng)該從拓?fù)浣Y(jié)構(gòu)著手,但目前尚未見到具體方案。目前來看,相對(duì)于IO控制器,通信功能是影響Profinet IO系統(tǒng)實(shí)時(shí)性能的短板。