張立文,方江龍,周耀綱,梁德春
(1.上海理工大學(xué) 機(jī)械工程學(xué)院,上海 200093;2.上海電氣集團(tuán)中央研究院,上海 200070;3.德國(guó)倍福自動(dòng)化有限公司,上海200436)
基于TwinCAT軟件的EtherCAT診斷應(yīng)用
張立文1,方江龍2,周耀綱3,梁德春3
(1.上海理工大學(xué) 機(jī)械工程學(xué)院,上海 200093;2.上海電氣集團(tuán)中央研究院,上海 200070;3.德國(guó)倍福自動(dòng)化有限公司,上海200436)
針對(duì)EtherCAT現(xiàn)場(chǎng)總線中臨時(shí)從站關(guān)機(jī)插拔帶來(lái)的低效問(wèn)題,基于TwinCAT軟件提出一種支持實(shí)時(shí)檢測(cè)和反饋的可靠解決方案。在分析EtherCAT報(bào)文的基礎(chǔ)上,采用設(shè)置同步單元和分配工作狀態(tài)字的方法,以不影響其他設(shè)備EtherCAT通訊為前提,最大化地降低關(guān)機(jī)插拔對(duì)生產(chǎn)過(guò)程的影響,縮減EtherCAT的整體診斷時(shí)間,提高生產(chǎn)效率,在現(xiàn)場(chǎng)生產(chǎn)中具有較好的推廣應(yīng)用價(jià)值。
EtherCAT;TwinCAT;實(shí)時(shí)檢測(cè);同步單元
針對(duì)自動(dòng)化系統(tǒng)通訊發(fā)展的需求,傳統(tǒng)的現(xiàn)場(chǎng)總線已不能滿(mǎn)足現(xiàn)階段高速、高精度、遠(yuǎn)距離傳輸?shù)囊?。為了?yīng)對(duì)這種情況,各大自動(dòng)化廠商提出了不同的解決方案,包括SERCOS3通訊協(xié)議、PROFINET通訊協(xié)議、EtherCAT通訊協(xié)議[1]等。這些都符合實(shí)時(shí)以太網(wǎng)協(xié)議標(biāo)準(zhǔn)[2-3],因此,實(shí)時(shí)以太網(wǎng)技術(shù)是控制網(wǎng)絡(luò)未來(lái)發(fā)展的趨勢(shì)。
作為上述解決方案之一的EtherCAT是一種基于以太網(wǎng)的實(shí)時(shí)工業(yè)現(xiàn)場(chǎng)總線通信協(xié)議和國(guó)際標(biāo)準(zhǔn),它摒棄原有以太網(wǎng)交換機(jī)的帶寬利用率低、堆棧延遲等諸多缺點(diǎn),同時(shí)提高傳輸過(guò)程響應(yīng)速度、降低自動(dòng)化傳輸組件的成本,另一方面,支持多種物理拓?fù)浣Y(jié)構(gòu)?;谶@些特點(diǎn),EtherCAT技術(shù)被工業(yè)自動(dòng)化系統(tǒng)廣泛接受,并進(jìn)入了高速發(fā)展期,大量符合EtherCAT通訊協(xié)議的產(chǎn)品正在接受考驗(yàn),EtherCAT通訊診斷能力[4-5]對(duì)保障產(chǎn)品的正常運(yùn)行起著至關(guān)重要的作用。原因在于:一方面,診斷特性直接影響產(chǎn)品的可靠性;另一方面,可靠的診斷能力有利于增強(qiáng)網(wǎng)絡(luò)可用性,并縮短調(diào)試時(shí)間。而可靠的診斷能力主要包括錯(cuò)誤檢測(cè)和錯(cuò)誤定位。只有及時(shí)發(fā)現(xiàn)錯(cuò)誤,并且快速精確地定位錯(cuò)誤原因和位置,才能夠在最短的時(shí)間內(nèi)將其排除。
在一些特殊的生產(chǎn)過(guò)程中,部分從站會(huì)被應(yīng)用在檢測(cè)局部控制網(wǎng)絡(luò)的環(huán)境,這需要對(duì)這一部分的從站進(jìn)行頻繁插拔,而直接插拔對(duì)EtherCAT協(xié)議來(lái)說(shuō),會(huì)認(rèn)為是設(shè)備出現(xiàn)故障,進(jìn)而導(dǎo)致從站無(wú)法接收新的指令。針對(duì)上述問(wèn)題,本文基于TwinCAT軟件設(shè)計(jì)一種EtherCAT通訊診斷的解決方案,在準(zhǔn)確識(shí)別通訊出錯(cuò)原因的基礎(chǔ)上,滿(mǎn)足從站設(shè)備的熱插拔[6-7]要求。
EtherCAT通訊技術(shù)突破了其他以太網(wǎng)解決方案[8]的系統(tǒng)限制,即不需要接收以太網(wǎng)數(shù)據(jù)包并將其解碼之后,再將過(guò)程數(shù)據(jù)復(fù)制到各個(gè)設(shè)備。它具有主從數(shù)據(jù)交換特性,由主站和從站配合完成工作,因而,EtherCAT非常適合拓?fù)浣Y(jié)構(gòu)復(fù)雜的主從控制器之間的通訊。
EtherCAT的通訊原理示意如圖1所示,EtherCAT總線網(wǎng)段是一個(gè)可接收和發(fā)送以太網(wǎng)幀的大型以太網(wǎng)設(shè)備。但是,該“設(shè)備”不包含帶下游微處理器的單個(gè)以太網(wǎng)控制器,而只包含大量的EtherCAT從站。與其它任何以太網(wǎng)一樣,EtherCAT不需要通過(guò)交換機(jī)就可以建立通訊,因而產(chǎn)生一個(gè)純粹的EtherCAT系統(tǒng)。EtherCAT主站傳遞的數(shù)據(jù)幀包含了所有的I/O從站數(shù)據(jù),每一個(gè)從站接收?qǐng)?bào)文,并在報(bào)文中提取命令或者插入反饋狀態(tài)字,然后將報(bào)文傳送給下一個(gè)從站設(shè)備,最后一個(gè)EtherCAT從站將經(jīng)過(guò)充分處理的報(bào)文返回,這樣該報(bào)文就作為一個(gè)響應(yīng)報(bào)文由第一個(gè)從站返回到主站。整個(gè)通訊過(guò)程在全雙工模式下,利用了以太網(wǎng)設(shè)備獨(dú)立處理雙向傳輸?shù)奶攸c(diǎn),報(bào)文只有幾納秒的時(shí)間延遲。
圖1 EtherCAT通訊原理
EtherCAT數(shù)據(jù)[9-10]是直接使用以太網(wǎng)數(shù)據(jù)幀傳輸,其中數(shù)據(jù)部分包括2 Byte的數(shù)據(jù)頭和44~1 498字節(jié)的數(shù)據(jù)區(qū)。數(shù)據(jù)區(qū)由一個(gè)或多個(gè)EtherCAT子報(bào)文組成,每個(gè)子報(bào)文對(duì)應(yīng)獨(dú)立的設(shè)備或從站存儲(chǔ)區(qū)域,EtherCAT數(shù)據(jù)幀結(jié)構(gòu)如圖2所示,表1給出了EtherCAT數(shù)據(jù)幀結(jié)構(gòu)定義。
圖2 EtherCAT數(shù)據(jù)幀結(jié)構(gòu)
名稱(chēng)含義備注Ethernet.H以太網(wǎng)幀頭包含目的地址、源地址、幀類(lèi)型接收方MAC地址,發(fā)送方MAC地址,0x88A4Len數(shù)據(jù)長(zhǎng)度EtherCAT數(shù)據(jù)區(qū)長(zhǎng)度1類(lèi)型表示與從站通信FCS幀校驗(yàn)序列WKC工作計(jì)數(shù)器記錄子報(bào)文被從站操作的次數(shù)Cmd命令尋址方式及讀寫(xiě)方式Idx索引幀編碼續(xù)表Address地址區(qū)從站地址R保留位M后續(xù)報(bào)文標(biāo)志IRQ狀態(tài)位中斷到來(lái)標(biāo)志
一般設(shè)備啟動(dòng)時(shí),EtherCAT報(bào)文會(huì)按照順序?qū)ぶ返姆绞桨l(fā)送一個(gè)周期性的報(bào)文,報(bào)文在經(jīng)過(guò)每一個(gè)從站設(shè)備時(shí),從站將通過(guò)EtherCAT.H子報(bào)文頭中Address地址區(qū)為自身更新設(shè)定地址。TwinCAT軟件通過(guò)使用以太網(wǎng)數(shù)據(jù)幀頭的MAC地址尋址到網(wǎng)段,然后使用EtherCAT子報(bào)文頭中的32位地址尋址到段內(nèi)設(shè)備,繼而得到硬件拓?fù)鋱D。
每一個(gè)EtherCAT子報(bào)文由子報(bào)文頭、數(shù)據(jù)域和相應(yīng)的工作計(jì)數(shù)器(WKC)組成。WKC記錄了子報(bào)文被從站操作的次數(shù),主站為每個(gè)通訊服務(wù)子報(bào)文設(shè)置了預(yù)期的WKC。其中WKC對(duì)不同通訊服務(wù)的計(jì)數(shù)方式也是不同的,關(guān)于EtherCAT通信命令與WKC計(jì)數(shù)對(duì)方關(guān)系如表2所示。
表2 EtherCAT通信命令與WKC計(jì)數(shù)對(duì)方關(guān)系
子報(bào)文經(jīng)過(guò)某一個(gè)從站時(shí),如果是單獨(dú)的讀或?qū)懖僮鳎琖KC加1,如果是讀寫(xiě)操作,讀成功WKC加1,寫(xiě)成功時(shí)WKC加2,讀寫(xiě)全部完成WKC加3;子報(bào)文由多個(gè)從站處理時(shí),WKC是各個(gè)從站處理結(jié)果的累加。發(fā)送子報(bào)文的WKC初值為0,子報(bào)文被正確處理后,WKC的值將累加;同時(shí),主站在發(fā)送子報(bào)文時(shí),預(yù)先分析得出一個(gè)WKC的理論預(yù)期值,通過(guò)比較返回子報(bào)文中的WKC和理論預(yù)期值來(lái)判定子報(bào)文是否被正確處理,進(jìn)而判斷錯(cuò)誤原因并定位錯(cuò)誤源頭。
本文研究的EtherCAT診斷就是利用TwinCAT軟件處理返回主站的報(bào)文,檢查數(shù)據(jù)幀子報(bào)文中的各項(xiàng)數(shù)值來(lái)診斷EtherCAT是否報(bào)錯(cuò),具體數(shù)值包括WKC、關(guān)鍵狀態(tài)字等。
本實(shí)驗(yàn)是利用TwinCAT2軟件實(shí)現(xiàn)對(duì)EtherCAT通訊過(guò)程的診斷。該TwinCAT2軟件是一款基于Windows系統(tǒng),帶有實(shí)時(shí)核,同時(shí)集成硬件配置和軟件編寫(xiě)的軟件,實(shí)驗(yàn)中使用該軟件對(duì)EtherCAT設(shè)備做實(shí)時(shí)監(jiān)測(cè),并且做硬件配置。
實(shí)驗(yàn)設(shè)備包括:型號(hào)為CP6201的面板式工業(yè)PC,EK1100耦合器,I塊(兩個(gè)EL1004,兩個(gè)EL2024,兩個(gè)EL7041),AX5203伺服驅(qū)動(dòng)器。
硬件連接的拓?fù)浣Y(jié)構(gòu)如圖3所示。
圖3 拓?fù)浣Y(jié)構(gòu)
系統(tǒng)軟件設(shè)計(jì)中是按照在EtherCAT網(wǎng)絡(luò)中,主站發(fā)出的報(bào)文按照拓?fù)漤樞蛲瓿梢惠喬幚聿⒎祷亟o主站后,TwinCAT軟件讀取并分析返回主站的報(bào)文這一過(guò)程進(jìn)行設(shè)計(jì)的,通過(guò)對(duì)比預(yù)期理論反饋值和實(shí)際結(jié)果,完成對(duì)整個(gè)EtherCAT通訊過(guò)程的診斷[11-12],如圖4所示。
圖4 系統(tǒng)軟件設(shè)計(jì)流程圖
在TwinCAT軟件中按照系統(tǒng)軟件設(shè)計(jì)流程圖,根據(jù)不同CMD命令對(duì)應(yīng)的WC計(jì)數(shù)預(yù)期值,編寫(xiě)程序并創(chuàng)建HMI可視化界面。當(dāng)出現(xiàn)通訊報(bào)錯(cuò),如圖5所示。
圖5 通訊報(bào)錯(cuò)HMI界面顯示
分析:從圖5得知,WcState值為120,轉(zhuǎn)化成為八進(jìn)制為0x78,CMD命令為8,即為全部丟失,這意味著報(bào)文發(fā)送過(guò)程的每一個(gè)CMD命令都沒(méi)有被成功接收。分析原因,當(dāng)主站識(shí)別從站缺失后,主站主動(dòng)拋棄這些報(bào)文數(shù)據(jù),只反饋報(bào)錯(cuò)信息。同時(shí)可以看出,從站可正常通訊個(gè)數(shù)為4。根據(jù)設(shè)備拓?fù)浣Y(jié)構(gòu),如圖3所示,本次設(shè)備為串行拓?fù)錂C(jī)構(gòu),可以分析出僅有分站1中模塊處于正常通訊狀態(tài),但因?yàn)橹髡咀R(shí)別到從站缺失后會(huì)主動(dòng)拋棄反饋回來(lái)的所有報(bào)文數(shù)據(jù),在子報(bào)文中的從站W(wǎng)cState返回信息也認(rèn)定為無(wú)效數(shù)據(jù)。所以TwinCAT軟件通過(guò)拓?fù)浣Y(jié)構(gòu)逐個(gè)檢測(cè)從站的WcState,除EK1100耦合器不具有診斷功能外,其他帶有診斷功能的IO模塊全部都報(bào)錯(cuò)。分析結(jié)果:產(chǎn)生報(bào)錯(cuò)的原因——通訊線纜2出現(xiàn)故障,或者通訊線纜2接入分站2的EK1100端子耦合器的1口出現(xiàn)故障。
現(xiàn)場(chǎng)生產(chǎn)當(dāng)中部分從站作為檢測(cè)分站,需要隨時(shí)插拔接入到控制網(wǎng)絡(luò)中的任何一個(gè)連接點(diǎn)上,它們不需要保持常連接的狀態(tài)。但是普通從站在設(shè)備運(yùn)行狀態(tài)下,熱插拔會(huì)使EtherCAT通訊報(bào)錯(cuò),如圖6所示,如果停止整臺(tái)設(shè)備后插拔,需再次啟動(dòng)檢查,則會(huì)大幅影響工作效率[13]。
前述實(shí)驗(yàn)結(jié)果顯示,普通從站的熱插拔造成EtherCAT通訊報(bào)錯(cuò),整臺(tái)設(shè)備無(wú)法繼續(xù)正常運(yùn)行?,F(xiàn)場(chǎng)生產(chǎn)中,第二排的IO模塊以及第三排的伺服驅(qū)動(dòng)器作為臨時(shí)分站,需要在運(yùn)行狀態(tài)下進(jìn)行插拔,同時(shí)不能影響其他設(shè)備的正常運(yùn)行。
針對(duì)這一要求,這里給出一種解決方案:將需熱插拔的分站模塊設(shè)置為同步單元Sync unit。
首先,劃分同步單元[14-15]。將分站1放在同步單元1內(nèi),分站2以及AX5000伺服驅(qū)動(dòng)器放在同步單元 2內(nèi)。為了后續(xù)實(shí)驗(yàn)方便,這里設(shè)定同步單元2為臨時(shí)分站。設(shè)置同步單元成功后,CMD命令的WC預(yù)期值發(fā)生改變,并被分成兩組。
其次,對(duì)臨時(shí)分站(分站2)進(jìn)行熱插拔。TwinCAT軟件分析主站收到的報(bào)文給出的HMI界面如圖6所示,其中WcState值為960,轉(zhuǎn)化成為八進(jìn)制為0x03C0,即同步單元2中的數(shù)據(jù)幀全部被丟棄,同步單元1中的數(shù)據(jù)幀均正常反饋,換句話說(shuō),分站1依然處于正常工作狀態(tài)。因此,臨時(shí)分站(分站2)的熱插拔未影響其他設(shè)備(分站1)的正常運(yùn)行。
第三步,再次接入臨時(shí)分站(分站2)。經(jīng)過(guò)一個(gè)PLC掃描周期后,所有從站的狀態(tài)字在HMI界面上顯示如圖10所示,熱插拔的臨時(shí)分站(分站2)再次正常運(yùn)行。
圖6 分站2熱插拔后的HMI界面
至此,臨時(shí)從站的熱插拔解決方案驗(yàn)證完畢。此方案尤其適用于現(xiàn)場(chǎng)網(wǎng)絡(luò)規(guī)模龐大、設(shè)備模塊數(shù)量繁多、拓?fù)浣Y(jié)構(gòu)復(fù)雜的場(chǎng)合,不僅最大化地降低了關(guān)機(jī)插拔對(duì)生產(chǎn)過(guò)程的影響,而且大幅縮減了EtherCAT診斷的時(shí)間。
工業(yè)以太網(wǎng)因其具有高可靠性、高時(shí)效性、高擴(kuò)展性以及低成本等特點(diǎn),必將成為未來(lái)工業(yè)網(wǎng)絡(luò)的主流,在工業(yè)以太網(wǎng)實(shí)際運(yùn)用中,EtherCAT診斷是不可以缺少的一部分。
本文在描述EtherCAT通訊原理和數(shù)據(jù)幀結(jié)構(gòu)的基礎(chǔ)上,基于TwinCAT軟件構(gòu)建了完整的EtherCAT診斷機(jī)制,主站僅需少量命令即可實(shí)現(xiàn)對(duì)從站的診斷;同時(shí),根據(jù)EtherCAT的診斷特性,給出一種臨時(shí)從站的熱插拔解決方案,既能夠不影響其他設(shè)備的EtherCAT通訊,又避免了因關(guān)機(jī)插拔從站而引起的時(shí)間浪費(fèi),一定程度上提高了現(xiàn)場(chǎng)生產(chǎn)的生產(chǎn)效率。
[1] 德國(guó)倍福公司.實(shí)時(shí)以太網(wǎng):I/O層超高速以太網(wǎng)[J].自動(dòng)化博覽,2004,2004(4):48-50.
[2] 全國(guó)工業(yè)過(guò)程測(cè)量和控制標(biāo)準(zhǔn)化技術(shù)委員會(huì).GB/T 31230.1-2014 工業(yè)以太網(wǎng)現(xiàn)場(chǎng)總線EtherCAT[S].北京:中國(guó)標(biāo)準(zhǔn)出版社,2014.
[3] EtherCAT Technology Group. EtherCAT-the ethernet fieldbus [EB/OL]. (2011-05-18)[2016-04-05]http://www.ethercat.org.
[4] 崔巍,朱迎春,孫亞蕾.現(xiàn)場(chǎng)總線系統(tǒng)抗干擾的實(shí)現(xiàn)與應(yīng)用[J]. 中國(guó)儀器儀表,2006(10):67-69.
[5] EtherCAT技術(shù)協(xié)會(huì). EtherCAT的診斷和錯(cuò)誤定位[J]. 國(guó)內(nèi)外機(jī)電一體化技術(shù),2014,2014(4):27-28.
[6] 郇極,肖文磊,劉艷強(qiáng). 工業(yè)以太網(wǎng)EtherCAT冗余和熱插拔技術(shù)[J]. 北京航空航天大學(xué)學(xué)報(bào), 2009, 35(2):158-161.
[7] 匡昌武,方厚輝,冗余鏈路技術(shù)在工業(yè)以太網(wǎng)中的應(yīng)用分析[J] .工業(yè)控制計(jì)算機(jī),2007,20(3):18-19.
[8] 修建竹.基于EtherCAT網(wǎng)絡(luò)的實(shí)時(shí)控制技術(shù)研究[D].大連:大連理工大學(xué),2010.
[9] 范振軍.基于EtherCAT協(xié)議的多從站實(shí)時(shí)數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)[D].西安:西安電子科技大學(xué),2012.
[10] 楊昊佐.工業(yè)以太網(wǎng)EtherCAT從站設(shè)計(jì)[D].西安:西安電子科技大學(xué),2013.
[11] EtherCAT Technology Group. EtherCAT diagnosis for developers [EB/OL]. (2015-07-14)[2016-4-13]http://www. ethercat. org.cn.
[12] EtherCAT技術(shù)組.EtherCAT——技術(shù)介紹及發(fā)展概貌[J]. 國(guó)內(nèi)外機(jī)電一體化技術(shù), 2006(6):17-24.
[13] Yoon G,Kwon D H,Kwon S C, et al. Ringtopology-based redundancy Ethernet for industrial network[C].Japan: 2006 SICE-ICASE International Joint Conference,2006.
[14] 王常力,羅安.分布式控制系統(tǒng)(DCS)設(shè)計(jì)與應(yīng)用實(shí)例[M]. 北京:電子工業(yè)出版社, 2004.
[15] Madren Frank. Redundancy with standards in industrial Ethernet LANs[J].PC Control,2005(7):14-19.
EtherCAT Diagnois Base on TwinCAT
ZHANG Liwen1,F(xiàn)ANG Jianglong2,ZHOU Yaogang3,LIANG Dechun3
(1.School of Mechanical Engineering, University of Shanghai for Science and Technology,Shanghai 200093, China; 2. Shanghai Electric Central Research Institute, Shanghai 200070, China;3. Beckhoff Automation (Shanghai) Co., Ltd., Shanghai 200436, China)
Interim stations need to turn them off and plug on EtherCAT fieldbus, leading to poor efficiency. A reliable solution based on TwinCAT software that supports real-time detection and feedback is proposed. The frames of the EtherCAT are analyzed. The impact of shutdown and plug on the process of production is reduced by setting a synchronization unit and assigning working counter without affecting the communication of other EtherCAT equipment, thus faster EtherCAT diagnosis and higher efficiency of production.
EtherCAT; TwinCAT; real-time diagnosis; synchronization unit
2016- 04- 06
張立文(1991-),女,碩士研究生。研究方向:數(shù)控 EtherCAT 自動(dòng)化。
10.16180/j.cnki.issn1007-7820.2017.02.036
TP393.11
A
1007-7820(2017)02-138-04