謝 鍇,顏鋼鋒
基于EtherCAT的多軸運動控制系統(tǒng)設計*
謝 鍇,顏鋼鋒
(浙江大學 電氣工程學院,杭州 310027)
針對多軸控制系統(tǒng)中的同步性問題,設計了一款基于EtherCAT的多軸運動控制系統(tǒng),并提出了對主站和從站均采用實時操作系統(tǒng)的解決方案。對于EtherCAT主站,在嵌入式平臺上,構(gòu)建了基于Xenomai-Linux和Etherlab的主站方案,人機界面使用Qt來編寫,EtherCAT從站采用的是uC/OS-III實時操作系統(tǒng),通過搶占式內(nèi)核保證了從站之間的數(shù)據(jù)實時性。通過主從站的雙實時設計方案,保證了系統(tǒng)中多軸之間的同步性。實驗結(jié)果表明,基于雙實時操作系統(tǒng)的EtherCAT運動控制系統(tǒng),連接便利,同步時間在微秒級別,具有很好的實時性。
實時以太網(wǎng)EtherCAT;ARM;Xenomai-Linux;uC/OS-III;Qt;多軸運動控制系統(tǒng)
在傳統(tǒng)的數(shù)控加工設備,工業(yè)機器人和機電一體化中,信號傳輸主要使用的是電纜或者光纖,由于傳輸介質(zhì)的特點,使得多軸在進行協(xié)調(diào)工作時,存在一定的不同步性,從而影響工業(yè)加工的精度,并且傳統(tǒng)系統(tǒng)構(gòu)成比較復雜,成本比較高,維護比較困難。傳統(tǒng)的控制系統(tǒng)主要是“PC機+控制卡”或者是“DSP+FPGA”的方案,系統(tǒng)性能受到很大的限制,同時,軸的控制數(shù)量不會超過6個,在需要控制的軸數(shù)目增多時,控制系統(tǒng)的成本會大大的增加[1]。新時期的發(fā)展對多軸之間的實時性和協(xié)調(diào)性提出了很高的要求,傳統(tǒng)的技術(shù)已經(jīng)難以解決新時期的問題。
隨著計算機技術(shù)和工業(yè)以太網(wǎng)技術(shù)的發(fā)展與融合,工業(yè)以太網(wǎng)由于其速度快,成本低,擴展性好,抗干擾性強等特點得到了廣泛的應用[2]。目前國際上有很多種實時以太網(wǎng),EtherCAT(Ethernet for Control Automation Technology)技術(shù)是由德國Beckhoff公司提出的一種解決方案,此方案是基于標準的以太網(wǎng)技術(shù),使用特殊的以太網(wǎng)數(shù)據(jù)幀類型(0x88A4)[3],系統(tǒng)配置簡單,數(shù)據(jù)傳輸全雙工,高速,高效,總線利用率較高,數(shù)據(jù)有效率達到90%以上[4],支持多種網(wǎng)絡拓撲結(jié)構(gòu),每個系統(tǒng)從站數(shù)量可以擴展到65535個。
為適應生產(chǎn)設備的系統(tǒng)化、規(guī)模化的發(fā)展需求,本多軸控制系統(tǒng)引入EtherCAT技術(shù),針對目前EtherCAT主站復雜等缺點,在嵌入式微處理器上實現(xiàn)EtherCAT主站,在uC/OS-III實時操作系統(tǒng)上實現(xiàn)EtherCAT從站,從而利用雙實時操作系統(tǒng)實現(xiàn)了多軸控制,具有實時性好,可擴展性好,易于維護,成本低等多方面優(yōu)點。
本系統(tǒng)采用實時以太網(wǎng)EtherCAT協(xié)議作為多軸控制器系統(tǒng)的底層協(xié)議,在主從站均使用實時操作系統(tǒng),根據(jù)EtherCAT協(xié)議,系統(tǒng)采用一主多從的結(jié)構(gòu),拓撲結(jié)構(gòu)上,EtherCAT可以有很多種,其中為了通信的最穩(wěn)定,這里采用了最簡單,應用最為普遍的線性串行結(jié)構(gòu)。主站采用標準的100Base-TX以太網(wǎng)卡[5],將開源的主站軟件移植到嵌入式Linux系統(tǒng)上,由于Linux的非實時性,需要對其進行改造,本系統(tǒng)在Linux上移植Xenomai,實現(xiàn)了基于Beaglebone Black的嵌入式實時系統(tǒng)。Xenomai是linux內(nèi)核的一個實時開發(fā)框架,它通過無縫地集成到linux環(huán)境中來給用戶空間應用程序提供全面的,與接口無關(guān)的硬實時性能[6]。系統(tǒng)利用Qt編寫上位機程序,對系統(tǒng)進行配置操作。
從站采用自主研發(fā)的以STM32為核心的具有EtherCAT網(wǎng)絡接口的伺服驅(qū)動器,在STM32上運行uC/OS-III實時操作系統(tǒng),uC/OS-III是一個可固化的,可擴展的,搶占式的實時內(nèi)核,它管理的任務個數(shù)不受限制,優(yōu)先級數(shù)不受限制,具有時間片輪轉(zhuǎn)的功能,是第三代內(nèi)核,提供了現(xiàn)代實時內(nèi)核所期待的所有功能包括資源管理,同步,內(nèi)部任務交流等,比uC/OS-II有很大的進步[7],本系統(tǒng)采用最新的實時性內(nèi)核,進一步保證了從站代碼解析的實時性。主站從站之間采用標準網(wǎng)線進行連接,為了保證實時性和抗干擾性,使用標準在CAT-5e上的電纜進行連接,同時,為了測試多軸系統(tǒng)的兼容性,將Estun公司和Beckhoff公司的伺服進行混合測試,系統(tǒng)總體框架如圖1所示。
2.1 主站硬件選取
傳統(tǒng)的EtherCAT主站是在PC機上實現(xiàn),便攜性不夠,成本較高。本系統(tǒng)主站在嵌入式Linux上實現(xiàn),硬件采用Beaglebone Black開發(fā)板,便攜性與成本均有較大的改善。
2.2 從站硬件設計
EtherCAT從站控制器ESC是由專門的硬件來實現(xiàn)的,主要負責數(shù)據(jù)鏈路層和物理層的協(xié)議。ESC與主機設備之間的連接結(jié)構(gòu)方式根據(jù)過程數(shù)據(jù)接口PDI的形式確定[8]。
本系統(tǒng)使用微處理器方式,總體框圖如圖2所示,圖中,STM32負責通訊的應用層部分和伺服電機驅(qū)動控制部分。本文重點對通訊的應用層部分進行闡述。
為了對ET1100中的數(shù)據(jù)進行高速,大批量的讀寫,這里使用STM32的特殊解決方案——FSMC(靈活靜態(tài)存儲器控制器),如圖3所示。
FSMC主要負責將系統(tǒng)總線AHB轉(zhuǎn)化為可以讀寫相應存儲器的形式,可以通過程序來方便的改寫讀取的速度,位數(shù)等,和傳統(tǒng)的通過SPI與ET1100進行串行數(shù)據(jù)交換相比,F(xiàn)SMC屏蔽了對ET1100的具體操作,只要在對應的映射地址空間寫入數(shù)據(jù)即可自動翻譯到ET1100,同時數(shù)據(jù)是并行的,讀寫速度更快。
這里將ET1100存儲器部分映射到STM32的FSMC的第1個BANK的第1個內(nèi)存區(qū),由于采用的是STM32F103VE只有16位的數(shù)據(jù)線,需要數(shù)據(jù)線和地址線復用。在解析出報文之后,將相應的數(shù)據(jù)解析,發(fā)送到驅(qū)動部分,然后產(chǎn)生相應的PWM波和數(shù)字信號經(jīng)過高速光耦,經(jīng)過相應的芯片(PS21A79)處理,產(chǎn)生伺服電機的動力信號。同時,電機的編碼器數(shù)值經(jīng)過定時捕捉,在CPLD中進行解算,傳到STM32中,構(gòu)成閉環(huán)控制。
3.1 主站軟件設計
EtherCAT主站使用的是IgH公司的開源主站代碼,在實時Linux框架Xenomai-Linux上實現(xiàn),軟件系統(tǒng)架構(gòu)如圖4所示。
圖4 主站軟件架構(gòu)圖
從圖4中可以看出,主站軟件框架有兩層需要進行設計,EtherCAT Master和Xenomai-Linux,其中EtherCAT Master為Etherlab代碼,API層為用戶接口,Master Core為軟件系統(tǒng)提供協(xié)議解析等,Xenomai-Linux為主站系統(tǒng)實時解決方案,通過Adeos提供實時性的保證。
首先需要進行Xenomai-Linux的移植,設計難點在于修改內(nèi)核選項,使得內(nèi)核編譯符合硬件配置,然后下載解壓Etherlab的主站代碼之后,配置源代碼,需要使能RTDM,使能周期定時器hrttimer,然后進行編譯,編譯內(nèi)核模塊,加載到內(nèi)核部分。這里使能RTDM主要是為了編譯出API。
由于硬件采用的是Beaglebone Black開發(fā)板,運行的是linux-3.8內(nèi)核,使用Xenomai版本為2.6.3,在修改內(nèi)核選項時,需要disable CPU Frequency scaling,同時需要使能Real-time sub-system下的Driver,Testing Driver選項,然后使用arm-linux-gnueabi- 作為交叉編譯器,編譯內(nèi)核。
本系統(tǒng)使用Qt來編寫應用程序界面,調(diào)用生成的API來對設備節(jié)點進行操作。
主站軟件系統(tǒng)將EtherCAT主站通訊操作封裝為ethercat_master類,涉及的主要成員函數(shù)為check_domain1_state,check_master_state,check_config_states,write_process_data,cyclic_task等,負責EtherCAT通訊。軟件系統(tǒng)將多軸控制算法封裝為控制庫,主要包括正逆運動算法解算,運動插補等。
圖5 主站通訊流程圖
主站程序總流程如圖5所示,將UI線程與EtherCAT通訊線程分開,開啟UI線程,將UI控件信號與處理函數(shù)連接,然后開啟EtherCAT通訊線程,線程循環(huán)等待,處理UI傳過來的數(shù)據(jù)。
3.2 從站軟件設計
軟件設計講究分層化和模塊化,為了統(tǒng)一化嵌入式微處理器的硬件資源,專注應用層的開發(fā),本設計通過移植操作系統(tǒng),將硬件進行抽象化。
操作系統(tǒng)內(nèi)核有搶占式和非搶占式之分。由于使用同一個處理器(STM32)作為伺服控制和通訊應用層的芯片,需要同時處理多個任務,如何將多個任務進行調(diào)度和切換是從站軟件設計的難點。非搶占式內(nèi)核是任務主動放棄CPU的使用權(quán),異步事件是由中斷來處理的,但是中斷服務之后,回到原來被中斷的任務,直到任務主動放棄CPU的使用權(quán),高優(yōu)先級的任務無法主動去獲取使用權(quán),導致任務響應時間較慢,響應時間不確定。搶占式內(nèi)核保證了任務的響應時間,高優(yōu)先級的任務總是能夠獲取CPU的使用權(quán),能夠最大限度的減少任務調(diào)度的時間消耗,保證高優(yōu)先級任務的實時性[9]。
綜上所述,為了更好的發(fā)揮EtherCAT的實時性,在從站STM32中移植了uC/OS-III實時操作系統(tǒng),利用uC/OS-III的搶占式內(nèi)核特性,保證了通訊的實時性,搶占式內(nèi)核工作原理如圖6所示。
圖6 uC/OS-III搶占式內(nèi)核
軟件系統(tǒng)設計分為兩個部分,伺服驅(qū)動部分和通訊部分。伺服驅(qū)動部分主程序流程圖如圖7所示。
先對控制器的外設寄存器進行初始化,包括PWM定時器TIM1,電流電壓采樣ADC,通訊口USART等,然后建立與CPLD的通訊,故障自檢,進行IPM控制電路自舉電容充電,最后母線上電,完成伺服部分的初始化[10]。
再對EtherCAT通訊部分進行初始化。先是初始化STM32內(nèi)部的IO引腳,外部中斷,串口,總線等等,然后對EtherCAT協(xié)議相關(guān)變量進行初始化,包括清除事件屏蔽器,事件請求寄存器,讀取SM通道,改變狀態(tài)機等。
圖7 伺服系統(tǒng)程序流程圖
通訊部分為EtherCAT通信,總共創(chuàng)建三個任務,Task_Start,Task_ControlSWScan,Task_RemoteControl,優(yōu)先級分別為28,32和30。Task_Start任務為工作LED的閃爍指示,Task_ControlSWScan為掃描外接按鍵的輸入,Task_RemoteControl為EtherCAT的工作狀態(tài)轉(zhuǎn)換,解析得到的數(shù)據(jù)等。
其中,EtherCAT狀態(tài)機有四個狀態(tài),初始化(Init),預運行(Pre-Operational),安全運行(Safe-Operational)和運行(Operational)。不同的階段進行不同的工作,按照各個階段的狀態(tài)進行各個狀態(tài)之間的轉(zhuǎn)化,轉(zhuǎn)化關(guān)系圖如圖8所示。
圖8 從站狀態(tài)機轉(zhuǎn)化示意圖
正如前面所述,STM32通過FSMC機制對ESC的DPRAM讀寫,首先映射ESC的DPRAM內(nèi)存,起始地址為0x60000000,根據(jù)ET1100的時序,在STM32中設置FSMC的時序,如圖9所示。對于數(shù)據(jù)的讀寫,直接通過讀取FSMC中對應的地址空間即可,這是通訊實現(xiàn)的基礎核心部分。
圖9 FSMC時序設置
為了保證通訊的實時性,這里將通訊的三個任務等級設為高優(yōu)先級,在執(zhí)行伺服控制的時候,CPU可以被通訊任務搶占。
和傳統(tǒng)軟件設計相比,此次軟件設計將實時操作系統(tǒng)uC/OS-III應用在EtherCAT從站設計中,一方面,將EtherCAT通訊任務設為高優(yōu)先級任務,在數(shù)據(jù)到來時,能夠搶占CPU資源,最大限度的保證了通訊實時。另一方面,方便對嵌入式資源進行統(tǒng)一化管理。
基于圖1所搭建的多軸運動控制平臺,進行了控制系統(tǒng)測試分析。
4.1 Xenomai Latency測試
安裝好Xenomai實時框架之后,進行l(wèi)atency測試,在/usr/xenomai/bin下,latency可以通過設置參數(shù)測試內(nèi)核層,用戶層的實時任務調(diào)度延遲時間和定時器中斷實時性測試,使用命令latency-tX-s-TXX-pXXX,X數(shù)值可以為0,1,2,分別表示用戶態(tài),內(nèi)核態(tài)和定時器中斷[11]。
用戶態(tài)測試如表1,執(zhí)行命令為latency-t0-s-T10-p1000,測試時間為10s,采樣周期為1000μs。
表1 用戶態(tài)延時測試
由于篇幅的限制,這里只是截取其中的一部分,在表中可以看出,用戶態(tài)下,最大延遲有44μs,最小為1μs,平均在5μs左右。
內(nèi)核態(tài)測試如表2,執(zhí)行命令為latency-t1-s-T10-p1000,測試時間為10s,采樣周期為1000μs。
表2 內(nèi)核態(tài)延時測試
從表中可以看出,內(nèi)核態(tài)下最大延遲小于10μs,最小延遲小于1μs,平均延遲小于1μs,在內(nèi)核態(tài)下有較好的調(diào)度延遲。
定時器中斷實時性測試數(shù)據(jù)如表3,執(zhí)行命令為latency-t2-s-T10-p1000,測試時間為10s,采樣周期為1000μs。
表3 定時中斷延時測試
從上表中看出,定時器中斷最大延遲在6μs,最小延遲小于3μs,平均延遲小于3μs。以上的測試結(jié)果表明基于Xenomai-Linux的系統(tǒng)在內(nèi)核態(tài)和用戶態(tài)有很好的實時性,能夠滿足EtherCAT主站實時性要求。
4.2 多軸系統(tǒng)功能測試
硬件連接框圖如圖1所示,主站為Beaglebone Black嵌入式控制器,從站由三個部分組成,自制具有EtherCAT通訊功能的伺服控制器,Estun伺服和Beckhoff伺服。系統(tǒng)通訊拓撲采用傳統(tǒng)菊花鏈的結(jié)構(gòu),每個設備上有EtherCAT通訊的IN和OUT,IN接口連接上一設備,OUT連接下一設備,通過網(wǎng)線相連,連接硬件如圖10所示。
圖10 總體硬件連接圖 圖11 帶有EtherCAT通訊 功能的控制板
本系統(tǒng)首先設計了具有EtherCAT通訊功能的伺服驅(qū)動器(圖11),然后在Beaglebone Black上實現(xiàn)Xenomai-Linux實時Linux系統(tǒng),并實現(xiàn)EtherCAT主站,最后使用Qt實現(xiàn)上位機,實現(xiàn)了伺服電機的轉(zhuǎn)動,在功能上實現(xiàn)多軸控制器系統(tǒng)。
4.3 性能測試分析
就搭建的運動控制系統(tǒng)進行測試,在Beaglebone Black上直接使用wireshark進行包的抓取。在Xenomai-Linux的主站控制下,數(shù)據(jù)負載較小時候,截取部分數(shù)據(jù),分析如表4。
表4 低負荷情況下時間統(tǒng)計 單位ms
報文2ms循環(huán)一次,延時在70μs,延時局限在Beaglebone Black網(wǎng)卡的能力和處理器的處理能力上,現(xiàn)在實時性保證在μs級別,這樣的實時性能和通訊速度已經(jīng)非常出色。
EtherCAT實時以太網(wǎng)技術(shù)是未來工業(yè)以太網(wǎng)的發(fā)展趨勢,將其應用在多軸運動控制系統(tǒng)更是大勢所趨。筆者利用Xenomai-Linux實時系統(tǒng),采用了開源主站,在嵌入式上實現(xiàn)了EtherCAT主站,在STM32上移植uC/OS-III實時操作系統(tǒng),并采用分時多任務實現(xiàn)了從站通訊,同時將從站和驅(qū)動器相連,實現(xiàn)了具有EtherCAT通訊功能的伺服驅(qū)動器,最后完成了多軸運動控制系統(tǒng)的設計。實驗表明,在有三個從站的情況下,同步時間在微秒級。從而說明,基于Xenomai-Linux實時系統(tǒng)的嵌入式主站和uC/OS-III的嵌入式從站構(gòu)成的雙實時多軸控制系統(tǒng)具有良好的實時性和精確的多軸同步控制性能。
[1] 劉文濤,張杰,翁正新. 基于EtherCAT總線的多軸運動控制系統(tǒng)[J]. 測控技術(shù),2014(10):79-81.
[2] 李備備,欒勇,王超,等. 基于AM3358處理器的嵌入式實時EtherCAT主站的構(gòu)建[J]. 組合機床與自動化加工技術(shù),2015(5):1-5.
[3] 李志洲,鄭民欣,王錦錦,等. 基于EtherCAT網(wǎng)絡的三軸伺服控制系統(tǒng)設計[J]. 組合機床與自動化加工技術(shù),2012(2):63-65.
[4] 劉艷強,王健,單春榮. 基于EtherCAT的多軸運動控制器研究[J]. 制造技術(shù)與機床,2008(6):100-103.
[5] 單春榮,劉艷強,郇極. 工業(yè)以太網(wǎng)現(xiàn)場總線EtherCAT及驅(qū)動程序設計[J]. 制造業(yè)自動化, 2007(11):79-82. [6] Moon Y, Ko N Y, Lee K, et al. Real-time EtherCAT Master Implementation on Xenomai for a Robot System[J]. International Journal of Fuzzy Logic &,2009.
[7] 逯玉蘭,燕振剛,李廣. uC/OS-III 內(nèi)核在 STM32 F103 VET6芯片上的移植研究[J]. 計算機與現(xiàn)代化,2014(9):132-136.
[8] 史殿坤. 基于STM32的工業(yè)以太網(wǎng)EtherCAT從站的設計和實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學,2013.
[9] 趙明印,黃道平,劉少君. 基于Xenomai的嵌入式Linux數(shù)控系統(tǒng)平臺研究[J]. 測控技術(shù),2013(8):119-122.
[10] Xing H, Jia H, Yanqianga L. Motion Control System using SERCOS over EtherCAT[J]. Procedia Engineering,2011, 24: 749-753.
[11] 曹玉華,游有鵬. 基于Xenomai的嵌入式數(shù)控系統(tǒng)實時性研究[J]. 制造技術(shù)與機床,2011(6):51-55.
(編輯 李秀敏)
Design of Motion Control System Based on EtherCAT
XIE Kai,YAN Gang-feng
(College of Electrical Engineer, Zhejiang University, Hangzhou 310027, China)
For the shortages of current multi-axis motion control system in synchronization and the control ability, a multi-axis motion control system based on EtherCAT is designed. The master station and slave station are constructed using real-time operating system. A solution of building embedded EtherCAT master is presented, which uses IgH EtherCAT Master open source components for RT-Linux, and Qt for GUI. The slave of this system is based on uC/OS-III operating system, which uses preemptive kernel to guarantee the real-time data among slaves. Thus, this system can ensure the synchronization among multi-axis. The results shows that, the multi-axis motion control system based on EtherCAT has a facilitate connection and the synchronization time is at microsecond level, which can meet the requirement of real-time and synchronization.
EtherCAT; ARM; Xenomai-Linux; uC/OS-III; Qt; servo motion control system
1001-2265(2017)02-0068-05
10.13462/j.cnki.mmtamt.2017.02.017
2016-05-31;
2016-06-27
國家自然基金(61175106)
謝鍇(1991—),男,河南商丘人,浙江大學碩士研究生,研究方向為工業(yè)以太網(wǎng)和機器人技術(shù),(E-mail)xk2010@163.com;通信作者:顏鋼鋒(1959—),男,浙江大學教授,博士生導師,研究方向為大系統(tǒng)以及混雜系統(tǒng)的建模和控制、數(shù)碼紡織系統(tǒng)工程、電氣傳動及其控制、企業(yè)綜合自動化,(E-mail) ygf@zju.edu.cn。
TH166;TG659
A