• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      EtherCAT主站與主站通信協(xié)議的研究與實現(xiàn)*

      2017-02-15 10:27:41黨選舉李帥帥伍錫如
      組合機床與自動化加工技術 2017年1期
      關鍵詞:間通信主站數(shù)控系統(tǒng)

      黨選舉,李帥帥,伍錫如,姜 輝

      (桂林電子科技大學 電子工程與自動化學院,廣西 桂林 541004)

      EtherCAT主站與主站通信協(xié)議的研究與實現(xiàn)*

      黨選舉,李帥帥,伍錫如,姜 輝

      (桂林電子科技大學 電子工程與自動化學院,廣西 桂林 541004)

      EtherCAT是目前最高速的工業(yè)現(xiàn)場總線網(wǎng)絡。由于其高帶寬利用率,低堆棧延遲、低交換機延遲等優(yōu)點,近些年被廣泛應用于數(shù)控機床系統(tǒng)。為滿足EtherCAT主站間的通信,進一步擴展EtherCAT組網(wǎng)功能,為構建EtherCAT工業(yè)復雜網(wǎng)絡提供技術支持,在不影響原有主站與從站通信功能情況下,設計了支持主站與主站之間通信的新協(xié)議,擴充IGH開源驅動功能,在AM3358處理器硬件平臺上實現(xiàn)了EtherCAT主站與主站的通信。分別在實時RT-Patch linux系統(tǒng)和原生linux系統(tǒng)中對設計方案進行測試,結果表明該方案運行穩(wěn)定且可以滿足主從、主主之間相互通信,滿足了工業(yè)組網(wǎng)需求。為實現(xiàn)EtherCAT數(shù)控系統(tǒng)復雜網(wǎng)絡的建立和大數(shù)據(jù)的快速采集,解決了主站與主站之間通信的關鍵問題。

      EtherCAT;主站;現(xiàn)場總線;大數(shù)據(jù)采集

      0 引言

      實時以太網(wǎng)是常規(guī)以太網(wǎng)技術的延伸,為滿足控制領域的實時通信要求[1],德國倍福自動化公司提出了EtherCAT實時工業(yè)以太網(wǎng)技術。在數(shù)控系統(tǒng)領域,沈陽機床i5智能數(shù)控機床使用EtherCAT總線系統(tǒng)顯著提高了工業(yè)效益[2]?,F(xiàn)有的大量研究都集中在主從的構建或者主從間通信中,如在ARM構架上構建支持主從通信的EtherCAT主站[3-5],高性能從站的設計[6],從站同步時鐘的優(yōu)化[7]及其EtherCAT時序特性分析[8]等。其所研究的EtherCAT總線結構主要是單個主站獨立控制多個從站,主站各有屬于自身的從站單元,主站與主站間無法交換共享數(shù)據(jù)。為構建工業(yè)數(shù)控系統(tǒng)復雜網(wǎng)絡,實現(xiàn)數(shù)控系統(tǒng)多軸信息的快速傳輸,進行工業(yè)大數(shù)據(jù)的采集,獨立的主站與從站通信并不能完全滿需求,難以真正的實現(xiàn)分布式架構,不利于對于數(shù)控系統(tǒng)中大數(shù)據(jù)的傳輸。因此該文深入研究EtherCAT總線通信協(xié)議,采用EtherCAT協(xié)議中的保留數(shù)據(jù)類型,進行主站與主站之間的通信。

      如今為解決大數(shù)據(jù)難以傳輸處理問題一般系統(tǒng)采用分布式架構。主站與從站通信,是分布式架構一個局部基本單元,只有局部基本單元之間相互通信,才可以為構建EtherCAT工業(yè)數(shù)控系統(tǒng)復雜網(wǎng)絡提供基礎保障。主站與主站通信正是為搭建復雜網(wǎng)絡提供了可行方案。

      為了提高普適性,選用linux系統(tǒng)作為開發(fā)平臺。德國IGH公司提供的EtherCAT Master for Linux主站驅動,其遵循GPLv2開源協(xié)議[9],但此代碼僅支持主站與從站之間的通信,因此該文在IGH發(fā)布的主站開源代碼的基礎上,通過協(xié)議補充,擴充驅動功能,構建了支持主站與主站之間通信的系統(tǒng)。

      1 程序運行環(huán)境的實現(xiàn)

      1.1 實現(xiàn)EtherCAT主站的軟件結構

      IGH公司提供的主站驅動支持原生非實時linux操作系統(tǒng)和實時擴展如RTAI、XENOMAI、RT-Patch等實時linux系統(tǒng)[9]。如圖1所示主站基本通信結構圖,其主要由包含各種連接硬件接口的硬件層,負責linux調度、算法處理的內核層,供應戶調用的應用層三部分組成。

      圖1 主站基本通信結構圖

      1.2 實現(xiàn)主站的硬件平臺

      AM3358是基于 ARM Cortex-A8內核帶有NEON協(xié)處理器高性能處理器。其最高主頻可達1GHz;集成2個可編程實時單元PRU,PRU可配置成為EtherCAT從站功能模塊;具有單錯檢測(奇偶校驗)的 32KB/32KB L1 指令/數(shù)據(jù)高速緩存;集成2個工業(yè)用千兆以太網(wǎng)MAC(10/100/1000MHZ)[10]。文中把其中一個網(wǎng)口作為從站連接口,另外一個作為主站與主站之間通信連接口,主站連接示意圖如圖2所示。

      圖2 主站連接示意圖

      2 主站驅動擴展與實現(xiàn)方法

      2.1 EtherCAT數(shù)據(jù)幀分析

      EtherCAT數(shù)據(jù)基于以太網(wǎng)數(shù)據(jù)幀進行傳輸,數(shù)據(jù)幀類型為0x88A4,其部分幀結構示意圖如圖3所示。

      圖3 EtherCAT部分幀結構示意圖

      圖3中,對于EtherCAT頭部分,其中的EtherCAT數(shù)據(jù)長度為整個EtherCAT報文部分的數(shù)據(jù)長度,對于類型,其值為1表示主站與從站通信的數(shù)據(jù)幀,其余值保留。但為了主站之間進行通信,文中規(guī)定在EtherCAT頭中的類型為2表示該數(shù)據(jù)幀為主站與主站通信數(shù)據(jù)幀,因此只需補充并完善驅動代碼,使之在接收數(shù)據(jù)時識別該以太網(wǎng)幀的類型位就可以識別是發(fā)往從站的數(shù)據(jù)幀還是主站間通信的數(shù)據(jù)幀。

      2.2 主站運行階段

      EtherCAT Master for Linux主站驅動按照功能不同的劃分,可劃分為孤兒階段、空閑階段和可操作階段三個階段,其示意圖如圖4所示。

      圖4 主站驅動運行階段

      圖4中,在孤兒階段,主站等待以太網(wǎng)設備連接;在空閑狀態(tài),主站已經(jīng)連接了以太網(wǎng)設備,但是應用空間并沒有對主站請求。此時主站會自動掃描從站總線并等待應用空間的操作。同時,命令行工具可以訪問總線,但是由于缺少總線配置,不能進行過程數(shù)據(jù)的交換。文中修改驅動代碼后,在此階段,主站除掃描總線上的從站外,主站另一端口還需要掃描對應總線上的其它主站設備;在操作狀態(tài),主站被應用層請求,此時可對總線上從站進行配置也可進行過程數(shù)據(jù)的交換。

      2.3 主站對數(shù)據(jù)幀的訪問

      在空閑階段,每個主站將通過不同的端口自動掃描識別總線上從站和其它主站,根據(jù)EtherCAT協(xié)議,當主站對從站的掃描時,由于EtherCAT幀在從站之間傳輸是順序的[11],因此一個子報文可以完成對多個從站的訪問,在數(shù)據(jù)幀的長度允許范圍內,一個數(shù)據(jù)幀可完成多個從站的掃描。但是在主站識別其它主站時,主站之間并行,所以每個數(shù)據(jù)幀只能完成對一個主站的訪問。

      3 主站的實現(xiàn)技術

      3.1 主站對總線的掃描流程

      在主站代碼中,主站對總線的掃描是在空閑線程中進行的,在沒有應用請求的狀態(tài)下,主站驅動只會運行在空閑線程,在該階段執(zhí)行的具體函數(shù)由狀態(tài)機根據(jù)不同的判斷條件執(zhí)行不同的回調函數(shù),進而有序的循環(huán)執(zhí)行。其運行基本流程如圖5所示。

      圖5 空閑線程運行流程圖

      3.2 主站數(shù)據(jù)結構的擴充

      原生的驅動代碼中,描述主站的結構體中沒有針對其它主站的描述,文中對于描述主站結構體struct ec_master進行擴充,需在該結構體內添加如下代碼:

      structec_master{

      ……

      struct other_master *com_master;

      unsigned int master_count;

      ec_datagram_t to_master_datagram;

      ec_datagram_t exchange_master_datagram;

      struct list_head other_master_queue;

      }

      其中對于其它主站的結構體定義為:

      structother_master{

      struct list_head queue; //主站鏈表

      unsigned int alias;//主站的別名

      uint8_t macs[6];//主站間通信端口的MAC

      unsigned int slave_num;//主站對應從站數(shù)

      ec_master_phase_t phase; 主站狀態(tài)

      unsigned long clock;//主站時鐘

      unsigned char user_datas[1024];//用戶數(shù)據(jù)

      };

      文中對struct ec_master額外增加了兩數(shù)據(jù)報,其中數(shù)據(jù)報to_master_datagram為主站與主站間通信的數(shù)據(jù)報。exchange_master_datagra為主站接收到通信數(shù)據(jù)報后處理信息的緩存數(shù)據(jù)報。

      3.3 主站發(fā)送數(shù)據(jù)幀

      IGH發(fā)布原生的代碼中,有冗余支持,但是冗余通信端口也是主站與從站通信端口,為使代碼支持主站與主站間通信,文中將冗余端口的功能修改為主站與主站通信端口,因此在主站空閑階段中,文中主站間通信數(shù)據(jù)報to_master_datagram的發(fā)送設備應指定為冗余端口,具體發(fā)送函數(shù)可為:

      ec_datagram_brd(&master->to_master_datagram,〗 0x0001, 16);

      ec_datagram_zero(&master->to_master_datagram); master->to_master_datagram.to_send_type〗=EC_DATAGRAM_TO_MASTER; master->to_master_datagram.device_index 〗=EC_DEVICE_BACKUP;

      ec_master_queue_datagram(master, 〗&master->to_master_datagram);

      ec_master_send_datagrams()。

      3.4 主站接收數(shù)據(jù)幀發(fā)送數(shù)據(jù)幀

      接收數(shù)據(jù)幀的底層驅動函數(shù)無需任何的改變,處理函數(shù)進行修改,修改后的接收處理函數(shù)流程圖如圖6所示。

      圖6 接收處理函數(shù)流程圖

      對于接收到的主站間通信數(shù)據(jù),只需要把接收到的數(shù)據(jù)幀的數(shù)據(jù)存儲在指定內存中,然后加入到鏈表,使用時遍歷該鏈表即可。文中定義函數(shù)ec_master_queue_master()用來將其它主站信息放入鏈表,主要代碼如下:

      list_for_each_entry(queued_master, 〗&master->other_master_queue, queue) {

      if(memcmp(queued_master->macs, 〗bus_master->macs,6)==0 ){

      kfree(bus_master);

      return;

      }

      }

      list_add_tail(&bus_master->queue,〗&master->other_master_queue);

      master->master_count+=1。

      4 主站驅動安裝配置

      由于在主站之間通信與主從之間通信分別使用不同的網(wǎng)卡端口,因此文中使用了冗余端口的功能,因此在安裝驅動時要設定使能冗余端口。安裝配置時執(zhí)行如下命令:

      ./configure --prefix=Install_dir 〗--with-linux-dir=linux_dir 〗--enable-generic=yes 〗--enable-wildcards=yes 〗CC=arm-arago-linux-gnueabi-gcc〗--with-devices=2

      其中,參數(shù)--enable-generic=yes指明使用通用網(wǎng)卡,參數(shù)--with-devices=2 指明本驅動安裝2個以太網(wǎng)設備。參數(shù)為--enable-wildcards表明目的地址為0xffffffff 將會匹配所有的廠商ID或者產品碼。

      5 主站驅動通信實驗驗證

      5.1 測試硬件平臺

      中分別選用三個主站模塊,一個從站測試模塊進試驗。其中主站模塊IAC-335X-Kit評估板集成 2個工業(yè)用千兆以太網(wǎng) MAC。另外兩個為開源可擴展硬件平臺BeagleBone Black,因其僅有一個以太網(wǎng)MAC,僅配置為主站通信,不再連接其它的從站設備。實驗平臺實物圖如圖7所示。

      圖7 實驗平臺實物圖

      5.2 EtherCAT多主站間通信測試

      文中分別將主站驅動配置到不同的linux版本進行測試。文中測試過程中,主站模塊在IAC-335X-Kit評估板安裝的嵌入式系統(tǒng)為linux-3.2.21并修補了實時補丁RT-Preempt,為主站驅動提供一個硬實時運行環(huán)境[12]。BeagleBone Black平臺安裝的嵌入式系統(tǒng)為linux-3.14,為非實時操作系統(tǒng)。

      對于驅動的測試,在linux應用層,編寫代碼以1秒為周期向從發(fā)送數(shù)據(jù)。文中是使用修改過的IGH EtherCAT提供的命令行工具,執(zhí)行后會顯示相應端口掃描到的總線上的其它主站或者從站的信息,以雙網(wǎng)口的主站為例,則主站統(tǒng)計信息如圖8所示。

      圖8 主站統(tǒng)計信息

      上面信息顯示,Phase: Operation表明主站運行在可操作階段;Active: yes表明驅動有應用層調用;Slaves: 1表明總線上有1個從站模塊;后續(xù)信息表明,除本主站外總線仍有2個主站模塊,對應主站的MAC分別為54:4a:16:b9:b3:63和54:4a:16:be:db:4f;圖中的統(tǒng)計信息,Main指定的網(wǎng)卡接口連接的是從站,Tx frames的Rx frames差值為1表明無數(shù)據(jù)這丟失,在從站通信中,發(fā)送的幀率平均為100幀/s,發(fā)送速率為5.9Kbyte/s;由于主站之間是平行的,每個主站都可以獨立的廣播發(fā)送報文,因此在上圖標注的Backup主站通信端口,實際接收到的數(shù)據(jù)要比實際發(fā)送的幀數(shù)要多,以致統(tǒng)計工具中接收數(shù)據(jù)出現(xiàn)負值,實際則滿足主站通信要求。

      6 結論

      該文基于AM3358硬件平臺,補充IGH EtherCAT主站驅動代碼,以盡量不影響原功能的原則,設計了EtherCAT主站間通信協(xié)議。實現(xiàn)了在實時RT-Patch linux系統(tǒng)和原生linux系統(tǒng)中EtherCAT主站與主站通信。解決了開源代碼EtherCAT驅動僅支持主站與從站之間通信的限制。滿足了數(shù)控系統(tǒng)大規(guī)模組網(wǎng)需求。該主站與主站之間的通信設計為構建EtherCAT數(shù)控系統(tǒng)復雜網(wǎng)絡,形成分布式架構以實現(xiàn)工業(yè)大數(shù)據(jù)處理,提供必要保障。

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

      [2] 佚名. EtherCAT助力沈陽機床實現(xiàn)i5智能數(shù)控機床[J]. 國內外機電一體化技術, 2015(3):45-46.

      [3] Cheol Jin An, Hyun Chul Yi, Hyoung Woo Kim, et al. Preventing data loss in linux-based EtherCAT master [J]. International Journal of Future Computer and Communication,2015,4(4): 246-249.

      [4] 李備備,欒勇,王超,等.基于AM3358處理器的嵌入式實時EtherCAT主站構建[J].組合機床與自動化加工技術, 2015(5):1-5.

      [5] 任計羽,范永坤,熊皚.EtherCAT高性能從站的設計與實現(xiàn)[J].計算機應用, 2014,34(S1):18-20.

      [6] Cereia M, Bertolotti I C, Scanzio S. Performance of a real-time EtherCAT master under linux [J]. Industrial Informatics, IEEE Transactions on,2013,7(4): 679-687.

      [7] YI Hyunchul, CHOI Joonyoung. Performance analysis of linux-based EtherCAT DC synchronization[C]// AIM 2015: Advanced Intelligent Mechatronics (AIM), 2015 IEEE International Conference on. Busan: IEEE, 2015:549-552.

      [8] 郇極,劉喆,靳陽,等.實時工業(yè)以太網(wǎng)EtherCAT時序特性分析系統(tǒng)[J].北京航空航天大學學報,2013,39(9): 1238-1242.

      [9] IGH,Etherlab. EtherCAT master for Linux. [EB/OL]. [2013-01-29]. http://www.etherlab.org/ download/ ethercat/ethercat-1.5.2.pdf.

      [10] TEXAS INSTRUMENTS.TI WIKI[EB/OL]. [2015-04-15], http://processors.wiki.ti.com/index.php/ Main_Page.

      [11] 張磊. 基于EtherCAT的主站通信控制器設計[D].廣州: 廣東工業(yè)大學,2013.

      [12] 陸小虎,劉玉香,于東,等.基于CORTEX-A8處理器的嵌入式數(shù)控系統(tǒng)實時平臺的設計與實現(xiàn)[J].小型微型計算機系統(tǒng),2013, 34 (7) : 1689-1692.

      (編輯 李秀敏)

      Research and Realization on EtherCAT Master and the Master Communication Protocol

      DANG Xuan-ju, LI Shuai-shuai, WU Xi-ru, JIANG Hui

      (School of Electronic Engineering and Automation, Guilin University of Electronic Technology, Guilin Guangxi 541004, China)

      EtherCAT is currently the highest speed industrial fieldbus networks, which is widely used in numerical control systems recent years due to the advantages of its high utilization rate of bandwidth, low delay of stacks and low switching latency. To satisfy the communication needs between the EtherCAT masters, to further extend the functionalities of EtherCAT network and to provide technical support of complex EtherCAT industrial network, the new protocol is designed to support communication between EtherCAT masters without any affects on the communication function of master and slave, upon which the IGH open source drive function is expanded and the communication between EtherCAT masters is achieved on AM3358 processor hardware platform. In this paper, the design is tested on RT-Patch in real time Linux system and native Linux system, respecttively. The test results show that this program is processed stably and can mutually communicate between the master to slave and master to master to meet different demands of industrial networks. To achieve the establishment of complex EtherCAT numerical control systems networks and rapidly acquisition of big data, the key problem of communication between the masters is solved.

      EtherCAT; master; industrial fieldbus; big data acquisition

      1001-2265(2017)01-0098-04

      10.13462/j.cnki.mmtamt.2017.01.027

      2016-03-09

      國家自然科學基金項目(61263013);廣西信息科學實驗中心項目(20130110);廣西自然科學基金項目(2014GXNSFBA118275,2015GXNSFAA139297);廣西高??蒲许椖?YB2014128)

      黨選舉(1965—),男,陜西咸陽人,桂林電子科技大學教授,博士,研究方向為工業(yè)現(xiàn)場總線,(E-mail)xjd69@163.com。

      TH166;TG659

      A

      猜你喜歡
      間通信主站數(shù)控系統(tǒng)
      細胞間通信預測方法研究進展
      綜合航電分區(qū)間通信元模型設計研究
      基于FANUC 32i A數(shù)控系統(tǒng)的外部測量設計
      西門子840D sl數(shù)控系統(tǒng)在SC125大型車銑鏜床技術改造中的應用
      基于FANUC Oi mate TD數(shù)控系統(tǒng)的手動功能開發(fā)
      數(shù)控系統(tǒng)中GUI軟件平臺設計和實現(xiàn)
      基于OS2主站系統(tǒng)的海量數(shù)據(jù)共享技術研究
      多表遠程集抄主站系統(tǒng)
      電子制作(2017年23期)2017-02-02 07:17:07
      基于改進經(jīng)濟壓差算法的主站AVC的研究
      關口電能計量故障監(jiān)測報警裝置及主站研究
      鄯善县| 鸡东县| 阿巴嘎旗| 大悟县| 洛南县| 乌鲁木齐市| 阿克陶县| 新郑市| 若羌县| 古交市| 驻马店市| 齐齐哈尔市| 霍州市| 隆尧县| 克拉玛依市| 宽甸| 古田县| 白朗县| 宜春市| 宁安市| 甘孜县| 武宁县| 丹江口市| 永川市| 威远县| 建瓯市| 富锦市| 江孜县| 巩义市| 万安县| 新昌县| 阿瓦提县| 榆林市| 珲春市| 故城县| 耿马| 陆河县| 化州市| 磐石市| 夏邑县| 海伦市|