文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.179021
中文引用格式: 南揚(yáng),豐大軍,,趙德政,,等. 基于SII接口的EtherCAT網(wǎng)絡(luò)配置方案設(shè)計(jì)[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.
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ù)傳輸速度高,、實(shí)時(shí)性好,、拓?fù)潇`活和實(shí)施費(fèi)用低的優(yōu)點(diǎn),逐步成為工業(yè)以太網(wǎng)技術(shù)研究的熱點(diǎn)[2],。
目前,,EtherCAT技術(shù)已成為國際標(biāo)準(zhǔn)IEC61158的一部分,被廣泛的應(yīng)用于同步控制,、運(yùn)動(dòng)控制和材料加工控制等行業(yè)[3,,4]。本文研究了常用的EtherCAT網(wǎng)絡(luò)配置方案,,分析了其不足,,提出了一種基于從站信息接口(Slave Information Interface,SII)的EtherCAT網(wǎng)絡(luò)配置方案,,并對方案進(jìn)行實(shí)現(xiàn),,最后通過實(shí)驗(yàn)驗(yà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),,生成一個(gè)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ā)的工作量。同時(shí),,ENI文件依據(jù)ESI文件生成,,所以一個(gè)新的模塊出現(xiàn)就要向EtherCAT配置軟件的庫文件中添加一個(gè)新的ESI文件,使得整個(gè)配置操作較為復(fù)雜,。文獻(xiàn)[5]中設(shè)計(jì)了一種簡單EtherCAT主站,,可以簡化配置過程,但是仍然需要上位機(jī)進(jìn)行協(xié)助,。
另一方面,,XML格式的文件解析比較復(fù)雜。XML格式文本是W3C組織為Web數(shù)據(jù)儲(chǔ)存和交換制定的一種文本格式,,其解析復(fù)雜度較高,,尤其是在系統(tǒng)資源并不豐富的嵌入式主站系統(tǒng)中,XML的解析壓力將面臨更為嚴(yán)峻的挑戰(zhàn),。文獻(xiàn)[6]提出了一種快速XML解析方案,,但是其對內(nèi)存要求較大,并不能完全解決上述問題,。
1 基于SII的配置方案
為了解決傳統(tǒng)方案中存在的問題,,本文提出并設(shè)計(jì)了一種基于SII的EtherCAT配置方案。SII是從站信息接口,,它規(guī)定了從站信息在EEPROM中的存儲(chǔ)格式,,主站可以根據(jù)SII中的信息完成對從站的配置。該配置方案如圖1所示,,在配置開始時(shí),,主站掃描從站,,獲取從站的拓?fù)?,并順序讀取所有從站的設(shè)備信息,,然后生成配置命令,從而完成對EtherCAT網(wǎng)絡(luò)及所有從站的配置操作,。與傳統(tǒng)方案相比,,本方案中由主站獲取從站的拓?fù)浣Y(jié)構(gòu)并生成配置信息,全程無需專門的配置工具軟件參與,,降低了配置方案的開發(fā)成本,;主站直接從SII中獲取從站的信息,不需要XML參與配置,,省卻了解析XML的時(shí)間,,極大地提高了配置效率。
該配置方案包括3個(gè)操作步驟:(1)掃描從站,,根據(jù)獲取的響應(yīng)信息計(jì)算從站連接的拓?fù)浣Y(jié)構(gòu),;(2)根據(jù)從站的拓?fù)浣Y(jié)構(gòu),依次讀取從站信息,;(3)生成配置信息,,并對從站進(jìn)行配置。
1.1 計(jì)算從站拓?fù)浣Y(jié)構(gòu)
在目前常用的EtherCAT網(wǎng)絡(luò)配置方案中,,從站的拓?fù)浣Y(jié)構(gòu)是由配置工具軟件生成并下發(fā)到從站,。而在基于SII的配置方案中,由于沒有配置工具軟件的參與,,主站采用一種遞歸的算法計(jì)算從站的拓?fù)浣Y(jié)構(gòu),。
為了讀者更好地理解從站拓?fù)浣Y(jié)構(gòu)的計(jì)算方法,先簡單介紹EtherCAT數(shù)據(jù)幀如何在從站中傳輸,。EtherCAT從站結(jié)構(gòu)如圖2所示,,從站最多支持4個(gè)端口,從站會(huì)根據(jù)端口是否存在連接自動(dòng)打開或關(guān)閉端口,。若連接存在,,則打開端口,否則關(guān)閉端口,。若端口打開,,流入該端口的數(shù)據(jù)幀被發(fā)送給其他從站,在其他從站處理完成后返回該端口,;若端口閉合,,數(shù)據(jù)幀會(huì)直接流向從站的下一個(gè)端口。0端口是從站數(shù)據(jù)的輸入端口,,從站一旦接入網(wǎng)絡(luò),,端口0一定處于打開的狀態(tài),其他3個(gè)端口都有可能關(guān)閉,。因此數(shù)據(jù)幀在從站中傳輸順序是0端口,、數(shù)據(jù)幀處理單元,、3端口、1端口,、2端口,、0端口,最后由0端口離開從站,。圖3介紹了數(shù)據(jù)幀在網(wǎng)絡(luò)中的傳輸過程,。
根據(jù)上面的描述,可以將EtherCAT從站抽象成三叉樹上的一個(gè)結(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)所示的三叉樹,。因此,計(jì)算EtherCAT網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)可以抽象成對三叉樹的深度優(yōu)先遍歷[7],。因?yàn)楣た鼐W(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量較少,,可以采用遞歸算法實(shí)現(xiàn),因此本文采用遞歸算法實(shí)現(xiàn)EtherCAT網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的計(jì)算[8],。
在使用遞歸算法計(jì)算從站拓?fù)浣Y(jié)構(gòu)前,,仍需要進(jìn)行3個(gè)步驟獲取必要條件:
(1)獲取網(wǎng)絡(luò)中從站的個(gè)數(shù)
從站的數(shù)據(jù)幀處理單元在成功處理完數(shù)據(jù)幀之后,會(huì)把數(shù)據(jù)幀計(jì)數(shù)位的值加1,,表示處理成功,。利用此特性,主站發(fā)送廣播數(shù)據(jù)幀,,所有從站都會(huì)把數(shù)據(jù)幀的計(jì)數(shù)位的值加1,,因此數(shù)據(jù)幀計(jì)數(shù)位的值就代表了從站個(gè)數(shù),主站讀取返回?cái)?shù)據(jù)幀的計(jì)數(shù)位就可以獲取從站的個(gè)數(shù),。
(2)獲取從站各個(gè)端口連接狀態(tài)
從站使用專用的寄存器記錄從站端口的連接狀態(tài),,主站使用順序讀取命令,讀取各個(gè)從站記錄端口連接狀態(tài)的寄存器,,獲取從站端口的連接狀態(tài),。
(3)排列從站順序
按照從站的順序?qū)ぶ芳磾?shù)據(jù)幀在從站的處理順序給從站進(jìn)行排序。圖3中的從站按照此方法排列后的順序是A,、B,、C、D。
圖5所示為數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)從站信息,,name表示從站的名字,,port0、port1,、port2和port3采用相同的結(jié)構(gòu)表示從站端口的情況,linkstatus表示端口是否存在連接,,之后的name代表與該端口連接的從站的名字,。port0比較特殊,因?yàn)槠渥鳛閺恼据斎攵丝?,即連接樹的父結(jié)點(diǎn),,所以一直處于連接狀態(tài)。
在計(jì)算從站拓?fù)浣Y(jié)構(gòu)時(shí),,按照順序?qū)⒏鱾€(gè)從站的連接信息存在結(jié)構(gòu)體數(shù)組中,,然后從數(shù)組中第一個(gè)從站開始進(jìn)行計(jì)算。對每一個(gè)從站首先在port0中記錄其上層從站的名字,,然后按照port3,、port1和port2的順序掃描從站的各個(gè)端口的連接情況,若某端口處于連接狀態(tài),,且未記錄其子結(jié)點(diǎn),,則數(shù)組中其后port0為空的從站是其子結(jié)點(diǎn),此時(shí)進(jìn)入下一層,,遞歸計(jì)算子結(jié)點(diǎn)的連接情況,。當(dāng)計(jì)算完成時(shí),所有從站的連接情況都已經(jīng)明確,,也就完成了從站拓?fù)浣Y(jié)構(gòu)的計(jì)算,。
1.2 讀取從站信息
要完成EtherCAT網(wǎng)絡(luò)的配置,除了需要獲取從站的拓?fù)浣Y(jié)構(gòu)外,,還需要各個(gè)從站的設(shè)備信息,。在傳統(tǒng)方案中,從站信息是由ESI文件提供的,,而在本方案中主站通過訪問從站的EEPROM獲取配置信息,。本節(jié)將介紹基于SII的配置方案主站如何讀取從站的設(shè)備信息。
EEPROM中的信息結(jié)構(gòu)如圖6所示,,0~64地址存儲(chǔ)的是從站結(jié)構(gòu)信息,,從地址64處開始存儲(chǔ)的是分類信息[9]。所有分類信息使用相同的數(shù)據(jù)結(jié)構(gòu),,但長度不定,。分類信息的數(shù)據(jù)結(jié)構(gòu)如圖7所示,包括2個(gè)字節(jié)的信息類型、2個(gè)字節(jié)的數(shù)據(jù)長度和指定長度的數(shù)據(jù)內(nèi)容,。
在基于SII的配置方案中,,主站按照圖8中所示的流程讀取從站信息。主站讀取從站分類信息時(shí),,從第一條分類信息開始,,根據(jù)類型名查找要讀的信息,直到找到要讀取的信息,,并將信息存儲(chǔ)到對應(yīng)結(jié)構(gòu)體,。
1.3 生成網(wǎng)絡(luò)信息
EtherCAT直接使用標(biāo)準(zhǔn)以太網(wǎng)數(shù)據(jù)幀,以太網(wǎng)幀的數(shù)據(jù)區(qū)由一個(gè)或多個(gè)EtherCAT子報(bào)文組成,,每個(gè)子報(bào)文中包含從站的地址和數(shù)據(jù),。EtherCAT網(wǎng)絡(luò)中主站與從站通過數(shù)據(jù)幀進(jìn)行數(shù)據(jù)交互,EtherCAT數(shù)據(jù)幀采取串行轉(zhuǎn)發(fā)方式,,每個(gè)EtherCAT數(shù)據(jù)幀經(jīng)過所有的從站,。數(shù)據(jù)幀到達(dá)某個(gè)從站時(shí),從站根據(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è)備地址是一個(gè)兩字節(jié)的地址,,主站用它來識別各個(gè)從站,。在本方案中設(shè)備地址是從0X1000開始,按照連接順序依次遞增進(jìn)行,,給每個(gè)從站分配設(shè)備地址,。邏輯地址并不是單獨(dú)定義的,而是使用從站數(shù)據(jù)在主站數(shù)據(jù)區(qū)中的地址,。使用邏輯地址時(shí),,從站中現(xiàn)場總線內(nèi)存管理單元(Fieldbus Memory Management Unit,F(xiàn)MMU)將從站本地物理存儲(chǔ)映射到主站的邏輯地址,。在本方案配置過程中,,主站根據(jù)從站EEPROM中過程數(shù)據(jù)對象(Process Data Object,PDO)分類信息計(jì)算出從站的數(shù)據(jù)長度和從站物理地址,,然后按照順序在數(shù)據(jù)區(qū)中為每個(gè)從站分配對應(yīng)的長度的存儲(chǔ)區(qū),,最后根據(jù)計(jì)算結(jié)果配置FMMU寄存器。
EtherCAT從站數(shù)據(jù)區(qū)的配置內(nèi)容主要為配置存儲(chǔ)同步管理器(SyncManager,,SM),。SM通過硬件對數(shù)據(jù)區(qū)的所有訪問進(jìn)行控制,使得數(shù)據(jù)區(qū)不會(huì)被雙方同時(shí)訪問,保證了主站與從站應(yīng)用數(shù)據(jù)交換的一致性和安全性,。在本方案配置過程中,,主站讀取從站EEPROM中的SM類型信息,計(jì)算出SM控制數(shù)據(jù)區(qū)的地址,、大小和控制模式,,并配置相應(yīng)寄存器。
2 方案測試
為驗(yàn)證方案的可行性,,在Ubuntu平臺(tái)上實(shí)現(xiàn)了一個(gè)采用SII配置方案的精簡EtherCAT主站,。該精簡EtherCAT主站能夠完成從站配置,以及主從站之間的數(shù)據(jù)交換,。測試系統(tǒng)結(jié)構(gòu)如圖9所示。
在測試系統(tǒng)中包含有6個(gè)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ò),。
3 結(jié)論
目前常見的EtherCAT網(wǎng)絡(luò)配置方案使用XML文件作為配置信息,存在研發(fā)復(fù)雜和效率較低的問題,。為了解決上述不足,,本文研究了EtherCAT網(wǎng)絡(luò)的配置過程,提出了一種基于SII接口的EtherCAT網(wǎng)絡(luò)配置方案,。該方案使用從站SII接口中提供的信息,,計(jì)算生成EtherCAT網(wǎng)絡(luò)配置方案。通過與其他常見方案的比較發(fā)現(xiàn),,基于SII接口的EtherCAT網(wǎng)絡(luò)配置方案實(shí)現(xiàn)簡便,,能夠提高配置效率且實(shí)現(xiàn)較容易,因此具有較高的應(yīng)用價(jià)值。
參考文獻(xiàn)
[1] 藺輝,,田新鋒,,馬彩文,等.基于Beckhoff嵌入式PC控制器的步進(jìn)電機(jī)群控系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,,2009,,35(9):129-131.
[2] 劉喆,郇極,,劉艷強(qiáng).基于XML的EtherCAT工業(yè)以太網(wǎng)協(xié)議解析技術(shù)[J].北京航空航天大學(xué)學(xué)報(bào),,2011,37(9):1086-1090.
[3] 吳麗菲.EtherCAT在實(shí)時(shí)系統(tǒng)下的實(shí)現(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è)計(jì)與實(shí)現(xiàn)[D].蘇州:蘇州大學(xué),2010.
[7] 唐青松.深度優(yōu)先算法在創(chuàng)建樹形結(jié)構(gòu)中的應(yīng)用研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,,2014(9):226-229.
[8] 魏斌,,馬繼輝,?;?基于遞歸算法的樹型結(jié)構(gòu)圖的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,,2011(1):96-98.
[9] 郇極,劉艷強(qiáng).工業(yè)以太網(wǎng)現(xiàn)場總線EtherCAT驅(qū)動(dòng)程序設(shè)計(jì)及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,,2010.
作者信息:
南 揚(yáng)1,,2,豐大軍2,,趙德政2,,王 皓2
(1.西安電子科技大學(xué) 通信工程學(xué)院,陜西 西安710071,;2.華北計(jì)算機(jī)系統(tǒng)工程研究所,,北京100083)