施魯強, 馬鈞華
(浙江大學 電氣工程學院, 浙江 杭州 310027)
多軸伺服控制技術廣泛應用于機器人、印刷機和數控機床等領域,其中的關鍵問題在于多軸之間的實時協調同步。以印刷機為例,為了精準地實現色組套印,要求各個軸有極高的同步性。隨著技術的發(fā)展與市場需求的提升,同步控制方案從機械長軸、傳統現場總線、工業(yè)以太網再到實時工業(yè)以太網不斷改進優(yōu)化[1-2]。
EtherCAT實時工業(yè)以太網由德國自動化控制公司倍福(Beckhoff)于2003年提出,因其高性能、低成本、易實現、拓補結構靈活和完全兼容以太網等優(yōu)勢,在世界范圍內得到了廣泛的應用[3]。EtherCAT修改了以太網協議,采用特殊的傳輸技術,徹底避免了報文沖突,實現了高速高效的通信;其分布時鐘(distributed clock,DC)機制可以實現各個EtherCAT從站時鐘的精確同步,誤差可達到0.1 μs級別[4]。因此,將EtherCAT總線技術應用于多軸伺服系統來實現高精度同步控制具有重要的研究意義和實用價值。
課題組設計并搭建了基于EtherCAT實時工業(yè)以太網的伺服控制系統軟硬件平臺,提出了一種實現同步控制的方案,并在一個2軸系統中進行了實驗驗證。
EtherCAT應用了稱為“on the fly”的報文傳輸技術,如圖1所示。EtherCAT采用主從式結構,通信由主站發(fā)起,在每個通信周期只需發(fā)送一個最大可為1 486 B的數據幀。當數據幀依次經過各個從站設備時,EtherCAT從站控制器(EtherCAT slave controller,ESC)讀取與之對應的子報文中的數據,同時將返回數據插入到相應的子報文。最后1個從站返回已經處理完成的報文,將由第1個從站作為響應報文發(fā)送給主站[3]5。
圖1 EtherCAT通信原理Figure 1 Communication principle of EtherCAT
通過這種通信機制,EtherCAT實現了如下幾點優(yōu)勢:①徹底避免了報文沖突,解決了以太網的非確定性問題;②所有從站共享一個以太網幀,從而共享一個帶寬開銷,極大地提高了帶寬利用率,有效數據可達90%以上,充分利用了100 Mb/s-TX的全雙工特性,體現了高效性;③各從站在報文經過時對相應數據的提取與插入過程是通過ESC在硬件層面上實現的,因此與處理器性能無關,整個過程只有100~500 ns的時間延遲,體現了高速性[5]。
EtherCAT從站有3種周期性數據通信的同步運行模式:自由運行(FreeRun)模式、同步管理器(Sync Manager,SM)模式和分布時鐘(DC)模式。其中FreeRun模式采用查詢方式處理周期性過程數據,不具有同步性;SM模式與DC模式則采用中斷方式,分別基于IRQ(interrupt request)與SYNC信號。如圖2所示,當從站接收到數據幀時會觸發(fā)同步管理器事件(SM event),產生IRQ中斷信號。由于不可避免的傳輸延時,越往后的從站接收到數據幀的時間就越晚,SM模式下的同步效果就越差。
圖2 SM和DC模式時序示意圖Figure 2 Sequence diagram of SM and DC mode
DC模式應用了基于IEEE 1588協議的分布時鐘機制。該機制通過記錄報文在一個通信周期內到達各個從站時的從站本地時鐘時刻,從而計算并對傳輸延時進行靜態(tài)補償和對從站時鐘初始偏移進行周期性補償,實現了各從站時鐘的精確同步[6]。由此,各從站可以在設定的延時周期后精準地同步觸發(fā)SYNC信號。
多軸系統的整體結構如圖3所示。主站使用倍福公司的PC端軟件TwinCAT,發(fā)送控制指令與速度、位置等運動控制參數,同時接收從站的返回數據。從站實現EtherCAT通信和伺服驅動控制2個功能。主站與多個從站之間用網線串聯。伺服電機選用帶有光電編碼器的永磁同步電動機。
圖3 多軸系統結構示意圖Figure 3 Schematic diagram of multi-axis system structure
EtherCAT從站控制器采用Microchip公司的LAN9252芯片,實現物理層和數據鏈路層,對數據幀進行收發(fā)與處理。從站控制微處理器采用TI公司的TMS320F28379D高性能DSP,實現應用層。從站的硬件結構如圖4所示。
圖4 從站硬件結構Figure 4 Slave hardware structure
LAN9252作為ESC專用芯片,集成了2個以太網PHY;具有4 KiB雙端口存儲器(DPRAM)、3個現場總線存儲器管理單元(fieldbus memory management unit,FMMU)、4個同步管理器(SyncManager,SM);支持分布式時鐘(DC)功能;提供多種通信接口模式:支持16位數字I/O接口、SPI/SQI串行接口以及8/16位主機總線接口(host bus interface,HBI)[7]。
設計時選用了傳輸速率更高的HBI并行接口模式,與主控芯片TMS320F28379D的外部存儲器接口(external memory interface,EMIF)對接。接口模式選擇為16位變址尋址模式,使用4根地址線、16根數據線、3根控制線(片選信號CS、讀控制信號RD和寫控制信號WR)即可實現數據傳輸,能夠充分發(fā)揮EtherCAT高速、高實時性的特點。將中斷信號IRQ與時鐘同步信號SYNC0/1作為DSP的外部中斷信號以實現通信和同步功能。LAN9252芯片通過I2C接口與EEPROM連接,來存儲從站配置信息,可通過主站使用XML格式文件進行燒錄。
圖5所示為從站實物的正反面,其中Ⅰ為TMS320F28379D的LaunchPad,其EMIF接口位于背面,故將ESC電路板(Ⅱ)設計成“凸”字形進行連接。
圖5 從站實物圖Figure 5 Picture of slave station
TMS320F28379D芯片是一款高性能雙核微處理器,擁有2個獨立的32位C28x浮點CPU,每個內核都具有200 MHz的信號處理性能,廣泛應用于電機伺服控制領域[8]。系統設計時利用了28379D的雙核功能,將2個CPU分別用于實現EtherCAT通信功能和伺服電機控制功能,提高了硬件資源利用率和代碼運行效率。從站程序的整體結構如圖6所示。
圖6 從站程序整體結構Figure 6 Overall structure of slave program
CPU1中實現了EtherCAT從站協議棧,其主流程如圖7所示。HW_Init()函數主要初始化了GPIO端口、中斷以及數據接口(EMIF)等硬件資源。MainInit()函數初始化通用從站協議,包括對郵箱和對象字典的初始化。完成初始化后程序進入MainLoop主循環(huán),處理一些低優(yōu)先級的函數,如狀態(tài)機轉換、非周期性郵箱通信等。若從站運行于FreeRun模式,則采用查詢的方式在主循環(huán)中處理過程數據,否則就會使用中斷的方式在相應的中斷函數中處理過程數據[9]。
圖7 EtherCAT從站協議程序主流程圖Figure 7 Main flow diagram of EtherCAT slave protocol program
CPU2中使用電流、轉速和位置3個閉環(huán)的磁場定向控制(field oriented control,FOC)算法實現伺服控制功能。與CPU1之間通過IPC(interprocessor communication)模塊來進行實時信息交流。并且為了后續(xù)同步功能的實現,將信號SYNC0同時也作為CPU2的外部中斷信號來觸發(fā)SYNC中斷函數。
在TwinCAT主站軟件中設置從站運行于DC同步模式,通信周期和同步信號周期均設為2 ms。其中通信周期的穩(wěn)定性由主站來實現和保證。
以連接3個從站設備的系統為例,驗證了分布時鐘的高精度同步性能。用示波器觀測各從站控制器產生的IRQ信號與SYNC0信號,捕獲信號下降沿并將其放大,如圖8~10所示。
圖8 從站1~2的IRQ和SYNC0信號Figure 8 IRQ and SYNC0 signals of no. 1~2 slave station
圖9 從站1~3的IRQ信號下降沿Figure 9 Descending edge of IRQ signal of no. 1~3 slave stations
圖10 從站1~3的SYNC0信號下降沿Figure 10 Descending edges of SYNC0 signal of no. 1~3 slave stations
從圖9中可以看出,由于傳輸延時(包括線路延時和ESC處理、轉發(fā)數據幀的耗時),越在后邊的從站接收到數據幀和觸發(fā)IRQ信號的時間就會越晚。經過多次測量,前后2個從站之間的傳輸延時平均在730 ns,當從站數量較多時,就會有明顯的誤差。如圖10所示,在使用分布時鐘機制產生的SYNC0信號補償了傳輸延后,多次測量得到誤差在25 ns以內,同步精度很高且和從站的先后順序無關。
多軸系統的同步控制關鍵在于2個環(huán)節(jié):各伺服系統控制環(huán)的同步和運動控制參數的更新時刻的同步[10]。課題組利用高精度同步的SYNC0信號提出了一種同步控制的具體實現方案。
3.2.1 伺服控制環(huán)同步
該伺服系統的控制環(huán)周期由DSP的PWM模塊配置,考慮IGBT開關損耗等因素,一般以10 kHz的頻率觸發(fā)主中斷函數,在其中執(zhí)行內環(huán)即電流環(huán)控制并更新PWM輸出。外環(huán)包括速度環(huán)與位置環(huán),周期為內環(huán)的10倍,每進入10次主中斷函數則執(zhí)行1次外環(huán)控制。微處理器使用20 MHz的外部晶振,其頻率穩(wěn)定性為50×10-6,精度較高,但會隨著時間逐漸累積誤差??梢酝ㄟ^在SYNC中斷函數中將PWM計數值清零以確保沒有誤差累積,實現控制環(huán)周期的同步。
為了觀測同步效果,使用DAC模塊將PWM定時器計數值轉換成IO口的電壓值并用示波器捕獲,如圖11所示。同時觀測2個從站的DAC輸出值,如圖12所示。未同步情況下,兩者具有初始相位差,并且由于各自晶振的漂移,相位差會不斷累積增大,1 min左右就會相差1個周期;同步后,相位誤差會及時在SYNC0信號觸發(fā)時被消除,可以觀察到2個從站的DAC輸出波形相位始終重合,實現了控制環(huán)周期的精準同步。
圖11 DAC輸出與SYNC0信號波形Figure 11 Waveform of DAC output and SYNC0 signal
3.2.2 數據更新同步
各從站在接收到主站發(fā)送的運動控制參數后需要同步地應用到控制算法中去。一般的DC模式中過程數據的接收和應用都在SYNC中斷函數中執(zhí)行;而本課題中由于采用了雙核代碼結構,數據的接收和應用分別位于不同的CPU中,之間需要通過IPC模塊進行交流。為此,代碼設計時同時利用IRQ信號和SYNC0信號,修改并優(yōu)化了DC同步運行模式。如圖2所示,令從站處于DC模式時先在IRQ中斷函數中處理過程數據,然后進入“數據準備”階段,完成數據的復制、傳遞以及前處理計算,直到SYNC0信號觸發(fā)后再在CPU2的SYNC中斷函數中同步將準備好的數據應用于控制算法,并同步地準備好要返回給主站的數據。由于提前完成數據的復制和前處理計算,理論上能進一步提高同步性能。
實驗波形如圖13所示,其中CH1為SYNC0同步信號,周期為2 ms;CH2為用IO口電平表示的SYNC中斷函數觸發(fā)時刻,在該中斷函數中完成了PWM定時器計數值清零、數據更新等同步操作;CH3和CH4分別是控制環(huán)內環(huán)和外環(huán)的觸發(fā)時刻,在各個從站中都同步一致。
圖13 同步功能示意波形Figure 13 Waveform of synchronization function
為驗證同步控制效果,在一個2軸系統中進行同步控制實驗,硬件平臺如圖14所示。為了便于觀測同步效果,2個從站的電機參數和控制程序均一致。系統采用主令式的同步控制策略,2臺電機之間沒有耦合關系。
圖14 實驗硬件平臺Figure 14 Experimental hardware platform
考慮實際應用場景,例如在無軸傳動印刷機應用中,多軸系統需要長時間勻速運行,并且要求高精度的位置同步。運行時由主站發(fā)送目標轉速,在從站中各自獨立地根據轉速做積分運算得到位置給定從而進行位置控制。這種方式對主站的實時性要求不高,但要求各從站控制環(huán)周期的嚴格同步。
對上述運行方式進行模擬測試,由主站發(fā)出指令同時啟動2臺電機并給定目標轉速為360 r/min。其中,為了突出從站時鐘誤差累積產生的影響,改用精度較低的內部振蕩器代替外部晶振。
為驗證控制環(huán)周期是否實現同步,令2個從站將在外環(huán)周期中獨立計算得到的位置給定參數(轉過的圈數)返回給主站進行觀測。結果如圖15所示,2個電機的給定位置曲線完全重合,誤差始終為零,說明二者的控制環(huán)周期實現了同步。
圖15 雙機給定位置及誤差曲線Figure 15 Target position and error curves of two motors
觀測并記錄2個從站返回的實際位置。在實現控制環(huán)的同步的情況下運行約2 min后,通過主站發(fā)送標志位參數來同時禁用2個從站SYNC中斷函數中對PWM計數值的清零操作,即關閉同步功能,然后繼續(xù)運行,最后將數據保存導出處理如圖16所示。
圖16 雙機實際位置及誤差曲線Figure 16 Actual position and error curves of two motors
處理實際位置角數據時,每轉過10圈就將角度值歸零,得到圖16(a)和(b)中的鋸齒波形。從圖中可以看出,若不進行同步操作,由于控制環(huán)周期相位誤差的不斷增大,2臺電機的位置角度誤差也會隨之不斷增大。實現控制環(huán)周期同步時,2臺電機的實際位置角曲線基本重合,機械角度誤差保持在±0.6°以內,主要由各伺服控制的跟隨誤差疊加而成。
根據TMS320F28379D芯片的外設資源和雙核算力,可以實現4臺電機的高精度同步運行[11]。本實驗中,從站微處理器芯片的算力和空間均有富余,可以考慮將其應用于更復雜的多軸系統中。比如圖17所示的4色組單面印刷系統中,1個色組印刷單元內可以僅使用1塊TMS320F28379D芯片實現3個軸的同步控制,各色組之間則可以通過EtherCAT實時以太網技術來實現通信和同步,可以在代替機械傳動,實現高精度多軸同步控制的同時降低成本。
圖17 4色組單面印刷系統示意圖Figure 17 Schematic diagram of four-color group single-sided printing system
課題組針對多軸系統的精準同步控制問題進行了研究,設計并搭建了基于EtherCAT實時工業(yè)以太網的伺服控制系統。利用EtherCAT分布時鐘機制所產生的高精度同步信號,可以補償通信數據在到達不同從站時的傳輸延時;將其作為微處理器的外部中斷信號,在觸發(fā)時消除因各從站微處理器芯片晶振誤差帶來的時鐘誤差,可以實現各個從站控制環(huán)周期的同步。
實驗結果表明:該基于EtherCAT的伺服系統實現了各從站控制環(huán)周期和通信數據更新的精準同步,能夠滿足高精度的多軸同步控制要求,為更加復雜的多軸系統應用場景和多軸同步控制算法提供了基礎。