2020-10-05

2020-10-06 15:00:37

嵌入式單板上Ethercat偵錯

基於igh移植的Ethercat主站,偵錯方法有三種:一是使用igh提供的命令設定主機的偵錯級別,同時還可以藉助igh提供的其它命令列工具,來獲取主站和從站的狀態,以及主站如何控制從站;二是使用Wireshark抓包,你可以組建一個區域網,通過交換機,把匯流排上的報文抓取到PC機上,然後對照ethercat的報文內容,對報文進行解析,從而定位問題;三是在單板上使用tcpdump命令,你可以把報文直接用該命令列印出來分析,如果報文比較多,建議儲存到.cap字尾的檔案中,放到PC機上進行分析,後續分析與使用Wireshark抓包工具獲取的報文一樣。下面詳細介紹這三種偵錯方法:

1. 使用igh提供的命令設定主機的偵錯級別
偵錯級別(Debug Level)主模組還具有引數偵錯級別,可為所有主模組設定初始偵錯級別。
設定主站的偵錯級別,偵錯資訊將輸出在/var/log/syslog檔案中。
命令:ethercat debug
其中可有以下情況:

  • 0 : 無任何偵錯資訊輸出
  • 1 : 輸出部分偵錯資訊
  • 2 : 輸出所有的幀的內容(由於輸出資訊較多,請謹慎使用)
    例子:
    sudo ethercat debug 1
    解析:開啟部分偵錯資訊輸出
    Syslog主模組將有關其狀態和事件的資訊輸出到核心環形緩衝區。 這些也最終出現在系統紀錄檔中。 上面的模組載入命令應導致以下訊息: