李木國,劉 壯,2,杜 海
(1.大連理工大學 海岸與近海工程國家重點實驗室,遼寧 大連 116024; 2.大連理工大學 控制科學與工程學院,遼寧 大連 116024)
造波機是海洋工程實驗室必備的大型設備之一,其用途在于通過海洋波浪場的人工模擬,輔助海洋工程實驗室階段的模型驗證。從設計原理角度來看,造波機是一種運動控制設備。大型水池造波機往往需要數百根伺服軸協同運動。以當前的控制器技術水平,單臺控制器完全可以承擔控制上百塊造波板運動的任務。然而,由于人工造波模擬時二次反射波的主動吸收方法需要高性能的計算來配合,致使設計吸收式造波機時需要多臺高性能控制器協同完成造波控制任務。與此同時,采用軟PLC技術的控制器因具有較高的程序設計靈活性,因而受到了廣大控制系統開發人員的喜愛,但軟PLC區別于傳統PLC的硬件同步的基于PC的軟同步控制,同時吸收式算法每個周期修正伺服軸的運動軌跡,所以系統的同步性成為影響造波機造波精度的關鍵因素[1]。目前,單臺運動控制器采用EtherCAT現場總線技術控制多根伺服軸的同步性已經得到了很好的研究。而多臺運動控制器之間的同步性卻研究較少。
本文采用德國倍福(BECKHOFF)公司的CX2000系列控制器進行多板造波控制,并基于EtherCAT總線進行系統通信架構設計,通過EtherCAT的分布式時鐘同步特性與多控制器時鐘補償相融合的方法探討大型造波系統中的同步控制方法:首先進行造波機原理概述,然后對EtherCAT網絡及其同步控制功能進行闡述,其次根據多控制器的設計需求提出了造波控制的任務周期時延的補償方法,最后通過系統的造波運動控制實驗對本文所提的同步控制方法進行驗證。
如圖1所示,搖板式造波系統和推板式造波系統原理都是電機的圓周運動通過滾珠絲杠轉換成直線運動來推動造波板運動[2]。

圖1 推板式和搖板式示意圖
水池水深為h,造波板入水深度為d,水池無反射,且水是理想不可壓縮、無旋運動液體,波高與造波板沖程的比值關系可由微幅波理論計算得到式(1)[3],推導過程詳見文獻[3]。
(1)
式(1)中,H為造波板板前波高,A為造波板的擺幅或沖程,k為波數,α=0表示推板式造波機,α=1表示搖板式造波機,且波浪的角頻率和波數滿足色散方程。
本文構建的多控制器運動同步測試系統主要由倍福CX2030控制器、EL6695網橋、AX5112驅動器、AM8000電機等構成,如圖2所示。CX2030控制器采用雙核i7 處理器(主頻1.5 GHz)和2 GB的內存,軟件環境為TwinCAT (The Windows control and automation technology) 3,TwinCAT是一種基于軟件的PLC運行環境,基于Windows操作系統實現了實時運行核,保證PLC任務周期的實時性。TwinCAT 3支持多核技術,允許不同的PLC任務運行于不同的CPU核上。為實現主動吸收式的造波系統提供了良好的硬件支持。

圖2 系統整體結構圖
EtherCAT具有高帶寬利用率、高實時性和拓撲結構靈活的工業以太網技術。它在數據鏈路層是專用的ESC(EtherCAT slave controller)控制器,而在物理層與標準以太網設備兼容。區別于標準以太網鏈路層存儲轉發機制,EtherCAT數據幀經過ESC控制器時是動態插入和讀取數據,數據不做緩存,明顯的縮短數據傳輸處理延遲時間[4],數據處理時間延遲僅為幾納秒[5]。

