?

大型壓裂曲線實時監控系統

2013-09-03 06:32白宇
中國信息化·學術版 2013年7期
關鍵詞:數據源隊列串口

白宇

【摘 要】隨著油田勘探開發的深入,油水井壓裂的工作量越來越多,針對部分區塊的普通壓裂施工成本高,施工難度大,施工效益低的問題,大型壓裂將會越來越多被使用。然而大型壓裂往往需要多套壓裂儀表車組配合施工,每套壓裂車組的儀表車只能監測本車組的串口數據,不能遠程傳輸回現場指揮部和后線科研單位,更不能和其他車組的壓裂數據整合。針對這一問題,基于VC++的編程,本文提出一整套的技術解決方案,實現多車組壓裂數據整合并通過3G網絡遠程實時監控。

【關鍵詞】大型壓裂,串口,VC++, 壓裂數據整合,3G網絡,遠程實時監控

【中圖分類號】 TE325【文獻標識碼】 A【文章編號】1672-5158(2013)07-0014-02

1.緒論

隨著油田勘探開發的深入,油水井壓裂工作量越來越多,其對增儲上產作用越來越巨大,但是部分區塊的普通壓裂施工成本和施工復雜程度越來越高,壓裂效益卻不理想,大型壓裂因其高效益性將成為新的施工重點。然而大型壓裂往往需要多套壓裂車組配合施工,每套壓裂車組有自己獨立的儀表車監測各自的壓裂數據,每套儀表車的數據只能在儀表車內監測,不能遠程傳輸更不能和其他儀表車數據整合。

在本論文中,基于VC++環境下我提出了一整套的技術解決方案來實現多車組壓裂數據的整合并遠程實時監控。首先,通過各套壓裂儀表車的串口讀取實時壓裂數據;其次,通過小型局域網把讀取到的各套壓裂數據匯總;其次,通過本文的算法把各套壓裂數據進行整合,并通過3G網絡遠程發送到后臺服務器;再其次,服務器把數據備份到數據庫的同時,通過vspm軟件把計算機端口虛擬成串口以實時轉發數據給內網的監測終端機;最后,監測終端機使用專業的壓裂分析軟件FracProPT接收整合后的數據,并實時顯示壓裂曲線。方案設計圖見圖1-1。

2.系統模塊的實現

本系統主要分為串口通信,網絡收發,數據同步處理,虛擬串口共四個模塊,下面分別介紹各模塊的實現。

2.1 串口通信

目前,串口通信是工業控制機與底層硬件芯片的主要通信方式,串口一共有RS232和RS485兩種物理接口標準,壓裂大隊的儀表車串口是RS232標準的。在VC++環境下,有兩種編程方式實現串口通信:一是調用Windows的API函數,這種方法雖然具有很強的靈活性,但是使用方法及其復雜;二是使用Microsoft提供的ActiveX控件——MSComm,通過MSComm控件的屬性,方法和事件實現串口操作,可以簡化串口程序的開發[1]。在本系統中,我選擇了MSComm控件。

使用MSComm控件操作串口需要四步:(1)把MSComm控件導入到開發的工程中;(2)打開并配置串口的函數編程;(3)響應MSComm控件的OnComm事件的函數編程,以便截獲串口數據;(4)對串口數據分析函數的編程。

其中,在第(3)步編程中,需要注意調用第(4)步的分析函數。這樣,當串口有數據時,MSComm控件會自動響應OnComm事件的函數完成對數據的截獲,然后程序轉入分析函數,在分析函數里針對壓裂數據做專門的解析,并在內存中開辟空間做好備份副本的工作,等待網絡模塊的轉發。

2.2 網絡收發

網絡通信連接主要有3個參數:通信的目的IP;使用的傳輸層協議(TCP或UDP)和使用的端口號。傳輸層使用TCP或UDP同時為多個應用程序進程提供并發服務時需要區分不同應用程序進程間的連接。套接字Socket就是通過綁定網絡通信連接的3個參數,以實現多個程序進程的數據傳輸的并發服務[2]。

套接字Socket可以看成在兩個程序進行通訊連接中的一個端點,是連接應用程序和網絡驅動程序的橋梁,Socket在應用程序中創建,通過綁定與網絡驅動建立關系。此后,應用程序送給Socket的數據,由Socket交網絡驅動程序向網絡上發送出去。計算機從網絡上收到與該Socket綁定的IP地址和端口號相關的數據后,由網絡驅動程序交給Socket,應用程序便可從該Socket中提取接收到的數據。

套接字Socket是網絡通信的基本構件,無論是3G網絡通信還是局域網通信,都要使用Socket技術。為了簡化利用套接字進行網絡應用程序開發,微軟的MFC對底層的套接字函數進行了封裝,提供了CAsyncSocket類和CSocket類[2]。其中CAsyncSocket類只是對套接字進行簡單的封裝,使用起來比較繁瑣。本系統選擇使用更高級封裝的CSocket類編程。

