包建雄 鄭金吾
(中國石油大學信息與控制工程學院,山東 青島 266580)
氣液兩相流各相產量是監測、控制油氣井和氣藏動態特性的主要依據,目前主要采用分離計量和非分離計量兩種計量方式。前者采用分離器將氣液兩相流分離成氣相和液相進行單相計量。由于分離器存在體積龐大、造價昂貴以及無法進行在線測量等缺點,在海洋、沙漠以及偏遠地區油氣田采用這種計量方式是不現實的。采用非分離計量可實現流量的在線、連續、自動測量,具有占地面積小、投資少、操作費用低等優點[1-2]。油氣田現場大部分地理位置偏僻、環境惡劣且交通不便,目前主要采用有線或人工的方式獲取現場流量數據,這種方式存在鋪設線路復雜、受自然環境影響大,而且工作量大、易出現差錯、實時性差等弊端[3]。
GPRS無線上網技術為流量數據遠傳提供新的傳輸方式。本文通過GPRS模塊利用GPRS網絡將流量數據實時傳至數據中心上位機,實現流量數據的遠程監測,并實時準確發送報警信號,減少意外事故造成損失。數據中心上位機通過Internet網絡發送控制命令,實現遠程控制。
油氣井口兩相流數據采集系統由數據采集單元、流量計量單元以及數據中心上位機三部分組成。其中,數據采集單元完成現場數據的采集并將其轉換成標準信號輸送給流量計量單元;流量計量單元是系統的核心部分,通過流量計量模型計算出各相流量并利用GPRS方式發送到數據中心上位機;數據中心上位機完成流量數據的存儲、顯示以及現場故障分析。現場多個流量計量單元與數據中心上位機采用C/S結構作為網絡連接模式,數據中心上位機使用固定IP地址工作于服務器模式,現場流量計量單元工作于客戶機模式,通過GPRS模塊與服務器建立連接。計量單元與數據中心上位機建立連接后,借助于GPRS網絡以及Internet網絡進行數據傳輸。油氣井口兩相流數據采集系統結構框圖如圖1所示。

圖1 油氣井口兩相流數據采集系統結構框圖Fig.1 The structure of wellhead two-phase flow data acquisition system
圖1中,P表示流體的壓力信號;T表示流體的溫度信號;PD1與PD2表示兩測量孔板處的差壓信號。
流量計量單元以TI公司推出的TMS320VC5509A作為主控制器,應用16位高精度串行A/D轉換芯片AD8344E對現場4路模擬信號進行A/D轉換。選用鐵電存儲器暫存流量數據,借助其外圍集成的上電自動復位、手動復位、硬件看門狗、低壓檢測以及高精度實時時鐘等功能輔助流量計量單元,有效提高流量計量單元硬件性能。為了實現油氣井口兩相流數據的遠程監視,利用GPRS模塊進行數據傳輸,設計I2C轉UART電路,為DSP控制GPRS模塊提供一種解決方案。流量計量單元結構框圖如圖2所示。

圖2 流量計量單元結構框圖Fig.2 The structure of flow metering unit
TMS320VC5509A是TI公司推出的一款低功耗、低成本、高性能數字處理器,可應用于對數據處理實時性要求較高的系統中。其內部集成了非常豐富的外設,通過配置時鐘發生器,可對外部輸入時鐘進行分頻,滿足各種系統對數據處理速度的要求;利用外部存儲器接口(EMIF)實現與異步存儲器、同步突發SRAM以及同步DRAM接口的連接,可進行數據存儲器(SDRAM)的擴展,用于存儲溫度、壓力以及差壓信號;內部集成電路模塊(I2C)有效降低電路設計復雜性,方便了功能的擴展;內置3個多通道緩沖串口(McBSP),通過配置可與SPI協議兼容,實現與串行Flash的SPI通信,完成在線BootLoader。處理器TMS320VC5509A支持靈活的Idle配置,有效降低系統功耗,適用于對功耗要求較高的場合。
GPRS模塊采用UART接口與TMS320VC5509A處理器進行數據傳輸,但需為處理器設計接口轉換電路。TMS320VC5509A集成的片內外設中,EMIF、I2C、McBSP以及USB可用于接口電路的轉換,從而獲得UART接口,實現與GPRS模塊的數據傳輸。針對并行接口轉UART接口電路布線復雜、SPI串行接口轉UART接口以及USB接口轉UART接口軟件調試復雜的情況,選用OD2101芯片來實現I2C接口與UART接口的轉換。OD2101是一款提供I2C轉UART接口的專用協議轉換芯片,通過I2C總線與DSP傳輸數據,有效簡化電路布線復雜度。此外DSP通過I2C總線訪問OD2101的數據讀寫寄存器、UART接收緩沖字節數、I2C可加載字節數以及UART接口控制寄存器,即可實現與UART接口器件進行數據傳輸。OD2101傳輸數據時,I2C總線速率為0~400 kbit/s,UART波特率為300~115 200 Baud,可滿足不同速率數據傳輸應用的場合。在I2C數據接收緩沖區與UART數據接收緩沖區分別有64 B的空間,可最大限度地保存傳輸數據。通過內部集成晶振電路、復位電路減少外圍電路,有效提高了數據傳輸的可靠性。I2C轉UART電路如圖3所示。

