張曉慧
摘 要
采油廠采集與監(jiān)控系統(tǒng)主要用于采集和監(jiān)控采油廠油水井、計(jì)量間和聯(lián)合站等設(shè)備單元上的數(shù)據(jù)。在該系統(tǒng)的使用過(guò)程中,需要及時(shí)準(zhǔn)確的對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行有效地轉(zhuǎn)儲(chǔ)。而之前的實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)儲(chǔ)功能無(wú)法提供最大的效率,影響了采油廠的持續(xù)生產(chǎn)。為了改進(jìn)上述問(wèn)題,我們對(duì)系統(tǒng)的數(shù)據(jù)轉(zhuǎn)儲(chǔ)功能進(jìn)行了優(yōu)化,開(kāi)發(fā)了功能強(qiáng)大的組件來(lái)代替原有的功能組件。本文主要介紹通過(guò)自行開(kāi)發(fā)的組件在解決實(shí)時(shí)數(shù)據(jù)庫(kù)和關(guān)系數(shù)據(jù)庫(kù)之間的采集與監(jiān)控系統(tǒng)數(shù)據(jù)轉(zhuǎn)儲(chǔ)的優(yōu)化辦法。
【關(guān)鍵詞】采集與監(jiān)控子系統(tǒng) 采油廠 自行開(kāi)發(fā)組件 實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)儲(chǔ) 功能優(yōu)化
1 采油廠采集與監(jiān)控系統(tǒng)現(xiàn)狀
采油廠采集與監(jiān)控系統(tǒng)是針對(duì)采油廠生產(chǎn)環(huán)節(jié)開(kāi)發(fā)的一套具有對(duì)油水井生產(chǎn)數(shù)據(jù)的實(shí)時(shí)采集、歷史數(shù)據(jù)的存儲(chǔ)、采集數(shù)據(jù)的轉(zhuǎn)儲(chǔ)以及對(duì)采集單元的監(jiān)控和故障可以即時(shí)報(bào)警等功能的綜合平臺(tái)。隨著油田的不斷生產(chǎn),需要采集的信息量不斷增加,實(shí)時(shí)數(shù)據(jù)量巨大,需要及時(shí)準(zhǔn)確的對(duì)這些實(shí)時(shí)數(shù)據(jù)進(jìn)行有效地轉(zhuǎn)儲(chǔ)。而之前的實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)儲(chǔ)功能通過(guò)上位機(jī)組態(tài)軟件提供的簡(jiǎn)單組件來(lái)完成,這樣的功能不能提供最大的效率,影響系統(tǒng)性能,導(dǎo)致整個(gè)數(shù)據(jù)采集系統(tǒng)工作緩慢,更嚴(yán)重的已經(jīng)影響到了油田生產(chǎn)。
正是由于我們?cè)谌粘?duì)該系統(tǒng)的維護(hù)中發(fā)現(xiàn)了這種問(wèn)題,找出了問(wèn)題的根源所在,對(duì)系統(tǒng)的數(shù)據(jù)轉(zhuǎn)儲(chǔ)功能進(jìn)行了優(yōu)化解決。
2 原有采集與監(jiān)控系統(tǒng)轉(zhuǎn)儲(chǔ)功能的實(shí)現(xiàn)
在原有的采油廠采集與監(jiān)控系統(tǒng)中,實(shí)時(shí)數(shù)據(jù)庫(kù)與關(guān)系數(shù)據(jù)庫(kù)之間進(jìn)行數(shù)據(jù)轉(zhuǎn)儲(chǔ)是通過(guò)上位機(jī)組態(tài)軟件提供的ODBCRouter功能組件將數(shù)據(jù)從實(shí)時(shí)數(shù)據(jù)庫(kù)傳到關(guān)系數(shù)據(jù)庫(kù)以及從關(guān)系數(shù)據(jù)庫(kù)到實(shí)時(shí)數(shù)據(jù)庫(kù)。
在將數(shù)據(jù)從實(shí)時(shí)數(shù)據(jù)庫(kù)導(dǎo)入關(guān)系數(shù)據(jù)庫(kù)時(shí)轉(zhuǎn)儲(chǔ)方式為導(dǎo)出,只能使用歷史單記錄功能,將某一數(shù)據(jù)點(diǎn)歷史數(shù)據(jù)信息按時(shí)間順序逐條導(dǎo)入關(guān)系數(shù)據(jù)庫(kù),每一設(shè)定時(shí)間段推送一條數(shù)據(jù)。這導(dǎo)致了數(shù)據(jù)點(diǎn)較多時(shí)會(huì)占用大量關(guān)系數(shù)據(jù)庫(kù)中數(shù)據(jù)空間。而其中的大部分?jǐn)?shù)據(jù)是冗余數(shù)據(jù),沒(méi)有實(shí)際用途。
在將數(shù)據(jù)從關(guān)系數(shù)據(jù)庫(kù)導(dǎo)入實(shí)時(shí)數(shù)據(jù)庫(kù)時(shí)轉(zhuǎn)儲(chǔ)方式為導(dǎo)入,只能使用實(shí)時(shí)唯一單記錄功能,將關(guān)系數(shù)據(jù)庫(kù)中最新更新的一條記錄導(dǎo)入到實(shí)時(shí)數(shù)據(jù)庫(kù)中,而由于只導(dǎo)入單記錄,生產(chǎn)數(shù)據(jù)準(zhǔn)確性不能得到保障,導(dǎo)致信息記錄誤差,造成損失。
3 對(duì)采集與監(jiān)控系統(tǒng)數(shù)據(jù)轉(zhuǎn)儲(chǔ)功能的優(yōu)化
為了解決上述問(wèn)題,研發(fā)出了一種上位機(jī)組件通過(guò)上位機(jī)組態(tài)軟件提供的接口為上位機(jī)組態(tài)軟件提供一系列與關(guān)系數(shù)據(jù)庫(kù)交互的方法。
3.1 從實(shí)時(shí)數(shù)據(jù)庫(kù)到關(guān)系數(shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ)功能組件介紹
(1)需要在關(guān)系數(shù)據(jù)庫(kù)中將需要的表建好,建表的內(nèi)容主要有字段名和類型,實(shí)現(xiàn)的代碼主要如下:
create table test
{
Time datetime not null,
value float,
type string not null
};
(2)交互功能主要代碼如下:
#ADOModule.OpenDataBase();
#ADOModule.OpenRecordSet("select * from test");
#ADOModule.AddNew();
#ADOModule.PutValueByFieldStr("time",StrTime($Curtime,10))
#ADOModule.PutValueByFieldDouble("value",test.pv);
#ADOModule.PutValueByFieldStr("type",testalarm.DESC);
#ADOModule.Update();
3.2 實(shí)現(xiàn)從關(guān)系數(shù)據(jù)庫(kù)到實(shí)時(shí)數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)功能
交互功能主要代碼如下:
#ADOModule.OpenDataBase();
#ADOModule.OpenRecordSet("select * from test");
#ADOModule.GetValueByFieldStr("time",StrTime($Curtime,10))
#ADOModule.GetValueByFieldDouble("value",test.pv);
#ADOModule.GetValueByFieldStr("type",testalarm.DESC);
#ADOModule.Update();
4 優(yōu)化后的實(shí)際應(yīng)用情況
4.1 從實(shí)時(shí)數(shù)據(jù)庫(kù)到關(guān)系數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)
實(shí)時(shí)數(shù)據(jù)庫(kù)中每口井的同一個(gè)參數(shù)的記錄只存在關(guān)系數(shù)據(jù)庫(kù)的一條記錄里,這條記錄是該井參數(shù)的最新實(shí)時(shí)記錄,這樣節(jié)省了存儲(chǔ)空間,減輕了數(shù)據(jù)庫(kù)服務(wù)器的負(fù)荷。
4.2 從關(guān)系數(shù)據(jù)庫(kù)到實(shí)時(shí)數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)
在革新投入使用后,大幅度減少數(shù)據(jù)庫(kù)存儲(chǔ)空間,減輕了服務(wù)器的運(yùn)行負(fù)荷,提高了實(shí)時(shí)數(shù)據(jù)庫(kù)的工作效率。改成多功能數(shù)據(jù)轉(zhuǎn)儲(chǔ)后,節(jié)約了磁盤空間及服務(wù)器崩潰的次數(shù),減少了存儲(chǔ)硬盤數(shù)量及服務(wù)器崩潰導(dǎo)致的油田損失。
5 遠(yuǎn)景預(yù)測(cè)
綜上所述,由于多功能數(shù)據(jù)轉(zhuǎn)儲(chǔ)只需要編寫兩個(gè)組件,就可以適應(yīng)大部分實(shí)時(shí)數(shù)據(jù)庫(kù)和關(guān)系數(shù)據(jù)庫(kù)的需求。該組件使用操作簡(jiǎn)單,可把當(dāng)前采集的實(shí)時(shí)生產(chǎn)數(shù)據(jù)及時(shí)準(zhǔn)確的進(jìn)行轉(zhuǎn)儲(chǔ),增加了工作效率。在空間上可以解決冗余、事務(wù)性處理并發(fā)性問(wèn)題。此項(xiàng)技術(shù)對(duì)油田生產(chǎn)的綜合管理有了進(jìn)一步的提升,優(yōu)化了人力和物力資源,適應(yīng)更大的生產(chǎn)需求以及更精簡(jiǎn)的管理模式,還可以應(yīng)用于各個(gè)廠礦不同的數(shù)據(jù)庫(kù)類型,避免了數(shù)據(jù)類型單一不能及時(shí)準(zhǔn)確的提供信息導(dǎo)致的整個(gè)油田系統(tǒng)的癱瘓?jiān)斐傻膿p失,最大化的減少了油田建設(shè)資金的花銷,為油田企業(yè)的發(fā)展創(chuàng)造良好的信息支撐環(huán)境,使信息化建設(shè)更好地服務(wù)于企業(yè)生產(chǎn)和管理。
參考文獻(xiàn)
[1](美)Karli Watson Christian Nagel 等.C#入門經(jīng)典(第3版)[M].北京:清華大學(xué)出版社,2011.
[2]張琴,孫更新,賓晟.Visual Basic.NET 2008從基礎(chǔ)到項(xiàng)目實(shí)戰(zhàn)[M].北京:化學(xué)工業(yè)出版社,2012.
[3]王嵐.油水井生產(chǎn)與維護(hù)[M].北京:電子工業(yè)出版社,2015.
[4](美)奧尼爾,等著.周傲英,等譯.數(shù)據(jù)庫(kù)原理、編程與性能[M].北京:機(jī)械工業(yè)出版社,2009.
作者單位
大慶信息技術(shù)公司物聯(lián)網(wǎng)分公司 黑龍江省大慶市 163000endprint