http://www.henanjusheng.com 2026-05-07 09:16 來源:HMS

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

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

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

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

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


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



現(xiàn)在通過在從站中直接修改 Anybus CompactCom 40 EtherCAT 的 PDO 相關(guān)的 0x1C12/0x1C13 對象,使其具有默認(rèn)使能的 PDO,這里我們配置 Anybus CompactCom 40 EtherCAT PDO 0x1601、0x1A01 默認(rèn)使能,使得主站與從站默認(rèn) PDO 配置一致,監(jiān)控報文,可以看到報文中仍然沒有任何關(guān)于 PDO 配置的報文,但是主站嘗試以所組態(tài)的 PDO 數(shù)據(jù)與從站通信時,主站與從站可以正常交互數(shù)據(jù)。


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


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



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


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

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

模塊提供 UART/SPI/PCIE 接口(任選其一),接入設(shè)備的主控制器 CPU/MCU,主控制器通過 SPI/UART/ PCIE 接口與模塊交換數(shù)據(jù),開發(fā)者不需要關(guān)心工業(yè)通信協(xié)議本身如何實現(xiàn),基于免費提供的工程板樣品,最快一到兩天就可以實現(xiàn)方案驗證,感興趣就快速與我們聯(lián)系吧!