《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計應(yīng)用 > 基于SII接口的EtherCAT網(wǎng)絡(luò)配置方案設(shè)計
基于SII接口的EtherCAT網(wǎng)絡(luò)配置方案設(shè)計
2017年電子技術(shù)應(yīng)用第12期
南 揚(yáng)1,2,豐大軍2,趙德政2,王 皓2
1.西安電子科技大學(xué) 通信工程學(xué)院,陜西 西安710071;2.華北計算機(jī)系統(tǒng)工程研究所,北京100083
摘要: 介紹了EtherCAT工業(yè)以太網(wǎng)技術(shù)及常用EtherCAT網(wǎng)絡(luò)配置方案,分析了常用配置方案所存在的問題,針對EtherCAT配置方法開展研究,提出了一種基于從站信息接口(SII)的EtherCAT網(wǎng)絡(luò)配置方案。通過設(shè)計實驗對該配置方案進(jìn)行測試,實驗結(jié)果表明該方案能有效提高EtherCAT網(wǎng)絡(luò)配置的效率。
中圖分類號: TP29
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.179021
中文引用格式: 南揚(yáng),豐大軍,趙德政,等. 基于SII接口的EtherCAT網(wǎng)絡(luò)配置方案設(shè)計[J].電子技術(shù)應(yīng)用,2017,43(12):69-72.
英文引用格式: Nan Yang,F(xiàn)eng Dajun,Zhao Dezheng,et al. Design of EtherCAT network configuration based on SII interface[J].Application of Electronic Technique,2017,43(12):69-72.
Design of EtherCAT network configuration based on SII interface
Nan Yang1,2,F(xiàn)eng Dajun2,Zhao Dezheng2,Wang Hao2
1.School of Telecommunication Engineering,Xidian University,Xi′an 710071,China; 2.National Computer System Engineering Research Institute of China,Beijing 100083,China
Abstract: This paper introduces the technology of EtherCAT industrial Ethernet. The common scheme of EtherCAT network configuration is analyzed. The way of EtherCAT configuration is studied. A method of EtherCAT configuration based on slave information interface(SII) is proposed to deal with the problem that exists in the common scheme. The experiments are designed for testing the feasibility of the scheme. The result proves that the scheme has excellent performance.
Key words : industrial Ethernet;EtherCAT;slave information interface;network configuration