圖3 I2C轉UART電路圖Fig.3 The circuit of I2C converting into UART
DSP通過OD2101可非常方便地進行UART接口擴展,實現數據的UART傳輸。當UART數據接收緩沖區接收到新數據時,OD2101通過IRQ引腳輸出低電平觸發DSP進入外部中斷,在外部中斷中,DSP完成對OD2101的UART數據接收緩沖區數據的讀取。當DSP給GPRS模塊發送數據時,將要發送的數據通過I2C總線寫到OD2101的I2C數據接收緩沖區中,然后由OD2101自動將數據通過UART接口傳送給GPRS模塊。
GPRS模塊是實現數據傳輸的橋梁,可將油氣井口氣液兩相流數據以及故障信息通過GPRS網絡經Internet網絡傳送到數據中心上位機;同時,GPRS模塊還接收數據中心發送的控制命令,并將其通過I2C轉UART電路傳送給 DSP。GPRS理論帶寬可達171.2 kbit/s,通過TCP/IP連接可實現數據傳輸。利用其“永遠在線”、按流量計費以及覆蓋范圍廣等優點[4-5],有效解決了以往兩相流計量系統在流量數據傳輸方面的不足。設計中選用的GTM900B是一款雙頻段(EGSM900/GSM1800)GSM/GPRS無線模塊,內嵌TCP/IP協議,無需實現點對點協議(point to point protocal,PPP)也可進行數據傳輸,方便了應用開發和設計。GTM900B提供大容量緩存,適用于高速數據傳輸過程中數據的存儲,防止數據丟失,數據傳輸最高速率可達85.6 kbit/s,滿足數據高速傳輸的要求。GPRS模塊接口電路如圖4所示。

圖4 GPRS模塊接口電路圖Fig.4 The interface circuit of GPRS module
GPRS模塊外圍電路包括UART接口電路、啟動電路、指示電路以及SIM卡電路等。GTM900B有嚴格的開機流程,當電源電壓大于3.4 V時,PWON輸入信號必須保持低電平10 ms以上,否則無法正常開機。設計中選用RC復位電路作為GTM900B啟動電路,完成模塊上電自動開機。LPG用于指示模塊的工作狀態,其輸出不能直接驅動LED,需另行設計狀態指示電路,完成模塊當前工作狀態的顯示。
計量單元軟件設計采用C語言編寫,同時借助CCS仿真環境。其主程序流程圖如圖5所示。

圖5 主程序流程圖Fig.5 Flowchart of the main program
軟件設計采用模塊化設計思想,將流量計量單元各功能模塊的初始化和功能函數均編寫成獨立的函數,然后由主函數及各中斷函數對其進行調用。主函數完成流量計量單元各功能模塊的初始化以及GPRS模塊的入網、注銷操作,各中斷函數完成氣液兩相流數據的采集、處理、顯示、發送等工作。
GPRS模塊分配的IP地址為GPRS內網IP地址,外網無法訪問,為方便數據中心上位機控制流量計量單元,在運行期間,流量計量單元需與數據中心上位機保持連接。此外GPRS模塊按流量計費,因此運行期間數據傳輸的費用只與傳輸的數據量有關,與數據中心上位機連接的時間無關。執行關機操作過程中需重點解決GPRS模塊關機問題,GPRS模塊有正常關機和緊急關機兩種關機方式,兩者的區別在于前者能從注冊網絡中注銷,后者不能。GPRS模塊正常關機流程為在電源電壓工作正常的情況下,PWON引腳被拉低2~3 s,在此過程中完成網絡注銷。流量計量單元在硬件設計上采用GPRS模塊自動開機的方式,PWON信號不受DSP的控制,因此在關機時,DSP除了發送AT指令注銷GPRS網絡之外,還需要強行從注冊網絡中注銷。
I2C轉UART模塊軟件設計包括實現DSP的I2C讀寫函數以及對OD2101寄存器的讀寫函數的編寫。DSP與GPSR模塊之間的數據傳輸通過OD2101完成,DSP將發送給GPRS模塊的數據通過I2C總線寫到OD2101的I2C數據接收緩沖區中;GPRS模塊返回的數據保存在OD2101的UART數據接收緩沖區中,DSP通過I2C總線對保存的數據進行讀取。I2C讀函數程序流程圖如圖6所示。

