基于EtherCAT實時以太網(wǎng)的伺服驅(qū)動器同步方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及基于EtherCAT實時以太網(wǎng)的伺服驅(qū)動器同步方法。
【背景技術(shù)】
[0002]運動控制系統(tǒng)的發(fā)展水平?jīng)Q定了一個國家裝備制造業(yè)的水平。隨著現(xiàn)場總線和網(wǎng)絡(luò)技術(shù)的發(fā)展,分布式運動控制系統(tǒng)是數(shù)控系統(tǒng)的重要發(fā)展方向。高水平的分布式運動控制系統(tǒng)需要實現(xiàn)高精度的電流、速度及位置全閉環(huán)控制,需要實現(xiàn)高效、高速的信息交互。
[0003]傳統(tǒng)伺服驅(qū)動器接口需配備額外的運動控制卡,運動控制卡和伺服和驅(qū)動器之間以脈沖命令和模擬信號連接。這種方法布線復雜、通信速率低、集中控制方式復雜、可擴展性差,嚴重制約了中高檔伺服技術(shù)的發(fā)展和應(yīng)用。
[0004]相較而言,伺服驅(qū)動器采用現(xiàn)場總線通過全數(shù)字式信息傳輸可以實現(xiàn)分布式多軸控制。系統(tǒng)復雜性有所降低、擴展性較好、性能有所提升。較為廣泛采用的伺服接口總線有PROFIBUS-DP、CANopen, DeviceNET等傳統(tǒng)現(xiàn)場總線。。但傳統(tǒng)現(xiàn)場總線通信速率較低、通信周期長、通信距離短;現(xiàn)場總線協(xié)議標準難以統(tǒng)一、兼容性差,主從站均需采用專用硬件;采用短幀通信,有效數(shù)據(jù)負載效率低。上述原因決定了傳統(tǒng)現(xiàn)場總線接口的伺服驅(qū)動器難以滿足中高端復雜運動控制系統(tǒng)的硬實時、高同步性、高效高速等要求。
[0005]如何實現(xiàn)通信和伺服的協(xié)同處理并保障不同伺服電流環(huán)周期的同步執(zhí)行,是在高速通信基礎(chǔ)上實現(xiàn)多軸伺服系統(tǒng)高精度、高同步執(zhí)行要解決的問題。
[0006]近年來,誕生了實時以太網(wǎng)技術(shù),該技術(shù)不僅傳播速率快、數(shù)據(jù)包容量大、傳輸距離長、拓撲結(jié)構(gòu)靈活而且保障較高的實時和同步性能,因而成為解決上述問題的新方案?;贓therCAT實時以太網(wǎng)的伺服就是這樣一種新方案。
[0007]EtherCAT實時以太網(wǎng)采用主從通信機制。一個完整的EtherCAT控制網(wǎng)絡(luò)包含主站和從站。EtherCAT實時以太網(wǎng)的數(shù)據(jù)傳輸原理如圖1所示:主站發(fā)送以太網(wǎng)幀給各個從站,接收到以太網(wǎng)幀的從站可以直接處理接收到的數(shù)據(jù)幀,并從中提取輸出數(shù)據(jù)和插入對應(yīng)的輸入數(shù)據(jù),然后將以太網(wǎng)幀傳輸?shù)较乱粡恼?。網(wǎng)絡(luò)上的最后一個EtherCAT從站發(fā)回經(jīng)過各從站處理的數(shù)據(jù)幀,直到第一個從站將其發(fā)回給主控制器。通過這種方式,EtherCAT充分利用了以太網(wǎng)的全雙工特性,通過發(fā)送一個數(shù)據(jù)幀完成所有從站的數(shù)據(jù)交互。
[0008]EtherCAT從站設(shè)備由負責實現(xiàn)網(wǎng)絡(luò)通信的EtherCAT從站控制器(ESC,EtherCATSlave Controller)和負責伺服控制應(yīng)用的從站控制微處理器(MCU)組成。ESC硬件上由FPGA(Field-Programmable Gate Array,現(xiàn)場可編程門陣列)或通信專用ASIC芯片實現(xiàn)。FPGA負責通信的數(shù)據(jù)鏈路層處理,而MCU則負責實現(xiàn)應(yīng)用層和伺服驅(qū)動控制程序。
[0009]EtherCAT實時以太網(wǎng)通過分布時鐘(DC,Distributed Clock)使網(wǎng)絡(luò)上的ESC使用相同的系統(tǒng)時間來滿足各個節(jié)點間的高同步性能需求。各從站分布時鐘會以第一個從站為參考測量和計算傳輸延時和本地時鐘偏移,并進行補償。ESC通過分布時鐘按照主站配置的同步周期向伺服應(yīng)用控制MCU發(fā)送同步信號,以實現(xiàn)精確的同步控制。通常采用基于EtherCAT的伺服多軸同步實現(xiàn)方案如下ESC在接收到數(shù)據(jù)幀時,取出輸出過程數(shù)據(jù)并保存到DPRAM的接收數(shù)據(jù)緩存區(qū)中,同時將DPRAM的發(fā)送數(shù)據(jù)緩存的數(shù)據(jù)插入數(shù)據(jù)幀發(fā)送到下一從站。ESC完成和以太網(wǎng)的數(shù)據(jù)交互后向MCU發(fā)起數(shù)據(jù)交互ΗΠ (Process DataInterface)中斷請求,更新接收數(shù)據(jù)緩存區(qū)中的數(shù)據(jù)到MCU中的伺服應(yīng)用變量。各從站ESC在分布時鐘定時觸發(fā)后,向伺服應(yīng)用MCU發(fā)起SYNC同步中斷請求。MCU進入SYNC同步中斷后執(zhí)行伺服應(yīng)用程序,并將執(zhí)行結(jié)果鎖存并更新到ESC的送數(shù)據(jù)緩存等待下一周期發(fā)送至主站。
[0010]EtherCAT實時以太網(wǎng)提供了同步于主站的高速實時通信,不需要額外增加同步線纜,通過標準網(wǎng)線即可實現(xiàn)系統(tǒng)集成(如圖2所示),并且提供了多軸伺服系統(tǒng)的同步樣例方案。但仍存在以下不足:
[0011]I)現(xiàn)有的EtherCAT伺服驅(qū)動器方案,伺服控制程序在SYNC同步中斷中執(zhí)行,SYNC同步中斷的產(chǎn)生由分布時鐘觸發(fā),電流環(huán)控制周期由伺服定時器時鐘產(chǎn)生,兩者存在定時偏移。在SYNC同步中斷發(fā)生時,上一周期的伺服程序執(zhí)行狀態(tài)可能為已完成等待或未完成狀態(tài)。此時強制更新伺服程序數(shù)據(jù)會造成系統(tǒng)誤差。且各軸對SYNC同步中斷響應(yīng)延時存在一定誤差,未進行補償;
[0012]2) MCU響應(yīng)ESC發(fā)起數(shù)據(jù)交互PDI中斷請求,更新ESC接收數(shù)據(jù)緩存區(qū)中的數(shù)據(jù)到MCU中的伺服應(yīng)用變量。ESC只對同步中斷進行了延時和計數(shù)補償,各從站發(fā)起roi中斷的時間未同步處理,即MCU中的伺服應(yīng)用變量更新是非同步的。當分布時鐘周期不等同于通信周期時,各從站上的伺服應(yīng)用變量非同步,其更新和執(zhí)行可能偏差一個周期。且同步中斷具有更高優(yōu)先級,可以把roi中斷打斷,導致數(shù)據(jù)更新不完整出錯;
【發(fā)明內(nèi)容】
[0013]本發(fā)明所要解決的技術(shù)問題在于提供一種基于EtherCAT實時以太網(wǎng)的伺服驅(qū)動器同步方法,其能對各從站的同步中斷響應(yīng)延時補償,實現(xiàn)伺服控制數(shù)據(jù)同步更新和執(zhí)行,對各從站的伺服程序定時器和分布時鐘計數(shù)器的偏差進行補償,對伺服中斷和實時以太網(wǎng)同步中斷進行協(xié)調(diào),使兩個中斷的觸發(fā)互不干擾,保證數(shù)據(jù)更新不被打斷。
[0014]本發(fā)明所采用的技術(shù)方案是:
[0015]一種基于EtherCAT實時以太網(wǎng)的伺服驅(qū)動器同步方法,該伺服驅(qū)動器設(shè)有基于EtherCAT實時以太網(wǎng)的從站,該基于EtherCAT實時以太網(wǎng)的伺服驅(qū)動器同步方法包括:
[0016]從站的鏈路層控制模塊在分布時鐘觸發(fā)時,向從站的應(yīng)用層控制模塊請求同步中斷;
[0017]應(yīng)用層控制模塊在每次進入同步中斷時讀取當前系統(tǒng)時刻Tsys以及伺服定時器的計數(shù)值T。,并計算中斷響應(yīng)延時a t1;其中,Δ t i= T sys-Td。sys,所述的中斷響應(yīng)延時At1為鏈路層控制模塊在分布時鐘觸發(fā)的時刻與當前系統(tǒng)時刻之間的偏移量,Tdc sys為從鏈路層控制模塊讀取的本次分布時鐘觸發(fā)時刻;
[0018]在第一次進入同步中斷時,應(yīng)用層控制模塊計算Tset= T 0ffset+ (Tc- Δ tl),其中,Tset為應(yīng)用層控制模塊在第一次接收到同步中斷請求后的下一次伺服中斷發(fā)起時刻,TMfsJ%應(yīng)用層控制模塊接收到同步中斷請求后的下一次伺服中斷發(fā)起時刻與接收到該同步中斷請求的時刻之間的時間偏差值,Tl3ffset= Transt;其中Transt為預(yù)先設(shè)定的常量,Transt需滿足Tsync<Tconst<Tper1d-Tservo;T s胃為同步中斷的執(zhí)行時間;T SCTV。為伺服中斷的執(zhí)行時間,T PCT1C]dS伺服定時器的伺服程序理論定時周期;
[0019]應(yīng)用層控制模塊根據(jù)計算出的!;^.周整在第一次進入同步中斷時的那一個伺服定時器的伺服程序定時周期;
[0020]應(yīng)用層控制模塊將處于第一次同步中斷所在的那一個通信周期內(nèi)的其余伺服定時器的伺服程序定時周期恢復為伺服程序理論定時周期TpCT1C]d。
[0021]上述的基于EtherCAT實時以太網(wǎng)的伺服驅(qū)動器同步方法,其中,應(yīng)用層控制模塊從第二次進入同步中斷開始,每次進入同步中斷時均計算接收到同步中斷請求時的伺服定時器的實際計數(shù)值T2與理論計數(shù)值T i之間的偏差Δ τ: Δ T = T 2-1\= (T.-At1)-(Tper1d-TOffset) = !>TMfset-TpCT1C]d-A t1;并將本次同步中斷所在通信周期內(nèi)的伺服定時器的伺服程序定時周期設(shè)為 Tper1dNewj ^per1dNew T per1d+
ΔΤ/m,其中m為通信周期除以伺服程序理論定時周期的整數(shù)倍數(shù)。