基于工業(yè)以太網(wǎng)的運(yùn)動(dòng)控制器在工業(yè)機(jī)器人、數(shù)控機(jī)床和機(jī)電一體化加工和測試設(shè)備中獲得了廣泛應(yīng)用。由于以太網(wǎng)通信速度快、數(shù)據(jù)量大等特點(diǎn)使運(yùn)動(dòng)控制性能得到了極大的提升。EtherCAT(Ethernet for Control Automation Technology)技術(shù)(也稱為以太網(wǎng)現(xiàn)場總線)是德國BECKHOFF公司提出的實(shí)時(shí)工業(yè)以太網(wǎng)技術(shù),它基于標(biāo)準(zhǔn)的以太網(wǎng)技術(shù),具備靈活的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),系統(tǒng)配置簡單,具有高速、高有效數(shù)據(jù)率等特點(diǎn),其有效數(shù)據(jù)率可達(dá)90%以上,全雙工特性完全得以利用。本文設(shè)計(jì)和實(shí)現(xiàn)了基于EtherCAT的伺服控制器從站,每個(gè)從站可以最多控制8個(gè)伺服軸。
1 EtherCAT技術(shù)介紹
1.1 EtherCAT系統(tǒng)組成和工作原理
EtherCAT采用主從式結(jié)構(gòu),主站PC機(jī)采用標(biāo)準(zhǔn)的100Base-TX以太網(wǎng)卡,從站采用專用芯片。系統(tǒng)控制周期由主站發(fā)起,主站發(fā)出下行電報(bào),電報(bào)的最大有效數(shù)據(jù)長度為1498字節(jié)。數(shù)據(jù)幀遍歷所有從站設(shè)備,每個(gè)設(shè)備在數(shù)據(jù)幀經(jīng)過時(shí)分析尋址到本機(jī)的報(bào)文,根據(jù)報(bào)文頭中的命令讀入數(shù)據(jù)或?qū)懭霐?shù)據(jù)到報(bào)文中指定位置,并且從站硬件把該報(bào)文的工作計(jì)數(shù)器(WKC)加1,表示該數(shù)據(jù)被處理。整個(gè)過程會產(chǎn)生大約10ns的時(shí)間延遲[1]。數(shù)據(jù)幀在訪問位于整個(gè)系統(tǒng)邏輯位置的最后一個(gè)從站后,該從站把經(jīng)過處理的數(shù)據(jù)幀做為上行電報(bào)直接發(fā)送給主站。主站收到此上行電報(bào)后,處理返回?cái)?shù)據(jù),一次通信結(jié)束。系統(tǒng)結(jié)構(gòu)原理圖如圖1所示:
EtherCAT支持幾乎所有的拓?fù)漕愋?,包括線型、樹型、星型等,其在物理層可使用100BASE-TX雙絞線、100BASE-FX光纖或者 LVDS(Low Voltage Differential Signaling, 即低壓差分信號傳輸),還可以通過交換機(jī)或介質(zhì)轉(zhuǎn)換器實(shí)現(xiàn)不同以太網(wǎng)布線的結(jié)合??焖僖蕴W(wǎng)的物理層(100Base-TX)允許兩個(gè)設(shè)備之間的最大電纜長度為100米,而LVDS的物理層只能保障10米的傳輸間距,適合于近距離站點(diǎn)的連接。整個(gè)網(wǎng)絡(luò)最多可以連接65535個(gè)設(shè)備。
借助于從站中的EtherCAT專用芯片和主站中讀取網(wǎng)卡數(shù)據(jù)的DMA技術(shù),整個(gè)協(xié)議處理過程都在硬件中進(jìn)行。EtherCAT系統(tǒng)可以在30μs內(nèi)刷新1000個(gè)I/O點(diǎn),它可以在300μs內(nèi)交換一幀多達(dá)1486個(gè)字節(jié)的協(xié)議數(shù)據(jù),這幾乎相當(dāng)于12000個(gè)數(shù)字量輸入或輸出??刂?00個(gè)輸入輸出數(shù)據(jù)均為8字節(jié)的伺服軸只需要100μs[2]。EtherCAT的高性能使它還可以處理分布式驅(qū)動(dòng)器的電流(轉(zhuǎn)矩)控制。
1.2 EtherCAT數(shù)據(jù)幀結(jié)構(gòu)
EtherCAT以標(biāo)準(zhǔn)以太網(wǎng)技術(shù)為基礎(chǔ),在MAC(媒體訪問層)增加了一個(gè)確定性調(diào)度的軟件層,該軟件層實(shí)現(xiàn)了通信周期內(nèi)的數(shù)據(jù)幀的傳輸。EtherCAT采用標(biāo)準(zhǔn)的IEEE802.3以太網(wǎng)幀,幀結(jié)構(gòu)如圖2,各部分含義見表1:
表1 幀結(jié)構(gòu)含義
表2 子報(bào)文結(jié)構(gòu)含義
EtherCAT沒有重新定義新的以太網(wǎng)幀結(jié)構(gòu),而是在標(biāo)準(zhǔn)以太網(wǎng)幀結(jié)構(gòu)中使用了一個(gè)特殊的以太網(wǎng)幀類型0x88A4,采用這種方式可以使控制數(shù)據(jù) 直接寫入以太網(wǎng)幀內(nèi),并且可以與遵守其它協(xié)議的以太網(wǎng)幀在同一網(wǎng)絡(luò)中并行。一個(gè)EtherCAT幀中可以包含若干個(gè)EtherCAT子報(bào)文,報(bào)文結(jié)構(gòu)如圖3,各部分含義見表2,每個(gè)報(bào)文都服務(wù)于一塊邏輯過程映像區(qū)的特定內(nèi)存區(qū)域,由FMMU(Fieldbus Memory Management Unit,負(fù)責(zé)邏輯地址與物理地址的映射)寄存器和SM(Sync Manager,負(fù)責(zé)對ESC和微處理器內(nèi)存的讀寫)寄存器定義,該區(qū)域最大可達(dá)4GB字節(jié)。EtherCAT報(bào)文由一個(gè)16位的WKC(Working Count)結(jié)束,其數(shù)據(jù)區(qū)最大長度可達(dá)1486個(gè)字節(jié)。在報(bào)文頭中由8位命令區(qū)數(shù)據(jù)決定主站對從站的尋址方式,由于數(shù)據(jù)鏈獨(dú)立于物理順序,因此可以對EtherCAT從站進(jìn)行任意的編址。
EtherCAT于2005年2月正式成為IEC規(guī)范-IEC/PAS 62407。除此之外,EtherCAT技術(shù)也將集成到國際現(xiàn)場總線標(biāo)準(zhǔn)的下一代標(biāo)準(zhǔn)IEC61158和IEC61800-7(電子功率可調(diào)速驅(qū)動(dòng)系統(tǒng)框架與接口)之中。國際標(biāo)準(zhǔn)組織(ISO)已將EtherCAT納入ISO15745標(biāo)準(zhǔn)。EtherCAT技術(shù)引起了自動(dòng)化技術(shù)領(lǐng)域的廣泛關(guān)注,并于2003年成立了EtherCAT技術(shù)組織,簡稱ETG。到目前為止,ETG組織成員已超過500個(gè)。
2 EtherCAT技術(shù)的實(shí)現(xiàn)
2.1 EtherCAT主站的實(shí)現(xiàn)
EtherCAT技術(shù)在主站方面只需在一塊標(biāo)準(zhǔn)的NIC網(wǎng)卡,主站功能完全由軟件實(shí)現(xiàn)。EtherCAT可以用一個(gè)以太網(wǎng)幀發(fā)送1486字節(jié)的有效數(shù)據(jù),所以在通常情況下,每個(gè)通信周期只需要一個(gè)或兩個(gè)幀就能完成所有結(jié)點(diǎn)的全部通信。EtherCAT主站程序應(yīng)該包含以下幾個(gè)方面:
(1) 讀取XML配置文件,根據(jù)配置文件信息構(gòu)造主站與從站設(shè)備;
(2) 管理EtherCAT從站,發(fā)送配置文件中定義的初始化幀,初始化從站,為通信做準(zhǔn)備;
(3) 使用郵箱操作實(shí)現(xiàn)非周期性數(shù)據(jù)傳輸,配置系統(tǒng)參數(shù),處理通信過程中某些偶然性事件;
(4) 實(shí)現(xiàn)過程數(shù)據(jù)通信,完成主站與從站之間的實(shí)時(shí)數(shù)據(jù)交換,達(dá)到主站控制從站運(yùn)行,并處理從站實(shí)時(shí)狀態(tài)的功能。
主站代碼結(jié)構(gòu)圖如圖4:
應(yīng)用程序開發(fā)環(huán)境是VC++6.0,通信周期由多媒體定時(shí)器控制,其控制精度可達(dá)到1ms,可根據(jù)控制需要設(shè)定通信周期,實(shí)現(xiàn)控制要求。
2.2 EtherCAT從站的實(shí)現(xiàn)
可以利用BECKHOFF公司開發(fā)的從站控制器ESC(EtherCAT Slave Controller)根據(jù)實(shí)際需要設(shè)計(jì)從站設(shè)備。從站硬件示意圖如圖5。
從站控制器與主站交換兩種形式的數(shù)據(jù),一種是周期性數(shù)據(jù),一種是非周期性數(shù)據(jù),周期性數(shù)據(jù)傳輸可以采用緩沖區(qū)方式,任何一方在任何時(shí)間都可以訪問此方式定義的內(nèi)存,得到最新數(shù)據(jù);非周期性數(shù)據(jù)傳輸采用握手方式(郵箱方式)實(shí)現(xiàn),一方寫入數(shù)據(jù)到定義的內(nèi)存,只有完成定義內(nèi)存的最后一個(gè)字節(jié)的寫入,另一方才能開始從定義內(nèi)存中讀出數(shù)據(jù),而且只有在讀出定義內(nèi)存的最后一個(gè)字節(jié)數(shù)據(jù)后,才能重新寫入數(shù)據(jù)。
3EtherCAT伺服控制器原理
3.1系統(tǒng)概述
本文設(shè)計(jì)和實(shí)現(xiàn)了基于EtherCAT的多軸運(yùn)動(dòng)控制器,如圖6a所示,一個(gè)EtherCAT主站通過EtherCAT協(xié)議可以連接若干從站運(yùn)動(dòng)控制器單元,一個(gè)運(yùn)動(dòng)控制器單元由從站控制底板、通信卡和1~8塊運(yùn)動(dòng)控制卡組成,每個(gè)運(yùn)動(dòng)控制卡控制一個(gè)伺服軸。從站運(yùn)動(dòng)控制單元實(shí)物如圖6b所示。
從站控制底板采用Atmega128芯片作為處理器,通信卡使用BECKHOFF公司提供的ESC20控制器,運(yùn)動(dòng)控制卡為一種多功能的位置控制卡,可以完成位置控制和速度控制
3.2 數(shù)據(jù)通信
本系統(tǒng)在應(yīng)用層自定義了數(shù)據(jù)模塊結(jié)構(gòu),模塊數(shù)據(jù)分為兩種,一種是指令數(shù)據(jù)模塊,由主站寫給從站,控制伺服運(yùn)動(dòng),一種是狀態(tài)數(shù)據(jù)模塊,主站從從站讀取,表示伺服軸狀態(tài)反饋。一個(gè)運(yùn)動(dòng)控制卡使用一個(gè)指令數(shù)據(jù)模塊和一個(gè)狀態(tài)數(shù)據(jù)模塊,每個(gè)EtherCAT子報(bào)文由從站上的所有運(yùn)動(dòng)控制卡的數(shù)據(jù)模塊組成,如圖7所示。
每個(gè)數(shù)據(jù)模塊包含10個(gè)字節(jié),指令數(shù)據(jù)模塊分別定義為數(shù)據(jù)模塊頭、控制字和指令數(shù)據(jù)區(qū),狀態(tài)數(shù)據(jù)模塊分別定義為數(shù)據(jù)模塊頭、狀態(tài)字和狀態(tài)數(shù)據(jù)區(qū)。
數(shù)據(jù)模塊頭使用2個(gè)字節(jié),包括4位的運(yùn)動(dòng)控制卡地址和3位工作方式。從站上的每個(gè)運(yùn)動(dòng)控制卡分配不同的地址,從站根據(jù)數(shù)據(jù)模塊頭中的地址信息尋址相應(yīng)的運(yùn)動(dòng)控制卡,并根據(jù)工作方式控制運(yùn)動(dòng)控制卡的工作。從站運(yùn)動(dòng)控制卡可以工作在位置控制、速度控制、回參考點(diǎn)以及讀編碼器計(jì)數(shù)值等方式下。握手位用于工作方式切換時(shí)主站和從站之間的握手。
指令數(shù)據(jù)模塊中,指令控制字使用2個(gè)字節(jié),包括伺服使能控制、復(fù)位控制等伺服控制信息;指令數(shù)據(jù)使用6個(gè)字節(jié),對應(yīng)不同控制方式下的指令值,如位置指令數(shù)據(jù)、速度指令數(shù)據(jù)等。狀態(tài)數(shù)據(jù)模塊中,狀態(tài)字使用2個(gè)字節(jié),包括伺服使能狀態(tài)及報(bào)警信息等反饋信息;狀態(tài)數(shù)據(jù)使用6個(gè)字節(jié),對應(yīng)于不同控制方式下的反饋值,例如位置控制下的實(shí)際位置值和當(dāng)前跟隨誤差,速度控制方式下的實(shí)際速度值,I/O方式下的輸入值等。
主站和從站之間進(jìn)行周期性的通信來完成伺服控制,其通信時(shí)序如圖8所示。數(shù)據(jù)幀傳輸完成后,從站在T1時(shí)刻前從通信控制卡讀取指令數(shù)據(jù),并經(jīng)過運(yùn)算后輸出到運(yùn)動(dòng)控制卡;在T2時(shí)刻之前讀取運(yùn)動(dòng)控制卡實(shí)際狀態(tài),并寫入通信控制卡,等待下個(gè)數(shù)據(jù)幀讀取。
3.3 運(yùn)動(dòng)控制器固件程序設(shè)計(jì)
運(yùn)動(dòng)控制器固件程序?qū)崿F(xiàn)EtherCAT協(xié)議的通信和設(shè)備卡的控制。系統(tǒng)運(yùn)行分為兩個(gè)階段:
初始化階段:建立主從站通信,包括主站分配ESC從站通信地址,初始化ESC相關(guān)寄存器,配置通信參數(shù),為通信做準(zhǔn)備,從站單片機(jī)從EEPROM讀入從站配置數(shù)據(jù),配置伺服軸數(shù)、設(shè)置各伺服軸的狀態(tài)(是否參加通信)、通信周期等,從站在初始化階段還要配置通信類型、初始狀態(tài)的工作方式及各通信參數(shù)變量等。
周期運(yùn)行階段:上位機(jī)PC按照協(xié)議及控制要求把控制字和指令數(shù)據(jù)發(fā)送到各個(gè)從站,從站單片機(jī)讀出數(shù)據(jù)并譯碼處理,同時(shí)采集各伺服軸的狀態(tài)反饋信息并填寫狀態(tài)數(shù)據(jù)包。PC機(jī)收到返回的數(shù)據(jù)幀,讀取狀態(tài)數(shù)據(jù)報(bào)文中的信息并做相應(yīng)的處理。程序流程圖如圖9所示。
當(dāng)從站單片機(jī)完成初始配置工作后,開始進(jìn)入工作循環(huán),等侍EtherCAT數(shù)據(jù)幀的到來,當(dāng)數(shù)據(jù)幀到達(dá)ESC20控制器時(shí),ESC20接收數(shù)據(jù)幀,向控制芯片發(fā)出中斷,Atmega128單片機(jī)響應(yīng)中斷讀出指令數(shù)據(jù),處理后發(fā)送給動(dòng)動(dòng)控制卡,并檢測是否有狀態(tài)請求事件發(fā)生。如果狀態(tài)請求模塊數(shù)據(jù)到來,程序讀取當(dāng)前伺服狀態(tài)數(shù)據(jù),寫入狀態(tài)模塊數(shù)據(jù)結(jié)構(gòu),返回給主站,一次通信結(jié)束。
4 結(jié)論
本文設(shè)計(jì)了一種基于實(shí)時(shí)工業(yè)以太網(wǎng)協(xié)議EtherCAT的多軸運(yùn)動(dòng)控制器。每個(gè)運(yùn)動(dòng)控制器單元可以最多控制8個(gè)伺服軸,每個(gè)伺服軸可以進(jìn)行位置、速度、回參考點(diǎn)等控制。通過這種多軸運(yùn)動(dòng)控制器可以在數(shù)控設(shè)備和工業(yè)機(jī)器人控制系統(tǒng)中利用EtherCAT技術(shù),提高控制性能。
參考文獻(xiàn):
[1] 德國倍福公司.實(shí)時(shí)以太網(wǎng):I/O層超高速以太網(wǎng).工業(yè)以太網(wǎng)與現(xiàn)場總線
[2] EtherCAT技術(shù)組.EtherCAT-以太網(wǎng)現(xiàn)場總線
[3] 杜品圣.工業(yè)以太網(wǎng)技術(shù)的介紹和比較.儀器儀表標(biāo)準(zhǔn)化與計(jì)量.2005,5:16-19
[4] 張鑫,李寶峰.工業(yè)以太網(wǎng)關(guān)鍵性技術(shù)研究.中國水運(yùn).2007.1第519821216卷
[5] 陳曦,劉俊峰,付少波.工業(yè)以太網(wǎng)傳輸延時(shí)特性分析.計(jì)算機(jī)與信息技術(shù)
作者介紹:單春榮(1982—),女,漢族,山東省龍口市,北京航空航天大學(xué)機(jī)械工程及自動(dòng)化學(xué)院碩士研究生,研究方向?yàn)閿?shù)字伺服和現(xiàn)場總線技術(shù)。