產業應用系列 #05
EtherCAT 與多軸同步:分散式時鐘為什麼重要
兩個軸要一起走一條 45 度的斜線。X 軸和 Y 軸各自以 200 mm/s 移動,控制器同時發出指令——但 X 軸的驅動器比 Y 軸晚了 100 µs 才收到。
結果是路徑偏差 20 µm。
Δ = v × Δt = 200 mm/s × 100 µs = 0.02 mm
如果這是一台切割機,這 20 µm 就直接刻在工件上。如果是量測站,這 20 µm 就是量測誤差。通訊層的時間誤差,會等比例變成空間誤差——這就是為什麼多軸系統要談同步。
一、同步誤差會變成什麼
把速度與同步誤差交叉起來看,數量級一目了然:
| 運動速度 | 同步誤差 1 ms | 同步誤差 100 µs | 同步誤差 1 µs |
|---|---|---|---|
| 100 mm/s | 100 µm | 10 µm | 0.1 µm |
| 200 mm/s | 200 µm | 20 µm | 0.2 µm |
| 500 mm/s | 500 µm | 50 µm | 0.5 µm |
機構做到微米級,通訊層卻是毫秒級,整個系統的精度就停在毫秒那一層。
這也解釋了一個常見的困惑:伺服選得很好、機構剛性也夠,單軸定位量起來漂亮,但兩軸一起動就是做不出圓弧或斜線。問題不在軸上,在兩軸「什麼時候開始動」這件事沒有對齊。
二、EtherCAT 的第一個關鍵:飛速處理
一般的工業乙太網路,每個節點收到封包後要完整接收、解析、處理、再重新發送。節點越多,延遲累積得越快。
EtherCAT 的做法完全不同:封包不停下來。一個乙太網路訊框依序穿過所有從站,每個從站在訊框「經過自己」的當下,用硬體即時把屬於自己的那幾個位元組讀走、並把回傳資料寫進去,訊框繼續往下一站走。
三、第二個關鍵:分散式時鐘
訊框傳得快,只解決了「資料到得夠即時」。但各軸還是在不同時刻收到資料——第一站和第四站之間本來就有傳播時間差。
分散式時鐘(Distributed Clocks,DC)解決的正是這件事。做法是:
- 選定一個從站的時鐘當作參考時鐘
- 主站量測訊框往返各站的傳播延遲,算出每一站相對參考時鐘的偏移
- 把偏移補償值寫進各站,讓所有節點共用同一個時間基準
- 動作指令不再是「收到就做」,而是「在時間 T 做」
第 4 點是整件事的核心。既然大家的時鐘是同步的,資料早到晚到就不重要了——全部等到指定的那一刻同時執行。
依 EtherCAT Technology Group 的規格說明,各節點之間的抖動遠低於 1 µs。回到開頭那張表:1 µs 的同步誤差在 200 mm/s 下只造成 0.2 µm 的位置偏差,已經落到機構本身的誤差之下。
四、三種方式怎麼選
| 方式 | 同步能力 | 適用軸數 | 適合的場合 |
|---|---|---|---|
| 脈波/方向 | 靠控制卡的硬體輸出,同步好但接線多 | 1–8 | 軸數少、佈線距離短、預算敏感 |
| CANopen | 毫秒等級,適合不需嚴格協調的場合 | 4–16 | 點對點定位、上下料、夾治具動作 |
| EtherCAT | 啟用 DC 後抖動遠低於 1 µs | 8 以上 | 插補運動、龍門同動、飛拍、多軸協調 |
判斷順序建議這樣走:
- 軸與軸之間需要協調運動嗎?(插補、龍門同動、電子凸輪)——需要就直接看 EtherCAT,不必再比
- 不需要協調,只是各自定位?——八軸以內用脈波最單純(一張 4 軸或 8 軸控制卡就夠),再多就用 CANopen 省佈線
- 之後會不會加軸?——EtherCAT 加軸是接一條線,脈波加軸是加一張卡加一束線
五、同步之外,還要對上取像
多軸同步解決的是「軸與軸之間」。量測站還有另一個同步問題:軸與相機之間。
載台以 100 mm/s 移動,觸發訊號晚了 1 ms,影像就對應到 100 µm 以外的位置——而且偏多少取決於當下的速度,所以不是一個可以事後補償的固定偏移。
解法有兩個,都在工業自動化頁的 2.4 節算過:用運動控制卡的位置比較輸出(PSO)直接由編碼器位置觸發相機,或者用 EtherCAT 的分散式時鐘把相機觸發模組也納入同一個時間基準。後者的好處是整條線只有一套時間,不必再處理兩套系統之間的對時。
結語:先確認誤差的來源在哪一層
「精度做不出來」是一個症狀,不是一個原因。真正要做的是把誤差拆開:
- 單軸定位就不準 → 機構或伺服調機的問題,看慣量比與轉矩
- 單軸準、多軸不準 → 同步問題,看這一篇
- 靜止準、移動中不準 → 取像觸發問題,看 PSO 與 DC
- 剛開機準、跑一段時間不準 → 熱漂移,看機構的材料與溫控
四種原因的解法完全不同,而且互不替代。換更好的伺服解決不了同步問題,換 EtherCAT 也解決不了機構剛性不足。先確認是哪一層,再決定花錢的方向。