徐 健,宋 寶,唐小琦
(華中科技大學(xué)機(jī)械科學(xué)與工程學(xué)院,武漢430074)
EtherCAT與Modbus協(xié)議轉(zhuǎn)換網(wǎng)關(guān)的設(shè)計(jì)及實(shí)現(xiàn)*
徐 健,宋 寶,唐小琦
(華中科技大學(xué)機(jī)械科學(xué)與工程學(xué)院,武漢430074)
為解決工業(yè)應(yīng)用中不同現(xiàn)場(chǎng)總線協(xié)議設(shè)備之間不能進(jìn)行互聯(lián)互通的問(wèn)題,首先深入研究了EtherCAT和Modbus兩種現(xiàn)場(chǎng)總線協(xié)議通信的原理以及運(yùn)行機(jī)制,分析并闡述了基于對(duì)象字典映射方法的協(xié)議轉(zhuǎn)換網(wǎng)關(guān)實(shí)現(xiàn)的原理,然后設(shè)計(jì)了基于“STM32+FPGA”架構(gòu)的協(xié)議網(wǎng)關(guān)實(shí)現(xiàn)的軟硬件方案,并搭建實(shí)驗(yàn)平臺(tái)進(jìn)行標(biāo)準(zhǔn)協(xié)議設(shè)備的實(shí)驗(yàn)測(cè)試,實(shí)驗(yàn)結(jié)果表明,該網(wǎng)關(guān)實(shí)現(xiàn)了EtherCAT標(biāo)準(zhǔn)設(shè)備與Modbus標(biāo)準(zhǔn)設(shè)備通信,從而實(shí)現(xiàn)了兩種網(wǎng)絡(luò)協(xié)議的轉(zhuǎn)換功能。
EtherCAT;Modbus;網(wǎng)關(guān);協(xié)議轉(zhuǎn)換
隨著現(xiàn)場(chǎng)總線技術(shù)在工業(yè)自動(dòng)化領(lǐng)域獲得的廣泛應(yīng)用,各種各樣的總線協(xié)議也層出不窮,根據(jù)IEC61158第四版國(guó)際標(biāo)準(zhǔn),已有20種現(xiàn)場(chǎng)總線協(xié)議成為國(guó)際標(biāo)準(zhǔn)[1-2]。常用的現(xiàn)場(chǎng)總線協(xié)議有Ether-CAT、Profinet、Powerlink和Modbus等,由于不同廠商支持的協(xié)議標(biāo)準(zhǔn)不同導(dǎo)致了不同設(shè)備協(xié)議之間的互不兼容性,不能進(jìn)行互聯(lián)互通,造成不同協(xié)議的機(jī)床設(shè)備不能成套應(yīng)用的困境。
本文針對(duì)實(shí)時(shí)工業(yè)以太網(wǎng)協(xié)議EtherCAT和標(biāo)準(zhǔn)串行協(xié)議Modbus RTU進(jìn)行了深入的研究,并設(shè)計(jì)和實(shí)現(xiàn)了一種EtherCAT與Modbus協(xié)議轉(zhuǎn)換網(wǎng)關(guān)的軟硬件方案,解決了EtherCAT標(biāo)準(zhǔn)設(shè)備與Modbus標(biāo)準(zhǔn)設(shè)備集成在一個(gè)現(xiàn)場(chǎng)總線網(wǎng)絡(luò)中進(jìn)行互聯(lián)互通的問(wèn)題。
1.1 EtherCAT通信原理
EtherCAT是一種應(yīng)用于工業(yè)自動(dòng)化領(lǐng)域的實(shí)時(shí)工業(yè)以太網(wǎng)通信技術(shù)[3]。它具有廣泛的適用性,完全符合以太網(wǎng)標(biāo)準(zhǔn)、高效率、刷新周期短和同步性能好等特點(diǎn)。
EtherCAT采用的是主從模式的介質(zhì)訪問(wèn)控制[4],如圖1所示,主站發(fā)送標(biāo)準(zhǔn)以太網(wǎng)集總幀給第一個(gè)從站,然后由第一個(gè)從站抽取或者插入有效數(shù)據(jù),依次經(jīng)過(guò)各個(gè)從站進(jìn)行相應(yīng)的操作,由最后一個(gè)從站返回?cái)?shù)據(jù)幀給主站進(jìn)行處理。其中,經(jīng)過(guò)每個(gè)從站采用的是非常低延時(shí)的飛讀飛寫(xiě)的方式,極大程度上縮短了最小循環(huán)周期。
圖1 EtherCAT運(yùn)行原理
EtherCAT支持的應(yīng)用層協(xié)議有CANopen和SERCOS,直接面向控制任務(wù),為應(yīng)用程序提供了操作對(duì)象的標(biāo)準(zhǔn)協(xié)議控制。其次,EtherCAT支持高精度的分布時(shí)鐘,可以同時(shí)控制各個(gè)設(shè)備的同步運(yùn)動(dòng),保證了多軸運(yùn)動(dòng)控制的嚴(yán)格實(shí)時(shí)同步性[5],達(dá)到了數(shù)控系統(tǒng)中高精度的同步運(yùn)動(dòng)控制要求。
1.2 Modbus通信原理
Modbus是一項(xiàng)應(yīng)用層報(bào)文傳輸協(xié)議,可以基于以太網(wǎng)、光纖和串口等物理層來(lái)實(shí)現(xiàn)Modbus協(xié)議。由于其具有標(biāo)準(zhǔn)開(kāi)放、支持多種電氣接口以及幀格式簡(jiǎn)單緊湊等特點(diǎn),廣泛應(yīng)用于各種類(lèi)型的總線控制當(dāng)中[6]。
Modbus采用的是請(qǐng)求/應(yīng)答的方式進(jìn)行主從通信,并且提供了功能碼所規(guī)定的服務(wù),標(biāo)準(zhǔn)的Modbus協(xié)議支持公共功能碼和用戶自定義功能碼[7],其運(yùn)行原理如圖2所示。Modbus主站通過(guò)向相應(yīng)物理地址的從站或者廣播的方式來(lái)發(fā)送相應(yīng)的控制信息進(jìn)行總線數(shù)據(jù)的交互,采用的是一對(duì)多的物理連接方式,其實(shí)質(zhì)通信為主從一對(duì)一或者廣播模式的通信過(guò)程。
圖2 Modbus運(yùn)行原理
EtherCAT協(xié)議與Modbus協(xié)議進(jìn)行協(xié)議轉(zhuǎn)換的關(guān)鍵是在于對(duì)有效數(shù)據(jù)的封裝以及調(diào)度上的改變,對(duì)于EtherCAT網(wǎng)絡(luò)中的數(shù)據(jù)在經(jīng)過(guò)網(wǎng)關(guān)之后則變?yōu)镸odbus網(wǎng)絡(luò)中的有效數(shù)據(jù),反之則是同樣的過(guò)程[8-11]。因此,所設(shè)計(jì)的協(xié)議轉(zhuǎn)換網(wǎng)關(guān)的實(shí)質(zhì)為不同網(wǎng)絡(luò)中共享的有效數(shù)據(jù)的相互映射的過(guò)程,其運(yùn)行原理如圖3所示。
圖3 協(xié)議轉(zhuǎn)換網(wǎng)關(guān)實(shí)現(xiàn)方法
基于這個(gè)設(shè)計(jì)的原理,協(xié)議轉(zhuǎn)換網(wǎng)關(guān)的軟硬件方案不僅僅要能夠同時(shí)兼容EtherCAT和Modbus兩種通信網(wǎng)絡(luò),同時(shí)也要在軟件中建立數(shù)據(jù)映射對(duì)象字典來(lái)建立兩種通信網(wǎng)絡(luò)的轉(zhuǎn)換關(guān)系。
針對(duì)EtherCAT和Modbus協(xié)議轉(zhuǎn)換的需求分析可以知道,EtherCAT協(xié)議進(jìn)行飛讀飛寫(xiě)處理時(shí)需要專(zhuān)用的ASIC芯片或者可編程邏輯器件的硬件來(lái)實(shí)現(xiàn),其次對(duì)于協(xié)議轉(zhuǎn)換也需要一塊MCU來(lái)進(jìn)行協(xié)議轉(zhuǎn)換的整體處理。因此,本文采用的是Altera公司生產(chǎn)的EP2C 8T144C8N的FPGA和ST公司生產(chǎn)的STM32F103ZET6這兩塊通用芯片來(lái)實(shí)現(xiàn)協(xié)議轉(zhuǎn)換的功能,具體硬件結(jié)構(gòu)如圖4所示。
圖4 協(xié)議轉(zhuǎn)換網(wǎng)關(guān)硬件設(shè)計(jì)
EtherCAT通信網(wǎng)絡(luò)經(jīng)由RJ45工業(yè)以太網(wǎng)接口到以太網(wǎng)處理芯片PHY,最后到FPGA內(nèi)部進(jìn)行協(xié)議的處理和轉(zhuǎn)發(fā)。FPGA處理高速百兆以太網(wǎng)的飛讀飛寫(xiě)操作,用來(lái)處理EtherCAT協(xié)議的數(shù)據(jù)鏈路層。ARM通過(guò)FMSC總線訪問(wèn)FPGA內(nèi)的緩存區(qū),并通過(guò)驅(qū)動(dòng)程序處理EtherCAT通信應(yīng)用層協(xié)議,同時(shí),ARM利用內(nèi)部集成的串口進(jìn)行Modbus協(xié)議的通信過(guò)程,因此,ARM通過(guò)內(nèi)部數(shù)據(jù)字典映射的方式來(lái)進(jìn)行EtherCAT協(xié)議與Modbus協(xié)議之間的有效數(shù)據(jù)轉(zhuǎn)換。
對(duì)于處理高速的EtherCAT飛讀飛寫(xiě)操作的硬件FPGA設(shè)計(jì)參照專(zhuān)用ASIC芯片的設(shè)計(jì),如圖5所示,用來(lái)實(shí)現(xiàn)數(shù)據(jù)鏈路層協(xié)議,并為從站MCU提供有效數(shù)據(jù)接口。其中包括EtherCAT數(shù)據(jù)幀處理單元、現(xiàn)場(chǎng)總線內(nèi)存管理單元FMMU、儲(chǔ)存同步單元SM、MCU接口單元以及高精度分布時(shí)鐘單元等。
圖5 協(xié)議轉(zhuǎn)換網(wǎng)關(guān)的FPGA整體設(shè)計(jì)
其中,EtherCAT數(shù)據(jù)幀處理單元如圖6所示,核心為數(shù)據(jù)區(qū)處理模塊,其作用是根據(jù)不同的系統(tǒng)當(dāng)前的狀態(tài)以及配置信息自動(dòng)低延時(shí)地轉(zhuǎn)發(fā)網(wǎng)絡(luò)信號(hào),并進(jìn)行數(shù)據(jù)的上傳和下載操作,同時(shí)對(duì)讀到的原有的數(shù)據(jù)幀rxd[1..0]進(jìn)行CRC的校驗(yàn),并且動(dòng)態(tài)地計(jì)算插入數(shù)據(jù)后的新的CRC32的值,由數(shù)據(jù)幀txd[1..0]發(fā)送出去。當(dāng)然如果對(duì)于原有數(shù)據(jù)幀的CRC校驗(yàn)錯(cuò)誤則會(huì)自動(dòng)丟棄該數(shù)據(jù)。
圖6 EtherCAT數(shù)據(jù)幀處理單元
根據(jù)協(xié)議轉(zhuǎn)換網(wǎng)關(guān)的軟件設(shè)計(jì)方案,可以將軟件處理進(jìn)行具體的功能模塊的劃分,包括Modbus協(xié)議的處理、EtherCAT應(yīng)用程序驅(qū)動(dòng)處理和協(xié)議轉(zhuǎn)換網(wǎng)關(guān)調(diào)度的處理等三個(gè)功能模塊。
其中,軟件實(shí)現(xiàn)的Modbus通信協(xié)議的處理流程如圖7所示。在系統(tǒng)上電后,會(huì)進(jìn)行Modbus總線的初始化過(guò)程,包括波特率、校驗(yàn)位等基本通信參數(shù)的配置;在初始化成功之后,協(xié)議流程會(huì)進(jìn)入等待上位機(jī)系統(tǒng)指令的狀態(tài),若無(wú)指令則一直處于等待的狀態(tài),直到系統(tǒng)指令到達(dá)時(shí),會(huì)根據(jù)不同的功能碼類(lèi)型對(duì)指令數(shù)據(jù)進(jìn)行封裝發(fā)送出去并啟動(dòng)定時(shí)器等待Modbus通信對(duì)象的響應(yīng)數(shù)據(jù)幀;最后,在規(guī)定定時(shí)器時(shí)間內(nèi)接收到返回?cái)?shù)據(jù)幀并響應(yīng)正確的話則會(huì)進(jìn)入下一循環(huán),反之則會(huì)重新發(fā)送數(shù)據(jù)幀命令的操作。
圖7 Modbus協(xié)議處理流程
對(duì)于EtherCAT驅(qū)動(dòng)程序處理和協(xié)議轉(zhuǎn)換網(wǎng)關(guān)整體處理的軟件設(shè)計(jì)如圖8所示,在硬件FPGA處理了高速飛讀飛寫(xiě)的數(shù)據(jù)后產(chǎn)生給MCU的外部中斷,軟件流程響應(yīng)外部中斷進(jìn)行EtherCAT響應(yīng)數(shù)據(jù)的驅(qū)動(dòng)程序的處理以及有效數(shù)據(jù)的操作,之后,交由網(wǎng)關(guān)模塊進(jìn)行有效數(shù)據(jù)的映射以及調(diào)度處理控制Modbus總線協(xié)議軟件處理流程,完成EtherCAT與Modbus協(xié)議轉(zhuǎn)換的功能。
圖8 EtherCAT驅(qū)動(dòng)程序以及網(wǎng)關(guān)處理流程
本文的實(shí)驗(yàn)平臺(tái)標(biāo)準(zhǔn)的EtherCAT伺服單元采用的是倍福公司的AX5206交流伺服驅(qū)動(dòng)單元,標(biāo)準(zhǔn)的Modbus通信單元采用的是富士公司的FRN2.2G1S-4C變頻器,利用“X86工控機(jī)+EtherCAT協(xié)議卡”主站構(gòu)建標(biāo)準(zhǔn)的EtherCAT通信網(wǎng)絡(luò),然后利用“STM32+FPGA”的伺服平臺(tái)硬件實(shí)現(xiàn)了Modbus通信協(xié)議轉(zhuǎn)換的網(wǎng)關(guān)功能,具體實(shí)驗(yàn)圖如圖9所示。
圖9 實(shí)驗(yàn)測(cè)試圖
利用如圖所示的連線,對(duì)系統(tǒng)進(jìn)行集成測(cè)試時(shí),首先經(jīng)過(guò)初始化過(guò)程,其中包括EtherCAT總線初始化、Modbus總線初始化和建立對(duì)象字典映射三個(gè)部分;正常運(yùn)行狀態(tài)下,數(shù)據(jù)經(jīng)由EtherCAT主站到協(xié)議轉(zhuǎn)換網(wǎng)關(guān),再到Modbus通信網(wǎng)絡(luò)中。
如圖10所示,為協(xié)議轉(zhuǎn)換網(wǎng)關(guān)的仿真測(cè)試圖,由圖中可以看出,協(xié)議網(wǎng)關(guān)處于正常運(yùn)行的狀態(tài),對(duì)速度指令值的仿真中可以看出兩種總線中的數(shù)據(jù)保持一致。
圖10 測(cè)試仿真圖
對(duì)上位機(jī)發(fā)出指令給各個(gè)軸不同的速度指令數(shù)據(jù)進(jìn)行測(cè)試,從0~1400rpm進(jìn)行緩慢加速試驗(yàn),記錄數(shù)據(jù)如表1所示,可以看到,網(wǎng)關(guān)顯示的EtherCAT網(wǎng)絡(luò)中的數(shù)據(jù)與變頻器顯示的Modbus網(wǎng)絡(luò)中的數(shù)據(jù)保持一致,由于操作位數(shù)以及數(shù)碼管顯示的原因,顯示誤差保持在0.1rpm以內(nèi),實(shí)質(zhì)上有效數(shù)據(jù)完全滿足網(wǎng)絡(luò)運(yùn)動(dòng)控制中的要求。
表1 網(wǎng)關(guān)轉(zhuǎn)換數(shù)據(jù)記錄表 單位:rpm
本文在深入分析了EtherCAT和Modbus兩種現(xiàn)場(chǎng)總線協(xié)議的基礎(chǔ)上,提出了基于“STM32+FPGA”架構(gòu)的協(xié)議轉(zhuǎn)換網(wǎng)關(guān)的軟硬件方案,方便快捷地實(shí)現(xiàn)了不同現(xiàn)場(chǎng)總線網(wǎng)絡(luò)的互聯(lián)互通,實(shí)驗(yàn)達(dá)到了令人滿意的效果,給現(xiàn)場(chǎng)總線網(wǎng)關(guān)的設(shè)計(jì)提供了一個(gè)很好的解決方案。
[1]梅恪,沈璞.關(guān)于總線國(guó)際標(biāo)準(zhǔn)IEC61158的研究報(bào)告[J].儀器儀表標(biāo)準(zhǔn)化與計(jì)量,2003(2):30-34.
[2]繆學(xué)勤.解讀IEC61158第四版現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)[J].儀器儀表標(biāo)準(zhǔn)化與計(jì)量,2007(3):1-4.
[3]郇極,劉艷強(qiáng).工業(yè)以太網(wǎng)現(xiàn)場(chǎng)總線EtherCAT驅(qū)動(dòng)程序設(shè)計(jì)及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2010.
[4]單春榮,劉艷強(qiáng),郇極.工業(yè)以太網(wǎng)現(xiàn)場(chǎng)總線EtherCAT及驅(qū)動(dòng)程序設(shè)計(jì)[J].制造業(yè)自動(dòng)化,2007(11):79-82.
[5]Cena G,Bertolotti IC,Scanzio S,et al.Evaluation of EtherCAT distributed clock performance[J].Industrial Informatics,IEEE Transactions on,2012,8(1):20-29.
[6]劉鋒.基于ModBus的現(xiàn)場(chǎng)總線控制系統(tǒng)研究與設(shè)計(jì)[D].重慶:重慶大學(xué),2007.
[7]張桂,金國(guó)強(qiáng),李輝.基于ARM平臺(tái)Modbus RTU協(xié)議的研究與實(shí)現(xiàn)[J].電力科學(xué)與工程,2011,27(1):23-27.
[8]Kunes M,Sauter T.Fieldbus-internet connectivity:the SNMP approach[J].Industrial Electronics,IEEE Transactions on,2001,48(6):1248-1256.
[9]黃巖峰,張軍凱,謝燦華,等.基于ARM技術(shù)的Ether-CAT與Modbus/TCP協(xié)議轉(zhuǎn)換卡設(shè)計(jì)[J].智能建筑與城市信息,2012(6):67-70.
[10]陳明,宋寶,唐小琦.基于DSP和FPGA的網(wǎng)絡(luò)轉(zhuǎn)換網(wǎng)關(guān)[J].計(jì)算機(jī)應(yīng)用,2011,31(10):2617-2620.
[11]Song K W,Choi G S.Fieldbus based distributed servo control using LonWorks/IP gateway/web servers[J]. Mechatronics,2010,20(3):415-423.
(編輯 趙蓉)
Designand Implementation of the Protocol Conversion Gateway between EtherCAT and Modbus
XU Jian,SONG Bao,TANG Xiao-qi
(School of Mechanical Science and Engineering,HuaZhong University of Science and Technology,Wuhan 430074,China)
To solve the interoperability problem of different fieldbus protocol equipment for industrial applications,firstly,this paper studies deeply the principles and operating mechanism of two kinds of fieldbus protocols which are EtherCAT and Modbus,analyzes and explains the principle of the implementation of protocol conversion gateway which is based on object dictionary mapping method,and then designs protocol gateway’s hardware and software solutions based on"STM 32+FPGA"architecture.Furthermore,a platform is built for experimental testing standard protocol equipment.The experimental results show that the protocol conversion gateway can achieve the communication between EtherCAT standard equipment and Modbus standard equipment,which has realized the conversion function between two networks.
EtherCAT;Modbus;gateway;protocol conversion
TH166;TG506
A
1001-2265(2015)04-0071-03 DOI:10.13462/j.cnki.mmtamt.2015.04.018
2014-07-01;
2014-07-17
"高檔數(shù)控機(jī)床與基礎(chǔ)制造裝備"科技重大專(zhuān)項(xiàng)(2012ZX04001012);國(guó)家科技支撐計(jì)劃(2012BAF13B01);廣東省部產(chǎn)學(xué)研重大專(zhuān)項(xiàng)(2012A090300012)
徐?。?992—),男,江西宜春人,華中科技大學(xué)碩士研究生,研究方向?yàn)閿?shù)控技術(shù)、現(xiàn)場(chǎng)總線及網(wǎng)絡(luò),(E-mail)xujian0935@163.com。