圖3 EtherCAT報文
如圖2,通過EtherCAT網絡造波系統中每個控制器對電機驅動器進行控制運動,EtherCAT網絡自身的分布時鐘特性是同步性能將依據(參考IEEE1588標準采用分布式時鐘來同步整個EtherCAT網絡的精確時鐘同步機制,各從站的動作同時執行,同步誤差小于1 μs[6])。控制系統中所存在的時鐘不同步原因及其導致的偏差:
1)每個從站在上電運行時的啟動時間不同;造成了從站時鐘的固定偏差
2)每個從站晶振頻率由物理原因導致微小差別;導致從站時鐘產生漂移,隨著系統運行時間的增加,漂移會越大
EtherCAT同步機制有效的的消除了上述兩種因素的影響。
具有EtherCAT接口的電機驅動器作為網絡從設備管理著系統時間、本地時間和參考時間3個變量[7]。本地時間是與系統時間獨立的,它記錄從站系統自上電運行起的時間。每個EtherCAT網絡中都有一個參考時間,系統會選定網絡拓撲結構中第一個具有DC能力的從設備的系統時間作為參考時間。分布式時鐘同步機制會使整個EtherCAT系統同步于參考時間。整個同步過程可以分為3個階段:傳輸延遲補償、時鐘初始偏移補償和動態漂移補償[8]。時鐘初始偏移補償消除了由原因1引起的誤差,動態漂移補償消除了由原因2引起的誤差。傳輸延遲補償則是為了消除拓撲結構和數據處理引起的傳輸時延。
首先,主站確定網絡的拓撲結構是通過讀取所有從站的DL Status寄存器實現的,然后,發送一個廣播寫數據幀,從站在數據幀首位到達從站的Port 0-3端口時根據拓撲結構將本地時間鎖存至Receive Time Port 0-3寄存器。最后,主站寫入從站的System Time Delay寄存器值是根據各從站Receive Time Port 0-3寄存器的值計算各從站與參考時間之間的傳輸延遲。選取3個從站網絡拓撲結構為例,計算原理如下。
首先,主站會讀取所有從站的DL Status寄存器來確定網絡的拓撲結構,緊接著會發送一個廣播寫數據幀,當這個數據幀的首位到達從站的Port 0-3端口時,從站會根據拓撲結構將本地時間鎖存至Receive Time Port 0-3寄存器。然后主站會讀取所有從站的Receive Time Port 0-3寄存器的值。主站根據這些值計算各從站與參考時間之間的傳輸延遲,并將這些值寫入相應從站的System Time Delay寄存器。以3個從站為例,網絡拓撲如圖2所示,計算原理簡述如下。

圖4 傳輸延遲計算網絡拓撲圖
圖4中,tX0表示從站Port 0接收到數據幀的時間;tX1表示從站Port 1接收到數據幀的時間;tPX表示處理傳輸延遲;tFX表示前向傳輸延遲;tXY表示數據幀從從站X到從站Y之間的延遲。則有:
tAB=tPA+tWAB
(2)
tBA=tFB+tWBA
(3)
tBC=tPB+tWBC
(4)
tCB=tPD+tWCB
(5)
假設物理層的傳輸延遲都相同;每個從站的處理傳輸時間延遲都相同,則有tP=tPA=tPB=tPC;每個從站的前向傳輸時間延遲都相同,則有tF=tFA=tFB;處理傳輸延遲與前向傳輸延遲的差記為tDiff=tP-tF。基于以上假設,可得,
tAB=((tA1-tA0)-(tB1-tB0)+tDiff)/2
(6)
tBA=((tA1-tA0)-(tB1-tB0)-tDiff)/2
(7)
tBC=tCB=(tB1-tB0)/2
(8)
由于數據處理延遲只有幾個納秒,則有tDiff近似為0。那么,可得式(9):
tAB=tBA=((tA1-tA0)-(tB1-tB0))/2
(9)
根據式(8)、(9)可以計算出每個從站到參考時間從站的傳輸延遲tprop_delay。
主站計算每個從站的本地時間與參考時間的差值,并將這個差值寫入System Time Offset寄存器中,這個過程僅在EtherCAT初始化的時候執行一次。每個非參考時間設備可以通過式(10)計算一個復制的系統時間。
tcopy_sys_time=tloc_time+toffset
(10)
主站將按照式(10)來設置參考時間設備的System Time Offset寄存器的值。
toffset=tmaster_time-tloc_time
(11)
依據式(10)和式(11),參考時間設備計算的系統時間就是主站時間;這樣,整個EtherCAT網絡的系統時間都同步于主站時間[9]。此時并沒有將傳輸延遲計算在內,動態漂移補償會將傳輸延遲計算在內。
引起從站設備時鐘發生漂移的因素可能會隨著時間的改變而改變比如,溫度、供電電壓和設備老化等因素。因此主站會周期性的發送ARMW數據幀,將參考時間設備的系統時間分發至所有其他從設備。從站設備會根據式(12)進行漂移補償:
Δt=(tloc_time+toffset-tprop_delay)-
trecv_sys_time
(12)
實際的漂移補償過程非常復雜,這里簡述如下,若從站計算的偏差大于0,說明本地時間比系統時間快,則本地時間需要減慢;若從站計算的偏差小于0,說明本地時間比系統時間慢,則本地時間需要加速。為了縮短同步過程的時間,在EtherCAT系統計算出傳輸延遲和時鐘初始偏移后,主站會發送大約15 000個ARMW數據幀,使從站時鐘趨于穩定;這之后,主站才會周期性的發送ARMW數據幀來動態調節從站時鐘。
受造波計算的需求影響,大型吸收式造波系統中往往存在多個控制器進行人工波浪的模擬,因此控制器之間控制數據時間戳的對齊成為系統正常運行的一個關鍵性問題。
本文所采用系統結構如圖2所示,簡化的3個主站,主站之間采用EL6695網橋來進行時鐘同步與數據的實時傳輸。每個EL6695都包含兩個獨立的從站設備,分別稱為一次側和二次側[10],整個系統的同步結構原理可簡化為圖5。

