發布日期:2022-07-14 點擊率:46
工業以太網是改進的標準以太網 ,其中冗余技術是提高以太網系統可靠性和可維護性最有效的手段之一 . EtherCAT(Ethernet for Control andAutomation Technology)是工業以太網的一種 ,它很好解決了以太網的實時性問題,其從站控制芯片ESC(EtherCAT Slave Controller)提供了環回通信機制.本文研究了工業以太網EtherCAT的冗余控制、熱插拔技術及故障點快速診斷方法 ,設計并實現了環型拓撲下的鏈路冗余控制系統. 開發了EtherCAT鏈路冗余主站驅動程序 ,并通過實驗分析和驗證了EtherCAT冗余后系統的性能.
1 EtherCAT工作原理
EtherCAT是一種實時工業以太網技術 ,已成為國際標準IEC 61158212, IEC 6178422 以及ISO1574524的一部分 .
圖1為 EtherCAT的基本工作原理.介質訪問控制 (MAC,Media Access Control)使用主從模式.
主站發送以太網幀給各從站 ,從站從數據幀中抽取數據或將數據插入數據幀 ,然后將該數據幀傳輸到下一個EtherCAT從站. 最后一個 EtherCAT從站發回經過完全處理的報文 ,并由第1個從站作為響應報文發送給主站. 主站使用標準的以太網接口卡或具有以太網接口的嵌入式工業控制計算機, EtherCAT從站使用專用的從站控制芯片ESC.
ESC采取接收轉發機制 ,以太網幀可以雙向通行 ,但只有以太網幀由下行電報方向進入時 ,相應的報文才能得到處理. 如果指定轉發的網口未連接, ESC自動將以太網幀沿原入口徑返回.
EtherCAT數據幀使用以太網V2 格式的MAC幀 ,以太類型為 0x88A4.圖2為EtherCAT數據鏈路層幀結構.一個EtherCAT以太網數據幀包含一個或多個EtherCAT子報文 ,每個子報文尋址獨立的設備或存儲區域.
每個EtherCAT子報文包括子報文頭、數據域和相應的工作計數器 (WKC,Working Counter) ,子報文尋址到從站節點并交換數據后 ,工作計數器將被增加 ,用以記錄該子報文的處理狀態.子報文頭中 ,8bit命令字節 ,指定了子報文類型 (讀寫類型 ,尋址類型 ); 8 bit索引號給出子報文編碼; 32bit的子報文地址指定了對從站的操作地址 ,尋址類型定義了尋址方式; 8bit長度用以指示報文數據區的字節數;R為4 bit的保留位; 4 bitM表示本報文是否為最后一個報文; 16bit中斷目前保留.
2EtherCAT冗余和熱插拔技術要求
2. 1拓撲結構
冗余以太網的拓撲結構包括網絡型拓撲、環型拓撲以及混合型拓撲 . 對于一般的工業以太網系統 ,網絡型和混合型拓撲過于復雜 ,環型拓撲非常有效而且實用. 本文研究環型拓撲的冗余技術 ,消除單點故障對系統產生的影響.
環型結構的信息流在網中是沿固定方向流動的.由于環型結構中出現一個節點故障將會影響全網 ,要提高可靠性 ,需采用雙向環結構 ,使環具有自愈功能 ,即在斷點處自動環回, ESC從站控制器具有這種自動環回功能.
EtherCAT冗余技術采用環型冗余結構 ,也就是將最后一個ESC節點連接到主站.要實現這個功能 ,需要主站具有2個以太網接口 ,見圖 3.
2. 2單點故障
環形冗余鏈路僅具備雙重冗余 ,因此只能應對單點故障.單點故障主要有以下幾種可能情況:
1) 網口故障 ,包括主站網卡本身故障和連接在網卡上的鏈路故障;
2) 鏈路故障 ,指從站節點之間的鏈路存在斷線;
3) 節點故障 ,指環路中某節點出現故障 ,導致幀轉發功能失效.在此情況下 ,發生故障的節點的失效不認為是整個系統的失效. 這種情況也可能發生在需要不斷電情況下更換一個從站節點的場合 ,通常也稱為“熱插拔 ”.
2. 3EtherCAT鏈路冗余主站
EtherCAT主站結構如圖 4所示 ,其中 Ether-CAT主站驅動實現了網卡驅動與上層控制任務的交互.冗余機制不應影響應用層控制任務的性能和功能. 在本文系統設計中,將常規 EtherCAT主站驅動程序做了修改 ,加入鏈路冗余機制 ,對上層應用屏蔽了冗余信息和操作.
在EtherCAT主站驅動程序中 ,向上層應用的接口主要為 1個發送隊列 (用于存放控制任務要發送的 EtherCAT幀)和1個接收隊列(用于存放處理過后返回的EtherCAT幀).本文設計的冗余機制旨在實現當系統處于任何正常或容錯運行狀態下這2個幀隊列都與網口和網絡狀態無關.
[DividePage:NextPage]
3冗余系統設計
3. 1冗余幀傳播機制
冗余主站設計如圖4所示 ,主站具有A和B2個網口,每個網口均具備發送和接收以太網幀的功能.
根據故障情況 ,圖5中列出了冗余系統正常工作和出現各種單點故障時的幀傳播策略:
1) 正常情況時,發送幀交由A網口發送,經過從站節點的遍歷,經B網口接收,進接收隊列;
2) A網口故障時,發送幀交由B 網口發送,反向到達第1個從站節點,以原鏈路環回,經B網口接收后,進接收隊列;
3) B 網口故障時,發送幀交由A網口發送,到達最后一個從站節點,以原鏈路環回,經A網口接收后,進接收隊列;
4) 出現鏈路故障 (或熱插拔 )時,發送幀交由A網口發送,遍歷至故障點處環回,經A網口接收,交由B 網口發送,從另一個方向遍歷至故障點處環回,經 B網口接收后,進接收隊列;
5) 出現節點故障時,發送幀交由A 網口發送,遍歷至故障點處環回,經A網口接收,交由B網口發送,從另一個方向遍歷至故障點處環回,經B網口接收后,進接收隊列.
3. 2故障點診斷
發生網口故障時,能夠確定故障點在主站接口上;而在發生鏈路故障和節點故障時,則需偵聽A網口和B 網口的接收幀,結合數據幀中子報文的工作計數器實現.
每個子報文最后具有一個WKC,在通過從站節點時,如果為該從站的子報文,WKC將加1(也有一些類型的報文增加值大于1).故障點診斷規則如下:
首先 ,根據讀取網口狀態判斷是否出現故障及故障類型.如果 A網口或B 網口狀態為未連接或連接出錯,則表明出現了網口故障;如果A網口接收到了環回的幀,則表明為鏈路故障或節點故障;否則,表明系統正常.
然后,對A網口和B 網口的接收幀進行偵聽和WKC分析.根據子報文的報文指令類型 ,以及子報文的WKC值,可以判斷出該子報文是否得以執行.從而,檢測出A網口和故障點之間離故障點最近的有效節點及B 網口和故障點之間離故障點最近的有效節點.
最后 ,可以判斷出 ,故障點出現在2個有效節點之間的鏈路或節點上.
4冗余主站的實現
冗余EtherCAT主站驅動程序采用WinPcap軟件開發包 ,實現EtherCAT幀的收發. WinPcap是Windows平臺下一個免費、公共的網絡訪問系統 ,為Win32應用程序提供訪問網絡底層的能力.
在程序底層定義了一個設備類 ,用于與硬件接*互.在該設備類中定義了一個網絡設備結構體指針鏈表 ,用以指向系統中所用到的網卡設備.在該類中定義了一個先入先出的隊列 ,用以存儲接收環回的EtherCAT幀 ,并提供了一個發送原始幀的接口函數 (發送隊列在上層定義 ).
程序啟動時 ,該設備類根據主站描述文件中提供的冗余網卡的MAC地址信息初始化網絡設備結構體指針鏈表.并啟動一個接收線程 ,以捕獲接收到以太網幀 ,并對接收到的幀進行相應處理.
發送EtherCAT幀時 ,首先讀取并記錄各網口的連接狀態 ,根據網絡狀態選擇相應網口發送該幀.接收線程接收到以太網數據幀后 ,判斷是否為Ether2CAT幀 (0x88A4幀 ).若是則按圖5規則選擇相應網口進行轉發或進接收隊列;若否則丟棄
該幀.這樣可以省去在轉發時判斷網口狀態 ,縮短轉發時間 ,減少傳播延時.
5 實驗驗證系統
圖6為冗余系統的實驗驗證系統 ,由1個主站 (PC)、2個EtherCAT2IO從站和1個測試從站(PC)組成.主站向從站發送周期讀寫數據. 分別在 PC主站程序和測試從站程序的應用層中設置發送計數器SendCounter和接收計數器Recv2 Counter,記錄發送和接收的周期幀數量. 在一段時間內,接收計數器和發送計數器的差值即為該時間段內的總丟幀數.
實驗過程如下: ①設置通訊周期為30ms,發送和接收計數器清零; ②啟動主站的周期發送,在一定的時間內 (1min左右) ,對系統進行拔線、節點斷電以及移除和插入節點等操作 ,模擬單點故障和熱插拔的發生; ③關閉主站的周期發送 ,獲取和比較發送計數器和接收計數器的數值 確認未,發生丟幀 ,能夠在1個通訊周期內恢復正常控制 ,表示系統運行正確 ,滿足冗余和熱插拔任務要求.
6結束語
EtherCAT提供了一種雙向數據傳輸機制.論文研究和實驗結果表明,采用具有雙Ethernet網口的PC計算機作為控制主站控制EtherCAT從站芯片,可以非常方便地實現高性能工業控制系統線路故障冗余和熱插拔任務要求,性能優越,運行可靠,無需復雜的主站控制程序.
下一篇: PLC、DCS、FCS三大控
上一篇: RS485轉以太網的應用