圖6 I2C讀函數程序流程圖Fig.6 Flowchart of the program of I2C READ function
OD2101在接收到GPRS模塊返回的數據時,會以中斷的形式通知DSP讀取數據。基于GPRS傳輸數據的特點,讀取GPRS模塊返回的所有數據有以下三種方法。
①通過UART數據傳輸波特率以及GPRS模塊返回數據的長度來計算GPRS模塊返回所有數據的時間,DSP進入中斷后等待這段時間,然后通過I2C總線進行讀取。
②DSP進入中斷后連續讀取OD2101的UART數據接收緩沖區接收字節數,當該值與GPRS模塊返回數據長度相等時,DSP通過I2C總線進行讀取所有數據。
③通過UART數據傳輸波特率計算GPRS模塊返回一字節所需要的時間,當這段時間內的OD2101的UART接收緩沖區接收字節數不變時,DSP通過I2C總線進行讀取。
由于大部分GPRS模塊返回的數據長度未知,本設計采用第三種方法。
流量計量單元與數據中心上位機的通信選用網絡通信中比較常用的客戶機/服務器模型[6],流量計量單元工作于客戶機模式,數據中心上位機工作于服務器模式。當數據中心上位機處于監聽狀態時,DSP通過控制GPRS模塊實現流量計量單元與數據中心上位機的連接,將流量數據發往數據中心上位機。GPRS模塊與數據中心上位機的連接程序流程圖如圖7所示。

圖7 建立連接程序流程圖Fig.7 Flowchart of the program for establishing connection
GTM900B支持TCP以及UDP兩種數據傳輸方式,且在TCP數據傳輸方式中可工作于服務器模式。數據中心上位機采用Internet網絡接收數據時,由于外網不能訪問GPRS模塊的IP地址,因此,GTM900B必須工作于客戶機模式。當數據中心上位機采用GPRS模塊接收數據時,數據傳輸雙方的IP地址都為GPRS內網IP地址,此時數據中心GTM900B可工作于服務器模式。
數據中心上位機采用Inprise公司推出的高性能可視化開發工具C++Builder,它具有編譯功能強大、數據庫開發簡單以及網絡開發方便等特點。利用C++Builder提供的數據庫開發工具,有助于程序員開發出功能強大、界面美觀的數據庫。C++Builder支持結構化查詢語言(SQL),編程人員通過編寫SQL語言就能完成對數據庫的所有操作[7]。C++Builder提供與網絡有關的控件,可方便網絡開發,通過修改UDP或TCP有關控件屬性,兩臺計算機就能建立網絡通信[8]。
數據中心上位機與GPRS模塊之間以TCP作為數據傳輸協議。在客戶機與服務器建立連接之前,服務器處于監聽狀態,客戶機通過服務器的IP地址與端口號申請連接。當服務器的IP地址為動態IP地址時,通過動態域名解析的方法使服務器動態IP地址與固定域名相綁定,客戶機通過查詢該域名獲得服務器當前IP地址,然后與其建立連接[9]。當服務器IP地址為固定IP地址時,客戶機可直接與該IP地址的服務器建立連接。
數據中心上位機主要實現用戶管理、流量數據管理、故障診斷以及報警等功能。流量數據管理中包括流量數據的存數、顯示、分析以及查詢等功能,上述操作需要與數據庫相結合,可通過修改C++Builder提供的TQuery控件的SQL屬性來完成訪問數據庫的各種操作[10]。
查找流量數據具體程序如下。
在修改完TQuery控件的SQL屬性之后有兩種執行SQL的方法,Open方法可執行查詢并顯示表中的數據,ExecSQL方法可插入、刪除以及更新數據。
本文提出并實現了基于GPRS的兩相流數據傳輸新方案。該方案利用GPRS模塊的網絡接入功能,實現與數據中心上位機的遠程通信,完成將油氣田現場流量數據實時傳輸到數據中心上位機,不僅提高了數據傳輸的可靠性,而且避免了現場錯綜復雜的連線。與一般無線通信相比,基于GPRS通信方式不受地形、地貌以及距離的限制,因此將GPRS應用到兩相流計量系統中具有一定的實用價值。
[1] 耿艷峰,馮叔初,鄭金吾,等.凝析天然氣計量技術[J].自動化儀表,2005,26(8):1 -3.
[2] 劉春見.基于DSP的凝析天然氣流量計量儀表研制[D].濟南:中國石油大學,2009.
[3] 王乃民,楊炳發,陳麗,等.基于GPRS的油罐多液位遠程監控系統[J].化工自動化及儀表,2009,36(6):59 -62.
[4] 呂捷.GPRS技術[M].北京:北京郵電大學出版社,2001:1-9.
[5] 鐘章隊,蔣文怡,李紅君,等.GPRS通用分組無線業務[M].北京:人民郵電出版社,2001:49-63.
[6] 郭啟軍.基于GPRS的無線數據傳輸系統的研究與設計[D].金華:浙江師范大學,2009.
[7] 朱正茂,彭湃.Borland C++Builder 5實用編程技術[M].北京:中國水利水電出版社,2000:2-5.
[8] 黃嘉輝.Internet與TCP/IP程序設計之C++Builder高手[M].北京:清華大學出版社,2001:7-25.
[9] 劉傳文.動態域名解析技術的研究及其應用[J].臨沂師范學院學報,2008,30(3):130 -132.
[10] 逯燕玲,戴紅,李志明.網絡數據庫技術[M].2版.北京:電子工業出版社,2009:85-104.