王 凱 陳全印 吳 薇
(西安計量技術(shù)研究院,西安 710068)
近年來,伴隨著我國經(jīng)濟(jì)實力的不斷增強(qiáng),計量事業(yè)的蓬勃發(fā)展,業(yè)務(wù)量的不斷增加,如何有效地提升計量技術(shù)機(jī)構(gòu)的管理水平、工作效率、服務(wù)質(zhì)量,從而提高整體競爭力是目前計量工作面臨的重要課題。
計量檢測數(shù)據(jù)的獲取、處理與管理是計量技術(shù)機(jī)構(gòu)日常檢測工作中最為常見,也最為繁瑣的一項工作。該工作是保證檢定、校準(zhǔn)數(shù)據(jù)和結(jié)果準(zhǔn)確性的關(guān)鍵,具有重復(fù)度高、工作量大、數(shù)據(jù)計算量大、專業(yè)性強(qiáng)、技術(shù)性含量高的特點,以往靠人工處理費時費力,準(zhǔn)確性難以保證,并且智能分析、統(tǒng)計、匯總檢測數(shù)據(jù)難度大,因此,對數(shù)據(jù)信息實行智能化管理、自動化處理是當(dāng)務(wù)之急[1]。
基于上述原因,為了有效地提高工作效率與工作質(zhì)量,針對我院的燃油加油機(jī)檢定項目,主要依據(jù)JJG 443—2006《燃油加油機(jī)》檢定規(guī)程[2],提出了構(gòu)建燃油加油機(jī)檢測數(shù)據(jù)智能化管理系統(tǒng)。
燃油加油機(jī)檢測數(shù)據(jù)智能化管理系統(tǒng)是基于Word+.NET+SQL Server解決方案。該方案主要是通過使用.NET平臺開發(fā)的應(yīng)用程序,對通過便攜或者固定的計算機(jī)終端錄入系統(tǒng)的原始檢測數(shù)據(jù)按照規(guī)程的規(guī)定要求進(jìn)行智能化處理,將數(shù)據(jù)處理結(jié)果插入已經(jīng)設(shè)計好的Word模版中,同時把相應(yīng)的檢測數(shù)據(jù)及其處理結(jié)果存儲到SQL Server數(shù)據(jù)庫中;當(dāng)需要對檢測數(shù)據(jù)以及數(shù)據(jù)處理結(jié)果進(jìn)行查詢、統(tǒng)計、匯總時從數(shù)據(jù)庫中提取相應(yīng)數(shù)據(jù);從而構(gòu)成以一個集數(shù)據(jù)處理、統(tǒng)計、匯總,業(yè)務(wù)查詢、分析為一體的智能化管理系統(tǒng)。
該解決方案成功實施的關(guān)鍵是“Word數(shù)據(jù)自動轉(zhuǎn)化引擎”的實現(xiàn),其數(shù)據(jù)轉(zhuǎn)換如圖1所示。
圖1 Word數(shù)據(jù)自動轉(zhuǎn)化示意圖
基于該解決方案實現(xiàn)“燃油加油機(jī)檢測數(shù)據(jù)智能化管理系統(tǒng)”的優(yōu)點如下:
1)實現(xiàn)計量檢測從數(shù)據(jù)采集,檢測數(shù)據(jù)有效性驗證、自動處理、自動計算,檢測標(biāo)準(zhǔn)自動查找;記錄審核、簽發(fā)、打??;信息數(shù)據(jù)統(tǒng)計、匯總、綜合查詢、科學(xué)分析、領(lǐng)導(dǎo)管理等全過程智能化、自動化。
2)記錄模版靈活控制。由于原始記錄模版是采用Word編輯生成,而Word具有普及面廣,易操作等特點;當(dāng)原始記錄、數(shù)據(jù)匯總等模版的要求發(fā)生變化時,用戶可以根據(jù)實際情況方便、快捷地重新定制。
3)易于與其它系統(tǒng)集成。系統(tǒng)中的所有數(shù)據(jù)都是以XML形式存在,且都有對應(yīng)的Schema,這樣系統(tǒng)所采集進(jìn)來的數(shù)據(jù)或已匯總的數(shù)據(jù)都可被外部系統(tǒng)使用。
Microsoft Office Word是使用最為廣泛的辦公軟件,它具有強(qiáng)大的功能,非常友好的用戶操作界面。在實際應(yīng)用中,Word不僅具有文字編輯功能,還可作為其它應(yīng)用程序的可擴(kuò)展環(huán)境輸出結(jié)果。在本系統(tǒng)中,通過應(yīng)用程序?qū)ord進(jìn)行控制,滿足特定要求。
圖3 數(shù)據(jù)自動轉(zhuǎn)化引擎類圖
數(shù)據(jù)自動轉(zhuǎn)化引擎主要解決系統(tǒng)與Word交互的問題,通過引擎把與檢測相關(guān)的數(shù)據(jù)及其處理結(jié)果與數(shù)據(jù)庫中存儲的信息數(shù)據(jù)輸出到設(shè)計好的Word模板上,它的作用相當(dāng)于一個數(shù)據(jù)轉(zhuǎn)換管理器,以一個軟件組件的形式運行在業(yè)務(wù)應(yīng)用中?!耙鎯?nèi)部用例”的活動圖如圖2所示。
引擎設(shè)計思路是從夠用、靈活和低成本的設(shè)計原則出發(fā)。基于設(shè)計原則,引擎的設(shè)計主要從以下幾個方面考慮:
1)引擎支持順序、分支、并發(fā)、循環(huán)、同步、異步流程的流轉(zhuǎn),在分支上可以定義條件,實現(xiàn)按條件自動流轉(zhuǎn),條件轉(zhuǎn)移之間還可設(shè)置邏輯關(guān)系;
2)用戶之間相互協(xié)作,交換數(shù)據(jù),從而提高引擎處理業(yè)務(wù)流程的靈活性和適用范圍;
3)如引擎狀態(tài)異常,可對引擎進(jìn)行重新啟動,如重新啟動幾次后仍然異常,發(fā)信號給備份服務(wù)器啟動引擎,加載原有引擎工作狀態(tài),保證關(guān)鍵業(yè)務(wù)不被中斷。
Word的開發(fā)形式一般有兩種:一種是VBA;另一種是高級語言。本系統(tǒng)采用高級語言的形式,由.NET環(huán)境下的C#托管代碼,該方法執(zhí)行效率高,可控性強(qiáng)。采用程序控制的形式需要導(dǎo)入COM組件,利用COM技術(shù)在C#程序中使用COM提供的各種函數(shù)來達(dá)到完全操作Word文檔的目的;COM技術(shù)既提供了組件之間進(jìn)行交互的規(guī)范,也提供了實現(xiàn)交互的環(huán)境。
數(shù)據(jù)自動轉(zhuǎn)換組件最終是借助映射機(jī)制實現(xiàn)數(shù)據(jù)自動轉(zhuǎn)換,具體方法是:通過調(diào)用COM組件中的對象,來實現(xiàn)數(shù)據(jù)自動轉(zhuǎn)換。步聚如下:讀取模版,建立映射,導(dǎo)出數(shù)據(jù),生成Word文檔。添加調(diào)用的COM組件為:Microsoft.word 11.0 object library,調(diào)用后會在“解決方案資源管理器”引用項中多出三個引用:Microsoft.Office.Core,Microsoft.office.Inte- rop.Word,VBIDE。引擎的實現(xiàn)就圍繞著以上三個引用。
數(shù)據(jù)自動轉(zhuǎn)化引擎的功能實現(xiàn)采用面向?qū)ο蟮姆椒ǎ瑢⒁婢哂械墓δ芊殖筛鱾€方面,進(jìn)行開發(fā)。引擎主要包含:WordOperation類,F(xiàn)unctionManage類,DbHelperOleDb類,AutoGenerate類,類圖如圖3所示。把這些類封裝成組件,相互配合實現(xiàn)數(shù)據(jù)自動轉(zhuǎn)化引擎的功能。
該系統(tǒng)完成的主要功能模塊:系統(tǒng)管理,數(shù)據(jù)庫維護(hù),計量基礎(chǔ)數(shù)據(jù)管理,計量檢測數(shù)據(jù)計算平臺,計量檢測數(shù)據(jù)管理,計量標(biāo)準(zhǔn)器及輔助檢測設(shè)備管理,計量檢定規(guī)程、規(guī)范及人員管理,模板管理,數(shù)據(jù)統(tǒng)計分析管理等。
系統(tǒng)采用三層體系架構(gòu),將各種通用的或?qū)S玫哪K封裝在組件中,作為一個共享的服務(wù)的集合,它是一種跨應(yīng)用、可重用的服務(wù)平臺,便于開發(fā)與維護(hù),與目前計算機(jī)軟件技術(shù)的發(fā)展相一致。系統(tǒng)具有良好的伸縮性、擴(kuò)展性,能最大限度地重用功能相同的組件,達(dá)到軟件組件重用性的目的【3】。這三層分別是:客戶層、業(yè)務(wù)處理層、數(shù)據(jù)層。系統(tǒng)體系架構(gòu)如圖4所示。
圖4 系統(tǒng)體系架構(gòu)
本平臺的開發(fā)環(huán)境為C#.Net2008,WCF(Windows Communication Foundation),SQL Server 2005【4】。下面著重介紹計量檢測數(shù)據(jù)計算平臺的實現(xiàn),運行界面如圖5所示。
該平臺能夠采用便攜或者固定的計算機(jī)終端現(xiàn)場采集原始檢測數(shù)據(jù),通過計算、分析得出檢定結(jié)論;可生成、查看、保存檢定原始記錄文檔,保存數(shù)據(jù)到數(shù)據(jù)庫存檔;可對相關(guān)計算參數(shù)進(jìn)行設(shè)置管理,根據(jù)參數(shù)系統(tǒng)能實時更新數(shù)據(jù)。平臺界面參照原始記錄的格式進(jìn)行設(shè)計,減小了操作人員的熟悉時間,降低了誤操作的可能性,檢定員在界面上輸入必要的計算參數(shù),系統(tǒng)會自動計算出過程變量和最終結(jié)果。輸入的必要參數(shù)包括:檢定介質(zhì)油品和量器材質(zhì)、標(biāo)準(zhǔn)值、分度值、油槍出口處溫度、標(biāo)準(zhǔn)量器內(nèi)溫度、標(biāo)準(zhǔn)量器刻度、加油機(jī)示值、時間和外觀情況。結(jié)果值包括:標(biāo)準(zhǔn)量器示值、流量、實際體積值、單次測量相對誤差、示值誤差、重復(fù)性和檢定結(jié)論。對于常用參數(shù)可以保存到系統(tǒng)中,避免重復(fù)輸入。原始記錄生成后可以直接打印或者保存為Word文檔,也可以保存到后臺數(shù)據(jù)庫,并提供查看,方便了以后檢定信息數(shù)據(jù)的管理[5-6]。
本文介紹了我院的燃油加油機(jī)檢測數(shù)據(jù)自動化處理軟件, 該軟件使用后極大地減輕了我院加油加氣檢測中心檢定人員的工作量,提高了工作效率與工作質(zhì)量,規(guī)范了檢測數(shù)據(jù)和文檔管理,使檢定工作更加有效、統(tǒng)一的開展。在該系統(tǒng)基礎(chǔ)上還可進(jìn)一步進(jìn)行檢定項目的擴(kuò)充,使軟件系統(tǒng)覆蓋的檢定項目更加全面,更加符合計量技術(shù)機(jī)構(gòu)的業(yè)務(wù)需求。
圖5 系統(tǒng)運行界面
[1] 黃松濤,水利民.計量器具軟件檢測亟待開展.計量技術(shù),2009(6)
[2] 王子鋼,等.JJG 443—2006 燃油加油機(jī)檢定規(guī)程
[3] 汪洋.NET應(yīng)用架構(gòu)設(shè)計:原則、模式與實踐.北京:機(jī)械工業(yè)出版社,2012
[4] Dejan Sunderic著.SQL Server 2005 T-SQL&.NET高級編程.第3版.曹俊,姜龍芳,譯.北京:清華大學(xué)出版社,2008
[5] 周濤,周星明.加油機(jī)檢定中應(yīng)注意的兩個問題.計量技術(shù),2008(1)
[6] 李論國.加油機(jī)檢定技術(shù)若干問題的研究.中國高新技術(shù)企業(yè),2007(5)