圖5 系統同步結構原理圖
主站1設置為獨立時鐘模式,主站2、3設置為外部時鐘同步模式,則整個系統的DC時鐘將同步于主站1的參考時鐘。系統中由主站1、EK1122網絡耦合器、兩個EL6695的一次側和驅動器構成了上層EtherCAT同步網絡。此時EtherCAT網絡的時鐘同步于這個網絡拓撲結構中第一個支持分布式時鐘功能的從站[11],這里為EL6695的一次側。主站2、3分別與EL6695的二次側和它們下面掛載的驅動器構成了下層EtherCAT同步網絡,每個下層同步網絡都同步于各自的參考時鐘。主站2、3會根據外部參考時鐘(EL6695的一次側)周期性的調節各自的時鐘,使得時間差值無限接近于tDcToExtTimeOffset(系統補償常量值)補償值,在實驗測試中取差值小于10 ns。兩個EtherCAT主站之間時鐘同步到ns級別[12],主站2、3根據式(13)計算同步的DC時間。
tSyncDcTime=tLocDcTime+tDcToExtOffset
(13)
同步后,整個系統的DC時間將保持一致,SYNC中斷也會被同步。
由于本系統采用的控制器基于Windows軟PLC設計,它并沒有很好的硬件觸發機制來保證多個控制器任務的同時執行。經過測試發現,當PLC周期與CPU時間基一致時,任務周期是同步執行的。然而,當任務周期大于這個時間基時,則不同控制器的PLC任務周期的起始時刻會存在不同;例如任務周期設置大于1 ms時,控制器間任務的起始時刻將產生的同步誤差。設置PLC的任務周期(CycTimeNs)設為4 ms,進行實驗測試。
如前所述,大型造波機系統通常由數個控制器構成,為了簡化工程實施,不采用硬件信號觸發形式。上位機軟件通過TCP/IP連接發送開始命令給邏輯主控制器,邏輯主控制器通過EL6695發送開始命令給兩個邏輯從控制器,由于EL6695的實現機制數據傳輸會有大約兩個周期的延時,不同邏輯從控制器接收到開始指令的時間會有偏移誤差,而這種差異將保持不變。因而可以通過延遲補償方法的設計來消除這種差異,在本文中將采用如下的步驟進行計算:
1)邏輯主控制器通過F_GetCurDcTaskTime64()函數獲得當前任務周期的起始時刻tLocalDcTime;然后在此循環周期發送同步測試指令給兩個邏輯從控制器,邏輯從控制器在接收到同步測試指令后,分別記錄當前任務周期的起始時刻t2SlaveDcTime和t3SlaveDcTime;主站2、3根據式(14)計算同步的DC時間。
tSlaveDcTime=tLocDcTime+tDcToExtTimeOffset
(14)
2)將這個起始時刻再傳回邏輯主控制器,邏輯主控制器將計算從發送同步測試指令起,到兩個邏輯從控制器接收到這個指令的時間差,并計算差值的最大值tmaxDelayTime。根據式(15)計算最大延遲周期(取整),從而得到主控制器的延遲周期數和延遲時間,
nmaxDelayCyele=tmaxDelayTime/CycTimeNs
(15)
tmasterDelayTime=nmaxDelayCyele*CycTimeNs
(16)
3)主控制器延遲后,計算從控制器延遲時間,根據延時周期后的主控制器和從控制器延遲時間比較找到最小延遲時間tminDelaytime,讓3個控制器均以此延遲時間EtherCAT主站位對齊,算出每個控制器的補償時間通過ADS寫入驅動器寄存器Sync offset中:
tmaterShiftTime=tmaxDelayTime-tminDelayTime
(17)
tSlaveShiftTime=tSlaveDelayTime-tminDelayTime
(18)
4)主控制器在延遲nmaxDelayCyele個周期后向從控制器發送開始運動控制命令。
為了驗證所提的多控制器時間補償方法的有效性,在大連理工大學海岸和近海工程國家重點實驗室水槽中采用多控制器多板造波形式進行實驗設計。實驗水池為長10 m,寬1 m,高2.4 m,試驗水深為1.9 m,搖板實驗樣機為兩塊0.5 m寬造波板組成,兩個伺服電機由兩個從控制器控制。實驗樣機如圖6所示。實驗中,將每個控制器的PLC周期都設置為4 ms,邏輯主控制器配置為獨立時鐘模式,兩個邏輯從控制器配置為外部同步模式[13]。下面將采用驅動器探針法與示波器直接觀測法對時間補償前后的同步性能進行測試。

