EtherCAT是一項高性能、低成本、應用簡單、拓撲靈活且開源的確定性以太網技術,其獨特優勢使得EtherCAT在半導體制造、機器控制、測量設備等領域有著廣泛的應用。
在進行EtherCAT主從通訊測試時,比較容易在DC配置出現錯誤,特別是使用到從站DC模式時,有時會出現代碼為0x1A的“同步錯誤”,有時即使沒報錯誤,伺服從站運行過程中也會出現電機軸的抖動,這是出于什么原因呢?本文將以虹科EtherCAT開發方案和三洋伺服測試舉例,通過采集SYNC0與SM2信號之間相位關系波形圖,做出診斷結論。
在測試前,需要認識兩個概念:從站同步模式、同步錯誤
從站同步模式
簡單理解就是從站以某個信號作為同步事件(中斷信號)來更新數據,EtherCAT支持以下各種同步模式,這里以常用的1,2,3,4舉例說明。
1. Free Run
2. Synchronous to SM2/3 (with Shift)
3. DC Mode 1 (Sync0 Event)
4. DC Mode 1 (Sync0 Event with Shift)
5. DC Mode 2 (Sync0, Sync1, with Shift)
6. DC Mode 3 (SM2 Event, Sync0)
7. DC Mode 4 (SM2 Event, Sync0, Sync1)
8. DC Mode with subordinated cycles
同步錯誤
在應用層,每個從站實時監視從ESC收到的同步SYNC信號。假如檢測到同步錯誤,從站會進入safe-op狀態并產生對應的應用層狀態碼,主站可以通過非周期命令讀取這一狀態碼。
可能引起同步錯誤的原因
1
主站周期時間/同步信號的錯誤配置
2
不再收到ESC發送的SYNC信號
3
主站發送數據幀時存在較大的抖動,導致數據幀在從站收到SYNC信號之后才到達從站
所以必須嚴格保證SYNC0必須在SM2信號之后。
概念解釋
Part.1
COE下0x1C32對象字典對應的幾個概念
其中也標注了數據從SM拷貝到從站MCU內存的時間和硬件處理延時時間分別為62.5us和30us。
Part.2
FreeRUN模式
自由運行模式通過應用程序控制器的本地計時器中斷啟動,本地周期從通信周期或主站周期獨立出來單獨運行。
Part.3
SM2事件
由于從站的處理與SM2事件周期相對應,因此從站的處理保持與SM2事件同步?運行時使用本地周期計時間直到收到SM2事件?
Part.4
DC模式
SYNC0事件收信后也開始從站的本地周期? 在下個SYNC0中斷發生前,過程數據幀必須被從站完全接收
開始測試
測試說明:主站周期1ms,分別測試三洋伺服的SYNC0引腳和SM2中斷引腳的信號,綠色信號為SYNC0,黃色信號為SM2
測試一
Sync shift time:0μs, Shift time:0μs,不設置傳播延時補償,不設置SYNC0啟動延時
測試結果:示波器測試IRQ信號與SYNC0的信號時間差基本上為11μs
測試結果:這時會出現異常的同步錯誤
測試二
Sync shift time:0μs, Shift time:250μs 不設置傳播延時補償,設置SYNC0延時250us啟動
測試結果:IRQ與Sync0之間的時間差為228--238μs左右,而且SYNC0明顯在SM2之后,正常
測試三
Sync shift time:60μs,Shift time:250μs,設置傳播延時補償60us(補償從站響應時間),設置SYNC0延時250us啟動
測試結果:IRQ與Sync0之間的時間差為282--300μs左右,相對測試二,往后延時60us左右,正常;
▎總結
[1] 保證SYNC0信號在SM2信號之后[2] 主站的抖動(SM2抖動)會導致從站伺服的抖動,一般如果主站max circletimejitter大于周期的20%-30%,會出現問題[3] 通過設置shift time(SYNC0延時啟動)時間可以改變SM2與SYNC0的間隔時間,給從站進行數據拷貝留出更多的時間,保證數據全部更新[4] 每個廠家的伺服,shift time的設置大小不同,需咨詢硬件廠商,一般是周期的四分之一,或者以自己實際測試為主,只要保證可以完整更新數據,不會出現來不及更新數據即可
-
以太網
+關注
關注
40文章
5460瀏覽量
172750 -
cat
+關注
關注
1文章
75瀏覽量
21338
發布評論請先 登錄
相關推薦
評論