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