徐 林 凌志浩 路 偉 呂海武
(華東理工大學化工過程先進控制和優(yōu)化技術教育部重點實驗室1,上海 200237;吉林石化公司檢測中心,吉林 吉林 132021)
?
一種工業(yè)無線檢測系統(tǒng)的設計與實現(xiàn)
徐 林1凌志浩1路 偉2呂海武2
(華東理工大學化工過程先進控制和優(yōu)化技術教育部重點實驗室1,上海 200237;吉林石化公司檢測中心,吉林 吉林 132021)
為了整合無線檢測與以太網(wǎng)技術,并將其無縫接入工業(yè)檢測領域,設計了一種工業(yè)無線檢測系統(tǒng)。該系統(tǒng)主要由現(xiàn)場檢測設備、網(wǎng)關和上位機軟件等部分組成?,F(xiàn)場檢測設備采用ZigBee通信技術完成對自身節(jié)點檢測數(shù)據(jù)的收集和無線傳輸。無線網(wǎng)關負責建立和管理網(wǎng)絡,接收各節(jié)點數(shù)據(jù),解析并將其重新封裝為Modbus格式包,實現(xiàn)與上位機組態(tài)軟件的通信。測試表明,該系統(tǒng)符合工業(yè)現(xiàn)場的應用需求,具有實用價值。
變送器 無線檢測 以太網(wǎng) 網(wǎng)關 ZigBee Modbus 組態(tài)軟件 通信 程序編譯
隨著無線技術的發(fā)展,以太網(wǎng)技術的工業(yè)應用越來越廣泛,實現(xiàn)集中監(jiān)控的方法也越來越多樣。無線變送器在采礦業(yè)、畜牧業(yè)、環(huán)境檢測等領域的應用需求明顯增加,表明了無線變送器的應用可有效提高數(shù)據(jù)傳輸效率、減少手動抄表所帶來的誤差與延遲。
美國的Nova公司,德國的EH公司、Icsensor公司、M.K.S公司等都是變送器技術方面的權威企業(yè)。這些公司生產(chǎn)的無線變送器芯片在全球市場中占有很大的份額。國內(nèi)各企業(yè)對無線變送器解決方案的研究與應用也越來越多。面對日益增長的市場需求,國內(nèi)各科研院所和企業(yè)紛紛參與到無線變送器的研究中來,希望構建有效的無線檢測系統(tǒng),以滿足工業(yè)現(xiàn)場的實際應用要求[1]。
本文設計了一種工業(yè)無線檢測系統(tǒng)。該系統(tǒng)由上位機組態(tài)軟件和現(xiàn)場無線檢測網(wǎng)絡組成。無線檢測網(wǎng)絡的設計包括無線網(wǎng)關、無線路由、無線變送器的軟硬件設計,其軟件代碼的開發(fā)基于KEIL和IAR編譯環(huán)境,并選用TI的ZStack-2.4.0-1.4.0協(xié)議棧來完成ZigBee部分的無線通信軟件設計。無線網(wǎng)關采用STM32F407主控制器、LAN8720、CC2530等模塊,進行硬件電路設計。無線路由采用CC2530和穩(wěn)壓模塊完成硬件電路設計。無線變送器由儀表卡和無線通信卡構成,其中無線通信卡同樣選用CC2530芯片。最后,采用C#進行上位機配置界面的編寫,以滿足人機交互和監(jiān)控要求。
通常,工業(yè)無線檢測系統(tǒng)應該由上位機軟件和現(xiàn)場無線檢測網(wǎng)絡兩部分組成。其中,上位機組態(tài)軟件充當Modbus主設備的角色,通過RJ45(或USB)接口與作為Modbus從設備的無線網(wǎng)關通信。無線檢測網(wǎng)絡由無線網(wǎng)關、無線路由、無線變送器終端組成。無線網(wǎng)關需要實現(xiàn)Modbus協(xié)議數(shù)據(jù)與ZigBee協(xié)議數(shù)據(jù)之間的雙向轉(zhuǎn)換;無線路由節(jié)點起到數(shù)據(jù)路由的作用,在遠距離傳輸網(wǎng)絡中必不可少[2];無線變送器終端由無線通信卡和儀表卡兩部分組成。無線通信卡用于接收和發(fā)送命令、數(shù)據(jù)或狀態(tài),儀表卡則完成參數(shù)檢測任務。另外,無線通信卡為可插拔模式,有助于提高系統(tǒng)中各類無線通信設備設計和制作的適用性與靈活性。
系統(tǒng)整體框架如圖1所示。
圖1 系統(tǒng)整體框架圖
基于無線檢測系統(tǒng)的穩(wěn)定性和低功耗性能考慮,無線傳輸部分采用ZigBee技術,并將網(wǎng)絡拓撲選為樹形結構。由于無線網(wǎng)關需要具備Modbus與ZigBee協(xié)議轉(zhuǎn)換功能,所以將無線網(wǎng)關模塊設計為ARM和無線射頻模塊的組合結構。
2.1 無線網(wǎng)關模塊
由于無線網(wǎng)關除了協(xié)調(diào)功能外,還需運行Modbus協(xié)議棧和ZigBee協(xié)議棧,這無疑提高了對系統(tǒng)資源的需求。經(jīng)過綜合考慮,將無線網(wǎng)關主體設計為ARM微控制器和CC2530無線射頻芯片的組合結構。圖2為無線網(wǎng)關的基本結構框架。
圖2 網(wǎng)關結構框架圖
ARM微控制器選用基于Cortex-M4為內(nèi)核的微處理器STM32F407。該微處理器以ARM-V7ME為基礎架構,采用Thumb/Thumb2指令系統(tǒng),共具有196 KB的片內(nèi)SRAM和高達1 MB的Flash。STM32F407芯片自帶以太網(wǎng)模塊,這對于無線網(wǎng)關的架構設計至關重要。該模塊包括帶有專用DMA控制器的MAC 802.3(介質(zhì)訪問控制)控制器,支持介質(zhì)獨立接口(media independent interface,MII)和簡化介質(zhì)獨立接口(reduced media independent interface,RMII)[3]。根據(jù)對比效果分析,本文采用RMII接口與外部PHY芯片LAN8720連接的方式,實現(xiàn)Modbus/TCP的通信功能。
CC2530無線射頻芯片是用于2.4 GHz IEEE 802.15.4、ZigBee和RF4CE的SoC解決方案,其結合了RF收發(fā)器的優(yōu)良性能。其內(nèi)核為增強型8051CPU,8 KB RAM,分別具有32/64/128/256 KB四種不同閃存版本。CC2530具有不同的運行模式,可適用于低功耗要求的系統(tǒng)。無線檢測網(wǎng)絡中的無線網(wǎng)關、無線路由和無線變送器終端中的無線通信卡均采用CC2530芯片來實現(xiàn)。
無線網(wǎng)關中的無線模塊需要完成整個2.4 GHz無線網(wǎng)絡的建立與運作,所以無線網(wǎng)關中的無線模塊擔任協(xié)調(diào)器的角色,并通過USART接口和STM32F407進行通信。在Modbus-RTU模式下,STM32F407通過另外一路USART并由CH340芯片將其轉(zhuǎn)換為USB接口信號,然后再與上位機組態(tài)軟件進行通信。在Modbus-TCP模式下,STM32F407利用RMII接口連接以太網(wǎng)模塊,并與上位機組態(tài)軟件通信。
STM32F407采用自身的RMII接口與外部PHY芯片(LAN8720)連接,減少了在10/100 Mbit/s下微控制器以太網(wǎng)外設模塊與外部PHY間的引腳數(shù)。LAN8720芯片通過自協(xié)商的方式來選擇與目的主機的最佳連接方式,并且支持HP Auto-MDIX自動翻轉(zhuǎn)功能以及全雙工和半雙工模式[4]。在以太網(wǎng)模塊的電路設計過程中,需要注意的是,RMII接口的參考時鐘必須是50 MHz,所以LAN8720芯片的RMII_REF_CLK引腳應該和STM32F407的PA1相連,并將PA1復用為ETH_RMII_REF_CLK功能。
2.2 無線路由模塊
無線路由模塊在整個檢測系統(tǒng)中起到一個數(shù)據(jù)路由的作用,對于內(nèi)嵌有8051增強型CPU的CC2530無線射頻芯片來說,無需額外的外設即可實現(xiàn)數(shù)據(jù)路由功能,所以無線路由模塊的硬件設計由CC2530和電源轉(zhuǎn)換模塊構成。
2.3 無線變送器模塊
無線變送器模塊的硬件設計分為可插拔的無線通信卡和儀表卡兩部分,因此可通過更換儀表卡來實現(xiàn)不同種類無線變送器模塊的安裝。無線通信卡選用CC2530無線射頻芯片和CC2591功率放大芯片來實現(xiàn)。其結構如圖3所示。RXD和TXD為串口信號線,RST為無線通信卡復位引腳。對于無線通信卡來說,RTS為輸入信號,對應的功能是儀表卡請求數(shù)據(jù)發(fā)送指示,低電平有效;CD為輸出信號,對應的功能是無線通信卡數(shù)據(jù)發(fā)送指示,低電平有效。
圖3 無線變送器模塊結構圖
3.1 無線模塊軟件設計
無線網(wǎng)關、無線路由、無線變送器上的無線模塊均采用TI公司的CC2530芯片,無線模塊的程序采用IAR編寫。具體方法為:使用一個基于任務調(diào)度機制的協(xié)議棧ZStack-2.4.0-1.4.0,通過對任務所定義的事件觸發(fā)來實現(xiàn)任務調(diào)度。
網(wǎng)關上的無線模塊主要完成兩個任務:①完成ZigBee無線網(wǎng)絡的建立和維護,保證網(wǎng)絡具有自組織和自愈合的能力;②完成ZigBee無線數(shù)據(jù)和串口數(shù)據(jù)的相互轉(zhuǎn)換,相當于無線網(wǎng)關上的無線接口。在編譯無線網(wǎng)關CC2530的程序時,將其配置為協(xié)調(diào)器,在協(xié)調(diào)器上電后,程序通過NLME-NETWORK-FORMATION.request原語請求建立一個新的網(wǎng)絡,然后通過向MAC子層發(fā)送MLME-SCAN.request原語來發(fā)起信道掃描。在成功收到能量檢測結果時,NLME會選出一個信號強度最好的信道,并根據(jù)參數(shù)配置選擇一個PAN描述符和邏輯地址。NLME需向MAC子層發(fā)送MLME-START.request原語,然后開始運行新的PAN。在收到PAN啟動狀態(tài)時,NLME會通過NLME-NETWORK-FORMATION.conform原語來通知上層,請求初始化ZigBee協(xié)調(diào)器,從而建立一個新的網(wǎng)絡[5]。
在編譯程序時,路由節(jié)點上的CC2530芯片被配置為Router,使得該芯片所屬節(jié)點為路由節(jié)點。路由節(jié)點在上電后,會搜尋和自身具有相同PANID的網(wǎng)絡,加入網(wǎng)絡后路由節(jié)點便一直處于工作狀態(tài),實時路由轉(zhuǎn)發(fā)無線信息并管理維護路由表[6]。
在編譯程序時,終端變送器節(jié)點上的無線通信卡被配置為EndDevice,使得該芯片所屬節(jié)點為終端節(jié)點。無線通信卡作為無線變送器節(jié)點的組成部分,需要具備和儀表卡通信的功能。這里分為如下兩種情況[7]。
①儀表卡主動上傳數(shù)據(jù)給無線通信卡。
由于儀表卡采用的是HART協(xié)議[8],所以需要將儀表卡中的有效載荷解析出來,然后進行數(shù)據(jù)再加工。HART協(xié)議格式如圖4所示。
圖4 HART協(xié)議格式
以FF FF FF FF FF 82 37 03 BC 61 4E 00 00 25報文為例,前5個FF為前導符,之后的第1個字節(jié)82為定界符。無線通信卡在收到HART數(shù)據(jù)后首先去掉前導符,然后對接收到的數(shù)據(jù)(除去最后1個字節(jié)的校驗碼)進行校驗,判斷數(shù)據(jù)是否正確。若正確,無線通信卡將響應FF FF FF FF FF 86 37 03 BC 61 4E 00 00 25,無線通信卡在該幀數(shù)據(jù)前面增加3個字節(jié),分別是“^”、本節(jié)點MAC地址的最后1個字節(jié)、父節(jié)點MAC地址的最后1個字節(jié),之后再重新計算整個數(shù)據(jù)幀的異或校驗并附加到最后1個字節(jié)。因此,無線通信卡上傳的數(shù)據(jù)其實是被重新打包為如圖5所示的數(shù)據(jù)幀后,才被上傳到無線網(wǎng)關的。
圖5 數(shù)據(jù)幀格式
②無線通信卡發(fā)送命令給儀表卡。
無線變送器在收到協(xié)調(diào)器的指令后,由無線通信卡去掉由網(wǎng)關本身添加的幀頭并加上前導符,通過中斷喚醒儀表卡后,將其發(fā)送給儀表卡。例如在收到34號(寫阻尼時間)命令時,無線通信卡的工作流程如圖6所示。
圖6 無線通信卡工作流程圖
無線變送器終端節(jié)點中的無線通信卡在上電初始化過程中,需要對儀表卡發(fā)送0號(初始化)命令,以獲取儀表卡的地址信息;再通過無線通信卡將該地址信息添加到無線數(shù)據(jù)幀中,以便于無線數(shù)據(jù)的管理;然后可根據(jù)操作需要發(fā)送13號、15號、150號命令,分別讀取儀表卡的工位號、阻尼時間、小信號切除等參數(shù),并將其發(fā)送到網(wǎng)關進行統(tǒng)一管理;初始化過程結束后,無線通信卡進入工作狀態(tài),周期性地向儀表卡進行數(shù)據(jù)請求。當然,無線變送器也可以在收到上位機下發(fā)的使能Burst命令后進入Burst模式,即儀表卡主動喚醒無線通信卡進行數(shù)據(jù)的上傳。根據(jù)需要,無線變送器可以實現(xiàn)Burst與非Burst狀態(tài)的自由切換。
對無線通信卡與儀表卡之間的兩條控制信號線的說明如下。
①RTS。儀表卡請求數(shù)據(jù)發(fā)送指示,由高到低有效(下降沿)。儀表卡向無線通信卡發(fā)送數(shù)據(jù)前,將該端口信號由高拉低,直到信號發(fā)送完畢。由于無線通信卡可能處于深度睡眠狀態(tài)(基于低功耗考慮),因此在儀表卡發(fā)送數(shù)據(jù)前須提前將RTS拉低tpre,程序時序如圖7(a)所示。
②CD。無線通信卡請求數(shù)據(jù)發(fā)送指示,由高到低有效(下降沿)。利用該端口將數(shù)據(jù)發(fā)送至儀表卡,如無數(shù)據(jù)發(fā)送,CD將保持高電平。無線通信卡向儀表卡發(fā)送數(shù)據(jù)前,將該端口信號拉低,直到數(shù)據(jù)發(fā)送完畢。當CD信號拉低時,無線通信卡立即發(fā)送前導符(preambles),程序時序圖如圖7(b)所示。
圖7 發(fā)送數(shù)據(jù)時序圖
由于無線變送器終端使用電池供電,所以需要著重考慮系統(tǒng)的低功耗性能。定義POWER_SAVING宏,并在f8wConfig.cfg文件中將DRFD_RCVC_ALWAYS_ON定義為FALSE,即關閉始終打開無線接收模塊選項。當系統(tǒng)處于PM2休眠模式下,CC2530會關閉高頻的32 MHz系統(tǒng)時鐘,只保留1個32.768 kHz的低頻時鐘。在系統(tǒng)定時器產(chǎn)生中斷后,系統(tǒng)完成參數(shù)采集和傳送,隨即進入休眠模式[9]。整個處理過程僅需80 ms,處理過程電流平均為5 mA,休眠模式下待機電流為0.14 mA;設定采樣頻率為1 min,則平均電流約為0.15 mA。使用有效容量為4 500 mAh的電池供電,可以持續(xù)工作30 000 h,即1 250天,滿足實際應用需求。
3.2 ARM主控制器模塊軟件設計
主控制器模塊的主要作用是模擬Modbus從設備,從而實現(xiàn)上位機組態(tài)軟件對整個無線檢測系統(tǒng)的控制與管理。主控制器模塊還需實時完成Modbus協(xié)議的數(shù)據(jù)格式與無線傳輸?shù)臄?shù)據(jù)格式之間的轉(zhuǎn)換,以便無線變送器終端節(jié)點進行接收與校驗。ARM主控模塊軟件需實現(xiàn)的功能如圖8所示。
圖8 主控制器模塊功能
主控制器模塊程序采用KEIL編寫,由于要實現(xiàn)Modbus-RTU和Modbus-TCP的功能,不僅要將FreeModbus協(xié)議棧移植到主控制器中,還需修改FreeModbus協(xié)議棧來實現(xiàn)將1個ARM主控制模塊映射為n(由現(xiàn)場應用場景確定)個Modbus從設備的功能,用以實現(xiàn)上位機對不同變送器終端的檢測與管理;最后還需將LWIP協(xié)議棧和μC/OSIII操作系統(tǒng)移植到主控制器模塊上。操作系統(tǒng)的支持使得LWIP的使用更加簡便和可靠[10]。
在Modbus-RTU模式下,系統(tǒng)上電后完成I/O端口初始化、USART串口服務初始化配置、系統(tǒng)時鐘的配置、NVIC中斷配置、Modbus-RTU的配置和使能之后,建立ModbusPoll_task、Usart1Poll_task、UpdateNodeAge_task這3個任務。
在Modbus-TCP模式下,系統(tǒng)首先讀取Flash中存儲的網(wǎng)絡配置信息,進行LWIP和LAN8720的初始化,并在Modbus-TCP模塊的初始化中完成對502端口(Modbus工業(yè)專用端口)的綁定與偵聽。然后建立ModbusPoll_task、Usart1Poll_task、UpdateNodeAge_task這3個任務。
ModbusPoll_task任務是Modbus協(xié)議棧的任務接口。由于FreeModbus協(xié)議棧是一個基于狀態(tài)機模型的協(xié)議,μC/OSIII系統(tǒng)會主動輪詢ModbusPoll_task任務,使該任務實時處理對應于Modbus各個狀態(tài)的事件。
Usart1Poll_task任務通過查詢串口標志位接收來自無線模塊的數(shù)據(jù),在進行異或校驗、保證數(shù)據(jù)正確之后,將接收到的數(shù)據(jù)幀解析并保存到預定義的寄存器中。由于主控制器模塊還要進行網(wǎng)絡管理,當收到無線數(shù)據(jù)幀時,說明對應的無線變送器沒有掉線,這起到一個類似于心跳包的作用,因此需將對應的掉線保持寄存器復位為初始值。
UpdateNodeAge_task任務主要用于定時更新所有無線變送器節(jié)點對應的掉線保持寄存器。μC/OSIII系統(tǒng)每隔一定時間會將所有無線變送器所對應的掉線保持寄存器中的值減1。假如網(wǎng)關在保持寄存器中的值減為0之前,再次收到來自無線變送器的數(shù)據(jù),則將屬于該無線變送器的掉線保持寄存器復位為初始值;如果網(wǎng)關一直未收到無線變送器的數(shù)據(jù),且其掉線保持寄存器中的值已減為0,則可認定該節(jié)點已經(jīng)掉線。
3.3 上位機配置軟件設計
系統(tǒng)上位機配置軟件采用C#語言編寫,主要作用是完成對無線網(wǎng)絡參數(shù)和Modbus-TCP網(wǎng)絡參數(shù)的配置。在上位機軟件中,采用串口控件進行配置,主要完成的配置參數(shù)包括:無線ZigBee網(wǎng)絡的信道號、網(wǎng)絡PANID,Modbus協(xié)議選擇,Modbus-TCP網(wǎng)絡IP地址、端口號,Modbus-RTU模式的波特率、奇偶校驗方式。
系統(tǒng)各模塊制作調(diào)試完成后,進行了系統(tǒng)的整體性能測試。測試環(huán)境構成包括:Modbus-poll上位機軟件、1個無線智能網(wǎng)關、3個路由節(jié)點、30個終端變送器節(jié)點。
CC2530模塊通信距離的官方參數(shù)為300~600 m,但該數(shù)據(jù)是在2個模塊之間沒有任何阻擋的情況下測得的,實際應用中的工作環(huán)境不會這么理想。在無線變送器與路由節(jié)點之間的距離為200 m、發(fā)送間隔為2 s的情況下,經(jīng)實際測試未發(fā)現(xiàn)丟包現(xiàn)象。
無線變送器終端節(jié)點以1 min/次的頻率采集壓力信息,數(shù)據(jù)通過路由節(jié)點路由,最終傳送到無線網(wǎng)關。
基于Modbus-poll軟件通過標準RJ45網(wǎng)口輪流讀取30個終端變送器節(jié)點對應寄存器的值,經(jīng)過長時間的讀取測試,共讀取1 489 256次,未出現(xiàn)失敗現(xiàn)象,這表明整個系統(tǒng)穩(wěn)定、可靠,可滿足工業(yè)現(xiàn)場應用要求。
本文合理、有效地融合了有線儀表、無線ZigBee技術和以太網(wǎng)技術,設計了一套工業(yè)無線檢測系統(tǒng),并將無線ZigBee技術應用于工業(yè)無線檢測系統(tǒng)。Modbus協(xié)議的RTU和TCP兩種模式的實現(xiàn)也使得這套系統(tǒng)的穩(wěn)定性得到了進一步的保障,大大增加了系統(tǒng)整體的使用價值。無線變送器終端節(jié)點低功耗的設計可以使得無線變送器連續(xù)工作數(shù)年,而無線的設計也簡化了儀表系統(tǒng)的安裝過程,這無疑免去了大量的人力和物力。經(jīng)過上百萬次的測試,系統(tǒng)穩(wěn)定、可靠,具有實際的應用價值。
[1] 劉路明,凌志浩. 基于低功耗技術的工業(yè)無線溫度變送器[J]. 計算機工程,2010,36(1):236-238.
[2] 周怡颋,凌志浩,吳勤勤. ZigBee 無線通信技術及其應用探討[J]. 自動化儀表,2005,26(6):5-9.
[3] 孔棟,鄭建宏. 嵌入式 TCPIP 協(xié)議棧 LWIP 在 ARM 平臺上的移植與應用[J]. 通信技術,2008,41(6):38-40.
[4] YIU J. The Definitive Guide to ARM Cortex -M3 and Cortex -M4 Processors[M].Newton:Newnes,2013.
[5] FARAHANI S.ZigBee wireless networks and transceievers[M].Newton:Newnes,2008:329-339.
[6] CALLAWAY E,GORDAY P,HESTER L,et al. Home networking with IEEE 802. 15. 4:a developing standard for low-rate wireless personal area Networks[J]. IEEE Communications Magazine,2002,40(8):70-77.
[7] 崔遜學,左從菊.無線傳感器網(wǎng)絡簡明教程[M].北京:清華大學出版社,2009.
[8] SONG J,HAN S,MOR A,et al.Wireless HART:applying wireless technology in realtime industrial process control[C]//IEEE Real Time & Embedded Technology & Applications Symposium,2008:377-386.
[9] BARONTI P,PILLAI P,CHOOK V W C,et al. Wireless sensor networks:a survey on the state of the art and the 802.15. 4 and ZigBee standards[J]. Computer Communications,2007,30(7):1655-1695.
[10]郭攀鋒. 基于ZigBee協(xié)議的無線心電數(shù)據(jù)傳輸系統(tǒng)設計與研究[D]. 合肥:安徽大學,2010.
Design and Implementation of the Industrial Wireless Detection System
In order to integrate wireless detection technology and Ethernet technology,and seamlessly access to the industrial detection field,an industrial wireless detection system is designed. The system mainly consists of field sensing devices,gateway and IPC software.The field sensing devices collect and transmit the node data with the support of the ZigBee communication technology.The wireless gateway is in charge of establishing and managing the network,and receiving,parsing and repackaging received node data as Modbus format packet to communicate with host computer software. The test shows that the system is in line with the application requirements of industrial field,and is qualified for practical use.
Transmitter Wireless detection Ethernet Gateway ZigBee Modbus Configuratior software Communication Program compilation
徐林(1992—),男,現(xiàn)為華東理工大學控制科學與工程專業(yè)在讀碩士研究生;主要從事工業(yè)無線檢測系統(tǒng)的研究。
TH7;TP274+.2
A
10.16086/j.cnki.issn 1000-0380.201608010
修改稿收到日期:2015-10-19。