任 帥 王海燕 陳 旭 趙麗君 韓利平 張佐伊
(1. 內(nèi)蒙古西部天然氣股份有限公司,內(nèi)蒙古 鄂爾多斯 017000;2. 內(nèi)蒙古西部天然氣管道運行有限責(zé)任公司,內(nèi)蒙古 呼和浩特 010000;3. 遼寧石油化工大學(xué)石油天然氣工程學(xué)院, 遼寧 撫順 113001)
腐蝕是石化行業(yè)中設(shè)備失效的重要原因之一。大多數(shù)石化工廠操作涉及大量設(shè)備和管道,以及各種工藝介質(zhì),其中包括易燃烴類,劇毒的氣體,強酸或腐蝕劑等。一旦設(shè)備故障發(fā)生,如工藝介質(zhì)泄漏,設(shè)備爆炸等,往往會給企業(yè)和社會帶來巨大的損失[1]。如2005年3月21日,山東平陰魯西化工第三化肥廠有限公司尿素合成塔爆炸,事故是由于應(yīng)力腐蝕開裂導(dǎo)致,最終造成4人死亡,32人受傷;2010年1月7日,蘭州石化公司316#罐區(qū)發(fā)生爆炸,其原因是由于罐區(qū)底部一出口管線彎頭因腐蝕失效導(dǎo)致爆炸,造成6人死亡,6人受傷??v觀世界各國,這種腐蝕事故頻繁發(fā)生,造成的生命和財產(chǎn)損失已經(jīng)到了相當(dāng)嚴重的程度[2],由此可見石化行業(yè)的防腐工作十分重要。
在石油化工領(lǐng)域,有大量關(guān)于腐蝕防護措施和建議的報告,以及對各種材料防腐技術(shù)的分析,但這些信息在時間上和空間上都是獨立的、分散的,查閱這些資料需要消耗大量時間,因此把其合理的整合到一起,并且提供便捷的查詢方式,這樣就能提高防腐工作的效率[3]。數(shù)據(jù)庫技術(shù)為整合這些信息提供了可能,隨著計算機網(wǎng)絡(luò)技術(shù)的發(fā)展,建設(shè)先進的基于計算機網(wǎng)絡(luò)技術(shù)平臺的腐蝕網(wǎng)絡(luò)數(shù)據(jù)庫已日漸成熟,這樣就可以容易地實現(xiàn)授權(quán)的數(shù)據(jù)網(wǎng)上傳送、數(shù)據(jù)修改和管理、數(shù)據(jù)異地共享[4]。近十年我國建立了許多腐蝕數(shù)據(jù)庫[5-13],但由于這些數(shù)據(jù)庫運行環(huán)境各異,數(shù)據(jù)庫編制軟件也不相同,這導(dǎo)致腐蝕信息不能被高效利用。本工作建立的腐蝕案例庫正是基于以上思想開發(fā)完成,案例庫收集了大量石化設(shè)備腐蝕案例,并通過Internet實現(xiàn)案例信息的在線共享。
石化設(shè)備腐蝕案例庫采用的是SQL Server+ASP.NET技術(shù)。ASP.NET是目前主流網(wǎng)絡(luò)開發(fā)技術(shù)之一,本系統(tǒng)所用的ASP.NET為4.0版本,其具有運行性能好、簡易性、靈活性、可管理性等優(yōu)點,使網(wǎng)絡(luò)程序開發(fā)更傾向于智能化,運行起來與windows下的應(yīng)用程序一樣流暢[14]。案例庫數(shù)據(jù)管理采用的是SQL Server2005數(shù)據(jù)庫,它可以在網(wǎng)絡(luò)環(huán)境下運行,支持B/S的結(jié)構(gòu)體系,用來對存儲的數(shù)據(jù)進行組織、管理和檢索。本系統(tǒng)的設(shè)計流程如圖1所示。
圖1 系統(tǒng)設(shè)計流程圖
通過Visual Studio2010的ASP.NET技術(shù)實現(xiàn)系統(tǒng)前臺網(wǎng)站建立,系統(tǒng)設(shè)計語言采用C#,利用SQL Server 2005建立后臺數(shù)據(jù)庫。系統(tǒng)結(jié)構(gòu)采用瀏覽器/服務(wù)器模式(B/S),與客戶機/服務(wù)器(C/S)結(jié)構(gòu)相比,它大大降低了系統(tǒng)維護和更新成本。B/S模式主要由三部分組成:web瀏覽器,web服務(wù)器,數(shù)據(jù)庫服務(wù)器。瀏覽器是用來登錄系統(tǒng),數(shù)據(jù)庫服務(wù)器用于處理數(shù)據(jù),Web服務(wù)器起到了連接web瀏覽器和數(shù)據(jù)庫服務(wù)器的作用。ASP.NET完成瀏覽器網(wǎng)頁的設(shè)計,石化設(shè)備腐蝕案例庫作為數(shù)據(jù)庫服務(wù)器。操作人員可以通過前臺發(fā)出相關(guān)指令,從而對后臺數(shù)據(jù)庫中案例進行管理、查詢等相關(guān)操作。
在許多情況下,腐蝕事故都沒有得到妥善記錄,因此,在建立案例庫之前應(yīng)對收集到的腐蝕案例進行分析歸納。先描述腐蝕案例的基本信息,包括案例概況和發(fā)生腐蝕的設(shè)備名稱等,并對腐蝕案例發(fā)生的工作環(huán)境進行闡述,然后對案例中的設(shè)備進行宏觀檢查,再根據(jù)實際情況找出腐蝕介質(zhì)及腐蝕產(chǎn)物,接著根據(jù)分析的數(shù)據(jù)信息進行綜合分析,總結(jié)設(shè)備腐蝕失效發(fā)生的原因,最后得出結(jié)論并且提出防止同類腐蝕失效事件發(fā)生的建議。因此,本系統(tǒng)把腐蝕案例分為案例基本信息、宏觀檢查、腐蝕介質(zhì)、腐蝕產(chǎn)物、綜合分析、結(jié)論和建議和參考文獻7個部分。這7個部分分別又包括若干個小項,具體分類如表1所示。除此之外,我們?yōu)槊總€案例添加了相應(yīng)的圖片,從而輔助案例說明,幫助訪問者更好的理解案例。
表1 腐蝕案例分析分類表
系統(tǒng)利用網(wǎng)站發(fā)出指令通過web服務(wù)器對案例庫進行管理和詢查,從而實現(xiàn)案例信息網(wǎng)絡(luò)共享的目的。為了提高系統(tǒng)安全性,本系統(tǒng)采用的安全策略是:把用戶分為普通用戶和管理員用戶,其中管理員用戶必須通過賬號和密碼驗證才能對系統(tǒng)進行管理,為了避免SQL注入式攻擊,管理員用戶密碼采用了MD5加密算法;SQL Server2005數(shù)據(jù)庫采用Windows身份驗證登錄。本系統(tǒng)功能整體框架如圖2所示。
圖2 系統(tǒng)功能框架
本系統(tǒng)利用ASP.NET技術(shù)中的Web Form框架來開發(fā)網(wǎng)站,其優(yōu)點是提供了豐富的服務(wù)器控件,從而減少了大量代碼的編寫,并且支持視圖狀態(tài),實現(xiàn)顯示邏輯和處理邏輯的分離(asp代碼和html代碼分離)。在開發(fā)本系統(tǒng)時,應(yīng)用到以下幾個關(guān)鍵 技術(shù):
(1)為了提高網(wǎng)站維護效率,在開發(fā)本網(wǎng)站時,使用了代碼封裝技術(shù),將功能代碼封裝到公共類中,公共類包含的方法分別為:GetConnection、MessageBox、ExecSQL、GetDataSet、checkLogin和RandomNum這6個方法,以避免相同代碼的重復(fù)編寫;
(2)本系統(tǒng)實現(xiàn)的搜索功能,主要是應(yīng)用SQL語句中的Like運算符進行模糊查詢;
(3)使用FrameSet框架設(shè)計后臺管理模塊,用于分割視窗,不同框架之間可以交換信息和資料;
(4)使用DataList控件綁定數(shù)據(jù)并實現(xiàn)分頁,轉(zhuǎn)化GridView控件中綁定數(shù)據(jù)的格式。
圖3是系統(tǒng)的主界面(網(wǎng)站主頁)。普通用戶無需登錄驗證,可以直接訪問系統(tǒng)查詢案例。管理員用戶必須通過賬號和密碼才能登錄管理系統(tǒng)維護案例庫。為了存儲管理員登錄信息,在數(shù)據(jù)庫中建立一張管理員表如圖4所示。
圖3 系統(tǒng)主界面
圖4 管理員信息表
登錄案例庫管理系統(tǒng)后,先通過對某一案例的查詢得出結(jié)果,不僅可以查看搜索到的案例,還可以點擊對應(yīng)案例尾部的編輯和刪除按鈕,這樣就可以對該案例進行編輯和刪除操作,同時,在管理系統(tǒng)中也可以對管理員信息進行添加、修改和刪除操作,如圖5所示。
圖5 管理系統(tǒng)界面
點擊主頁的案例查詢進入案例查詢界面,如圖6所示。查詢方式分為兩種:基本查詢和高級查詢。基本查詢可以先選擇裝置名稱,然后輸入案例名稱關(guān)鍵字查詢;高級查詢主要以設(shè)備名稱、材料類型、失效模式和腐蝕介質(zhì)作為查詢條件來查詢。
圖6 案例查詢界面
本系統(tǒng)對數(shù)據(jù)庫的操作是通過ADO.NET實現(xiàn)的。ADO.NET主要包括Connection、Command、DataReader、DataSet和DataAdapter對象。其中SqlConnection對象用于連接后臺SQL Server數(shù)據(jù)庫,在這之前需在Web.config文件中配置與數(shù)據(jù)庫連接的字符串,這樣可以避免系統(tǒng)轉(zhuǎn)移帶來的困難。Command對象用于對案例的查詢、添加、刪除和修改,這些操作的實現(xiàn)方式都使用SQL語句。具體實現(xiàn)過程如下:
(1)查詢案例:調(diào)用公共類中的GetDataSet方法,首先將查詢的關(guān)鍵語句存儲到Session變量中,然后在search.aspx頁中執(zhí)行SQL語句,最后將查詢結(jié)果綁定到GridView控件,在瀏覽器中顯示出來;
(2)添加、刪除和修改案例:調(diào)用公共類中ExecSQL方法,首先利用SqlConnection對連接到數(shù)據(jù)庫,發(fā)然后使用Command對象的ExecuteNonQuery方法實現(xiàn)相關(guān)操作。
石化設(shè)備腐蝕共享案例庫共享系統(tǒng)利用ASP.NET+SQL Server模式建立,在Windows操作環(huán)境下運行,其結(jié)構(gòu)采用B/S模式。共享系統(tǒng)分為數(shù)據(jù)查詢和數(shù)據(jù)管理兩個部分,為防腐工作提供了一個高效的操作平臺。
系統(tǒng)采用的代碼分裝、邏輯和表示代碼分離、ADO.NET等技術(shù),不僅提高了代碼使用效率,還使整個系統(tǒng)結(jié)構(gòu)層次分明,為今后案例庫的擴展提供了方便。
SQL Server+ASP.NET模式提供了簡易、高效的系統(tǒng)開發(fā)途徑,而且SQL Server+ASP.NET與Windows操作系統(tǒng)有很高的兼容性,又由于Windows系統(tǒng)為當(dāng)下主流操作系統(tǒng),所以這種模式可以應(yīng)用到更多的領(lǐng)域,為更多領(lǐng)域的數(shù)據(jù)共享提供便利。