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