0 引言

    EtherCAT是由BECKHOFF公司提出的一種高性能工業(yè)以太網(wǎng)技術(shù)[1],它采用標(biāo)準(zhǔn)以太網(wǎng)數(shù)據(jù)幀和符合以太網(wǎng)標(biāo)準(zhǔn)IEEE 802.3的物理層,具有數(shù)據(jù)傳輸速度高、實時性好、拓?fù)潇`活和實施費(fèi)用低的優(yōu)點(diǎn),逐步成為工業(yè)以太網(wǎng)技術(shù)研究的熱點(diǎn)[2]。

    目前,EtherCAT技術(shù)已成為國際標(biāo)準(zhǔn)IEC61158的一部分,被廣泛的應(yīng)用于同步控制、運(yùn)動控制和材料加工控制等行業(yè)[3,4]。本文研究了常用的EtherCAT網(wǎng)絡(luò)配置方案,分析了其不足,提出了一種基于從站信息接口(Slave Information Interface,SII)的EtherCAT網(wǎng)絡(luò)配置方案,并對方案進(jìn)行實現(xiàn),最后通過實驗驗證了其可行性。

    目前常用的EtherCAT網(wǎng)絡(luò)配置方案大多基于可擴(kuò)展標(biāo)記語言(eXtensible Markup Language,XML)在這種方案中EtherCAT配置工具根據(jù)從站提供的EtherCAT從站信息(EtherCAT Slave Information,ESI)文件和網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),生成一個XML格式的EtherCAT網(wǎng)絡(luò)信息(EtherCAT Network Information,ENI)文件。ENI文件描述了網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)以及從站設(shè)備的初始化命令和配置命令。主站獲取ENI文件,并根據(jù)其網(wǎng)絡(luò)配置信息進(jìn)行EtherCAT網(wǎng)絡(luò)配置。

    這種方案具有良好的通用性和擴(kuò)展性,但也有著諸多不足。一方面,該配置方案需要額外的配置軟件進(jìn)行協(xié)助,增加了研發(fā)的工作量。同時,ENI文件依據(jù)ESI文件生成,所以一個新的模塊出現(xiàn)就要向EtherCAT配置軟件的庫文件中添加一個新的ESI文件,使得整個配置操作較為復(fù)雜。文獻(xiàn)[5]中設(shè)計了一種簡單EtherCAT主站,可以簡化配置過程,但是仍然需要上位機(jī)進(jìn)行協(xié)助。

    另一方面,XML格式的文件解析比較復(fù)雜。XML格式文本是W3C組織為Web數(shù)據(jù)儲存和交換制定的一種文本格式,其解析復(fù)雜度較高,尤其是在系統(tǒng)資源并不豐富的嵌入式主站系統(tǒng)中,XML的解析壓力將面臨更為嚴(yán)峻的挑戰(zhàn)。文獻(xiàn)[6]提出了一種快速XML解析方案,但是其對內(nèi)存要求較大,并不能完全解決上述問題。

1 基于SII的配置方案

    為了解決傳統(tǒng)方案中存在的問題,本文提出并設(shè)計了一種基于SII的EtherCAT配置方案。SII是從站信息接口,它規(guī)定了從站信息在EEPROM中的存儲格式,主站可以根據(jù)SII中的信息完成對從站的配置。該配置方案如圖1所示,在配置開始時,主站掃描從站,獲取從站的拓?fù)?,并順序讀取所有從站的設(shè)備信息,然后生成配置命令,從而完成對EtherCAT網(wǎng)絡(luò)及所有從站的配置操作。與傳統(tǒng)方案相比,本方案中由主站獲取從站的拓?fù)浣Y(jié)構(gòu)并生成配置信息,全程無需專門的配置工具軟件參與,降低了配置方案的開發(fā)成本;主站直接從SII中獲取從站的信息,不需要XML參與配置,省卻了解析XML的時間,極大地提高了配置效率。

ck6-t1.gif

    該配置方案包括3個操作步驟:(1)掃描從站,根據(jù)獲取的響應(yīng)信息計算從站連接的拓?fù)浣Y(jié)構(gòu);(2)根據(jù)從站的拓?fù)浣Y(jié)構(gòu),依次讀取從站信息;(3)生成配置信息,并對從站進(jìn)行配置。

1.1 計算從站拓?fù)浣Y(jié)構(gòu)

    在目前常用的EtherCAT網(wǎng)絡(luò)配置方案中,從站的拓?fù)浣Y(jié)構(gòu)是由配置工具軟件生成并下發(fā)到從站。而在基于SII的配置方案中,由于沒有配置工具軟件的參與,主站采用一種遞歸的算法計算從站的拓?fù)浣Y(jié)構(gòu)。

    為了讀者更好地理解從站拓?fù)浣Y(jié)構(gòu)的計算方法,先簡單介紹EtherCAT數(shù)據(jù)幀如何在從站中傳輸。EtherCAT從站結(jié)構(gòu)如圖2所示,從站最多支持4個端口,從站會根據(jù)端口是否存在連接自動打開或關(guān)閉端口。若連接存在,則打開端口,否則關(guān)閉端口。若端口打開,流入該端口的數(shù)據(jù)幀被發(fā)送給其他從站,在其他從站處理完成后返回該端口;若端口閉合,數(shù)據(jù)幀會直接流向從站的下一個端口。0端口是從站數(shù)據(jù)的輸入端口,從站一旦接入網(wǎng)絡(luò),端口0一定處于打開的狀態(tài),其他3個端口都有可能關(guān)閉。因此數(shù)據(jù)幀在從站中傳輸順序是0端口、數(shù)據(jù)幀處理單元、3端口、1端口、2端口、0端口,最后由0端口離開從站。圖3介紹了數(shù)據(jù)幀在網(wǎng)絡(luò)中的傳輸過程。

ck6-t2.gif

ck6-t3.gif

    根據(jù)上面的描述,可以將EtherCAT從站抽象成三叉樹上的一個結(jié)點(diǎn)。如圖4(a)所示,Port0作為從站結(jié)點(diǎn)的輸入端口,而Port3、Port1和Port2作為輸出端口,且樹遍歷順序是Port3、Port1和Port2。圖3中的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)可抽象圖4(b)所示的三叉樹。因此,計算EtherCAT網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)可以抽象成對三叉樹的深度優(yōu)先遍歷[7]。因為工控網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量較少,可以采用遞歸算法實現(xiàn),因此本文采用遞歸算法實現(xiàn)EtherCAT網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的計算[8]。

ck6-t4.gif

    在使用遞歸算法計算從站拓?fù)浣Y(jié)構(gòu)前,仍需要進(jìn)行3個步驟獲取必要條件:

    (1)獲取網(wǎng)絡(luò)中從站的個數(shù)

    從站的數(shù)據(jù)幀處理單元在成功處理完數(shù)據(jù)幀之后,會把數(shù)據(jù)幀計數(shù)位的值加1,表示處理成功。利用此特性,主站發(fā)送廣播數(shù)據(jù)幀,所有從站都會把數(shù)據(jù)幀的計數(shù)位的值加1,因此數(shù)據(jù)幀計數(shù)位的值就代表了從站個數(shù),主站讀取返回數(shù)據(jù)幀的計數(shù)位就可以獲取從站的個數(shù)。

    (2)獲取從站各個端口連接狀態(tài)

    從站使用專用的寄存器記錄從站端口的連接狀態(tài),主站使用順序讀取命令,讀取各個從站記錄端口連接狀態(tài)的寄存器,獲取從站端口的連接狀態(tài)。

    (3)排列從站順序

    按照從站的順序?qū)ぶ芳磾?shù)據(jù)幀在從站的處理順序給從站進(jìn)行排序。圖3中的從站按照此方法排列后的順序是A、B、C、D。

    圖5所示為數(shù)據(jù)結(jié)構(gòu)存儲從站信息,name表示從站的名字,port0、port1、port2和port3采用相同的結(jié)構(gòu)表示從站端口的情況,linkstatus表示端口是否存在連接,之后的name代表與該端口連接的從站的名字。port0比較特殊,因為其作為從站輸入端口,即連接樹的父結(jié)點(diǎn),所以一直處于連接狀態(tài)。

ck6-t5.gif

    在計算從站拓?fù)浣Y(jié)構(gòu)時,按照順序?qū)⒏鱾€從站的連接信息存在結(jié)構(gòu)體數(shù)組中,然后從數(shù)組中第一個從站開始進(jìn)行計算。對每一個從站首先在port0中記錄其上層從站的名字,然后按照port3、port1和port2的順序掃描從站的各個端口的連接情況,若某端口處于連接狀態(tài),且未記錄其子結(jié)點(diǎn),則數(shù)組中其后port0為空的從站是其子結(jié)點(diǎn),此時進(jìn)入下一層,遞歸計算子結(jié)點(diǎn)的連接情況。當(dāng)計算完成時,所有從站的連接情況都已經(jīng)明確,也就完成了從站拓?fù)浣Y(jié)構(gòu)的計算。

1.2 讀取從站信息

    要完成EtherCAT網(wǎng)絡(luò)的配置,除了需要獲取從站的拓?fù)浣Y(jié)構(gòu)外,還需要各個從站的設(shè)備信息。在傳統(tǒng)方案中,從站信息是由ESI文件提供的,而在本方案中主站通過訪問從站的EEPROM獲取配置信息。本節(jié)將介紹基于SII的配置方案主站如何讀取從站的設(shè)備信息。

    EEPROM中的信息結(jié)構(gòu)如圖6所示,0~64地址存儲的是從站結(jié)構(gòu)信息,從地址64處開始存儲的是分類信息[9]。所有分類信息使用相同的數(shù)據(jù)結(jié)構(gòu),但長度不定。分類信息的數(shù)據(jù)結(jié)構(gòu)如圖7所示,包括2個字節(jié)的信息類型、2個字節(jié)的數(shù)據(jù)長度和指定長度的數(shù)據(jù)內(nèi)容。

ck6-t6.gif

ck6-t7.gif

    在基于SII的配置方案中,主站按照圖8中所示的流程讀取從站信息。主站讀取從站分類信息時,從第一條分類信息開始,根據(jù)類型名查找要讀的信息,直到找到要讀取的信息,并將信息存儲到對應(yīng)結(jié)構(gòu)體。

ck6-t8.gif

1.3 生成網(wǎng)絡(luò)信息

    EtherCAT直接使用標(biāo)準(zhǔn)以太網(wǎng)數(shù)據(jù)幀,以太網(wǎng)幀的數(shù)據(jù)區(qū)由一個或多個EtherCAT子報文組成,每個子報文中包含從站的地址和數(shù)據(jù)。EtherCAT網(wǎng)絡(luò)中主站與從站通過數(shù)據(jù)幀進(jìn)行數(shù)據(jù)交互,EtherCAT數(shù)據(jù)幀采取串行轉(zhuǎn)發(fā)方式,每個EtherCAT數(shù)據(jù)幀經(jīng)過所有的從站。數(shù)據(jù)幀到達(dá)某個從站時,從站根據(jù)EtherCAT數(shù)據(jù)幀中的地址和命令,將數(shù)據(jù)從EtherCAT數(shù)據(jù)幀中取出或?qū)?shù)據(jù)寫入EtherCAT數(shù)據(jù)幀中。由上文可知,EtherCAT網(wǎng)絡(luò)中主站訪問從站就必須知道從站的地址,主站與從站進(jìn)行數(shù)據(jù)交互就要設(shè)置從站的數(shù)據(jù)區(qū)映射。

    EtherCAT從站地址的分配主要是配置設(shè)備地址和邏輯地址。設(shè)備地址是一個兩字節(jié)的地址,主站用它來識別各個從站。在本方案中設(shè)備地址是從0X1000開始,按照連接順序依次遞增進(jìn)行,給每個從站分配設(shè)備地址。邏輯地址并不是單獨(dú)定義的,而是使用從站數(shù)據(jù)在主站數(shù)據(jù)區(qū)中的地址。使用邏輯地址時,從站中現(xiàn)場總線內(nèi)存管理單元(Fieldbus Memory Management Unit,F(xiàn)MMU)將從站本地物理存儲映射到主站的邏輯地址。在本方案配置過程中,主站根據(jù)從站EEPROM中過程數(shù)據(jù)對象(Process Data Object,PDO)分類信息計算出從站的數(shù)據(jù)長度和從站物理地址,然后按照順序在數(shù)據(jù)區(qū)中為每個從站分配對應(yīng)的長度的存儲區(qū),最后根據(jù)計算結(jié)果配置FMMU寄存器。

    EtherCAT從站數(shù)據(jù)區(qū)的配置內(nèi)容主要為配置存儲同步管理器(SyncManager,SM)。SM通過硬件對數(shù)據(jù)區(qū)的所有訪問進(jìn)行控制,使得數(shù)據(jù)區(qū)不會被雙方同時訪問,保證了主站與從站應(yīng)用數(shù)據(jù)交換的一致性和安全性。在本方案配置過程中,主站讀取從站EEPROM中的SM類型信息,計算出SM控制數(shù)據(jù)區(qū)的地址、大小和控制模式,并配置相應(yīng)寄存器。

2 方案測試

    為驗證方案的可行性,在Ubuntu平臺上實現(xiàn)了一個采用SII配置方案的精簡EtherCAT主站。該精簡EtherCAT主站能夠完成從站配置,以及主從站之間的數(shù)據(jù)交換。測試系統(tǒng)結(jié)構(gòu)如圖9所示。

ck6-t9.gif

    在測試系統(tǒng)中包含有6個BECKHOOF公司生產(chǎn)的EtherCAT從站,分別是EK1100、EL1008、EL2008、EL3054、EL4024和EK1110。其中EL1008和EL3054分別是數(shù)字輸入和模擬輸入,EL2008和EL4024分別是數(shù)字輸出和模擬輸出。

    在測試中,通過檢查所有從站的狀態(tài)和周期數(shù)據(jù)交換功能來判斷EtherCAT網(wǎng)絡(luò)配置是否成功。為了方便分析從站狀態(tài),使用Wireshark抓取EtherCAT數(shù)據(jù)幀分析從站狀態(tài),抓取到數(shù)據(jù)幀如圖10所示。圖10框中的數(shù)據(jù)是獲取到從站的狀態(tài),它顯示所有從站都處于OP狀態(tài),說明從站狀態(tài)轉(zhuǎn)換成功,本方案成功配置了EtherCAT網(wǎng)絡(luò)。

ck6-t10.gif

3 結(jié)論

    目前常見的EtherCAT網(wǎng)絡(luò)配置方案使用XML文件作為配置信息,存在研發(fā)復(fù)雜和效率較低的問題。為了解決上述不足,本文研究了EtherCAT網(wǎng)絡(luò)的配置過程,提出了一種基于SII接口的EtherCAT網(wǎng)絡(luò)配置方案。該方案使用從站SII接口中提供的信息,計算生成EtherCAT網(wǎng)絡(luò)配置方案。通過與其他常見方案的比較發(fā)現(xiàn),基于SII接口的EtherCAT網(wǎng)絡(luò)配置方案實現(xiàn)簡便,能夠提高配置效率且實現(xiàn)較容易,因此具有較高的應(yīng)用價值。

參考文獻(xiàn)

[1] 藺輝,田新鋒,馬彩文,等.基于Beckhoff嵌入式PC控制器的步進(jìn)電機(jī)群控系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2009,35(9):129-131.

[2] 劉喆,郇極,劉艷強(qiáng).基于XML的EtherCAT工業(yè)以太網(wǎng)協(xié)議解析技術(shù)[J].北京航空航天大學(xué)學(xué)報,2011,37(9):1086-1090.

[3] 吳麗菲.EtherCAT在實時系統(tǒng)下的實現(xiàn)[D].廣州:華南理工大學(xué),2014.

[4] 朱永東,李彬.淺析提高工業(yè)以太網(wǎng)的可靠性和穩(wěn)定性[J].電子技術(shù)與軟件工程,2013(18):37.

[5] Zhou Tong,Hu Jingtao.Design and realization of EtherCAT master[C].Electronic and Mechanical Engineering and Information Technology(EMEIT),2011.

[6] 張運(yùn)嵩.一種快速的非提取式XML解析器的設(shè)計與實現(xiàn)[D].蘇州:蘇州大學(xué),2010.

[7] 唐青松.深度優(yōu)先算法在創(chuàng)建樹形結(jié)構(gòu)中的應(yīng)用研究[J].計算機(jī)技術(shù)與發(fā)展,2014(9):226-229.

[8] 魏斌,馬繼輝,?;?基于遞歸算法的樹型結(jié)構(gòu)圖的設(shè)計與實現(xiàn)[J].計算機(jī)應(yīng)用與軟件,2011(1):96-98.

[9] 郇極,劉艷強(qiáng).工業(yè)以太網(wǎng)現(xiàn)場總線EtherCAT驅(qū)動程序設(shè)計及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2010.



作者信息:

南  揚(yáng)1,2,豐大軍2,趙德政2,王  皓2

(1.西安電子科技大學(xué) 通信工程學(xué)院,陜西 西安710071;2.華北計算機(jī)系統(tǒng)工程研究所,北京100083)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。