EtherCAT設備ESI(XML)文件中的CompleteAccess關鍵字有什么作用
EtherCAT 協議憑借其良好的開源性以及低延時的通信效率,吸引了眾多 PLC 廠家紛紛選擇對其提供支持。由于各品牌 PLC 所支持的 EtherCAT 主站大部分采用自研方式,在這樣的背景下,不同品牌的主站難免會在性能與行為上存在差異,對從站不同特性的支持程度也各不相同(如 PDO 配置、郵箱通信長度調整及 SM 分配等)。
因此,行業內常常會出現一個完全符合 EtherCAT 從站標準的設備,卻無法與所有品牌的 PLC 都完美適配的問題。在 EtherCAT 從站設備的 ESI 文件中包含許多關鍵字,本次我們將直接通過一個具體實例,來談一談 CompleteAccess 關鍵字對通信產生的影響。
最近我司的 Anybus CompactCom 40 系列的 EtherCAT 從站模塊在終端用戶現場與歐姆龍 PLC 適配多次出現了歐姆龍 NX 系列(NX501、NX701)PLC 診斷信息提示 Anybus CompactCom 40 模塊狀態由 PRE-OP 切換到 SAFE-OP 切換失敗。

圖1 EtherCAT狀態機
參考倍福《EtherCAT_Device_Protocol_Poster》
出現問題之后我們第一時間通過倍福的 TwinCAT EtherCAT 主站以及歐姆龍的 NJ501 PLC 測試客戶手上的 Anybus CompactCom 40 EtherCAT 模塊,測試通信完全正常,由于 TwinCAT 的 EtherCAT 主站開發得較為完善,因此我們認為 Anybus CompactCom 40 EtherCAT 模塊是沒有問題的。
歐姆龍 NJ501 PLC 與模塊的通信也是正常的,這不禁讓人費解,問題會出在哪里。從 PLC 診斷信息上我們已經獲取不到任何幫助了,只能通過分析歐姆龍 PLC 與 Anybus CompactCom 40 EtherCAT 模塊之間的通信報文,獲取一些線索了。
圖2 Anybus CompactCom EtherCAT PCIE/SPI/UART板卡
我們通過 Anybus EtherTAP 1G 網絡抓包工具抓取了 EtherCAT 從站模塊與歐姆龍 PLC 之間的通信報文。EtherTAP 是通過采樣復制流經該模塊 A/B 口之間的網絡報文電信號并傳輸到 WireShark 報文分析軟件中,不參與也不影響實際的通信網絡,可以抓取十分干凈原始的報文,方便診斷分析。

圖3 Anybus EtherTAP抓包工具
問題分析
通過 PLC 提示的模塊是由 PRE-OP 切換到 SAFE-OP 切換失敗,基于從站狀態機切換所需的工作流程,我們將問題初步定位在 PDO 配置上,大部分的 EtherCAT 主站在與從站建立通信的過程中都會依據從站的 ESI(XML)文件提供的信息在初始化時向從站寫入 PDO 配置。
問題分析:由報文可以看出,NX701 PLC 在重啟后與 Anybus CompactCom 40 EtherCAT 建立通信的過程中未對 0x1600、0x1601,0x1a00、0x1a01 等 PDO 對象進行初始化寫入,僅初始化了 0x1c12、0x1c13(見下圖 4),而在另一款歐姆龍 NJ501 PLC 與從站 Anybus CompactCom 40 EtherCAT 建立通信過程中對其 0x1600、0x1601,0x1a00、0x1a01 等 PDO 對象進行了初始化寫入(見下圖 5)。
圖4 NX701與從站異常報文

圖5 NJ501與從站正常報文
由于報文中沒有發現主站對 PDO 的編輯配置報文,且主站不主動切換從站的狀態機,而 ESI 文件中 PDOAssign 與 PDOconfig 關鍵字都已置 1,這是必須使能的功能,而 CompleteAccess 關鍵字是有可能影響主站配置從站 PDO 的行為的,CompleteAccess 關鍵字打開意味著主站會通過一次郵箱通信將 PDO 配置信息全部寫入從站,此次從站的每個 PDO 中都包含多個 PDO Entry,CompleteAccess PDO 配置需要較長字節的郵箱通信。但是一般情況下主站可以通過分段下載解決郵箱長度不足的問題,在之前 NX701 和從站通信的報文中也沒有看到郵箱通信 Segment download 的關鍵字,因此 CompleteAccess 關鍵字使能有可能影響了通信。

圖6 郵箱分段通信協議報文示例
為了排除這一可能,通過修改 Anybus CompactCom 40 EtherCAT 模塊的 ESI 文件,將 Anybus CompactCom 40 EtherCAT ESI 文件中的 CompleteAccess 置 0,關閉該功能,NX701 PLC 與 Anybus CompactCom 40 EtherCAT 在 EtherCAT 通信恢復正常,問題終于得到解決。報文中可看到,在關閉 CompleteAccess 功能后,NX701 PLC 通過單個對象寫入的方式對 Anybus CompactCom 40 EtherCAT 0x1600、0x1601,0x1a00、0x1a01 等 PDO 對象進行了正常的初始化寫入操作,見下方部分報文截圖(圖 7)。

由此可見確實是 CompleteAccess 關鍵字影響了 PLC 對從站的通信的初始化流程。
到這里問題終于得到了解決,由于問題出現在現場,一時也找不到 NX701 PLC 做測試,一開始僅通過 NJ501 PLC 做測試,卻沒有發現任何問題,而現場終端的保密策略,更給問題分析帶來了不小的阻力,最終通過與終端客戶反復溝通,終于得到抓取報文的允許,得到允許后,在現場人員的幫助下,很快就獲取了報文,并定位出問題,在此也十分感謝現場的人員配合與幫助。
提交
Ewon設備如何進行固件版本降級
CRIMSON OPC UA客戶端與WINCC SCADA OPC UA服務器通信
N-View? 2:工業網絡管理的得力助手
Ewon固件版本更新的影響
技術干貨:EtherCAT設備組態時PDO Assign與config關鍵字的作用


投訴建議