梁爽 任杰 四川工程職業(yè)技術(shù)學(xué)院
嵌入式數(shù)據(jù)庫Sqlite在油田監(jiān)控系統(tǒng)中的應(yīng)用
梁爽 任杰 四川工程職業(yè)技術(shù)學(xué)院
基于嵌入式數(shù)據(jù)庫Sqlite的油田監(jiān)控系統(tǒng)以B/S結(jié)構(gòu)為基礎(chǔ),以ASP.Net技術(shù)進(jìn)行開發(fā)。該系統(tǒng)可以有效監(jiān)督管理并儲(chǔ)存現(xiàn)場產(chǎn)生的各種數(shù)據(jù),不同需求的用戶只需通過Web瀏覽器就可清晰地看到由遠(yuǎn)程攝像頭拍攝的石油作業(yè)現(xiàn)場的各種視頻,并及時(shí)調(diào)控各項(xiàng)監(jiān)控設(shè)備。在油田生產(chǎn)作業(yè)過程中,監(jiān)控系統(tǒng)主要借助遠(yuǎn)程攝像頭采集各種視頻數(shù)據(jù),同時(shí)可以對數(shù)據(jù)進(jìn)行及時(shí)的遠(yuǎn)程訪問,使其快速在以太網(wǎng)中輸送,并可壓縮采集到的視頻數(shù)據(jù),進(jìn)而減少數(shù)據(jù)冗余。
嵌入式數(shù)據(jù)庫;油田監(jiān)控系統(tǒng);Sqlite;流程
基于嵌入式數(shù)據(jù)庫Sqlite的油田監(jiān)控系統(tǒng)以B/S結(jié)構(gòu)為基礎(chǔ),以ASP.Net技術(shù)進(jìn)行開發(fā)。該系統(tǒng)可以有效監(jiān)督管理并儲(chǔ)存現(xiàn)場產(chǎn)生的各種數(shù)據(jù),不同需求的用戶只需通過Web瀏覽器就可清晰地看到由遠(yuǎn)程攝像頭拍攝的石油作業(yè)現(xiàn)場的各種視頻,并及時(shí)調(diào)控各項(xiàng)監(jiān)控設(shè)備。
Sqlite作為一種易于管理、使用、維護(hù)及配置的嵌入式數(shù)據(jù)庫,不需實(shí)施安裝、管理,該數(shù)據(jù)庫儲(chǔ)存于單一文件系統(tǒng)中,可以支持多種計(jì)算機(jī)語言,并支持MaxOS,Linux,Windows,Unix等各種操作系統(tǒng)[1]。它的數(shù)據(jù)庫系統(tǒng)是免費(fèi)的,可以在任何一款商業(yè)化產(chǎn)品中廣泛使用,沒有嚴(yán)格的版權(quán)約束。當(dāng)不同需求的用戶在Sqlite官方網(wǎng)站上下載數(shù)據(jù)庫程序后,編譯包含應(yīng)用程序接口的dll文件,其支持多數(shù)編程語言綁定運(yùn)用,支持很多個(gè)系統(tǒng)平臺(tái)。
將Sqlite數(shù)據(jù)庫和目前常見的SQLServer與Or-acle數(shù)據(jù)庫進(jìn)行對比發(fā)現(xiàn),這種類型的數(shù)據(jù)庫不需獨(dú)自運(yùn)行數(shù)據(jù)庫的驅(qū)動(dòng)系統(tǒng),可以靈活調(diào)用不同類型的API數(shù)據(jù)存取流程。它的數(shù)據(jù)庫較小,但數(shù)據(jù)存儲(chǔ)性能佳,存取速度快,是Mysql的1~2倍,能夠存儲(chǔ)大量數(shù)據(jù),并支持2TB數(shù)據(jù)存儲(chǔ)??勺鳛锳SP.Net的服務(wù)器端口數(shù)據(jù)儲(chǔ)存方案,也可用于嵌入式移動(dòng)設(shè)備或者桌面應(yīng)用程序上的數(shù)據(jù)存儲(chǔ)。Sqlite的體積小、操作簡單、運(yùn)行穩(wěn)定,與復(fù)雜的商業(yè)數(shù)據(jù)引擎相比,其更易于維護(hù)管理。
在油田生產(chǎn)作業(yè)流程中,監(jiān)控系統(tǒng)主要借助遠(yuǎn)程攝像頭采集各種視頻數(shù)據(jù),同時(shí)可以對數(shù)據(jù)進(jìn)行及時(shí)的遠(yuǎn)程訪問,使其快速在以太網(wǎng)中輸送,并可壓縮采集到的視頻數(shù)據(jù),進(jìn)而減少數(shù)據(jù)冗余。
用型號(hào)為ARM9下位機(jī)控制攝像頭來收集各種視頻數(shù)據(jù),然后對于采集到的不同數(shù)據(jù)實(shí)施一定程度的壓縮編碼,通過以太網(wǎng)將不同種類的數(shù)據(jù)輸入油田監(jiān)控中心系統(tǒng)。在這個(gè)系統(tǒng)中快速地顯示出不同解碼,最后將監(jiān)控系統(tǒng)中的數(shù)據(jù)輸入Sqlite數(shù)據(jù)庫進(jìn)行儲(chǔ)存[2-3]。若遠(yuǎn)程用戶必須利用Web訪問從而控制整個(gè)流程,那么各個(gè)服務(wù)器的端口則需要參照不同瀏覽器提交的相關(guān)信息,檢索出符合用戶要求的各種類型數(shù)據(jù)信息,再通過TCP/IP協(xié)議將信息輸入客戶端的瀏覽器內(nèi)部。下位機(jī)包括一個(gè)以ARM9芯片為中心的微型數(shù)據(jù)處理器,而不同的下位機(jī)所對應(yīng)的端口、IP不同,在遠(yuǎn)程系統(tǒng)中由IP地址、端口控制下位機(jī)上面的資源。除此之外,油田監(jiān)控系統(tǒng)還包括IIS服務(wù)器,不同用戶終端瀏覽器,采集視頻的端攝像頭等。
3.1 組建Sqlite數(shù)據(jù)庫
這種類型的數(shù)據(jù)庫系統(tǒng)內(nèi)部只帶有一個(gè)命令類型工具,結(jié)構(gòu)簡單,采用Sqlite3版本系統(tǒng)。借助Sqlite3版本可以手工輸入Sqlite數(shù)據(jù)庫所需數(shù)據(jù),然后操控SOL命令??砂凑找韵?種方法組建Sqlite數(shù)據(jù)庫:①登錄互聯(lián)網(wǎng),在Sqlite官方網(wǎng)站中下載Sqlite最新發(fā)行的版本,通過解壓構(gòu)建數(shù)據(jù)庫系統(tǒng);②打開互聯(lián)網(wǎng)cmd窗口,按照網(wǎng)絡(luò)提示要求轉(zhuǎn)移至Sqlite3.exe目錄體系中,按照Sqlite3版本系統(tǒng)的各種不同命令指示符號(hào),輸入abc.db3并回車構(gòu)建以此為名稱的數(shù)據(jù)庫。創(chuàng)建數(shù)據(jù)表主要借助createtable命令進(jìn)行。
3.2 將Sqlite數(shù)據(jù)庫應(yīng)用于油田監(jiān)控系統(tǒng)
在油田監(jiān)控系統(tǒng)中,通常用2008版本的VisualC#作為整套編程程序的開發(fā)工具。借助Sqlite官方系統(tǒng)提出的版本適合C語言及C++語言所用的動(dòng)態(tài)鏈接庫,在具體開發(fā)過程中添加相關(guān)引用,動(dòng)態(tài)鏈接庫中封裝函數(shù)以此為工具調(diào)試。
用已經(jīng)開發(fā)好的VisualC#.Net網(wǎng)站系統(tǒng)把數(shù)據(jù)庫和IIS服務(wù)器對接,然后將不同類型的虛擬目錄設(shè)計(jì)的網(wǎng)站名稱加入其中,對于配置完好的網(wǎng)站需將其放入相關(guān)服務(wù)器的物理路徑系統(tǒng)中,確保安全訪問。對MIME類型進(jìn)行定義,并重新啟動(dòng)IIS服務(wù)器,用戶直接通過瀏覽器就能訪問網(wǎng)站。
采集數(shù)據(jù)流程主要包括數(shù)據(jù)采集、處理模塊,數(shù)據(jù)保存模塊,LCD模塊以及鍵盤模塊。其中數(shù)據(jù)采集模塊主要依照用戶事先設(shè)定的控制參數(shù)采集外部信號(hào),然后將其送至處理模塊。數(shù)據(jù)處理模塊對采集到的所有數(shù)據(jù)實(shí)施數(shù)字濾波,并將濾波后的數(shù)據(jù)儲(chǔ)存到公共數(shù)據(jù)緩沖區(qū)域。LCD模塊將公共數(shù)據(jù)緩沖區(qū)域的各種數(shù)據(jù)遵照用戶所需格式顯示出來,最后由保存模塊負(fù)責(zé)將緩沖區(qū)域的數(shù)據(jù)存放至Sqlite數(shù)據(jù)庫里。鍵盤模塊能夠便于不同類型的用戶在現(xiàn)場控制設(shè)備,且合理設(shè)計(jì)采集到的各種參數(shù)。
網(wǎng)絡(luò)服務(wù)流程主要由WebServer與CGI程序兩部分組成,其中前者在后臺(tái)運(yùn)行過程中守護(hù)整個(gè)流程,并及時(shí)監(jiān)聽來源于網(wǎng)絡(luò)系統(tǒng)的客戶需求。用戶利用IE瀏覽器向所在地系統(tǒng)發(fā)出相關(guān)請求,然后啟動(dòng)CGI流程,將相關(guān)請求轉(zhuǎn)變成服務(wù)器可以識(shí)別的形式,處理Sqlite數(shù)據(jù)庫中的各種數(shù)據(jù),利用Http應(yīng)答消息輸送至客戶端,實(shí)現(xiàn)客戶端和本次系統(tǒng)的相互操作。
將嵌入式數(shù)據(jù)庫Sqlite應(yīng)用于油田監(jiān)控系統(tǒng)中,解決了以往商業(yè)數(shù)據(jù)庫系統(tǒng)開發(fā)存在較大難度、維護(hù)困難及價(jià)格貴的問題。因?yàn)镾qlite數(shù)據(jù)庫用起來十分簡單,不需專業(yè)化數(shù)據(jù)庫對引擎實(shí)施管理,并且整體性能平穩(wěn),運(yùn)行速度快,能夠滿足油田監(jiān)控體系對各種數(shù)據(jù)管理的需求。
[1]李原.嵌入式數(shù)據(jù)庫Sqlite在油田監(jiān)控系統(tǒng)中的應(yīng)用[J].武漢工業(yè)學(xué)院學(xué)報(bào),2011,8(12):168-170.
[2]陳曉東,曹奇英.嵌入式數(shù)據(jù)庫Sqlite的遠(yuǎn)程可視化維護(hù)管理工具的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2011,3(8):116-118.
[3]周洪義.油氣田地面工程事故控制體系的模糊綜合評價(jià)[J].油氣田地面工程,2013,32(8):7-8.
(欄目主持 楊軍)
10.3969/j.issn.1006-6896.2014.11.014