基于工業以太網的運動控制器在工業機器人、數控機床和機電一體化加工和測試設備中獲得了廣泛應用。由于以太網通信速度快、數據量大等特點使運動控制性能得到了極大的提升。EtherCAT(Ethernet for Control Automation Technology)技術(也稱為以太網現場總線)是德國BECKHOFF公司提出的實時工業以太網技術,它基于標準的以太網技術,具備靈活的網絡拓撲結構,系統配置簡單,具有高速、高有效數據率等特點,其有效數據率可達90%以上,全雙工特性完全得以利用。本文設計和實現了基于EtherCAT的伺服控制器從站,每個從站可以最多控制8個伺服軸。
EtherCAT采用主從式結構,主站PC機采用標準的100Base-TX以太網卡,從站采用專用芯片。系統控制周期由主站發起,主站發出下行電報,電報的最大有效數據長度為1498字節。數據幀遍歷所有從站設備,每個設備在數據幀經過時分析尋址到本機的報文,根據報文頭中的命令讀入數據或寫入數據到報文中指定位置,并且從站硬件把該報文的工作計數器(WKC)加1,表示該數據被處理。整個過程會產生大約10ns的時間延遲[1]。數據幀在訪問位于整個系統邏輯位置的最后一個從站后,該從站把經過處理的數據幀做為上行電報直接發送給主站。主站收到此上行電報后,處理返回數據,一次通信結束。系統結構原理圖如圖1所示:
EtherCAT支持幾乎所有的拓撲類型,包括線型、樹型、星型等,其在物理層可使用100BASE-TX雙絞線、100BASE-FX光纖或者 LVDS(Low Voltage Differential Signaling, 即低壓差分信號傳輸),還可以通過交換機或介質轉換器實現不同以太網布線的結合。快速以太網的物理層(100Base-TX)允許兩個設備之間的最大電纜長度為
EtherCAT以標準以太網技術為基礎,在MAC(媒體訪問層)增加了一個確定性調度的軟件層,該軟件層實現了通信周期內的數據幀的傳輸。EtherCAT采用標準的IEEE802.3以太網幀,幀結構如圖2,各部分含義見表1:
表1 幀結構含義
名稱 |
含義 |
目的地址 |
接收方MAC地址 |
源地址 |
發送方MAC地址 |
以太類型 |
0x |
EtherCAT頭:長度 |
數據區長度,即子報文長度加和 |
EtherCAT頭:類型 |
1,代表與從站通信,其余保留 |
CRC |
循環冗余校驗和 |
表2 子報文結構含義
名稱 |
含義 |
命令 |
尋址方式及讀寫方式 |
索引號 |
幀編碼代號 |
子報文地址 |
從站地址 |
長度 |
報文數據區長度 |
M |
此報文后是否還有報文? |
狀態位 |
中斷到來標志 |
數據區 |
子報文數據結構,用戶定義 |
WKC |
Working Count,工作計數器,報文尋址次數 |
EtherCAT沒有重新定義新的以太網幀結構,而是在標準以太網幀結構中使用了一個特殊的以太網幀類型0x
EtherCAT于2005年2月正式成為IEC規范-IEC/PAS 62407。除此之外,EtherCAT技術也將集成到國際現場總線標準的下一代標準IEC61158和IEC61800-7(電子功率可調速驅動系統框架與接口)之中。國際標準組織(ISO)已將EtherCAT納入ISO15745標準。EtherCAT技術引起了自動化技術領域的廣泛關注,并于2003年成立了EtherCAT技術組織,簡稱ETG。到目前為止,ETG組織成員已超過500個。
EtherCAT技術在主站方面只需在一塊標準的NIC網卡,主站功能完全由軟件實現。EtherCAT可以用一個以太網幀發送1486字節的有效數據,所以在通常情況下,每個通信周期只需要一個或兩個幀就能完成所有結點的全部通信。EtherCAT主站程序應該包含以下幾個方面:
(1) 讀取XML配置文件,根據配置文件信息構造主站與從站設備;
(2) 管理EtherCAT從站,發送配置文件中定義的初始化幀,初始化從站,為通信做準備;
(3) 使用郵箱操作實現非周期性數據傳輸,配置系統參數,處理通信過程中某些偶然性事件;
(4) 實現過程數據通信,完成主站與從站之間的實時數據交換,達到主站控制從站運行,并處理從站實時狀態的功能。
主站代碼結構圖如圖4:
應用程序開發環境是VC++6.0,通信周期由多媒體定時器控制,其控制精度可達到1ms,可根據控制需要設定通信周期,實現控制要求。從站控制器與主站交換兩種形式的數據,一種是周期性數據,一種是非周期性數據,周期性數據傳輸可以采用緩沖區方式,任何一方在任何時間都可以訪問此方式定義的內存,得到最新數據;非周期性數據傳輸采用握手方式(郵箱方式)實現,一方寫入數據到定義的內存,只有完成定義內存的最后一個字節的寫入,另一方才能開始從定義內存中讀出數據,而且只有在讀出定義內存的最后一個字節數據后,才能重新寫入數據。
本文設計和實現了基于EtherCAT的多軸運動控制器,如圖
從站控制底板采用Atmega128芯片作為處理器,通信卡使用BECKHOFF公司提供的ESC20控制器,運動控制卡為一種多功能的位置控制卡,可以完成位置控制和速度控制
本系統在應用層自定義了數據模塊結構,模塊數據分為兩種,一種是指令數據模塊,由主站寫給從站,控制伺服運動,一種是狀態數據模塊,主站從從站讀取,表示伺服軸狀態反饋。一個運動控制卡使用一個指令數據模塊和一個狀態數據模塊,每個EtherCAT子報文由從站上的所有運動控制卡的數據模塊組成,如圖7所示。
每個數據模塊包含10個字節,指令數據模塊分別定義為數據模塊頭、控制字和指令數據區,狀態數據模塊分別定義為數據模塊頭、狀態字和狀態數據區。
數據模塊頭使用2個字節,包括4位的運動控制卡地址和3位工作方式。從站上的每個運動控制卡分配不同的地址,從站根據數據模塊頭中的地址信息尋址相應的運動控制卡,并根據工作方式控制運動控制卡的工作。從站運動控制卡可以工作在位置控制、速度控制、回參考點以及讀編碼器計數值等方式下。握手位用于工作方式切換時主站和從站之間的握手。
指令數據模塊中,指令控制字使用2個字節,包括伺服使能控制、復位控制等伺服控制信息;指令數據使用6個字節,對應不同控制方式下的指令值,如位置指令數據、速度指令數據等。狀態數據模塊中,狀態字使用2個字節,包括伺服使能狀態及報警信息等反饋信息;狀態數據使用6個字節,對應于不同控制方式下的反饋值,例如位置控制下的實際位置值和當前跟隨誤差,速度控制方式下的實際速度值,I/O方式下的輸入值等。
主站和從站之間進行周期性的通信來完成伺服控制,其通信時序如圖8所示。數據幀傳輸完成后,從站在T1時刻前從通信控制卡讀取指令數據,并經過運算后輸出到運動控制卡;在T2時刻之前讀取運動控制卡實際狀態,并寫入通信控制卡,等待下個數據幀讀取。
運動控制器固件程序實現EtherCAT協議的通信和設備卡的控制。系統運行分為兩個階段:
初始化階段:建立主從站通信,包括主站分配ESC從站通信地址,初始化ESC相關寄存器,配置通信參數,為通信做準備,從站單片機從EEPROM讀入從站配置數據,配置伺服軸數、設置各伺服軸的狀態(是否參加通信)、通信周期等,從站在初始化階段還要配置通信類型、初始狀態的工作方式及各通信參數變量等。
周期運行階段:上位機PC按照協議及控制要求把控制字和指令數據發送到各個從站,從站單片機讀出數據并譯碼處理,同時采集各伺服軸的狀態反饋信息并填寫狀態數據包。PC機收到返回的數據幀,讀取狀態數據報文中的信息并做相應的處理。程序流程圖如圖9所示。
當從站單片機完成初始配置工作后,開始進入工作循環,等侍EtherCAT數據幀的到來,當數據幀到達ESC20控制器時,ESC20接收數據幀,向控制芯片發出中斷,Atmega128單片機響應中斷讀出指令數據,處理后發送給動動控制卡,并檢測是否有狀態請求事件發生。如果狀態請求模塊數據到來,程序讀取當前伺服狀態數據,寫入狀態模塊數據結構,返回給主站,一次通信結束。
本文設計了一種基于實時工業以太網協議EtherCAT的多軸運動控制器。每個運動控制器單元可以最多控制8個伺服軸,每個伺服軸可以進行位置、速度、回參考點等控制。通過這種多軸運動控制器可以在數控設備和工業機器人控制系統中利用EtherCAT技術,提高控制性能。
參考文獻:
[1] 德國倍福公司.實時以太網:I/O層超高速以太網.工業以太網與現場總線
[2] EtherCAT技術組.EtherCAT-以太網現場總線
[3] 杜品圣.工業以太網技術的介紹和比較.儀器儀表標準化與計量.2005,5:16-19
[4] 張鑫,李寶峰.工業以太網關鍵性技術研究.中國水運.2007.1第519821216卷
[5] 陳曦,劉俊峰,付少波.工業以太網傳輸延時特性分析.計算機與信息技術
作者介紹:單春榮(1982—),女,漢族,山東省龍口市,北京航空航天大學機械工程及自動化學院碩士研究生,研究方向為數字伺服和現場總線技術。
email:angel820605@163.com
電話:010-82316024
通信地址:北京航空航天大學機械學院705信箱 100083