杜衛(wèi)鋒++袁高翔


[摘 要]某作業(yè)區(qū)自開展SCADA系統(tǒng)的建設(shè)以來,在功圖巡檢、分析和應(yīng)用上一直處于低效率運(yùn)行的狀態(tài)。為了提高效率,并解決一些實(shí)際中出現(xiàn)的問題,本文用Qt Creator設(shè)計(jì)開發(fā)了“小鳥示功圖查看器”,旨在解決油井功圖從采集到上傳分析,以及運(yùn)維管理中的一些盲點(diǎn)和不足。
[關(guān)鍵詞]小鳥示功圖查看器;軟件設(shè)計(jì);軟件開發(fā)
doi:10.3969/j.issn.1673 - 0194.2017.16.080
[中圖分類號]TP311 [文獻(xiàn)標(biāo)識碼]A [文章編號]1673-0194(2017)16-0-02
1 研究背景
某作業(yè)區(qū)于2015年6月開始作業(yè)區(qū)級SCADA建設(shè)。經(jīng)過1年多的探索和實(shí)踐,并在前期開發(fā)的“SCADA輔助工具”基礎(chǔ)上,開始進(jìn)入一個平穩(wěn)運(yùn)行的狀態(tài),但也隨之暴露了一些SCADA系統(tǒng)的缺陷和不足。其中,最大的問題是在功圖采集和分析上,現(xiàn)有力控SCADA系統(tǒng)起到的作用明顯不能滿足生產(chǎn)運(yùn)行的需要。目前的功圖數(shù)據(jù)流是先到功圖服務(wù)器,再通過服務(wù)器安裝的軟件分析并上傳到廠部的功圖平臺,最后在SCADA界面上用瀏覽器控件訪問功圖平臺查看功圖。這種繞了一圈的做法增加了數(shù)據(jù)鏈的長度,導(dǎo)致初步判斷功圖的操作只能在現(xiàn)場進(jìn)行。
2 小鳥示功圖查看器的需求
2.1 功能需求
小鳥示功圖查看器擬需實(shí)現(xiàn)的功能較多,核心功能需求如表1所示。
2.2 性能需求
因程序的核心要連接數(shù)據(jù)庫,所以小鳥示功圖查看器對數(shù)據(jù)庫性能的要求較高。一方面是作業(yè)區(qū)功圖服務(wù)器的平穩(wěn)運(yùn)行;另一方面是程序連接數(shù)據(jù)庫時,對延時、超時時間要盡量縮短,并及時進(jìn)行內(nèi)存回收,保證連接順利。程序?qū)?shí)時性要求不高,但在進(jìn)行一些時間較長的操作時,為避免程序停止響應(yīng),相關(guān)人員應(yīng)設(shè)計(jì)多線程和應(yīng)急中斷控制機(jī)制。
3 小鳥示功圖查看器的概要設(shè)計(jì)
3.1 結(jié)構(gòu)規(guī)劃
小鳥示功圖查看器的結(jié)構(gòu)比較簡單,核心部分是功圖數(shù)據(jù)的讀取和顯示,只要能顯示出功圖,就可以基于功圖數(shù)據(jù)做出各種各樣的功能擴(kuò)展。其層次圖如圖1所示。
3.2 功圖文件設(shè)計(jì)
小鳥示功圖查看器需要對數(shù)據(jù)庫內(nèi)存儲的功圖格式進(jìn)行重新解析,從而設(shè)計(jì)出三種不同的功圖存儲文件(見表2)。
3.3 轉(zhuǎn)儲表設(shè)計(jì)
小鳥示功圖查看器需要連接功圖數(shù)據(jù)庫,將井、井場、站的數(shù)據(jù)讀取出來,同時也要連接地質(zhì)室的數(shù)據(jù)庫,方便調(diào)用和顯示一些重要數(shù)據(jù),但又不能對原有數(shù)據(jù)庫產(chǎn)生太大影響,故需要單獨(dú)設(shè)計(jì)一個數(shù)據(jù)表進(jìn)行存儲。
4 小鳥示功圖查看器的詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)
小鳥示功圖查看器使用Qt Creator進(jìn)行開發(fā)。Qt是1991年奇趣科技開發(fā)的一個跨平臺的C++圖形用戶界面應(yīng)用程序框架,它提供給應(yīng)用程序開發(fā)者建立藝術(shù)級的圖形用戶界面所需的所有功能。Qt很容易擴(kuò)展,并且允許真正的組件編程。
4.1 界面設(shè)計(jì)
仿照老力控工程的功圖查看界面,左邊為井號部分,中間為上下兩塊分別顯示不同功圖,以便對比,右邊為同井同天的功圖列表。和老力控不一樣的是,小鳥示功圖查看器界面上下兩部分功能并不相同,其上方是采集功圖,下方是分析功圖。當(dāng)一口新井在SCADA平臺添加完成后,其傳到功圖服務(wù)器的數(shù)據(jù)不久就會被顯示在上方的列表中,相關(guān)人員可以雙擊查看具體詳情。而分析完成后的功圖(上下兩張)就會顯示在下方區(qū)域,所以下方的井列表就是一個站—井場—井的樹形結(jié)構(gòu),還會標(biāo)志出未采集和未分析成功的數(shù)量,在展開列表中也有顏色區(qū)分。
4.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)
為了系統(tǒng)地對程序內(nèi)部變量進(jìn)行管理,本文設(shè)計(jì)了一個名為數(shù)據(jù)塊(QDataBlock)的結(jié)構(gòu)體,以完成單位功圖節(jié)點(diǎn)的數(shù)據(jù)存儲和結(jié)構(gòu)控制。
4.3 圖表控件設(shè)計(jì)
為了能更科學(xué)、美觀地繪制出功圖曲線,本文使用了一個名為QCustomPlot的第三方開源庫,QCustomPlot的功能非常強(qiáng)大,可以繪制各種各樣的圖表,但這里只需要它的QCPCurve(閉合曲線圖)部分。上下兩塊的數(shù)據(jù)存儲在QDataBlock data中,通過調(diào)用data,往數(shù)據(jù)塊里讀寫各種不同的數(shù)據(jù)。
4.4 擴(kuò)展功能設(shè)計(jì)
功圖繪制成功后,就可以在此基礎(chǔ)上開發(fā)各種擴(kuò)展功能了。最常見的有:功圖的疊加、對比、預(yù)覽、檢視等。在下方區(qū)域內(nèi),因?yàn)樽x取的是分析完成后的功圖,所以需要在單圖表區(qū)域內(nèi)畫兩張功圖曲線,這樣其觀看效果和油井工況平臺就相差無幾了。
4.5 文件系統(tǒng)設(shè)計(jì)
小鳥示功圖查看器可以對功圖文件進(jìn)行多種格式的保存。之所以設(shè)計(jì)多種格式,是為了和其他軟件共通,擴(kuò)展其適用性。目前已實(shí)現(xiàn)了三種:二進(jìn)制(bin)、純文本(txt)和帶格式的文本(exc)。其中,二進(jìn)制是數(shù)據(jù)庫中對應(yīng)字段的數(shù)據(jù),直接可以保存為文件。純文本是用tab和換行符存儲的功圖散點(diǎn)值,這兩種形式簡單,但存儲的數(shù)據(jù)有遺漏和缺失。exc格式也不是筆者的原創(chuàng),在之前,力控的附帶文檔中有一個功圖解析的小程序,相關(guān)人員可以把數(shù)據(jù)庫二進(jìn)制文件解析出來,而解析出的格式就是exc文件的大致雛形。后來筆者在這個格式的基礎(chǔ)上稍加修改,在第一行補(bǔ)充了井號和采集時間,加上一共200條的散點(diǎn)對,構(gòu)成了一個較為完整的數(shù)據(jù)存儲模型。
4.6 多系統(tǒng)聯(lián)動設(shè)計(jì)
在開發(fā)過程中,筆者注意到平日用的數(shù)據(jù)服務(wù)器和本平臺可以實(shí)現(xiàn)共通,這給每一張功圖的進(jìn)一步分析提供了可能性。經(jīng)過不斷測試,筆者加深了對地質(zhì)服務(wù)器數(shù)據(jù)庫結(jié)構(gòu)的了解,從小鳥示功圖程序中單獨(dú)寫出一段代碼,用來從這個數(shù)據(jù)庫中取出所需要的數(shù)據(jù),和數(shù)字化采集數(shù)據(jù)進(jìn)行互相印證、對比,擴(kuò)展軟件的功能。
5 小鳥示功圖查看器的應(yīng)用效果
5.1 推廣情況
小鳥示功圖查看器是“小鳥系列軟件”的第二作,除某作業(yè)區(qū)外,已在其他兄弟單位推廣使用,受到了好評。小鳥示功圖查看器能彌補(bǔ)SCADA上功圖模塊缺失的功能,以及對功圖平臺響應(yīng)慢、功圖查看效率低下等現(xiàn)狀提供另一種解決方案。目前為止,基本功能已開發(fā)完成,其他功能在陸續(xù)完善中,已經(jīng)能為指導(dǎo)生產(chǎn)起到明顯的積極作用。在每天清晨派工時,小鳥示功圖查看器可快速對全區(qū)功圖采集和分析情況進(jìn)行掃描,篩選出需要維護(hù)的井,節(jié)約每日巡檢時間,做到有的放矢,精細(xì)掌控。當(dāng)出現(xiàn)功圖分析率下降時,能快速篩選出肇事功圖,以及分析不成功的基本原因,并同時連接地質(zhì)庫查詢修井和周期采油情況,準(zhǔn)確判斷出是基礎(chǔ)數(shù)據(jù)的問題還是現(xiàn)場采集的問題,減少了不必要的現(xiàn)場核查,對油井生產(chǎn)情況更加了如指掌。
5.2 缺點(diǎn)和不足
小鳥示功圖查看器在運(yùn)行效率上還有提升的空間。首先是啟動速度較慢,雖然啟動成功后會恢復(fù)正常速度,但依然對實(shí)際使用造成了一些影響。其次是沒有為用戶配置保存功能,用戶所做的一些個性化設(shè)置得不到保存,重啟就會失效。此外,部分功能和界面的設(shè)計(jì)有待優(yōu)化,還需多征求用戶的意見和建議,避免閉門造車,出現(xiàn)與需求脫節(jié)的情況。
5.3 后期計(jì)劃
筆者計(jì)劃將小鳥示功圖查看器改造并嵌入到SCADA系統(tǒng)中,作為一個插件,完善SCADA的功能。在之后的數(shù)字油田建設(shè)中,也會充分利用小鳥示功圖查看器的功能和理念,若在開發(fā)中有一些額外的計(jì)劃,也會在后期逐步實(shí)現(xiàn)。
主要參考文獻(xiàn)
[1][英]Ian Sommerville.軟件工程[M].第8版.北京:機(jī)械工業(yè)出版社,2007.
[2]陳銳.數(shù)據(jù)結(jié)構(gòu)[M].北京:機(jī)械工業(yè)出版社,2010.
[3][加]Jasmin Blanchette,[英]Mark Summerfield. C++ GUI Qt 4編程[M].北京:電子工業(yè)出版社,2013.endprint