3. EtherCAT數(shù)據(jù)抓包方法分析
檢測(cè)主站是否請(qǐng)求從站進(jìn)入op狀態(tài)
原理性分析:0x120是ESC的AL control寄存器,通過分析該值知道主站是否請(qǐng)求從站進(jìn)入相應(yīng)的狀態(tài),比如從站進(jìn)不了op,那么可以先根據(jù)該指令判斷主站是否請(qǐng)求從站進(jìn)入op了。AL control寄存器不同值對(duì)應(yīng)不同含義:
1: Request Init State
3: Request Bootstrap State
2: Request Pre-Operational State
4: Request Safe-Operational State
8: Request Operational State
通過設(shè)置過濾條件ecat.ado == 0x120,找到該寄存器值為8,從而知道在第32007條報(bào)文,主站開始請(qǐng)求從站進(jìn)入op。
檢測(cè)從站是否進(jìn)入op狀態(tài)
原理性分析:0x130是ESC的AL status寄存器,通過分析該值知道從站是否已進(jìn)入相應(yīng)的狀態(tài),比如從站是否進(jìn)入op,AL status寄存器不同值對(duì)應(yīng)不同含義:
Actual State of the Device State Machine:
1: Init State
3: Bootstrap State
2: Pre-Operational State
4: Safe-Operational State
8: Operational State
通過設(shè)置過濾條件ecat.ado == 0x130,找到該寄存器值為8,從而知道在第32812條報(bào)文,從站才開始進(jìn)入op,才有周期過程數(shù)據(jù)(pdo數(shù)據(jù)),也就是說,分析主站的周期性數(shù)據(jù),報(bào)文范圍是從32812開始算起。
檢測(cè)主站數(shù)據(jù)發(fā)送周期情況
原理性分析:通過分析進(jìn)入op后,發(fā)送的過程數(shù)據(jù)邏輯尋址指令Lxx來分析主站報(bào)文周期抖動(dòng)情況,比如每個(gè)周期都會(huì)發(fā)送LWR邏輯寫,那么可以將LWR指令過濾出來,cnt等于0表示剛從主站出來,還沒經(jīng)過任何從站,所以WKC為0。
根據(jù)章節(jié)2連接好拓?fù)?,將?shù)據(jù)包通過偵聽器抓取出來后,設(shè)置數(shù)據(jù)顯示格式如下:
過濾出在第32812條報(bào)文,從站開始進(jìn)入op,主站開始發(fā)送周期性報(bào)文。
分析周期性報(bào)文,注意到每個(gè)周期性報(bào)文包含三個(gè)子報(bào)文(邏輯尋址LRD,LWR,LRD)和DC指令,在DC模式下,每個(gè)DC周期都會(huì)發(fā)送相關(guān)的ARMW命令。
過濾出周期性報(bào)文,使用指令ecat.sub1.cmd == LRD && ecat.sub1.cnt == 0,過濾出子報(bào)文1為LRD且計(jì)數(shù)器值為0(表示從主站發(fā)出,未經(jīng)過從站)的周期性報(bào)文,選擇三角進(jìn)行報(bào)文排序,可以是從小到大,或者從大到小,可以看出主站周期最小981.160us,最大是1015.040us,wireshark報(bào)文保存為CSV格式,然后excel打開 通過對(duì)time列數(shù)據(jù)進(jìn)行excel波形圖分析,繪制出波形圖,可以看出主站周期抖動(dòng)情況,是否有數(shù)據(jù)包丟失等問題。
-
寄存器
+關(guān)注
關(guān)注
31文章
5356瀏覽量
120573 -
指令
+關(guān)注
關(guān)注
1文章
608瀏覽量
35748 -
ethercat
+關(guān)注
關(guān)注
18文章
700瀏覽量
38731
原文標(biāo)題:基于RX72M開發(fā)EtherCAT從站的數(shù)據(jù)包分析(下)
文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論