使用CSocket類開發網絡程序需要四步:(1)在發送端配置好目標機的IP和端口,并編寫建立套接字的代碼;(2)在發送端編寫要發送數據的代碼,并使用CSocket類的Send函數發送[3];(3)在接收端配置計算機端口,并編寫建立套接字的代碼;(4)在接收端利用CSocket類的Accept函數接收數據,并編寫數據處理代碼[3]。

其中,在第(2)步中要把2.1中實時截獲的串口數據引入進來,并實時使用CSocket類的Send函數發送給目標機。在第(4)步中,要實時處理好接收到的串口數據,并在內存中開辟空間做好存儲工作,等待下一模塊的調用。

2.3 數據同步處理

數據同步處理模塊是本系統的核心模塊。因為在實際試驗中發現,各壓裂儀表車每次發出的串口數據個數是不一致的,而且每臺儀表車發出的串口數據個數也是無規律性的,隨機性很強。數據同步處理模塊就是要把從多臺儀表車采集的串口數據在秒級時間上統一同步為一個數據組。這樣再使用網絡模塊傳輸回后方后,經后方機的拆分就可還原出同步的兩個數據源,可以進一步的數據整合處理。

因油田的大型壓裂一般使用兩套壓裂車組,本模塊的核心設計就是使用兩個循環隊列[4][5]作為兩個數據容器。把每臺儀表車獲得的數據分別存入各自的循環隊列,然后再把兩個隊列中同步的數據使用網絡模塊發送出去,留下非同步數據等待下次的同步處理。詳細設計如下:(1)開辟兩個線程專門監聽兩個壓裂儀表車的數據源;(2)對兩個數據源實時傳來的數據分別做分析處理;(3)把(2)中分析的完整數據存入各自的循環隊列;(4)開辟一個新線程檢查兩個隊列的同步情況,把已經同步的數據編組發送出去。

其中需要注意三個子線程和主線程的耦合關系,各線程的開關變量設計。對第(2)步中的數據處理,需要分析數據是否完整,把完整的數據要保存好的同時,殘片的數據也要保存好等待下次殘片數據傳來時的拼接處理。此外還要維護好兩個循環隊列的指針移動,特別是進,出隊列時需要判斷隊列的空與滿,并做相應的處理。

2.4 虛擬串口

通過網絡發送回后方的數據是進入計算機端口的,而專業的壓裂軟件FracproPT只能接收串口的數據。使用vspm虛擬串口軟件可以通過計算機端口成功完成服務器和客戶端的虛擬串口連接及數據通信。原理圖如圖2-1所示:

通過vspm把服務器的端口A虛擬成串口C,把客戶端的端口B虛擬成串口D,虛擬串口C,D通過服務器和客戶端的計算機端口實現了雙向通信。其中虛擬串口C和D需要接2-1的串口通信代碼。

3. 系統測試

為了測試本系統的功能,我通過讀取并解析兩個含有原始壓裂數據的二進制dbs文件,把其中的二進制壓裂數據重新轉換成十進制流式的串口數據,以模擬兩個壓裂儀表車的串口數據源。

其中,圖3-1是實時獲取的兩個數據源的組合數據,圖3-2是兩個數據源的壓裂曲線組合。經過與原始兩個獨立數據源的嚴格分析和對比,1小時09分55秒的模擬采集共4195條數據記錄無差錯,測試取得成功。

4.總結

針對大型壓裂多套壓裂儀表車的數據不能無線傳回后方,更不能數據整合的問題,本文提出了一整套技術解決方案,使得大型壓裂現場的壓裂數據得到整合和實時遠程監控。而且針對部分老式壓裂儀表車沒有串口源的問題,通過本文的技術方案,可以用“軟件”方式接出一個串口數據源實時的轉發出去,同時還不影響前線的生產。特別是解決了技術專家必須親臨儀表車觀察壓裂數據,不能同時監控異地其他壓裂施工過程的問題,為油田壓裂施工的信息化做出了新的貢獻。

參考文獻

[1] 葉克江. 基于串口通信的實時壓力控制系統設計與實現.微計算機信息[J].2009年第25卷 3-3期,p.127-128

[2] 宋坤,劉銳寧,李偉明. MFC程序開發參考大全[M].人民郵電出版社.2007

[3] 刑建春.基于GSM通信技術的無限測控系統設計[J].計算機測量與控制.2004年第4期,p.345-348

[4] 嚴蔚敏,吳偉民.數據結構C語言版. 清華大學出版社[M].2004

[5] 黃國瑜,葉乃菁.數據結構C語言版. 清華大學出版社[M].2003

猜你喜歡
數據源隊列串口
隊列隊形體育教案
圖表中的交互 數據鉆取還能這么用
緩存淘汰算法研究
MCS—51單片機中的多串口通訊技術的應用
青春的頭屑
基于Excel的照片查詢系統開發與應用
再談利用郵件合并功能批量生成準考證
數據有增加 圖表自適應
全國計算機等級考試機房準備工作探討
微機串口的測試診斷
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合