烏建中,蔣一斌,蔣時(shí)春
(同濟(jì)大學(xué) 機(jī)械與能源工程學(xué)院,上海 201804)
CAN總線是現(xiàn)今工業(yè)控制領(lǐng)域應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一,它有著優(yōu)良的傳輸特性以及突出的可靠性,被譽(yù)為“自動(dòng)化領(lǐng)域中的計(jì)算機(jī)局域網(wǎng)”[1].但是CAN屬于“車(chē)間設(shè)備級(jí)”總線,難以保證超多節(jié)點(diǎn)同時(shí)傳輸時(shí)的大數(shù)據(jù)量傳輸實(shí)時(shí)性,且傳輸速度受傳輸距離的影響,無(wú)法直接與計(jì)算機(jī)連接.隨著網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)目的增加,通信質(zhì)量以及通信實(shí)時(shí)性將會(huì)受到巨大挑戰(zhàn).
而隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,基于以太網(wǎng)及 TCP/IP(Transmission Control Protocol/Internet Protocol)協(xié)議棧的通信網(wǎng)絡(luò)已廣泛應(yīng)用于全世界各個(gè)領(lǐng)域的網(wǎng)絡(luò)信息管理及監(jiān)控系統(tǒng)[2].以太網(wǎng)傳輸速率高,能與計(jì)算機(jī)直接連接而無(wú)需網(wǎng)關(guān),并且傳輸距離長(zhǎng).
雖然以太網(wǎng)發(fā)展前景積極樂(lè)觀,但是實(shí)際工業(yè)一線應(yīng)用的網(wǎng)絡(luò)具體情況各不相同,現(xiàn)場(chǎng)環(huán)境復(fù)雜甚至惡劣,在工業(yè)控制領(lǐng)域使用以太網(wǎng)來(lái)完全取代類(lèi)似CAN的現(xiàn)場(chǎng)總線仍然是困難的,且從成本、開(kāi)發(fā)難度和周期、適應(yīng)性以及與以往設(shè)備的兼容性來(lái)講,現(xiàn)場(chǎng)總線技術(shù)依然在工程一線有著巨大優(yōu)勢(shì).
本文基于此,致力于這個(gè)問(wèn)題的研究,為工業(yè)控制系統(tǒng)提供一種既滿足大數(shù)據(jù)量通信實(shí)時(shí)性要求,也符合工程一線對(duì)通信網(wǎng)絡(luò)可靠性、適應(yīng)性要求的切實(shí)有效的解決方案.
常用的傳統(tǒng)工業(yè)控制網(wǎng)絡(luò)通常為三級(jí)網(wǎng)絡(luò):一級(jí)網(wǎng)絡(luò)通常使用RS485網(wǎng)絡(luò),用以連接主控制器與計(jì)算機(jī);二級(jí)CAN網(wǎng)絡(luò)連接現(xiàn)場(chǎng)控制器與主控制器;三級(jí)CAN網(wǎng)絡(luò)連接終端節(jié)點(diǎn)與現(xiàn)場(chǎng)控制器,如圖1所示[3].實(shí)際上,主控制節(jié)點(diǎn)主要是實(shí)現(xiàn)一個(gè)CAN網(wǎng)絡(luò)與RS485網(wǎng)絡(luò)相連接的網(wǎng)關(guān)功能,用于對(duì)數(shù)據(jù)的存儲(chǔ)轉(zhuǎn)發(fā).
圖1 工業(yè)控制雙CAN-RS485網(wǎng)絡(luò)Fig.1 Industrial control network based on dual-CAN and RS485
工程項(xiàng)目中,一般CAN總線的傳輸距離都小于1 000m,并考慮現(xiàn)場(chǎng)施工環(huán)境影響,CAN網(wǎng)絡(luò)的傳輸波特率大致可設(shè)定為100kbps[4].一級(jí)網(wǎng)絡(luò)使用RS485,這是因?yàn)橛?jì)算機(jī)大多有串口,即使較新的計(jì)算機(jī)沒(méi)有串口,也可以通過(guò)USB轉(zhuǎn)RS485接口方便地與計(jì)算機(jī)連接.受限于單片機(jī)本身以及RS485自身特性,百米內(nèi)RS485的通信速率一般設(shè)置在115.2kbps以下[5].但是 RS485總線是半雙工通信.這意味著隨著網(wǎng)絡(luò)數(shù)據(jù)流匯合最終匯集到服務(wù)器,數(shù)據(jù)量成倍增長(zhǎng),而網(wǎng)絡(luò)帶寬卻沒(méi)有大的提高;且三層網(wǎng)絡(luò)都采用總線形式組網(wǎng),當(dāng)節(jié)點(diǎn)同時(shí)發(fā)送數(shù)據(jù)時(shí),會(huì)無(wú)法避免地產(chǎn)生數(shù)據(jù)“碰撞”,將嚴(yán)重影響數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性和確定性.
其次,不可忽視的一個(gè)環(huán)節(jié)是主控制器作為RS485與CAN網(wǎng)絡(luò)的網(wǎng)關(guān),采用共享RAM(Random Access Memory)的方式來(lái)進(jìn)行數(shù)據(jù)的存儲(chǔ)轉(zhuǎn)發(fā).而CPU(Central Processing Unit)讀寫(xiě)共享RAM時(shí)必然會(huì)產(chǎn)生競(jìng)爭(zhēng),無(wú)可避免地產(chǎn)生延時(shí).以上幾點(diǎn)容易導(dǎo)致在主控制器這一點(diǎn)上成為通信網(wǎng)絡(luò)中通信速率的瓶頸.
2.1.1 物理層的要求
物理層需要保證通信網(wǎng)絡(luò)物理連接的可靠性.需充分考慮工業(yè)環(huán)境的適應(yīng)性指標(biāo),如耐高溫、防塵、防潮、接口強(qiáng)度、防壓等[3].其次是與現(xiàn)場(chǎng)設(shè)備的物理兼容性,且要有穩(wěn)定的電源.對(duì)于通信介質(zhì),普通雙絞線的抗干擾能力和線纜強(qiáng)度無(wú)法適應(yīng)工業(yè)現(xiàn)場(chǎng)的環(huán)境,需采用帶有屏蔽層,護(hù)套材料阻燃、耐油、耐熱、耐擠壓性能良好,中心添加加強(qiáng)筋的線纜.
2.1.2 網(wǎng)絡(luò)通信的實(shí)時(shí)性和確定性
以太網(wǎng)數(shù)據(jù)鏈路層采用帶沖突檢測(cè)的載波監(jiān)聽(tīng)多路訪問(wèn)(CSMA/CD)機(jī)制作為其訪問(wèn)媒體控制協(xié)議,通信過(guò)程中容易發(fā)生“碰撞”,其在工業(yè)現(xiàn)場(chǎng)設(shè)備中應(yīng)用的致命弱點(diǎn)和主要障礙之一就是其通信響應(yīng)的不確定性[3].
但是有實(shí)驗(yàn)表明,以太網(wǎng)的碰撞概率與網(wǎng)絡(luò)負(fù)載(通信量)有關(guān),當(dāng)負(fù)載小于5%時(shí),碰撞概率幾乎為0;當(dāng)負(fù)載小于20%時(shí),碰撞概率小于0.1%,可保證通信暢通;當(dāng)負(fù)載大于40%時(shí),碰撞概率將大于5%[6].而CAN網(wǎng)絡(luò)的通信速率相對(duì)以太網(wǎng)非常小,因此可以避免上述瓶頸.
為了增強(qiáng)以太網(wǎng)通信的確定性和實(shí)時(shí)性,可以同時(shí)采用以下兩種措施:一是使用交換機(jī)或路由器代替集線器,將網(wǎng)絡(luò)中的沖突域進(jìn)一步細(xì)化;二是優(yōu)化網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),采用星型拓?fù)浣Y(jié)構(gòu)來(lái)代替總線拓?fù)浣Y(jié)構(gòu),避免數(shù)據(jù)之間的“碰撞”[3].
采用星型組網(wǎng),使得各節(jié)點(diǎn)之間并沒(méi)有直接相連,即使各節(jié)點(diǎn)同時(shí)發(fā)起數(shù)據(jù)傳輸,也不會(huì)出現(xiàn)碰撞.路由器設(shè)備在接收到各節(jié)點(diǎn)同時(shí)發(fā)送上來(lái)的數(shù)據(jù)之后,會(huì)對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)轉(zhuǎn)發(fā),所以在宏觀上看,各節(jié)點(diǎn)是并行連接的.
星型網(wǎng)絡(luò)中間節(jié)點(diǎn)選取路由器而非交換機(jī),這是因?yàn)槁酚善鞴ぷ饔诰W(wǎng)絡(luò)層,而交換機(jī)工作于數(shù)據(jù)鏈路層,路由器則可以自動(dòng)分配IP地址,實(shí)現(xiàn)設(shè)備的即插即用,相對(duì)使用交換機(jī),路由器要方便得多.
2.1.3 傳輸層上的UDP與TCP之爭(zhēng)
TCP協(xié)議即傳輸控制協(xié)議,提供端到端的連接,它通過(guò)校驗(yàn)、超時(shí)重傳和應(yīng)答來(lái)保證數(shù)據(jù)的完整正確,實(shí)現(xiàn)可靠、面向連接的數(shù)據(jù)通信[2].這里需要注意,TCP是端對(duì)端的連接,不能夠組播或者廣播,同一份數(shù)據(jù)要傳輸?shù)讲煌?jié)點(diǎn)需要多次傳輸,這顯然會(huì)加劇不必要的網(wǎng)絡(luò)負(fù)載.
由于 UDP(User Datagram Protocol)比 TCP簡(jiǎn)單,它不使用繁瑣的流量控制或錯(cuò)誤恢復(fù)機(jī)制,只充當(dāng)數(shù)據(jù)報(bào)的發(fā)送者和接收者,因此開(kāi)銷(xiāo)小、效率高,適合于低延遲的局域網(wǎng),可以有效地降低網(wǎng)絡(luò)負(fù)載.UDP實(shí)現(xiàn)的是不可靠、無(wú)連接的數(shù)據(jù)報(bào)服務(wù)[2].雖然對(duì)于廣域網(wǎng)而言,在網(wǎng)絡(luò)中傳輸無(wú)法保證數(shù)據(jù)到達(dá),也不知道數(shù)據(jù)是否傳輸成功,但對(duì)于本文涉及的小型局域網(wǎng),且數(shù)據(jù)傳輸過(guò)程中不會(huì)發(fā)生“碰撞”時(shí),使用UDP傳輸數(shù)據(jù),并不會(huì)影響網(wǎng)絡(luò)通信的確定性.
2.1.4 單片機(jī)以太網(wǎng)接口的實(shí)現(xiàn)
眾所周知,使用軟件來(lái)實(shí)現(xiàn)TCP/IP協(xié)議棧將會(huì)使程序變得巨大,不適合在單片機(jī)上運(yùn)用,其開(kāi)發(fā)難度也可想而知.W5100是一款可實(shí)現(xiàn)沒(méi)有操作系統(tǒng)的Internet連接的多功能的單片網(wǎng)絡(luò)接口芯片,內(nèi)部集成了全硬件的TCP/IP協(xié)議棧、以太網(wǎng)介質(zhì)傳輸層(MAC)和物理層(PHY).本系統(tǒng)使用SPI(Serial Peripheral Interface)總線連接 W5100和單片機(jī),SPI總線僅需3~4個(gè)IO口,且多數(shù)單片機(jī)內(nèi)置SPI控制單元.SPI根據(jù)單片機(jī)的性能,速率一般可達(dá)數(shù)兆字節(jié)每秒(MBps).
底層的二級(jí)網(wǎng)絡(luò)用于工程一線,所以使用CAN總線組網(wǎng).CAN總線具有可靠性高和錯(cuò)誤檢測(cè)能力強(qiáng)等特點(diǎn),被廣泛應(yīng)用于計(jì)算機(jī)控制系統(tǒng)和環(huán)境溫度惡劣、電磁輻射強(qiáng)和振動(dòng)大的工業(yè)環(huán)境.雖然相對(duì)于CAN總線而言,以太網(wǎng)的高傳輸速率以及與計(jì)算機(jī)能夠直接連接是其突出優(yōu)勢(shì).,但是,以太網(wǎng)及TCP/IP協(xié)議棧開(kāi)發(fā)周期長(zhǎng),開(kāi)發(fā)難度大,代碼量大且復(fù)雜,以及成本較高,所以相比之下,CAN雖然沒(méi)有很大的傳輸速率,但是更能夠勝任工業(yè)一線的應(yīng)用.
以太網(wǎng)與CAN的異構(gòu)通信網(wǎng)絡(luò)結(jié)構(gòu)圖如圖2所示.
圖2 以太網(wǎng)與CAN總線異構(gòu)的通信網(wǎng)絡(luò)Fig.2 Communication network based on ethernet and CAN
為了驗(yàn)證以太網(wǎng)代替CAN總線在工控系統(tǒng)中的數(shù)據(jù)傳輸特性,本節(jié)基于上節(jié)通信系統(tǒng)設(shè)計(jì)了一組實(shí)驗(yàn),采用確認(rèn)機(jī)制法獲得往返時(shí)延作為網(wǎng)絡(luò)時(shí)延的測(cè)試方法.往返時(shí)延指源節(jié)點(diǎn)在時(shí)刻1將數(shù)據(jù)發(fā)往目的節(jié)點(diǎn),目的節(jié)點(diǎn)在接收到數(shù)據(jù)之后馬上將數(shù)據(jù)發(fā)往源節(jié)點(diǎn),源節(jié)點(diǎn)在時(shí)刻2收到目的節(jié)點(diǎn)發(fā)回來(lái)數(shù)據(jù)的最后一個(gè)字節(jié),則測(cè)試報(bào)文往返時(shí)延就是2個(gè)時(shí)刻之差[4].通過(guò)周期性的大批量的測(cè)試可以減小時(shí)延誤差,從而客觀地反映網(wǎng)絡(luò)性能.
測(cè)試系統(tǒng)時(shí)延結(jié)構(gòu)圖如圖3所示,計(jì)算機(jī)通過(guò)以太網(wǎng)連接到路由器,進(jìn)而與現(xiàn)場(chǎng)控制器相連,再通過(guò)CAN連接智能終端控制器.整個(gè)控制網(wǎng)絡(luò)上的往返時(shí)延t是由t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11組成.t1,t11表示以太網(wǎng)上的計(jì)算機(jī)與現(xiàn)場(chǎng)控制器之間收發(fā)數(shù)據(jù)包產(chǎn)生的時(shí)延;t2,t10表示數(shù)據(jù)在路由器中的存儲(chǔ)轉(zhuǎn)發(fā)交換時(shí)延;t3,t9表示以太網(wǎng)上現(xiàn)場(chǎng)控制器與智能節(jié)點(diǎn)之間收發(fā)數(shù)據(jù)包產(chǎn)生的時(shí)延;t4,t8表示現(xiàn)場(chǎng)控制器的數(shù)據(jù)處理時(shí)延;t5,t7表示現(xiàn)場(chǎng)控制器與智能終端控制器通過(guò)CAN收發(fā)數(shù)據(jù)包所產(chǎn)生的時(shí)延;t6表示智能終端控制器對(duì)數(shù)據(jù)包的數(shù)量時(shí)延.
圖3 測(cè)試系統(tǒng)時(shí)延結(jié)構(gòu)圖Fig.3 Delay diagram of trst system
隨著現(xiàn)代處理器處理速度的提高,基本可以忽略路由器和控制器的對(duì)數(shù)據(jù)包處理所產(chǎn)生的時(shí)延,而傳輸距離長(zhǎng)短對(duì)通信的實(shí)時(shí)性影響也非常小,電信號(hào)在銅線介質(zhì)中的傳播速度約為23×104km·s-1,可以忽略不計(jì).因此往返時(shí)延t可以客觀地反應(yīng)網(wǎng)絡(luò)的傳輸時(shí)延特性.
基于以上討論,本文設(shè)計(jì)了服務(wù)器端監(jiān)控界面程序(如圖4所示)、現(xiàn)場(chǎng)控制器程序和智能終端控制器程序.
現(xiàn)場(chǎng)控制器程序接收路由器轉(zhuǎn)發(fā)過(guò)來(lái)的數(shù)據(jù),傳給下一級(jí)的各智能終端,并接收智能終端發(fā)來(lái)的數(shù)據(jù),轉(zhuǎn)發(fā)給路由器.
智能終端接收現(xiàn)場(chǎng)控制器傳送的數(shù)據(jù),簡(jiǎn)單處理后再發(fā)送給現(xiàn)場(chǎng)控制器.
圖4 服務(wù)器端監(jiān)控界面Fig.4 Server-side monitoring interface
表1雙CAN-485網(wǎng)絡(luò)實(shí)時(shí)性測(cè)試條件Tab.1 Real-time test conditions of dual-CAN and RS485network
傳統(tǒng)通信網(wǎng)絡(luò)的時(shí)延概率分布圖如圖5所示[4],RS485總線通信的時(shí)延在400~650ms之間,RAM數(shù)據(jù)交換時(shí)延在250~350ms之間,而雙CAN總線的時(shí)延在50~300ms間波動(dòng).總往返時(shí)延t約為1 150ms,也就是說(shuō)操作人員在監(jiān)控界面發(fā)出指令到現(xiàn)場(chǎng)控制器執(zhí)行指令所需的響應(yīng)時(shí)間在400~600ms之間[4].雖然在某些實(shí)際工程應(yīng)用中,這個(gè)延時(shí)時(shí)間是可以接受的,但是這是在二級(jí)CAN網(wǎng)絡(luò)僅有6個(gè)節(jié)點(diǎn)的時(shí)候測(cè)得的數(shù)據(jù).為適應(yīng)某些工程需要,二級(jí)節(jié)點(diǎn)數(shù)目可能會(huì)多達(dá)數(shù)十個(gè),此時(shí)時(shí)延會(huì)繼續(xù)增加,數(shù)據(jù)擁堵大大加劇,對(duì)工程的安全以及傳輸效率等方面的負(fù)面影響難以想象.
圖5 雙CAN-RS485網(wǎng)絡(luò)時(shí)延概率分布圖Fig.5 Delay probability of dual-CAN and RS485 network
本節(jié)使用圖2所示方案組網(wǎng)進(jìn)行實(shí)驗(yàn).表2所示為以太網(wǎng)與CAN總線異構(gòu)通信網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)量、收發(fā)等待時(shí)間以及發(fā)送次數(shù).同樣設(shè)定發(fā)送間隔時(shí)間為100ms.但是測(cè)試中加大了數(shù)據(jù)的傳輸率,測(cè)試分為30組,每組給6個(gè)現(xiàn)場(chǎng)控制器發(fā)送100B的數(shù)據(jù).
表2 以太網(wǎng)與CAN異構(gòu)通信網(wǎng)絡(luò)實(shí)時(shí)性測(cè)試條件Tab.2 Real-time test conditions of ethernet and CAN network
由圖6計(jì)算可知,以太網(wǎng)與CAN總線異構(gòu)通信網(wǎng)絡(luò)的總時(shí)延t為80~90ms,且傳輸過(guò)程中沒(méi)有發(fā)生丟包.也就是說(shuō),由控制界面發(fā)出指令到到達(dá)執(zhí)行機(jī)構(gòu)的時(shí)間約為45ms,大大優(yōu)于傳統(tǒng)的雙CAN-RS485網(wǎng)絡(luò).即使面對(duì)更大數(shù)據(jù)量,以太網(wǎng)與CAN總線異構(gòu)通信網(wǎng)絡(luò)也表現(xiàn)出優(yōu)越的性能.
圖6 以太網(wǎng)與CAN總線異構(gòu)通信網(wǎng)絡(luò)時(shí)延概率分布圖Fig.6 Delay probability of ethernet and CAN network
綜上所述,以太網(wǎng)與CAN總線的異構(gòu)通信網(wǎng)絡(luò)相對(duì)傳統(tǒng)的雙CAN-RS485網(wǎng)絡(luò)有如下幾點(diǎn)優(yōu)勢(shì):
(1)通信實(shí)時(shí)性大大提高.這得益于以太網(wǎng)本身傳輸速率高的特點(diǎn),同時(shí)也減少了網(wǎng)絡(luò)層數(shù),減少了數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸“路途”,避免了共享內(nèi)存消耗的時(shí)間,星型組網(wǎng)避免了數(shù)據(jù)“碰撞”.
(2)可以與計(jì)算機(jī)直接相連,不僅節(jié)約了成本,降低了開(kāi)發(fā)量,也大大方便使用的便捷性.
(3)使得數(shù)據(jù)發(fā)布以及實(shí)現(xiàn)交換共享變得非常方便.
以太網(wǎng)與CAN總線兩者各有相對(duì)優(yōu)勢(shì)的應(yīng)用領(lǐng)域,可見(jiàn)以太網(wǎng)和CAN總線聯(lián)合組網(wǎng),取長(zhǎng)補(bǔ)短,綜合性能突出,是一種優(yōu)越且切實(shí)可行的解決方案.而從長(zhǎng)遠(yuǎn)的發(fā)展來(lái)看,以太網(wǎng)必將取代現(xiàn)場(chǎng)總線,成為工業(yè)控制通信網(wǎng)絡(luò)系統(tǒng)的主流.
[1]張超,唐楚舒,冉隆強(qiáng),等.淺談CAN總線控制器RC6-9在銑刨機(jī)上的應(yīng)用[J].機(jī)床與液壓,2007,35:191-240.
ZHANG Chao,TANG Chushu,RAN Longqiang,et al.The application of CAN bus controller of RC6-9in milling machine[J].Machine Tool & Hydraulics,2007,35:191-240.
[2]譚思云,周前華,熊威,等.CAN總線與以太網(wǎng)的互連的研究[J].中國(guó)水運(yùn),2007,7(9):129-130.
TANG Siyun,ZHOU Qianhua,XIONG Wei,et al.The research of interconnection between CAN bus and ethernet[J].China Water Transport,2007,7(9):129-130.
[3]王保中,涂亞慶,張麗娟.工業(yè)以太網(wǎng)與CAN現(xiàn)場(chǎng)總線比較和應(yīng)用方案分析[J].工業(yè)儀表與自動(dòng)化裝置,2006(5):10-34.
WANG Baozhong,TU Yaqiang,ZHANG Lijuan.A comparison between industrial ethernet and CAN bus along with an analysis of their application schemes[J].Industrial Instrmentation & Automation,2006(5):10-34.
[4]朱蓮萍.液壓提升多級(jí)網(wǎng)絡(luò)監(jiān)測(cè)控制研究與工程化應(yīng)用[D].上海:同濟(jì)大學(xué),2012.
ZHU Lianping.The research and engineering application of multi-level network monitoring and control for hydraulic lifting system[D].Shanghai:Tongji University,2012.
[5]吳志紅,朱元,王學(xué)宇.英飛凌16位單片機(jī)XC164CS的原理與基礎(chǔ)應(yīng)用[M].上海:同濟(jì)大學(xué)出版社,2006.
WU Zhihong,ZHU Yuan,WANG Xueyu.The principles and basic applications of Infineon 16-bit microcontroller XC164CS[M].Shanghai:Tongji University Press,2006.
[6]許洪華,劉科.工業(yè)以太網(wǎng)實(shí)時(shí)通訊技術(shù)研究[J].可編程控制器與工廠自動(dòng)化,2004(6):14-16.
XU Honghua,LIU Ke.The research of the real-time industrial ethernet communication technology[J].PLC &FA,2004(6):14-16.