錢秋陽,曹廣忠,彭業(yè)萍,鐘祥永
(1.深圳大學(xué)機(jī)電與控制工程學(xué)院,廣東 深圳 518060;2.深圳電磁控制重點(diǎn)試驗(yàn)室,廣東 深圳 518060)
EtherCAT是一種實(shí)時(shí)工業(yè)以太網(wǎng)總線技術(shù),它充分利用了以太網(wǎng)的全雙工特性,采用主從通信模式。這種模式提高了總線通信的高效性以及實(shí)時(shí)性。因此,EtherCAT總線在工業(yè)上的應(yīng)用越來越廣泛[1]。
然而,工業(yè)現(xiàn)場危險(xiǎn)性高、環(huán)境惡劣且工況復(fù)雜,一旦機(jī)器出現(xiàn)問題,需要花費(fèi)大量的時(shí)間和人力成本。為滿足工業(yè)現(xiàn)場作業(yè)需求,無線監(jiān)控技術(shù)得到引入并快速發(fā)展,但現(xiàn)有的無線監(jiān)控方式大多針對(duì)小數(shù)據(jù)量的采集展開研究,無法滿足大數(shù)據(jù)背景下的工程應(yīng)用需求[2-8]。
本文在EtherCAT總線的分布式多傳感器數(shù)據(jù)采集解決方案的基礎(chǔ)上,設(shè)計(jì)了基于EtherCAT總線的無線網(wǎng)關(guān)(下文簡稱為無線網(wǎng)關(guān)),實(shí)現(xiàn)了將總線數(shù)據(jù)無線傳輸至服務(wù)器,為EtherCAT總線的延伸和擴(kuò)展提供了一種有效、快捷的技術(shù)。
EtherCAT支持總線形、樹形和星形等諸多類型的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。EtherCAT無線通信網(wǎng)絡(luò)如圖1所示。本文選用線形拓?fù)浣Y(jié)構(gòu)作為EtherCAT總線網(wǎng)絡(luò)的連接方式,將無線網(wǎng)關(guān)接入EtherCAT總線的末端。其目的在于:在危險(xiǎn)性高、環(huán)境惡劣的一些工業(yè)制造現(xiàn)場,減少大量的線纜布置[9-12]。無線網(wǎng)關(guān)實(shí)質(zhì)上是具有WiFi無線通信功能的EtherCAT復(fù)雜從站,在物理結(jié)構(gòu)上由EtherCAT從站以及WiFi模塊組成。WiFi模塊與EtherCAT從站之間使用RS-485通信接口進(jìn)行串行通信?;谶@種實(shí)現(xiàn)方式,無線網(wǎng)關(guān)既具有EtherCAT從站總線通信功能,又具有接入無線網(wǎng)絡(luò)以及無線通信功能。
圖1 EtherCAT無線通信網(wǎng)絡(luò)
通信過程由EtherCAT主站控制,即主站為通信的發(fā)起者[13-14]。通信開始,主站獲取從站發(fā)送的數(shù)據(jù),并通過總線將數(shù)據(jù)發(fā)送至無線網(wǎng)關(guān);無線網(wǎng)關(guān)完成由EtherCAT協(xié)議報(bào)文向WiFi所支持的協(xié)議報(bào)文轉(zhuǎn)換。報(bào)文通過WiFi無線傳輸至無線路由,經(jīng)無線路由轉(zhuǎn)發(fā)至Web服務(wù)器。上述通信過程可實(shí)現(xiàn)EtherCAT總線數(shù)據(jù)的無線通信和無線監(jiān)控。
參考開放系統(tǒng)互聯(lián)(open system interconnection,OSI)理想模型,EtherCAT 協(xié)議分為物理層(PHY)、數(shù)據(jù)鏈路層和應(yīng)用層。物理層遵循IEEE 802.3標(biāo)準(zhǔn)規(guī)定的通信物理傳輸接口及傳輸介質(zhì)。數(shù)據(jù)鏈路層包含EtherCAT 媒體介質(zhì)訪問控制(EtherCAT MAC)、郵箱通信(Mailbox)以及過程數(shù)據(jù)通信(Process Data)三種通信過程。郵箱通信用于EtherCAT主站同步從站信息配置;過程數(shù)據(jù)通信用于主站與從站之間的數(shù)據(jù)高速交互。應(yīng)用層定義EtherCAT通信協(xié)議邏輯控制與數(shù)據(jù)交互的接口。該層協(xié)議包括EoE、FoE、SoE以及CoE等[15-16]。本文使用CoE(CANOpen)協(xié)議作為EtherCAT從站的應(yīng)用層協(xié)議。
WiFi通信協(xié)議遵循IEEE 802.11標(biāo)準(zhǔn)規(guī)定的物理層和數(shù)據(jù)鏈路層。數(shù)據(jù)鏈路層由媒體介質(zhì)訪問控制(MAC)和邏輯鏈路控制(LLC)實(shí)現(xiàn)尋址、組幀等功能[17]。應(yīng)用層定義通信數(shù)據(jù)的接口。本文使用超文本傳輸協(xié)議(HTTP)作為WiFi協(xié)議的應(yīng)用層協(xié)議。
圖2 協(xié)議轉(zhuǎn)換參考模型
無線網(wǎng)關(guān)實(shí)現(xiàn)協(xié)議轉(zhuǎn)換的數(shù)據(jù)流整體過程是主站(EtherCAT master)發(fā)送EtherCAT報(bào)文,無線網(wǎng)關(guān)(wireless gateway)接收?qǐng)?bào)文,無線網(wǎng)關(guān)執(zhí)行協(xié)議轉(zhuǎn)換流程,完成數(shù)據(jù)報(bào)文由EtherCAT協(xié)議應(yīng)用層到WiFi協(xié)議應(yīng)用層轉(zhuǎn)換。協(xié)議轉(zhuǎn)換具體流程是將EtherCAT報(bào)文從EtherCAT協(xié)議物理層開始,經(jīng)過數(shù)據(jù)鏈路層,在應(yīng)用層完成 EtherCAT協(xié)議的報(bào)文解析后,將主站發(fā)送的數(shù)據(jù)以14 B為一幀的格式封裝。以WiFi協(xié)議應(yīng)用層為起始點(diǎn),數(shù)據(jù)經(jīng)由LLC層及MAC層,打包封裝成WiFi報(bào)文,通過物理層介質(zhì)經(jīng)無線路由傳輸至Web服務(wù)器中。
無線網(wǎng)關(guān)的硬件主要包括EtherCAT從站和WiFi模塊。本文選用美國德州儀器公司的AM3359 ICE開發(fā)板硬件作為EtherCAT從站。無線網(wǎng)關(guān)硬件結(jié)構(gòu)如圖3所示。
圖3 無線網(wǎng)關(guān)硬件結(jié)構(gòu)圖
AM3359 ICE開發(fā)板采用具有工業(yè)通信功能的ARM微處理器AM3359與數(shù)據(jù)收發(fā)芯片TLK110 硬件連接電路,實(shí)現(xiàn)EtherCAT從站總線通信。AM3359 ICE開發(fā)板具有RJ45、RS-485等工業(yè)通信接口。主控芯片AM3359 微處理器是ARM Cortex-A8處理器內(nèi)核 (ARM Core),片內(nèi)具有可編程實(shí)時(shí)及工業(yè)通信子系統(tǒng)單元 (programmable real-time unit and industrial communication subsystem,PRU-ICSS) 及通用異步收發(fā)傳輸器(universal asynchronous receiver/transmitter,UART)等工業(yè)通信外設(shè)。由于PRU-ICSS單元與ARM內(nèi)核共享一段特定的內(nèi)存地址,該方式可簡化EtherCAT從站通信實(shí)現(xiàn)過程。因此,本文采用PRU-ICSS單元實(shí)現(xiàn)EtherCAT從站通信。
WiFi模塊選用具有RS-485通信接口和WiFi通信功能的嵌入式模塊來實(shí)現(xiàn)WiFi通信功能。該模塊支持802.11 b/g/n協(xié)議標(biāo)準(zhǔn),無線網(wǎng)關(guān)的通過網(wǎng)頁來配置。AM3359 ICE開發(fā)板與WiFi模塊以RS-485作為通信接口,并通過UART建立通信。
軟件分層結(jié)構(gòu)如圖4所示。無線網(wǎng)關(guān)軟件程序包含任務(wù)層、協(xié)議層與驅(qū)動(dòng)層。為實(shí)現(xiàn)數(shù)據(jù)格式的轉(zhuǎn)換,各層分別提供數(shù)據(jù)交互接口的定義。
圖4 軟件分層結(jié)構(gòu)圖
驅(qū)動(dòng)層為AM3359外設(shè)硬件控制程序,包含PRU-ICSS驅(qū)動(dòng)和UART串行通信驅(qū)動(dòng)。PRU-ICSS驅(qū)動(dòng)程序?qū)崿F(xiàn)PRU-ICSS寄存器配置和緩存讀寫功能。UART驅(qū)動(dòng)定義了串行通信的發(fā)送與接收接口,實(shí)現(xiàn)了以幀為最小單位的串行通信功能。協(xié)議層包含EtherCAT從站協(xié)議棧。該協(xié)議棧實(shí)現(xiàn)EtherCAT通信協(xié)議的數(shù)據(jù)鏈路層和應(yīng)用層功能。
任務(wù)層完成EtherCAT數(shù)據(jù)解碼與數(shù)據(jù)組幀任務(wù):在EtherCAT數(shù)據(jù)解碼任務(wù)中,本文設(shè)計(jì)從站的輸入/輸出的數(shù)據(jù)位寬為32位,即EtherCAT通信數(shù)據(jù)字節(jié)長度為32位。通過主站數(shù)據(jù)編碼,規(guī)定高12位為數(shù)據(jù)編號(hào)值、低12位為數(shù)據(jù)值、中間8位為數(shù)據(jù)名。數(shù)據(jù)流由驅(qū)動(dòng)層到達(dá)任務(wù)層時(shí),即EtherCAT從站接收并解析主站發(fā)送的數(shù)據(jù)后,EtherCAT數(shù)據(jù)解碼任務(wù)對(duì)32位數(shù)據(jù)進(jìn)行解碼。數(shù)據(jù)解碼流程如圖5所示。
圖5 數(shù)據(jù)解碼流程圖
解碼后的值分別存入一個(gè)包含三個(gè)元素的結(jié)構(gòu)體中。三個(gè)元素分別代表數(shù)據(jù)編號(hào)、數(shù)據(jù)名稱、數(shù)據(jù)對(duì)應(yīng)的數(shù)值大小。在數(shù)據(jù)組幀任務(wù)中,由于本文采用的UART串行通信的發(fā)送格式以ASCII碼為基本單元,所以在結(jié)構(gòu)體中的三元素均轉(zhuǎn)換為ASCII碼后,執(zhí)行數(shù)據(jù)組幀任務(wù)。數(shù)據(jù)幀格式如圖6所示。數(shù)據(jù)幀包含數(shù)據(jù)編號(hào)、編號(hào)值、數(shù)據(jù)名稱以及數(shù)據(jù)數(shù)值內(nèi)容。圖6中:“=”為編號(hào)名、數(shù)據(jù)名和分別與其對(duì)應(yīng)的編號(hào)值、數(shù)值之間的連接符; “&”為編號(hào)值和數(shù)據(jù)名之間的連接符。
圖6 數(shù)據(jù)幀格式
本文通過網(wǎng)頁配置 WiFi模塊的工作模式及通信方式,將WiFi模塊的工作模式設(shè)置為STA無線網(wǎng)絡(luò)終端模式,通信方式為Client模式,通信協(xié)議為HTTP協(xié)議。
無線網(wǎng)關(guān)數(shù)據(jù)傳輸試驗(yàn)是以EtherCAT總線網(wǎng)絡(luò)為基礎(chǔ)實(shí)現(xiàn)的。試驗(yàn)設(shè)備主要由主站、1#從站以及無線網(wǎng)關(guān)構(gòu)成;無線網(wǎng)關(guān)由AM3359 ICE開發(fā)板與WiFi模塊連接組成。無線網(wǎng)關(guān)連接在總線的末端,與伺服驅(qū)動(dòng)器及工業(yè)控制計(jì)算機(jī)共同組成通信網(wǎng)絡(luò)。
主站是工業(yè)控制計(jì)算機(jī),采用此計(jì)算機(jī)中的TwinCAT軟件實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)目刂?。TwinCAT軟件是由德國倍福(BECKHOFF)公司開發(fā)的、基于Windows系統(tǒng)的自動(dòng)化PLC控制軟件。1#從站是一個(gè)具有EtherCAT從站通信功能的伺服驅(qū)動(dòng)器。本文選用德國BECKHOFF公司制造的、具有EtherCAT通信功能的伺服驅(qū)動(dòng)器AX5000系列作為1#從站。
數(shù)據(jù)傳輸?shù)闹饕鞒倘缦?。①主站通過EtherCAT總線發(fā)送數(shù)據(jù)采集指令給從站1#。②從站1#執(zhí)行獲取伺服驅(qū)動(dòng)器以及電機(jī)的傳感器數(shù)據(jù)的操作,獲取電機(jī)電壓數(shù)值、電機(jī)三相交流電流數(shù)值、電機(jī)轉(zhuǎn)速和電機(jī)位置等數(shù)據(jù)后,將此數(shù)據(jù)打包發(fā)送給主站。③主站接收從站1#的數(shù)據(jù)后,對(duì)數(shù)據(jù)進(jìn)行編碼、打包并轉(zhuǎn)發(fā)給無線網(wǎng)關(guān);無線網(wǎng)關(guān)接收到主站發(fā)送的報(bào)文,將EtherCAT報(bào)文轉(zhuǎn)換為WiFi報(bào)文,通過WiFi協(xié)議將數(shù)據(jù)傳輸至Web服務(wù)器。
在實(shí)現(xiàn)主站可編程邏輯控制器(programmable logic controller,PLC)程序之前,首先需要將從站配置文件導(dǎo)入TwinCAT中。本文使用德州儀器公司的從站配置文件(EtherCAT slave informmation,ESI)。當(dāng)TwinCAT軟件獲取從站信息時(shí),該軟件會(huì)顯示從站固定數(shù)據(jù)位寬為32位的輸入/輸出變量信息,將從站的輸入/輸出變量與定義的PLC變量關(guān)聯(lián)。其中,對(duì)于PLC程序變量的賦值或取值的操作等同于主站發(fā)送和接收數(shù)據(jù)的操作。
PLC程序采用結(jié)構(gòu)化文本語言(stracture text,ST)進(jìn)行編程,主要以功能塊的形式實(shí)現(xiàn)如下兩個(gè)功能:其一為伺服驅(qū)動(dòng)器內(nèi)的傳感器數(shù)據(jù)與電機(jī)內(nèi)的傳感器數(shù)據(jù)的獲取,其二為待發(fā)送數(shù)據(jù)編碼過程及編碼后數(shù)據(jù)的發(fā)送。PLC程序流程如圖7所示。通過程序功能塊使能電機(jī),獲取電流、電壓、電機(jī)溫度等數(shù)據(jù),并實(shí)現(xiàn)數(shù)據(jù)編號(hào)以及數(shù)據(jù)編碼,最終將編碼后的數(shù)據(jù)賦值給PLC發(fā)送變量,以實(shí)現(xiàn)數(shù)據(jù)發(fā)送。
圖7 PLC程序流程圖
本文設(shè)計(jì)通信試驗(yàn),將伺服驅(qū)動(dòng)器采集的電機(jī)交流電電流、直流母線電壓、電機(jī)溫度等數(shù)據(jù)通過EtherCAT總線網(wǎng)絡(luò)發(fā)送至無線網(wǎng)關(guān),并通過WiFi網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送至Web服務(wù)器端,從而實(shí)現(xiàn)在Web服務(wù)器上遠(yuǎn)程觀測電機(jī)狀態(tài)以及伺服驅(qū)動(dòng)器電流的動(dòng)態(tài)變化。
本文為驗(yàn)證通信試驗(yàn)數(shù)據(jù)傳輸?shù)耐暾?,作出如下定義。首先,定義如圖6所示的通信數(shù)據(jù)幀格式,用于無線網(wǎng)關(guān)WiFi數(shù)據(jù)傳輸。設(shè)定數(shù)據(jù)編號(hào)名為字符 ‘T’,每幀數(shù)據(jù)的數(shù)據(jù)編號(hào)對(duì)應(yīng)為0000、0001、0002、0003、0004。然后,定義數(shù)據(jù)名稱:AA為直流母線電壓,AB為U相電流,AC為V相電流,AD為W相電流、AE為電機(jī)溫度。本文定義的一組伺服驅(qū)動(dòng)器包括在流母線電壓,通過電機(jī)的互相交流電流以及電機(jī)的溫度值。
經(jīng)通信試驗(yàn),網(wǎng)頁服務(wù)器接收到的完整數(shù)據(jù)中,每組均包含五幀通信數(shù)據(jù),且數(shù)據(jù)編號(hào)完整。綜上可驗(yàn)證數(shù)據(jù)傳輸?shù)耐暾?,即傳輸過程無數(shù)據(jù)丟失。
本文針對(duì)工業(yè)現(xiàn)場的遠(yuǎn)程監(jiān)控問題,研究并設(shè)計(jì)了具有將EtherCAT協(xié)議報(bào)文轉(zhuǎn)換為WiFi協(xié)議報(bào)文功能的網(wǎng)關(guān)。經(jīng)通信試驗(yàn)驗(yàn)證,無線網(wǎng)關(guān)能夠準(zhǔn)確解碼,由WiFi將EtherCAT報(bào)文中的數(shù)據(jù)傳輸至Web服務(wù)器,并通過網(wǎng)頁顯示出數(shù)據(jù)。該網(wǎng)關(guān)的研究與設(shè)計(jì)將EtherCAT網(wǎng)絡(luò)和WiFi網(wǎng)絡(luò)融合,為工業(yè)現(xiàn)場的遠(yuǎn)程監(jiān)控的實(shí)現(xiàn)提供了一種新方法。