常玉冬,王 超
(1.中國科學(xué)院大學(xué),北京 100049;2.中國科學(xué)院沈陽計算技術(shù)研究所 高檔數(shù)控國家工程研究中心,沈陽 110168;3.沈陽高精數(shù)控技術(shù)有限公司,沈陽 110168)
?
EtherCAT主站協(xié)議SoE的研究與實現(xiàn)
常玉冬,王 超
(1.中國科學(xué)院大學(xué),北京 100049;2.中國科學(xué)院沈陽計算技術(shù)研究所 高檔數(shù)控國家工程研究中心,沈陽 110168;3.沈陽高精數(shù)控技術(shù)有限公司,沈陽 110168)
多種方法實現(xiàn)EtherCAT應(yīng)用層協(xié)議將有利于提升EtherCAT技術(shù)在國內(nèi)數(shù)控產(chǎn)品中的應(yīng)用,使國內(nèi)的伺服產(chǎn)品的開放性和實時性得到提高,目前CoE協(xié)議已經(jīng)應(yīng)用于實踐且取得了不錯的效果,所以提出了實現(xiàn)SoE協(xié)議并且應(yīng)用在數(shù)控系統(tǒng)中。文章首先介紹了EtherCAT通信協(xié)議的基本內(nèi)容,然后對現(xiàn)有的EtherCAT協(xié)議進行分析然后從結(jié)構(gòu)和性能兩方面對其進行改進,并通過實驗對改進的協(xié)議從性能和功能兩方面進行驗證。
EtherCAT通信協(xié)議;數(shù)據(jù)幀;狀態(tài)機;SoE協(xié)議
當(dāng)前工業(yè)控制網(wǎng)絡(luò)和現(xiàn)場總線技術(shù)的一個重要的發(fā)展方向就是將以太網(wǎng)技術(shù)應(yīng)用于工業(yè)控制領(lǐng)域,從而形成工業(yè)以太網(wǎng)技術(shù)。在眾多工業(yè)以太網(wǎng)技術(shù)中,EtherCAT作為新一代的實時工業(yè)以太網(wǎng)技術(shù)是由德國BECKHOFF公司2003年提出的,憑借其高速、實時性、低成本、拓撲靈活、配置簡單、與普通以太網(wǎng)完全兼容、能最好利用以太網(wǎng)技術(shù)等優(yōu)勢得到了迅速發(fā)展。
應(yīng)用層AL(Application Layer)提供了用戶與網(wǎng)絡(luò)之間的接口,是EtherCAT通信協(xié)議層次結(jié)構(gòu)中直接與用戶進行交互的功能層,EtherCAT應(yīng)用層使?jié)M足應(yīng)用層要求的各種協(xié)議共同工作,它定義了各種服務(wù)協(xié)議與應(yīng)用程序之間的接口并不是具體的應(yīng)用程序。EtherCAT作為網(wǎng)絡(luò)通信技術(shù),支持CANopen協(xié)議中的CiA402和SERCOS協(xié)議的應(yīng)用層(CoE和SoE)等多種設(shè)備行規(guī)和協(xié)議。SERCOS是國際上第一個專門用于伺服驅(qū)動器控制的實時數(shù)據(jù)通信協(xié)議標(biāo)準(zhǔn),而EtherCAT協(xié)議的通信性能非常適合數(shù)字伺服器的驅(qū)動控制,所以本文在應(yīng)用層使用SERCOS應(yīng)用層協(xié)議實現(xiàn)數(shù)據(jù)接口,并且對EtherCAT通信協(xié)議進行改進[1-6]。
EtherCAT網(wǎng)絡(luò)以標(biāo)準(zhǔn)的以太網(wǎng)技術(shù)為基礎(chǔ),采用的是主從摸式介質(zhì)訪問控制通信方式,整個網(wǎng)絡(luò)的通信由主站發(fā)起,主站發(fā)起下行的數(shù)據(jù)幀,數(shù)據(jù)幀遍歷所有的從站,從站設(shè)備采用“On The Fly”技術(shù)[1],在報文傳輸不停止的情況下分析尋址到本站的EtherCAT子報文,并根據(jù)報文頭中的命令讀或?qū)憯?shù)據(jù)到報文中指定位置,同時從站硬件上把該子報文的工作計數(shù)器(WKC,Woking Counter)加1,表示該數(shù)據(jù)已經(jīng)被相應(yīng)的從站處理?!癘n The Fly”技術(shù)是由從站硬件來實現(xiàn)的,這使得EtherCAT數(shù)據(jù)幀經(jīng)過每個從站的整個過程只會產(chǎn)生納秒級的延遲,保證了系統(tǒng)的高度實時性。遍歷完所有的從站后,經(jīng)過各從站處理的數(shù)據(jù)幀作為上行數(shù)據(jù)幀從最后一個從站返回主站,主站收到上行報文后,比較返回報文中的WKC和預(yù)期WKC來判斷數(shù)據(jù)幀是否被正確處理,一次通信結(jié)束。整個通信過程中充分利用了以太網(wǎng)全雙工處理網(wǎng)絡(luò)數(shù)據(jù)的通信特點[7-11]。
EtherCAT協(xié)議有兩種通信模式[2]:周期性過程數(shù)據(jù)通信和非周期性郵箱數(shù)據(jù)通信。前者實時性要求高,數(shù)據(jù)傳輸和處理必須在規(guī)定的時間內(nèi)完成通信,否則會導(dǎo)致操作失效。其通常使用FMMU進行邏輯尋址,主站可以使用邏輯讀、寫或讀寫命令同時操作多個從站,由于良好的實時性主要應(yīng)用于實際控制中。后者針對非時間關(guān)鍵的數(shù)據(jù),實時性要求低。通常使用設(shè)備尋址方式,因此一個郵箱數(shù)據(jù)報文只能尋址特定的一個設(shè)備,常用于參數(shù)配置階段。
SERCOS(串行實時通信協(xié)議)作為一種智能控制和數(shù)字化驅(qū)動現(xiàn)場總線接口被廣泛應(yīng)用于數(shù)控機床等伺服設(shè)備上。由于EtherCAT設(shè)備上不能傳輸SERCOS協(xié)議數(shù)據(jù),為了在EtherCAT通信網(wǎng)絡(luò)下運行SERCOS協(xié)議上層定義的伺服參數(shù)、控制數(shù)據(jù)和伺服設(shè)備行規(guī),對二者進行了修改產(chǎn)生了SoE協(xié)議(SERCOS over EtherCAT)。SoE作為基于EtherCAT的SERCOS協(xié)議,EtherCAT支持其對執(zhí)行SERCOS規(guī)范設(shè)備的伺服控制及數(shù)據(jù)通信。因此為了運行在EtherCAT之上,SoE對SERCOS協(xié)議做了如下修正:
(1)取消MST,由EtherCAT分布時鐘實現(xiàn)同步;
(2)SERCOS與EtherCAT通信階段的對應(yīng),SERCOS協(xié)議的通信階段與EtherCAT狀態(tài)機不同,但是因后者是基礎(chǔ)網(wǎng)絡(luò)環(huán)境所以SoE中對前者的通信階段進行了調(diào)整以適應(yīng)后者的狀態(tài)機。
為了實現(xiàn)主從站之間的正常通信,主站的主要功能應(yīng)該包括:
(1)根據(jù)讀取的從站的設(shè)備描述文件ESI(EtherCAT Slave Information)構(gòu)建主站的ENI(EtherCAT Network Information)文件,在主站中根據(jù)ENI中的信息配置從站;
(2)主從站之間的數(shù)據(jù)通信功能;
(3)支持SERCOS協(xié)議接口。
根據(jù)主站功能、原有的協(xié)議結(jié)構(gòu)和對SoE的研究,設(shè)計了新的通信協(xié)議架構(gòu)圖,如圖1所示。
圖1 EtherCAT通信協(xié)議架構(gòu)圖
ECAT_Base:實現(xiàn)基本的EtherCAT原語操作。 主站發(fā)送讀寫原語到從站,從站可以直接讀取報文中的信息或?qū)⑿畔懭雸笪闹?。原語的類型取決于讀寫操作和尋址方式(順序?qū)ぶ?、設(shè)置尋址、廣播尋址)。該模塊實現(xiàn)最基本的通信功能,被其它各模塊調(diào)用發(fā)送EtherCAT數(shù)據(jù)幀,而該模塊調(diào)用底層網(wǎng)卡驅(qū)動實現(xiàn)數(shù)據(jù)幀的發(fā)送接收和確認。
ECAT_Main:核心功能模塊,實現(xiàn)郵箱通信、從站狀態(tài)、過程數(shù)據(jù)、EPROM和SII等功能。在這個模塊中需要調(diào)用ECAT_Base模塊來發(fā)送相應(yīng)命令的數(shù)據(jù)幀來實現(xiàn)其不同的功能,該模塊又被配置模塊和SoE模塊調(diào)用。
ECAT_SoE:實現(xiàn)SoE協(xié)議,主要用于過程數(shù)據(jù)數(shù)據(jù)MDT和AT的讀寫,實現(xiàn)SoE服務(wù)通道,用于非周期性數(shù)據(jù)交換,調(diào)用ECAT_Main中的郵箱通信實現(xiàn)IDN訪問和伺服控制系統(tǒng)參數(shù)的配置。
ECAT_Config:完成從站的配置工作,根據(jù)ENI文件信息配置從站的一些寄存器、SM通道(物理起始地址和數(shù)據(jù)長度)、FMMU映射關(guān)系、從站狀態(tài)機等。模塊的最后要確保所有從站都到達運行狀態(tài)。
通過對現(xiàn)有的EtherCAT通信協(xié)議進行分析研究,主要對ECAT_Config和ECAT_Base模塊中的部分功能做了改進:
(1)從站設(shè)備描述文件解析
從站設(shè)備描述文件ESI是倍福公司制定的一種用于存儲和描述從站設(shè)備配置信息的文件,采用XML格式。該文件包含從站設(shè)備基本信息、從站設(shè)備基本數(shù)據(jù)結(jié)構(gòu)類型和從站對象字典描述三部分內(nèi)容如表1所示,原有的協(xié)議中利用文檔對象模型DOM(Document Object Model)解析從站設(shè)備描述文件,獲得其中的主從站配置信息,根據(jù)讀到的這些信息構(gòu)建EtherCAT網(wǎng)絡(luò)信息文件ENI,主站在鏈路啟動階段根據(jù)網(wǎng)絡(luò)信息文件對從站進行初始化配置。但是由于我們的實驗環(huán)境沒有集成DOM解析 所以我們在此做了替換:首先部分信息是從EEPROM中讀取的(廠商表示、設(shè)備信息、FMMU描述信息、SM描述信息等),但是還有一部分信息EEPROM 中沒有存儲則我們從XML文件中讀取然后手動配置,如圖2所示。
圖2 輸入輸出映射的一些配置
從站設(shè)備供應(yīng)商信息供應(yīng)商ID、供應(yīng)商名稱Name分組信息設(shè)備描述信息設(shè)備信息設(shè)備標(biāo)識、類型、名稱、FMMU描述信息、SM描述信息等模塊信息
(2)主站讀取從站EEPROM中的信息
由于(1)中的原因主站要經(jīng)常與EEPROM交互,但是由于讀取EEPROM需要一定的時間,頻繁的交互會使得主站浪費在EEPROM上的時間延遲變得所不能容忍,所以必須找到一種機制來快速讀取EEPROM中的信息:通過在主站建立一個虛擬的cache,第一先把數(shù)據(jù)從EEPROM里讀取到這個cache里面,然后以后每次再讀取EEPROM中的數(shù)據(jù)就可以直接從這個虛擬的cache中讀了,節(jié)省了好多時間。但是讀cache前,先要確定數(shù)據(jù)是否在cache里面,利用bit映射來實現(xiàn)間接讀取cache的算法:將cache中的數(shù)據(jù)建立位映射,每次來讀取位映射數(shù)組中的內(nèi)容便可知道cache里面是否有數(shù)據(jù)。如果cache為空則寫一個請求給從站,請求大小與從站有關(guān),返回值為所請求的byte,否則返回0xff。具體實現(xiàn)如圖3所示,建立一個虛擬的cache:容量4k,分成128個單元,每個單元占32個字節(jié)。然后還需要一個與cache進行bit映射的映射數(shù)組Buf:分成128個單元,每個單元占32位。這樣cache中的每32字節(jié)的內(nèi)容由bit映射數(shù)組中的每32位來表示,bit映射數(shù)組中的每一個bit映射cache中的每一個字節(jié),這樣就可以通過對bit映射數(shù)組中的bit進行操作,就可以知道cache中有沒有從EEPROM中讀出數(shù)據(jù)了。
圖3 bit映射關(guān)系圖
(3)主站發(fā)送數(shù)據(jù)幀請求從站狀態(tài)改變
EtherCAT狀態(tài)機負責(zé)協(xié)調(diào)主站和從站應(yīng)用程序在初始化階段和運行階段的狀態(tài)關(guān)系。主站執(zhí)行狀態(tài)機控制,完成所有從站設(shè)備的初始化。從站狀態(tài)的改變均是由主站使用設(shè)置尋址向從站發(fā)送請求數(shù)據(jù)幀請求從站狀態(tài)轉(zhuǎn)換,在原有的EtherCAT協(xié)議中狀態(tài)機的狀態(tài)轉(zhuǎn)換請求數(shù)據(jù)幀發(fā)送函數(shù)是放在中斷函數(shù)中的,這樣在一個中短周期內(nèi)發(fā)送一個數(shù)據(jù)幀,而接受一個數(shù)據(jù)幀check的時候只能等到下一個中斷周期,這個時間間隔大約是20s。修改后把狀態(tài)轉(zhuǎn)換請求數(shù)據(jù)幀發(fā)送函數(shù)單獨處理,整個時間間隔為數(shù)據(jù)幀發(fā)送時間加延遲時間,這個時間很短只有一兩秒,極大地提高了效率。
4.1 實驗平臺
實驗平臺由四部分組成:EtherCAT主站系統(tǒng)、EtherCAT從站、實時數(shù)據(jù)獲取單元、離線數(shù)據(jù)分析單元。如圖4所示。
圖4 實驗環(huán)境結(jié)構(gòu)圖
(1)EtherCAT系統(tǒng)
主站為高檔數(shù)控國家工程研究中心開發(fā)的高檔數(shù)控系統(tǒng)“GJ400”,EtherCAT主站以一個驅(qū)動模塊的形式集成在該數(shù)控系統(tǒng)中。
(2)實時數(shù)據(jù)獲取單元
實時數(shù)據(jù)獲取單元采用的是福祿克(FLUKE)公司的OptiView XG網(wǎng)絡(luò)分析儀,支持單獨捕獲上行和下行數(shù)據(jù),并且可以將捕獲的數(shù)據(jù)包轉(zhuǎn)換為WinPCP格式,供離線數(shù)據(jù)處理單元進行數(shù)據(jù)分析。
(3)離線數(shù)據(jù)分析單元
離線數(shù)據(jù)分析單元是由PC機運行開源軟件Wireshark實現(xiàn)的,在實驗的最后,所有捕獲的WinPCAP格式的實驗數(shù)據(jù)都會交給離線數(shù)據(jù)單元進行處理和分析。
4.2 測試與結(jié)果分析
測試目的:運行如圖 5所示的測試流程,通過使用抓包工具WireShark,抓取主站與從站之間通訊的數(shù)據(jù)包,分析主從站之間的通訊是否正常以及時延。根據(jù)打印的時間,利用圖6所示的關(guān)系圖,計算出接收時間和收發(fā)時間,
測試流程如下:
圖5 測試用例流程
圖6 時延關(guān)系圖
時間點1:主站檢查所有從站均達到運行狀態(tài)后,發(fā)送過程數(shù)據(jù)之前的系統(tǒng)時間。
時間點2:主站將過程數(shù)據(jù)通過網(wǎng)卡發(fā)送出去之后的系統(tǒng)時間。
時間點3:主站接收到已發(fā)送數(shù)據(jù)幀的時間。
收發(fā)時間=時間點3-時間點1
接收時間=時間點3-時間點2
實驗結(jié)果如圖7和圖8所示。
圖7 Wireshark抓包部分結(jié)果圖
圖8 時間打印結(jié)果
實驗分析:
(1)發(fā)送數(shù)據(jù)包中主站發(fā)送的報文經(jīng)過從站時,讀成功時WKC加1,寫成功時加2,讀寫都成功時加3,如圖所示。通過對數(shù)據(jù)包的分析證明:主站發(fā)送的數(shù)據(jù)已被從站接收,并且通過觀察返回的數(shù)據(jù)報文信息沒有出現(xiàn)任何的錯誤報文,可見通信的準(zhǔn)確性非常高,主從站之間通信正常。
(2)根據(jù)圖8的測試結(jié)果,在沒有丟包的前提下測試結(jié)果如表2所示。
表2 收發(fā)時間的測量結(jié)果 單位:μs
由以上實驗結(jié)果可知:SoE協(xié)議的時延與已經(jīng)應(yīng)用于實踐的CoE協(xié)議時延相近,所以SoE協(xié)議可以實現(xiàn)主從站之間的實時通訊,而且通訊效率很高。
本文詳細闡述了EtherCAT通信協(xié)議的內(nèi)容以及在此基礎(chǔ)上做的改進,搭建實驗環(huán)境驗證SoE的性能,與目前已經(jīng)應(yīng)用于實踐的CoE協(xié)議性能作比較,證明了SoE協(xié)議也能很好的應(yīng)用在數(shù)控系統(tǒng)中。多種方法實現(xiàn)EtherCAT應(yīng)用層協(xié)議這將有利于EtherCAT技術(shù)在國內(nèi)數(shù)控產(chǎn)品中的應(yīng)用,使國內(nèi)的伺服產(chǎn)品的開放性和實時性得到提高,促進了國內(nèi)運動控制領(lǐng)域通信技術(shù)的發(fā)展。同時對進一步發(fā)展開放式數(shù)控,提高自身產(chǎn)品的競爭力,打破國外產(chǎn)品的壟斷具有積極意義。
[1] 繆學(xué)勤.論六種實時以太網(wǎng)的通信協(xié)議[J].自動化儀表,2005,26(4):1-6.
[2] 郇極,劉艷強.工業(yè)以太網(wǎng)總線EtherCAT驅(qū)動程序設(shè)計及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2010.
[3] 樊留群.實時以太網(wǎng)及運動控制總線技術(shù)[M].上海:同濟大學(xué)出版社,2009.
[4] 馬春敏,康存鋒.基于Linux的EtherCAT主站的研究[J].制造業(yè)自動化,2006,33(4):78-82.
[5] 曹晶.EtherCAT從站設(shè)備的開發(fā)[D].武漢:武漢科技大學(xué),2010.
[6] 張磊. 基于EtherCAT的主站通信控制器設(shè)計[D].廣州:廣東工業(yè)大學(xué),2013.
[7] EtherLab.IgH EtherCAT Master 1.5.2 Documentation[EB/OL].2012.
[8] BeekhoffAutomationGmbH. EtherCAT_ET1200_Datasheet V1.7[EB/OL].2012.
[9] 謝香林.EtherCAT網(wǎng)絡(luò)及伺服運動控制系統(tǒng)研究[D].大連:大連理工大學(xué),2008.
[10] 李文虎.基于EtherCAT和CANopen技術(shù)的伺服驅(qū)動器工業(yè)以太網(wǎng)接口設(shè)計[D].武漢:華中科技大學(xué),2011.
[11] 馮冬芹,金建祥,褚健.Ethernet與工業(yè)控制網(wǎng)絡(luò)[J].儀器儀表學(xué)報,2003,24(1):23-26.
(編輯 李秀敏)
Research and Implementation of EtherCAT Master Protocol SoE
CHANG Yu-dong1,2,WANG Chao2,3
(1.Chinese Academy of Sciences,Beijing 100049,China; 2.Shenyang Institute of Computing Technology,Chinese Academy of Sciences,Shenyang 110168,China)
EtherCAT application layer protocol will be beneficial to improve the application of EtherCAT technology in the domestic numerical control products, so as to improve the openness and real-time performance of servo products. At present, CoE has been applied in practice and has achieved good results, so the paper presents the implementation of SoE protocol and application in the numerical control system. This paper first introduces the basic content of communication protocol, and then analyzes the existing EtherCAT protocol, and then analyzes the structure and performance of the EtherCAT protocol, and then verifies the improved protocol from two aspects: performance and function.
EtherCAT communication protocol; data frame;state machine;SoE protocol
1001-2265(2016)11-0005-04
10.13462/j.cnki.mmtamt.2016.11.002
2015-12-24
“高檔數(shù)控機床與基礎(chǔ)制造裝備”國家科技重大專項航空發(fā)動機微孔冷加工超快激光數(shù)控機床(2014ZX04001041)
常玉冬(1991—),女,山東菏澤人,中國科學(xué)院沈陽計算技術(shù)研究所在讀碩士,研究方向為軟件工程,(E-mail)417135327@qq.com。
TH166;TG659
A