郎建勛,鐘建偉
(湖北民族學(xué)院 信息工程學(xué)院,湖北 恩施 445000)
遠(yuǎn)程監(jiān)控系統(tǒng)是現(xiàn)代化企業(yè)解決方案的重要組成部分之一.富氧陶瓷窯爐作為重要的工業(yè)熱工設(shè)備之一,目前采用的基本上都是本地監(jiān)控系統(tǒng).當(dāng)多個(gè)工程人員需要同時(shí)監(jiān)控窯爐不同設(shè)備和參數(shù)或需要完成不同的系統(tǒng)功能時(shí),本地監(jiān)控系統(tǒng)的不足之處就突顯出來(lái)了[1].解決這一問(wèn)題的方法就是構(gòu)建一個(gè)多點(diǎn)遠(yuǎn)程實(shí)時(shí)監(jiān)控系統(tǒng),使得多個(gè)工程技術(shù)人員可以在各自的終端通過(guò)網(wǎng)絡(luò)對(duì)陶瓷窯爐的工作情況進(jìn)行實(shí)時(shí)監(jiān)控.
遠(yuǎn)程監(jiān)控系統(tǒng)可以采用B/S和C/S兩種模式.相對(duì)于C/S模式,早期的B/S模式存在兩個(gè)方面的不足,較大的網(wǎng)絡(luò)通信數(shù)據(jù)量和相對(duì)貧乏的客戶(hù)端表現(xiàn)形式[2].對(duì)于C/S模式,網(wǎng)絡(luò)通信主要是數(shù)據(jù)的傳輸,而B(niǎo)/S模式則是整個(gè)HTML頁(yè)面的回發(fā),網(wǎng)絡(luò)通信量相對(duì)較大[3].另外,當(dāng)Web技術(shù)尚不成熟的時(shí)候,要在瀏覽器中模擬C/S客戶(hù)端的表現(xiàn)行為是非常困難的[4].
現(xiàn)今,隨著Web技術(shù)的不斷成熟,結(jié)合瀏覽器的多種腳本語(yǔ)言、ActiveX控件和AJAX技術(shù),通過(guò)瀏覽器已經(jīng)幾乎可以模擬C/S模式客戶(hù)端中的所有功能[5].隨著Web技術(shù)的不斷進(jìn)步、網(wǎng)絡(luò)通信速度的不斷提高和處理運(yùn)算能力的不斷增強(qiáng),B/S模式的應(yīng)用領(lǐng)域正在不斷擴(kuò)大[6].相對(duì)于C/S模式,B/S模式從真正意義上實(shí)現(xiàn)了瘦客戶(hù)端,用戶(hù)只需要安裝瀏覽器軟件及其相應(yīng)的協(xié)議皆可,不需要安裝任何專(zhuān)用軟件,節(jié)約了系統(tǒng)的成本[7].再者,B/S模式的客戶(hù)端幾乎不需要任何維護(hù).另外,B/S模式提供了一個(gè)跨平臺(tái)的應(yīng)用環(huán)境,實(shí)現(xiàn)了開(kāi)發(fā)環(huán)境和應(yīng)用環(huán)境的分離,有利于對(duì)系統(tǒng)進(jìn)行擴(kuò)展和更新[8].
從網(wǎng)絡(luò)通信量和客戶(hù)端表現(xiàn)行為的需求出發(fā),分析構(gòu)建基于B/S模式的富氧陶瓷窯爐實(shí)時(shí)監(jiān)控系統(tǒng)的可行性.
本系統(tǒng)的網(wǎng)絡(luò)通信量取決于兩個(gè)方面:通信頻率和單次通信的數(shù)據(jù)收發(fā)量.從通信頻率而言,富氧燃燒陶瓷窯爐的參數(shù)變化相對(duì)緩慢,客戶(hù)端并不需要過(guò)高的更新速度,可以適當(dāng)?shù)臏p小頁(yè)面更新頻率以減小網(wǎng)絡(luò)的通信量.另外,富氧燃燒陶瓷窯爐的界面主要為靜態(tài)的工藝流程圖片和實(shí)時(shí)數(shù)據(jù)顯示標(biāo)簽及參數(shù)設(shè)置文本框構(gòu)成,通過(guò)客戶(hù)端向服務(wù)器發(fā)送的POST請(qǐng)求中多為對(duì)現(xiàn)場(chǎng)設(shè)備參數(shù)的簡(jiǎn)單設(shè)置或?qū)?shí)時(shí)數(shù)據(jù)的請(qǐng)求,通過(guò)采用AJAX技術(shù),可以?xún)H對(duì)部分頁(yè)進(jìn)行更新,即不更新靜態(tài)的工藝流程圖片部分,僅對(duì)需要更新的文本框內(nèi)容進(jìn)行更新即可[9],這樣在每次通信時(shí),回發(fā)的信息主要是窯爐的實(shí)時(shí)數(shù)據(jù),而不會(huì)包含大量的圖片等信息,所以其一次通信所需收發(fā)的數(shù)據(jù)量是很小的.綜合以上兩個(gè)方面的因素,本系統(tǒng)不會(huì)因?yàn)榫W(wǎng)絡(luò)通信量過(guò)大而影響系統(tǒng)的實(shí)時(shí)性能.
從客戶(hù)端表現(xiàn)行為需求而言,客戶(hù)端用戶(hù)一般只是需要查看窯爐的實(shí)時(shí)數(shù)據(jù)變化情況和發(fā)送參數(shù)設(shè)置的請(qǐng)求,其要求類(lèi)似于一般網(wǎng)頁(yè)的數(shù)據(jù)更新和信息提交等,并不需要開(kāi)發(fā)大量的具有復(fù)雜功能的定制控件才能滿(mǎn)足用戶(hù)的要求,所以在開(kāi)發(fā)方面并不存在太大的困難.
綜合以上兩個(gè)方面的分析可知,開(kāi)發(fā)基于B/S模式的富氧陶瓷窯爐的實(shí)時(shí)監(jiān)控系統(tǒng)是可行的.
圖1 陶瓷窯爐B/S監(jiān)控系統(tǒng)的軟件體系結(jié)構(gòu)
本系統(tǒng)的服務(wù)器端的開(kāi)發(fā)工具選用基于.NET Framework 3.5的ASP.NET開(kāi)發(fā).根據(jù)富氧燃燒陶瓷輥道窯的控制要求,B/S監(jiān)控系統(tǒng)應(yīng)實(shí)現(xiàn)以下8個(gè)功能:①用戶(hù)的訪問(wèn)權(quán)限控制;②用戶(hù)的授權(quán)和管理;③窯爐現(xiàn)場(chǎng)設(shè)備參數(shù)的實(shí)時(shí)顯示;④窯爐設(shè)備的運(yùn)行狀態(tài)檢測(cè);⑤系統(tǒng)的故障和報(bào)警提示;⑥控制模式的切換;⑦參數(shù)的設(shè)定;⑧窯爐歷史數(shù)據(jù)記錄的查看.
根據(jù)上述要求,富氧燃燒陶瓷輥道窯B/S監(jiān)控系統(tǒng)的軟件體系結(jié)構(gòu)如圖1所示.
IOperation接口封裝了操作PLC、變頻器和數(shù)據(jù)采集卡等設(shè)備的函數(shù).根據(jù)PLC、變頻器和數(shù)據(jù)采集卡提供的驅(qū)動(dòng)程序,將相關(guān)的設(shè)備操作函數(shù)采用C# Comwarper封裝以便表現(xiàn)層的主頁(yè)面和參數(shù)設(shè)定頁(yè)面調(diào)用.
Roles接口中主要是數(shù)據(jù)庫(kù)業(yè)務(wù)邏輯中的成員角色分配函數(shù),Roles模塊用于為不同層次的用戶(hù)分配權(quán)限.
IGetArchive接口封裝了操作歸檔數(shù)據(jù)的函數(shù),用于操作存放在SQL Server2005數(shù)據(jù)庫(kù)中的窯爐現(xiàn)場(chǎng)的過(guò)程數(shù)據(jù)、故障報(bào)警等信息.
B/S監(jiān)控系統(tǒng)采用異步回發(fā)機(jī)制方便的實(shí)現(xiàn)了頁(yè)面的部分更新,可以不用在每次回發(fā)的時(shí)候都更新整個(gè)頁(yè)面,這樣用戶(hù)從體驗(yàn)的角度來(lái)講就不會(huì)感覺(jué)到整個(gè)頁(yè)面總是在不斷的刷新,使得Web用戶(hù)界面變得更為友好,同時(shí)也減少了和服務(wù)器的通信量[10].
在窯爐B/S監(jiān)控系統(tǒng)的開(kāi)發(fā)中,當(dāng)實(shí)時(shí)顯示現(xiàn)場(chǎng)數(shù)據(jù)時(shí)需要使用MS AJAX Library提供的UpdatePanel、Timer和ScriptManager服務(wù)器控件.
ScriptManager控件管理支持AJAX的ASP.NET網(wǎng)頁(yè)的客戶(hù)端腳本.默認(rèn)情況下,ScriptManager控件會(huì)向頁(yè)面注冊(cè)MS AJAX Library的腳本.這將使客戶(hù)端腳本能夠使用類(lèi)型系統(tǒng)擴(kuò)展并支持部分頁(yè)呈現(xiàn)和Web服務(wù)調(diào)用這樣的功能[11].
Timer控件按用戶(hù)指定的間隔執(zhí)行回發(fā).如果將Timer控件用于UpdatePanel控件,則可以按時(shí)間間隔啟用部分頁(yè)更新.它會(huì)將一個(gè)JavaScript組件嵌入到網(wǎng)頁(yè)中.當(dāng)經(jīng)過(guò)Interval屬性中定義的時(shí)間間隔時(shí),該JavaScript組件將從瀏覽器啟動(dòng)回發(fā).可以在運(yùn)行于服務(wù)器上的代碼中設(shè)置Timer控件的屬性,這些屬性將傳遞到該JavaScript組件.當(dāng)Timer控件啟動(dòng)回發(fā)時(shí),將會(huì)在服務(wù)器上引發(fā)Tick事件,可以創(chuàng)建Tick事件的事件處理程序來(lái)執(zhí)行一些操作,例如讀取窯爐的現(xiàn)場(chǎng)數(shù)據(jù)并更新UpdatePanel子控件的相應(yīng)屬性.
UpdatePanel控件是ASP.NET中AJAX功能的核心部分.UpdatePanel控件與ScriptManager控件結(jié)合使用來(lái)實(shí)現(xiàn)部分頁(yè)呈現(xiàn).部分頁(yè)呈現(xiàn)減少了同步回發(fā)和更新整個(gè)頁(yè)面的需要.在設(shè)計(jì)窯爐的B/S監(jiān)控系統(tǒng)時(shí),可以將需要定時(shí)更新屬性的控件放置在UpdatePanel控件的內(nèi)部,將Timer控件顯式定義為UpdatePanel的AsyncPostBackTrigger.在頁(yè)面加載后,UpdatePanel子控件的屬性就會(huì)以指定的TimerInterval間隔實(shí)現(xiàn)異步更新.
表1 不同角色的權(quán)限設(shè)置
圖3 B/S監(jiān)控系統(tǒng)主頁(yè)面
成員資格管理功能可以通過(guò)使用ASP.NET提供的登錄系列控件實(shí)現(xiàn)用戶(hù)的登錄驗(yàn)證、創(chuàng)建和管理用戶(hù)的功能,但其中存在著一個(gè)問(wèn)題:無(wú)論任何用戶(hù)登陸后,都可以進(jìn)入用戶(hù)管理模塊修改用戶(hù)信息,這在實(shí)際中是絕對(duì)不允許的.為了防止這種情況發(fā)生,可以分別為每個(gè)用戶(hù)分別授權(quán),采用這種方式的工作量是很大的,而且不易實(shí)現(xiàn)和進(jìn)行管理.基于角色的授權(quán)方式可以將授權(quán)與角色相關(guān)聯(lián),通過(guò)為用戶(hù)分配角色來(lái)實(shí)現(xiàn)對(duì)用戶(hù)的權(quán)限控制.這一方式實(shí)現(xiàn)了用戶(hù)與權(quán)限的邏輯分離,提高了管理的效率和可控性.利用ASP.NET中的Roles類(lèi)提供的靜態(tài)方法可以實(shí)現(xiàn)創(chuàng)建角色、為用戶(hù)添加或刪除角色等功能.
在窯爐B/S監(jiān)控系統(tǒng)的設(shè)計(jì)中,根據(jù)實(shí)際情況應(yīng)創(chuàng)建三種類(lèi)型的角色:Observer、Operator和Administrator.這三種角色的權(quán)限設(shè)置如表1所示.
表1中的角色類(lèi)型是在系統(tǒng)開(kāi)發(fā)過(guò)程中實(shí)現(xiàn)的,B/S監(jiān)控系統(tǒng)的用戶(hù)可以被分配多個(gè)角色,即一個(gè)用戶(hù)可以即是Administrator又是Operator,該用戶(hù)則同時(shí)具有管理用戶(hù)和對(duì)系統(tǒng)進(jìn)行檢測(cè)和控制的權(quán)限.從需求的角度而言,Administrator角色的用戶(hù)并不需要直接參與系統(tǒng)的控制;但若有必要,Administrator角色的用戶(hù)可以為自身添加Operator的角色,從而以O(shè)perator的身份參與控制.
下面選擇B/S監(jiān)控系統(tǒng)的兩個(gè)主要頁(yè)面——監(jiān)控系統(tǒng)主頁(yè)面和燃燒器控制頁(yè)面對(duì)系統(tǒng)的行為進(jìn)行測(cè)試.
監(jiān)控系統(tǒng)主頁(yè)面如圖3所示.通過(guò)該頁(yè)面,用戶(hù)可以查看窯爐現(xiàn)場(chǎng)設(shè)備的實(shí)時(shí)工作狀態(tài)和設(shè)備的當(dāng)前參數(shù)值.界面中的文本框顯示的是窯爐現(xiàn)場(chǎng)的溫度、壓力、流量等實(shí)時(shí)數(shù)據(jù),其數(shù)據(jù)的更新是通過(guò)ASP.NET頁(yè)面中的Timer控件的定時(shí)事件來(lái)實(shí)現(xiàn)的.由于采用了AJAX技術(shù),可以實(shí)現(xiàn)部分頁(yè)更新,不用重新刷新整個(gè)頁(yè)面,使得操作人員的能夠獲得和C/S客戶(hù)端幾乎完全相同的體驗(yàn).另外,頁(yè)面中的顯示數(shù)據(jù)和現(xiàn)場(chǎng)的實(shí)測(cè)數(shù)據(jù)幾乎是完全同步的,略有滯后,這主要是由讀取下位機(jī)PLC中的數(shù)據(jù)時(shí)引起的,其實(shí)時(shí)性完全能滿(mǎn)足監(jiān)控系統(tǒng)的要求.
圖3頁(yè)面下部為操作現(xiàn)場(chǎng)設(shè)備的按鈕,可以用于啟停現(xiàn)場(chǎng)的熱工設(shè)備.根據(jù)登入用戶(hù)的角色和權(quán)限的不同,該按鈕只針對(duì)Operator是有效的.為使窯爐能夠安全工作,在操作設(shè)備啟停的時(shí)候設(shè)置有連鎖檢驗(yàn)程序,通過(guò)在下位機(jī)PLC中編程實(shí)現(xiàn).
系統(tǒng)控制和參數(shù)設(shè)定頁(yè)面運(yùn)行時(shí)的效果圖如圖4所示,該頁(yè)面能夠完成對(duì)燒嘴、排煙風(fēng)機(jī)和助燃風(fēng)機(jī)等熱工設(shè)備的自動(dòng)控制.圖中的文本框分別用來(lái)完成參數(shù)設(shè)定、給定值顯示和反饋值顯示.采用AJAX技術(shù)后,可以使得在設(shè)置參數(shù)或讀取反饋數(shù)據(jù)的時(shí)候只刷新部分頁(yè),不需要回發(fā)整個(gè)頁(yè)面.同時(shí),為確保系統(tǒng)參數(shù)設(shè)置的安全性,在Server端有參數(shù)有效性驗(yàn)證程序,當(dāng)用戶(hù)輸入的參數(shù)錯(cuò)誤時(shí),在出現(xiàn)相應(yīng)的告警信息,并阻止用戶(hù)寫(xiě)入非法參數(shù).
圖4 燃燒控制器的參數(shù)設(shè)置頁(yè)面
上述測(cè)試表明,基于B/S模式的監(jiān)控系統(tǒng)從功能、安全性、實(shí)時(shí)性和用戶(hù)體驗(yàn)方面均能夠滿(mǎn)足窯爐監(jiān)控系統(tǒng)的要求.
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展和工業(yè)生產(chǎn)規(guī)模的擴(kuò)大,B/S模式的遠(yuǎn)程監(jiān)控系統(tǒng)正在逐步取代傳統(tǒng)的C/S模式的遠(yuǎn)程監(jiān)控系統(tǒng).本文針對(duì)富氧陶瓷窯爐開(kāi)發(fā)了一套基于ASP.NET的B/S遠(yuǎn)程監(jiān)控系統(tǒng),并對(duì)系統(tǒng)實(shí)現(xiàn)的可行性及關(guān)鍵技術(shù)進(jìn)行了詳細(xì)說(shuō)明.通過(guò)測(cè)試,富氧陶瓷窯爐B/S遠(yuǎn)程監(jiān)控系統(tǒng)能夠滿(mǎn)足窯爐監(jiān)控的各項(xiàng)要求,同時(shí)使用戶(hù)能夠獲得類(lèi)似于C/S客戶(hù)端的體驗(yàn),真正實(shí)現(xiàn)了瘦客戶(hù)端,極大的減輕了客戶(hù)端的開(kāi)發(fā)維護(hù)工作.
[1] 張維江,蔣鑒華,胡國(guó)林.輥道窯溫度監(jiān)控系統(tǒng)分析與展望[J].中國(guó)陶瓷工業(yè),2005,12(4):30-33.
[2] 邊冰.基于PLC硬件系統(tǒng)的隧道窯溫度模糊控制方案[J].佛山陶瓷, 2004,14(8):24-25.
[3] 陽(yáng)鋒,徐建波.AJAX技術(shù)的性能改進(jìn)研究[J].計(jì)算機(jī)工程與科學(xué),2008,30(6):147-148.
[4] 吳吉義,平玲娣.WEB2.0主流應(yīng)用技術(shù)AJAX性能分析[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(8):1913-1914.
[5] 趙煒,張戟,張偉紅.一種在線模糊控制的鍋爐過(guò)熱蒸汽溫度調(diào)節(jié)方法[J].計(jì)算技術(shù)與自動(dòng)化,2007,26(2):27-30.
[6] Vieria J,Mota A.Artificial Neural Networks and Neuro-Fuzzy Systems for Modeling and Controlling Real Systems:A Comparative Study[J]. International Journal of Engineering Applications of Artificial Intelligence,2004,17(3):265-273.
[7] 周楊.AJAX應(yīng)用的典型設(shè)計(jì)模式[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2011,20(1):128-132.
[8] 姜麟.開(kāi)發(fā)基于Web技術(shù)的工業(yè)信息遠(yuǎn)程實(shí)時(shí)監(jiān)測(cè)系統(tǒng)[J].計(jì)算機(jī)應(yīng)用,2000(7):63-65.
[9] 尉學(xué)軍,劉躍. 基于Web的B/S結(jié)構(gòu)實(shí)時(shí)監(jiān)控系統(tǒng)[J].貴州工業(yè)大學(xué)學(xué)報(bào),2002,31(5):62-67.
[10] 孫華,戴躍洪,崔宣.B /S模式下ERP車(chē)間實(shí)時(shí)監(jiān)控系統(tǒng)的實(shí)現(xiàn)[J].現(xiàn)代生產(chǎn)與管理技術(shù),2009,26(1):23-25.
[11] 郎建勛,鐘建偉.富氧陶瓷窯爐監(jiān)控系統(tǒng)的設(shè)計(jì)[J].湖北民族學(xué)院學(xué)報(bào):自然科學(xué)版,2011,29(4):390-392.