http://kadhoai.com.cn 2026-05-07 11:44:39 來源:HMS

問題背景
在使用倍福的 TwinCAT 組態 EtherCAT 從站時,可以在從站的屬性頁的 Process Data 界麵看到兩個不明顯的可選項 PDO Assignmentment 與 PDO Configuration,由於該值一般在 EtherCAT 從站的 ESI 文件中已經給定,所有很多用戶會忽略這兩個選項,那麼這兩個選項的含義是什麼,有什麼作用,互相之間有什麼影響呢。

要想了解這個問題,首先簡單了解一下 CoE 協議 PDO 部分,即 CANopen Over EtherCAT,CANopen 協議作為應用層協議運行在 EtherCAT 通信鏈路上,其架構如圖:

在 CANopen 協議中,主站與從站的周期性數據通信稱為 PDO,通過預定義的 PDO 對象進行管理,PDO 相關的對象分為兩個部分,一部分是 PDO 通信參數對象(用於指定 PDO 的使能、CAN-ID、觸發方式等),一部分是 PDO 映射參數(指定哪些參數數據對象被映射到該 PDO 中,RPDO:0x1600~0x17FF/TPDO:0x1A00~0x1BFF),在 EtherCAT 中,任一傳輸方向的 PDO 數據通道由一個或若幹個 Sync Manager 管理,這與 CANopen 中每一個 PDO 都有一個單獨的通信參數對象不同,一個 Sync Manager 可同時對應多個 PDO 映射對象。由於數據鏈路層的差異, EtherCAT 從站保留了 CANopen 的 PDO 映射參數對象,而對於 PDO 的通信參數則通過自定義的對象管理,其中 PDO 的使能通過 0x1C10~0x1C2F 對象進行管理,其一種常見的 PDO 數據管理結構如下:

通常在 PLC 配置時,我們可以在從站的過程數據配置頁麵,根據實際應用需求動態的決定哪一些 PDO 被使能並整體映射到過程數據通道中,也可以動態配置哪一些應用層參數如目標速度、控製字、狀態字等是否映射到某一個 PDO 中。ESI 文件中的 PDOAssign 與 PDOConfig 關鍵字則向主站以及工程師提示這種 PDO 動態配置行為是否被此從站所允許。接下來我們采用倍福 PLC 作為 EtherCAT 主站,以 HMS Anybus CompactCom 40 EtherCAT 作為從站,抓取 TwinCAT 和 Anybus EtherCAT 從站之間的報文,來實際分析 PDO Assignmentment 與 PDO Configuration 對設備初始化的影響,加深一下 EtherCA 對 PDO 配置機製的理解。

Anybus CompactCom 40 EtherCAT&倍福PLC
PDO Assignment 測試
首先勾選 PDO Assignment 此時模塊的 PDO 沒有分配到任何的 SM 中,即沒有對默認的 PDO 使能,抓取報文,可以看到主站在建立通信時,首先會初始化從站中與 PDO 相關的 SM 寄存器,並為從站寫入 PDO 配置信息,主站與從站可以正常建立通信。


隨後取消勾選 PDO Assignment 選項,此時模塊的 PDO 沒有分配到 SM2/3 中,即模塊沒有默認的 PDO 使能,當我們在 TwinCAT 中取消 PDO Assgin 時,可以看到報文中沒有任何關於 PDO SM2/3 寄存器配置的報文。主站與從站 PDO 配置不再一致,主站嚐試與從站通信失敗。



現在通過在從站中直接修改 Anybus CompactCom 40 EtherCAT 的 PDO 相關的 0x1C12/0x1C13 對象,使其具有默認使能的 PDO,這裏我們配置 Anybus CompactCom 40 EtherCAT PDO 0x1601、0x1A01 默認使能,使得主站與從站默認 PDO 配置一致,監控報文,可以看到報文中仍然沒有任何關於 PDO 配置的報文,但是主站嚐試以所組態的 PDO 數據與從站通信時,主站與從站可以正常交互數據。


因此可以得出結論,當 EtherCAT 從站沒有使能任何 PDO 時,即從站 SM2/3 相關寄存器為空時,則必須使能 PDO Assginment,由主站在通信初始化時寫入 PDO 分配信息到其 SM2/3 中,使能從站 PDO。
驗證 PDO Configuration
首先保持 PDO Assignment 使能,隨後取消勾選 PDO Configuration,隨後抓取報文,可以看到報文中隻有關於 SM2/3 配置的報文。而沒有配置 PDO Entry list 相關的報文。由於 PDO 的數據組成員是與 ESI 文件中的 PDO Entry List 配置一致,因此通信可以成功,數據正常交互。


隨後在 TwinCAT 中刪除從站 PDO 中任意增加一個成員(注意:該 PDO 必須是可以修改的,Fixed PDO 不支持修改),然後分析抓取報文,可以看到主站初始化從站時,沒有配置 PDO 相關的報文,而此時主站所組態的 PDO 與從站默認的 PDO Entry List 不一致,通信失敗。



隨後再次勾選 PDO Configuration 配置,在報文中可以看到主站向從站寫入新的 PDO Entry List,主站與從站成功建立通信。


小結:因此可以得出結論,當 EtherCAT 從站某一個 PDO Entry List 可以修改,且主站中的 PDO Entry List 與從站默認的 Entry List 不一致時需要使能 PDO config。
總結
對於 PDO 默認使能以及 PDO 默認的數據組成員 Entry List 都固定的設備,則可以同時取消勾選 PDO config 與 PDO Assignment,此時主站與從站在通信建立的過程中沒有任何有關 PDO 初始化報文,這樣帶來的好處是,這將減少不同品牌主站 PLC 因配置 PDO 行為不同,所產生 PDO 配置錯誤,提高設備對不同類型 EtherCAT 主站的適配性,而這需要在開發從站時,給從站寫入固定的 PDO 信息。並且最好主動在設備的 E2PROM/ESI 文件中將 PDOAssign 與 PDOConfig 都置 0,以適應各類主站。
這樣在主站上電時可直接與從站建立通信,而跳過 PDO 的配置過程,大大降低現場因為 PDO 配置造成的 EtherCAT 通信錯誤概率,提高客戶使用感受,減少產品交付問題。

HMS 嵌入式解決方案
HMS 公司 Anybus 品牌旗下的 CompactCom 40 嵌入式模塊,同時支持多種工業通信協議,該係列模塊僅需一次開發,一個平台就可以同時支持 PROFINET、EtherCAT、EtherNet/IP、DeviceNet、CC-Link、PROFIBUS、Modbus 等多種協議。

模塊提供 UART/SPI/PCIE 接口(任選其一),接入設備的主控製器 CPU/MCU,主控製器通過 SPI/UART/ PCIE jiekouyumokuaijiaohuanshuju,kaifazhebuxuyaoguanxingongyetongxinxieyibenshenruheshixian,jiyumianfeitigongdegongchengbanyangpin,zuikuaiyidaoliangtianjiukeyishixianfanganyanzheng,ganxingqujiukuaisuyuwomenlianxiba!