包建雄 郑金吾
(中国石油大学信息与控制工程学院,山东 青岛 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.