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