蘇憲利,鄭一麟
(1.渤海大學(xué) 信息科學(xué)與技術(shù)學(xué)院,遼寧 錦州 121013;2.中國(guó)科學(xué)院 沈陽計(jì)算技術(shù)研究所,沈陽
110068)
基于Web 的數(shù)控機(jī)床遠(yuǎn)程監(jiān)控系統(tǒng),是一種以Internet 為基礎(chǔ)、以B/S 模式為架構(gòu)完成對(duì)遠(yuǎn)程數(shù)控機(jī)床進(jìn)行監(jiān)測(cè)和控制的軟硬件結(jié)合的應(yīng)用系統(tǒng),該應(yīng)用系統(tǒng)可以通過Web 頁面實(shí)現(xiàn)對(duì)遠(yuǎn)程機(jī)床的運(yùn)轉(zhuǎn)情況進(jìn)行監(jiān)測(cè)、對(duì)CNC 系統(tǒng)進(jìn)行操作、對(duì)機(jī)床故障進(jìn)行診斷和分析。
近年來,國(guó)外的高檔數(shù)控機(jī)床一般都配備了一套遠(yuǎn)程的故障診斷和支持系統(tǒng)[1],如西門子、AB 等公司都為各自相應(yīng)的高檔數(shù)控機(jī)床提供了遠(yuǎn)程支持服務(wù),但這些服務(wù)的價(jià)格偏高,且服務(wù)軟件的體系結(jié)構(gòu)一般為C/S 結(jié)構(gòu),對(duì)客戶端的軟硬件條件要求較高,所以在國(guó)內(nèi)市場(chǎng)的接受程度較低。
本文針對(duì)我國(guó)高檔數(shù)控機(jī)床提供了一套基于Web 的遠(yuǎn)程監(jiān)控系統(tǒng),該系統(tǒng)通過無線傳感器網(wǎng)絡(luò)、匯聚節(jié)點(diǎn)和Web 服務(wù)三部分的協(xié)同工作,為用戶提供了數(shù)控機(jī)床的遠(yuǎn)程監(jiān)控和故障診斷服務(wù)。
本系統(tǒng)的開發(fā)是為了使用戶能夠在遠(yuǎn)程監(jiān)測(cè)機(jī)床的運(yùn)轉(zhuǎn)狀況、能夠控制機(jī)床操作和對(duì)機(jī)床的故障進(jìn)行診斷,所以本系統(tǒng)從結(jié)構(gòu)上由數(shù)據(jù)采集節(jié)點(diǎn)、匯聚節(jié)點(diǎn)、工業(yè)以太網(wǎng)、數(shù)據(jù)庫服務(wù)器、Web 專家系統(tǒng)和CNC 系統(tǒng)組成。系統(tǒng)的總體結(jié)構(gòu)圖如圖1 所示。
無線采集設(shè)備(無線傳感器等)的數(shù)據(jù)通過Zigbee 無線網(wǎng)絡(luò)傳送至匯聚節(jié)點(diǎn),有線采集設(shè)備的數(shù)據(jù)通過工業(yè)現(xiàn)場(chǎng)總線傳送至匯聚節(jié)點(diǎn),匯聚節(jié)點(diǎn)對(duì)數(shù)據(jù)進(jìn)行格式處理后通過工業(yè)以太網(wǎng)存入數(shù)據(jù)庫服務(wù)器。Web 專家系統(tǒng)在遠(yuǎn)程瀏覽器端發(fā)出Web 訪問請(qǐng)求,通過Internet 網(wǎng)絡(luò)發(fā)送至Web 服務(wù)器,Web 服務(wù)進(jìn)程進(jìn)行請(qǐng)求分析和響應(yīng),對(duì)瀏覽請(qǐng)求,調(diào)用頁面業(yè)務(wù)邏輯訪問數(shù)據(jù)庫服務(wù)器,產(chǎn)生頁面發(fā)送至瀏覽器端。對(duì)控制請(qǐng)求,Web 服務(wù)進(jìn)程調(diào)用控制業(yè)務(wù)邏輯通過工業(yè)以太網(wǎng)傳送控制命令到CNC 系統(tǒng),完成對(duì)機(jī)床的控制操作,達(dá)到系統(tǒng)的控制目的。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
系統(tǒng)從功能上劃分為三部分:數(shù)據(jù)采集模塊、匯聚節(jié)點(diǎn)處理模塊和Web 服務(wù)模塊,系統(tǒng)的功能結(jié)構(gòu)圖如圖2 所示。數(shù)據(jù)采集模塊完成機(jī)床運(yùn)轉(zhuǎn)狀態(tài)數(shù)據(jù)的采集和現(xiàn)場(chǎng)視頻數(shù)據(jù)的采集。匯聚節(jié)點(diǎn)處理模塊完成采集數(shù)據(jù)的處理、傳輸和存儲(chǔ)。Web 服務(wù)模塊完成Web 服務(wù)的提供和管理,完成控制命令向CNC 系統(tǒng)的傳送。
圖2 系統(tǒng)功能結(jié)構(gòu)圖
數(shù)據(jù)采集模塊由無線傳感器、有線監(jiān)控設(shè)備兩部分組成,無線傳感器采用了ZigBee 近距離無線通信協(xié)議,芯片采用了低功耗的8 位微控制器CC2530,CC2530 支持IEEE 802.15.4 標(biāo)準(zhǔn),還支持ZigBee PRO 網(wǎng)絡(luò)、ZigBee RF4CE 遠(yuǎn)程控制和監(jiān)控等一系列的應(yīng)用。當(dāng)前大多數(shù)數(shù)控機(jī)床系統(tǒng)中使用傳統(tǒng)的有線傳感器網(wǎng)絡(luò)[2],將各種傳感器通過有線方式與匯聚節(jié)點(diǎn)連接起來。這種方式使硬件的設(shè)計(jì)變得簡(jiǎn)單,但是在搭建傳感器網(wǎng)絡(luò)的過程中,纏繞機(jī)床床身的線纜會(huì)使機(jī)床的美觀性下降,同時(shí)也增加了布線的難度[3],無線傳感器就是應(yīng)用于機(jī)床中不適合安裝有線的環(huán)境,如機(jī)床主軸溫度檢測(cè),為了防止主軸溫度過高必須由人工定期進(jìn)行主軸油的添加,通過在主軸內(nèi)部安裝無線傳感器來監(jiān)測(cè)主軸的溫度,解決了主軸溫度監(jiān)測(cè)需要人工實(shí)時(shí)干預(yù)的問題。有線監(jiān)控設(shè)備主要是指高清攝像頭,通過攝像頭對(duì)機(jī)床的運(yùn)轉(zhuǎn)實(shí)況進(jìn)行實(shí)時(shí)監(jiān)測(cè),監(jiān)控?cái)?shù)據(jù)通過現(xiàn)場(chǎng)總線傳送給匯聚節(jié)點(diǎn),匯聚節(jié)點(diǎn)對(duì)數(shù)據(jù)處理后上傳至數(shù)據(jù)庫,Web 服務(wù)模塊通過訪問數(shù)據(jù)庫為Web 專家系統(tǒng)提供實(shí)時(shí)監(jiān)測(cè)圖像,真實(shí)反映現(xiàn)場(chǎng)情況。
匯聚節(jié)點(diǎn)處于星形網(wǎng)絡(luò)的核心位置,需要對(duì)所有的數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā),為了最大限度滿足它的工作需求,匯聚節(jié)點(diǎn)采用USB 直流電源供電。處理器采用基于ARM Cortex-M3 內(nèi)核的微控制器STM32F103[4]。匯聚節(jié)點(diǎn)的功能由兩部分組成,一部分完成采集數(shù)據(jù)的格式處理,把數(shù)據(jù)轉(zhuǎn)換為匯聚節(jié)點(diǎn)能夠識(shí)別的數(shù)據(jù)格式。另一部分完成數(shù)據(jù)的傳輸和存儲(chǔ),數(shù)據(jù)在傳輸前進(jìn)行封裝,產(chǎn)生UDP 數(shù)據(jù)包上傳。這些功能均由ARM 實(shí)現(xiàn)。
本模塊涉及到的數(shù)據(jù)格式有兩種,第一種是由無線傳感器傳輸?shù)腪igBee 協(xié)議的數(shù)據(jù),第二種是由有線監(jiān)控設(shè)備產(chǎn)生的數(shù)據(jù),數(shù)據(jù)到達(dá)匯聚節(jié)點(diǎn)后進(jìn)行數(shù)據(jù)格式的重新封裝,封裝后的數(shù)據(jù)為上行數(shù)據(jù),格式為可變長(zhǎng)數(shù)據(jù)格式。格式的結(jié)構(gòu)如表1 所示。
表1 上行數(shù)據(jù)格式
本部分功能完成了標(biāo)準(zhǔn)數(shù)據(jù)格式到UDP 數(shù)據(jù)包的封裝過程,封裝后的數(shù)據(jù)包通過Socket 處理服務(wù)進(jìn)程寫入數(shù)據(jù)庫服務(wù)器。此部分工作的流程圖如圖3 所示。
圖3 數(shù)據(jù)傳送功能流程圖
由于需要處理的數(shù)據(jù)量很大,本系統(tǒng)引入了優(yōu)先級(jí)機(jī)制來區(qū)分對(duì)待報(bào)警數(shù)據(jù)和非報(bào)警數(shù)據(jù),報(bào)警數(shù)據(jù)需要優(yōu)先傳送,因此在數(shù)據(jù)封裝過程中采用了動(dòng)態(tài)優(yōu)先級(jí)可搶占調(diào)度算法,數(shù)據(jù)的優(yōu)先級(jí)從等待時(shí)間和緊急性兩個(gè)角度進(jìn)行動(dòng)態(tài)的調(diào)整。對(duì)于報(bào)警數(shù)據(jù)賦予最高優(yōu)先級(jí),對(duì)于其它數(shù)據(jù)使用了隨時(shí)間增長(zhǎng)而提高優(yōu)先級(jí)的策略。當(dāng)一個(gè)數(shù)據(jù)到達(dá)時(shí)先判斷數(shù)據(jù)的類型,報(bào)警數(shù)據(jù)立即賦予最高優(yōu)先級(jí),進(jìn)行封裝,如數(shù)據(jù)大小已達(dá)到滿包標(biāo)準(zhǔn),立即發(fā)送。否者查看是否有其它最高優(yōu)先級(jí)數(shù)據(jù),如有繼續(xù)封裝,并提高等待時(shí)間長(zhǎng)的低優(yōu)先級(jí)數(shù)據(jù)的優(yōu)先級(jí),如沒有則查看是否有低優(yōu)先級(jí)數(shù)據(jù),有則封裝打包,沒有則填充至滿包發(fā)送。這種調(diào)度策略保證了系統(tǒng)即具有很高的實(shí)時(shí)性,又有一定的公平性,數(shù)據(jù)打包完成后,使用多線程和Socket 通信機(jī)制[5],完成了數(shù)據(jù)的上傳工作,上傳數(shù)據(jù)由Socket處理服務(wù)進(jìn)程存入數(shù)據(jù)庫。
Web 服務(wù)模塊由三部分組成,數(shù)據(jù)庫服務(wù)器、Web 服務(wù)器和Web 專家系統(tǒng),該模塊實(shí)現(xiàn)了Web 專家系統(tǒng)通過瀏覽器對(duì)遠(yuǎn)程機(jī)床進(jìn)行監(jiān)控的功能。
本模塊的設(shè)計(jì)采用了B/S 架構(gòu)和分布式數(shù)據(jù)庫的設(shè)計(jì)模式,Web 服務(wù)器采用了WebLogic 軟件,數(shù)據(jù)庫采用了Oracle11g,開發(fā)框架為S2SH,開發(fā)技術(shù)為Java+Ajax。
B/S 架構(gòu)是一種瘦客戶端的設(shè)計(jì)模式[6],極大的減輕了客戶端的負(fù)擔(dān),使用者只要能接入互聯(lián)網(wǎng)就能方便的訪問B/S 系統(tǒng),對(duì)客戶端硬件條件要求極低,使用者可以通過手機(jī)、PC 機(jī)和移動(dòng)終端等設(shè)備接入互聯(lián)網(wǎng)使用本系統(tǒng),隨時(shí)隨地的監(jiān)測(cè)機(jī)床的運(yùn)行情況,并根據(jù)實(shí)際需求及時(shí)發(fā)送控制命令。因而提高了系統(tǒng)的實(shí)時(shí)性和可靠性,方便了用戶的使用。
S2SH 框架中Struct2 提供了控制器的功能[7],Spring 提供了容器的管理功能,Hibernate 提供了數(shù)據(jù)庫的管理功能。本模塊的功能結(jié)構(gòu)與S2SH 框架的映射關(guān)系如圖4 所示。
圖4 web 模塊功能映射圖
本模塊中的頁面請(qǐng)求由Struct2 進(jìn)行接收,接收后調(diào)用業(yè)務(wù)邏輯進(jìn)行處理,業(yè)務(wù)邏輯使用相應(yīng)的對(duì)象完成數(shù)據(jù)操作,對(duì)象操作與數(shù)據(jù)庫操作的映射由Hibernate 完成。
本模塊中用戶向Web 服務(wù)器發(fā)出請(qǐng)求后[8],數(shù)據(jù)的傳送需要實(shí)時(shí)進(jìn)行,B/S 結(jié)構(gòu)中實(shí)時(shí)刷新會(huì)產(chǎn)生頁面的閃動(dòng),因而本系統(tǒng)采用了Ajax 技術(shù)解決頁面閃動(dòng)問題,Ajax 技術(shù)使用異步請(qǐng)求技術(shù)[9],由Ajax 發(fā)出數(shù)據(jù)請(qǐng)求,服務(wù)器端進(jìn)行數(shù)據(jù)響應(yīng),傳回客戶端,實(shí)現(xiàn)了局部數(shù)據(jù)的實(shí)時(shí)無刷更新。即提高了實(shí)時(shí)響應(yīng)的時(shí)間,又改善了用戶界面的視覺效果[10]。
本模塊的另一個(gè)功能是把頁面產(chǎn)生的控制命令發(fā)送給CNC 系統(tǒng),控制命令為下行命令,命令格式為固定長(zhǎng)度數(shù)據(jù),命令格式結(jié)構(gòu)如表2 所示。
表2 下行命令格式
實(shí)時(shí)監(jiān)測(cè)頁面實(shí)現(xiàn)了機(jī)床運(yùn)轉(zhuǎn)情況的實(shí)時(shí)監(jiān)測(cè)功能,該頁面通過調(diào)用實(shí)時(shí)數(shù)據(jù)處理邏輯完成對(duì)頁面的刷新。該邏輯主要是使用了Ajax 技術(shù)與前臺(tái)進(jìn)行異步通信,通過前臺(tái)頁面的實(shí)時(shí)Ajax 請(qǐng)求,對(duì)數(shù)據(jù)庫進(jìn)行查詢,并將結(jié)果集送給前臺(tái)頁面,前臺(tái)進(jìn)行局部數(shù)據(jù)更新,實(shí)現(xiàn)了無刷更新的效果。效果圖如圖5 所示。
圖5 機(jī)床狀態(tài)實(shí)時(shí)監(jiān)測(cè)圖
歷史曲線頁面實(shí)現(xiàn)了對(duì)設(shè)備狀態(tài)和設(shè)備參數(shù)歷史曲線的再現(xiàn)顯示功能,該頁面通過調(diào)用曲線繪制邏輯完成曲線的繪制。曲線的繪制分為兩種情況,一種是靜態(tài)繪制,完成用戶指定設(shè)備狀態(tài)和參數(shù)曲線的一次性繪制。另一種是動(dòng)態(tài)繪制,完成用戶指定設(shè)備狀態(tài)和參數(shù)曲線的實(shí)時(shí)繪制。實(shí)時(shí)繪制功能采用了Jquery 技術(shù),實(shí)現(xiàn)曲線實(shí)時(shí)無刷繪制。效果圖如圖6 所示。
圖6 機(jī)床狀態(tài)實(shí)時(shí)曲線圖
設(shè)備信息頁面完成設(shè)備具體信息的顯示功能和特定設(shè)備的控制功能,該頁面通過調(diào)用設(shè)備信息控制邏輯,完成讀寫數(shù)據(jù)庫中的設(shè)備信息,并將頁面對(duì)CNC 系統(tǒng)的操作命令發(fā)出,然后由設(shè)備控制邏輯調(diào)用Socket 服務(wù)器端通信程序,將控制命令傳送給Socket 客戶端程序,再送給CNC 系統(tǒng),完成控制。
用戶登錄界面實(shí)現(xiàn)了用戶登錄的驗(yàn)證功能,該界面通過調(diào)用用戶登錄驗(yàn)證邏輯,對(duì)用戶登錄的合法性進(jìn)行校驗(yàn),并根據(jù)用戶的權(quán)限信息生成用戶界面的菜單,實(shí)現(xiàn)了用戶菜單定制的功能。
經(jīng)過數(shù)據(jù)的對(duì)比,本系統(tǒng)所處理數(shù)據(jù)的準(zhǔn)確性和實(shí)時(shí)性優(yōu)于國(guó)外廠商提供的遠(yuǎn)程監(jiān)測(cè)系統(tǒng),更適合我國(guó)市場(chǎng)需求。本系統(tǒng)運(yùn)行的穩(wěn)定性、可靠性與C/S 監(jiān)控系統(tǒng)的對(duì)比圖如圖7 所示。圖7 中橫軸為運(yùn)行時(shí)間,單位為天,縱軸為響應(yīng)時(shí)間,單位為秒。
圖7 數(shù)據(jù)響應(yīng)時(shí)間對(duì)比圖
通過長(zhǎng)時(shí)間的運(yùn)行和對(duì)比,系統(tǒng)所占資源對(duì)比圖如圖8 所示,圖8 中橫軸為運(yùn)行時(shí)間,單位為天,縱軸為內(nèi)存占用大小,單位為M。通過圖形數(shù)據(jù)對(duì)比分析本系統(tǒng)在性能上完全優(yōu)于對(duì)比系統(tǒng)。
圖8 系統(tǒng)運(yùn)行所占資源對(duì)比圖
本系統(tǒng)在設(shè)計(jì)思想上采用了先進(jìn)的設(shè)計(jì)理念,在開發(fā)技術(shù)上采用了成熟穩(wěn)定的技術(shù),在調(diào)度、運(yùn)算方法上都經(jīng)過了科學(xué)嚴(yán)密的論證和實(shí)驗(yàn),系統(tǒng)經(jīng)過嚴(yán)格的測(cè)試,所得到的測(cè)試數(shù)據(jù)真實(shí)可靠。因此本系統(tǒng)具有很廣泛的應(yīng)用價(jià)值和理論研究?jī)r(jià)值。
[1]張磊. 數(shù)控機(jī)床故障監(jiān)測(cè)與診斷系統(tǒng)的研究[D]. 山東大學(xué),2012.
[2]趙瑞旺. 基于GPRS 的數(shù)控機(jī)床監(jiān)控系統(tǒng)設(shè)計(jì)[J]. 物聯(lián)網(wǎng)技術(shù),2011(2):54-57.
[3]鄭一麟,林滸,陶耀東,等. 基于SOPC 的數(shù)控系統(tǒng)En-Dat2.2 接口的設(shè)計(jì)與實(shí)現(xiàn)[J]. 小型微型計(jì)算機(jī)系統(tǒng),2012(6):1377-1380.
[4]王永虹,徐煒,郝立平. STM32 系列ARM Cortex-M3 微控制器原理與實(shí)踐[M]. 北京:北京航空航天大學(xué)出版社,2008.
[5]Michael J.Donahoo,陳宗斌譯. TCP/IP Sockets 編程(C 語言實(shí)現(xiàn))(第2 版)[M]. 北京:清華大學(xué)出版社,2012.
[6]陳亞輝,繆勇. Struts2 +Spring +Hibernate 框架技術(shù)與項(xiàng)目實(shí)戰(zhàn)[M]. 北京:清華大學(xué)出版社,2012.
[7]鄧威威. 基于Web 的低成本遠(yuǎn)程監(jiān)控網(wǎng)絡(luò)設(shè)計(jì)與應(yīng)用[D]. 浙江大學(xué),2012.
[8]汪小兵. 基于GPRS 的數(shù)控機(jī)床遠(yuǎn)程故障監(jiān)測(cè)系統(tǒng)[D].蘭州理工大學(xué),2011.
[9]陳鋒敏. Ajax 原理與系統(tǒng)開發(fā)[M]. 北京:清華大學(xué)出版社,2009.
[10]師鴻博. 基于SNMP 協(xié)議的Web 監(jiān)控系統(tǒng)[D]. 南京郵電大學(xué),2011.