圖6 搖板造波實驗現場
將驅動器的模擬輸出口(最大5 μs漂移)配置為輸出模式。MFC編寫的上位機軟件通過ADS通信向邏輯主控制器發送開始指令,采用本文所提的延遲補償算法來控制驅動器的模擬輸出同步輸出。使用示波器的觸發功能來觀察電平的變化,如圖7~8所示。

圖7 不補償2 ms同步誤差
如圖7所示,不補償時兩個從EtherCAT網絡存在2 ms同步誤差。與之對應,圖7是補償后的結果輸出顯示。從圖8中可以清楚觀察到通過補償后同步誤差小于10 μs,這種誤差下造波機的推波板位移誤差不會超過30 μm[14],完全滿足造波的精度需求。

表1 實驗數據

圖8 補償后同步誤差
伺服驅動器探針功能能夠得到某一時刻電機編碼器數值,伺服電機設定速度為1000 mm/s,實際轉速為166 rpm,通過同一時刻的編碼器差值來比較電機的位置偏差。實驗數據如表1所示,編碼為16位單圈編碼器,即一圈為65535,實驗數據為10次平均值。
通過表1中編碼器差值可容易得到兩臺電機的實際位置偏差。結果數據表明,補償前電機位置偏差計算出的時間和示波器觀測值相近為ms級偏差,而補償后偏差明顯變小為μs級別(結果中所出現的60 μs偏差在左右是因為電機抖動和現場電磁干擾造成的)。結果明顯表明了經過本文的時間補償同步性能有了較大層次的提高。
圖9是采用本文所提的多控制器同步控制方法進行人工造波的一個場景,實驗中按照波浪生成規律測試了不同周期和波高的規則波和不規則波。從現場實驗所產生的波浪品質也可以看出,本文所提出的同步控制方法所產生的波浪無偏移現象,具有較強的實用性。

圖9 波浪模擬場景圖
本文基于工業以太網EtherCAT技術探索了多控制器波浪模擬技術,并深入研究了造波控制中各個部分的時鐘同步問題及解決方法。與此同時,針對當今先進的軟PLC技術在造波系統應用時存在的數據對齊問題,提出了多控制器時間延遲補償方法,該方法有效地消除了多控制器之間接收開始命令的不確定性。最后采用了3臺運動控制器,使用多個網絡耦合器和EL6695網橋搭建了多控制器造波實驗平臺,并通過實驗證實了本文所提方法可以將造波系統的同步誤差控制在10 μs以內,完全滿足了今后大型多板吸收式造波系統的需求。