PROFINET如何实现实时性
有一句話說的是“文藝作品要源于生活而高于生活”,想必大家不會陌生。PROFINET是基于工業(yè)以太網(wǎng)的,這句話可以說得文藝范一點兒:“PROFINET是源于以太網(wǎng)而高于以太網(wǎng)的”。那么,PROFINET是怎么做到“高于以太網(wǎng)”的呢?
要做到比普通以太網(wǎng)要犀利,重要的是PROFINET要做到實時性,而要做到實時性,首先就要解決確定性的問題。前面提到普通以太網(wǎng)會出現(xiàn)介質(zhì)訪問沖突的問題,不滿足“確定性”的標準。那么一般解決沖突的方法有哪些呢?
1. 既然PROFIBUS總線和PROFINET關(guān)系密切,先看看總線是如何的解決方法吧。PROFIBUS的通信方式是主從式,使用“令牌”控制,就像十字路**通信號燈的作用;
2. 可以想辦法改進普通以太網(wǎng)所用的CSMA/CD,或者無線局域網(wǎng)(WLAN)所使用的CSMA/CA;
3. 廣域網(wǎng)中使用信道復(fù)用,分為頻分復(fù)用(FDM)和時分復(fù)用(TDM)。頻分復(fù)用將一條高帶寬的信道劃分成帶寬較小的多個信道,就像在一條公路上劃分出多個車道;時分復(fù)用通過把通信數(shù)據(jù)包分配在不同時隙進行傳輸來實現(xiàn)信道復(fù)用。
PROFINET的通信方式是生產(chǎn)者/消費者,各個通信節(jié)點是平等的,隨時都可以收發(fā)數(shù)據(jù),所以總線的那種“令牌”控制不能適用,只能在后兩個方案中想辦法。從而也造就了前面所提到的PROFINET不同于PROFIBUS的地方。
1、交換技術(shù)
普通以太網(wǎng)設(shè)備有可能會出現(xiàn)數(shù)據(jù)碰撞,也就是所謂的CSMA/CD造成了數(shù)據(jù)發(fā)送的延遲,從而不能保證通信的確定性,也就無法談及通信的實時性。而且前面提到?jīng)_突域的范圍是有大小的。普通以太網(wǎng)使用傳統(tǒng)的交換機(switch)或者是集線器(Hub)構(gòu)成局域網(wǎng),使用集線器連接使得整個局域網(wǎng)都是一個數(shù)據(jù)的沖突域。那是不是可以在從沖突域的角度對普通以太網(wǎng)改進一下,以彰顯PROFINET的“先進性”呢?答案是肯定的。
PROFINET采用支持IEEE 802.Q標準的交換機,或者PROFINET設(shè)備本身就集成一個帶交換功能的雙網(wǎng)口,使得同時有多個設(shè)備和一個設(shè)備所使用的帶寬都是一樣(100M),這樣數(shù)據(jù)沖突的區(qū)域縮小到設(shè)備本身的區(qū)域內(nèi)。因為端口可能有多個用戶與該端口連接的用戶通信,有可能發(fā)生介質(zhì)訪問沖突,支持IEEE 802.Q標準的交換機還采用了帶有優(yōu)先級的方式安排發(fā)送順序,于是將沖突域縮小到一個具體的端口,從兩個方面大大縮小了數(shù)據(jù)沖突區(qū)域,確保了通信的確定性。
打個比方說,在兩條道路交匯的十字路口,東南西北四個方向的車不可能同時通過,得通過交通信號燈來進行指引,交換機相當于建了個立交橋,甚至是多層立交橋,使得多個方向的車輛能夠同時通行。而在局域網(wǎng)中使用支持IEEE 802.Q標準的交換機,將通信網(wǎng)絡(luò)搭建得像滬寧高速公路一樣,在一個方向中劃分出多個車道(雙向8車道),并且規(guī)定大車在一般不得占用內(nèi)側(cè)的車道,不僅大大提高了通行效率,而且行車的安全性也大大提高了。
2、循環(huán)通信
如上圖所示,對于由控制器、設(shè)備組成的PROFINET IO系統(tǒng)來說,工作的方式就是輸入、處理、輸出,這一過程循環(huán)罔替,周而復(fù)始。處理是循環(huán)的,T1是PLC程序的循環(huán)掃描時間;而且通信也是循環(huán)的,T2是總線刷新時間,也就說每個循環(huán)周期(Cycle1…n),控制器與設(shè)備之間會進行通信。從這個角度說,PROFINET運用了時分復(fù)用中時隙的概念,這將大大提高整個網(wǎng)絡(luò)的通信效率。時隙這個話題將在后面的章節(jié)中詳細描述。
3、精簡協(xié)議棧
前面提到PROFINET IO系統(tǒng)是循環(huán)通信的,在一個周期內(nèi)(總線刷新時間)做的事情無非是發(fā)送與接收,包括以下過程:
1. 在生產(chǎn)者的應(yīng)用程序中創(chuàng)建一個變量;
2. 通過PROFINET通信報文的形式將該變量發(fā)送給通信伙伴(消費者);
3. 在消費者的應(yīng)用程序中再次獲得該變量。
這個過程所花費的時間如圖所示,是T1到T5的累加,詳細說明如下。
普通以太網(wǎng)通信使用TCP/IP協(xié)議,設(shè)備處理報文的時間是ms級別。對于PROFINET實時通信來說,PROFINET使用100Mbps(快速以太網(wǎng))的傳輸速率,以傳輸一個最長的PROFINET報文1522字節(jié)為例,其傳輸時間T3大約是125μs,與采用TCP/IP協(xié)議報文的處理時間相比,傳輸時間T3是很短的。于是,要縮短刷新時間,最有效的辦法就要精簡通信協(xié)議棧,也就是縮短了T2和T4。
這種簡化信息接受難度的做法就像鄙人當年逃課收看NBA總決賽的現(xiàn)場直播,現(xiàn)場畫面和主持人的講解讓人能很快、很直接的、很“實時”的感受到現(xiàn)場氣息,獲得身臨其境的效果,讓鄙人看完比賽后會意猶未盡、得意洋洋地向老老實實上課的球迷同學炫耀。如果當時只有文字直播,需要花一些時間通過文字理解去想象比賽畫面,你覺得還有必要逃課去當鐵桿球迷嗎?
另外,PROFINET精簡了通信堆棧的結(jié)構(gòu),對于時間要求苛刻的數(shù)據(jù)采用特別報文及協(xié)議,不使用TCP/IP協(xié)議棧處理,從而大大縮短了通信時間,保證了通信的實時性。這也屬于實時報文類型,將會在后面章節(jié)將會詳細描述。
總而言之,PROFINET采用精簡的通信堆棧結(jié)構(gòu),100Mbps快速以太網(wǎng),使用交換機或者帶交換功能的IO設(shè)備,還有就是其循環(huán)通訊的協(xié)議機制,這些是PROFINET實時的原因。
總結(jié)
以上是生活随笔為你收集整理的PROFINET如何实现实时性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米手机简单检测手机故障方法
- 下一篇: 5种方式将数字转成千分位