油水井生产数据分析系统的开发与应用

2021-12-06 06:57王素丽廖德云
石油化工自动化 2021年6期
关键词:水井油井应用程序

王素丽,廖德云

(中国石化中原油田分公司,河南 濮阳 457001)

随着油田生产开发的不断深入,为准确分析和判断采油井和注水井生产状况与措施、生产工艺参数的相关性,对地质研究、油井生产提供准确的指导,技术人员常需要将油水井生产历史数据生成趋势图和报表进行分析。传统做法可采用Excel表格从生产日报中复制粘贴数据,利用插入图表的方法生成曲线。

油田区块经过近20年的开发,采油井和注水井日报表数据量高达400多万条,仅Excel日报文件大小就有110 MiB,技术人员每次统计分析和整理数据都异常复杂,生成一口井的图表常需要0.5 h以上,效率很低。急需开发一套油水井生产数据分析系统,便于地质开发技术人员获得所需要的趋势图和报表。

1 功能需求和技术路线

1.1 功能需求

油水井生产数据分析系统功能主要包括: 实现单位油水井基础资料维护、按照油水井的井号和日期范围查询出数据,为用户输出表格和趋势图。趋势图为多条曲线共用x轴,并可灵活选择显示1个或多个参数的曲线。该系统按照数据处理流程可分为输入、存储、处理和输出等环节。

1.2 技术路线

1.2.1 WebServer接口数据获取

该系统需要获取每日油水井的日报数据,为了不额外增加分析人员数据收集和录取数据的工作量,同时保证数据的准确性、统一性,充分利用生产一线录入在勘探开发业务协同平台(EPBP)上的油水井生产数据表,开发专用的WebServer接口,将日报数据下载并存入该系统的数据库。

1.2.2 MySQL数据库

该系统数据库的选择需要考虑的内容包括: 油水井的日报表涉及的数据量较大,对存储和查询性能有一定的要求;数据库小巧,安装方便、快捷,便于维护;不增加额外的资金投入。综合以上因素,数据库选用了开源数据库MySQL。

1.2.3 应用程序开发

为了分析人员使用的便利,数据分析应用程序采用B/S架构的Web应用程序,部署在局域网的服务器上,只需要连入局域网的电脑都能使用,维护时只需要维护服务器端即可,该方案是目前应用系统常用的开发思路。该数据分析应用程序包括以下几方面:

1)Web服务器应用程序。Web服务器应用程序用于响应前端页面的请求命令,根据命令调用数据处理函数和方法,主要完成数据下载、储存,根据油水井号、日期范围等参数查询出数据,并处理成JSON数据格式输出到前端页面。

2)JavaScript前端页面程序。JavaScript前端页面主要完成人机交互,将用户选择的油水井号和日期范围等参数,连同请求命令传递到Web服务器应用程序,同时接收Web服务器应用程序返回的数据,并在前端页面上呈现用户需要的表格和趋势图。

1.2.4 HighCharts图表

HighCharts 是一个用JavaScript 编写的一个开源图表库,Web 应用程序能够简单便捷地添加有交互性的图表,支持的图表类型有直线图、柱状图、饼状图等多达 20 种。该系统只使用了HighCharts中的直线图组件。

1.2.5 jQuery EasyUI前端网页框架

jQuery EasyUI是建立在流行的jQuery核心和HTML5之上的前端框架,为Web应用程序开发人员提供了完整的组件集合,包括强大的数据表格(DataGrid)、树(Tree)、页面布局(layout)等,技术成熟,使用简单便捷,能大幅减少开发工作量。

2 系统开发

该系统采用B/S网络架构,包括客户端(浏览器端)和服务器端,客户端采用的开发语言有HTML,CSS,JavaScript脚本等,服务器端Web应用程序采用Visual Studio C#语言开发。

2.1 开发环境搭建

2.1.1 建立数据库环境

在MySQL官方网站下载MySQL 8.0.12版本的ZIP文件解压,再解压根目录,按照说明配置文件。以管理员用户运行Windows命令提示符,完成MySQL的安装。

2.1.2 创建数据库及数据库表

MySQL服务启动成功后,创建数据库“MyData”,并根据功能需求创建数据库表,该系统根据业务需求创建了4张数据库表,结构和功能见表1所列。

表1 数据库表结构和功能

2.1.3 后端开发环境

采用Visual Studio 2013 开发平台,新建Web应用程序的名称命名为MyWebApp。Visual Studio 2013的程序运行依赖.NET FrameWork框架,版本选为“v4.0.30319”。在MySQL官方网站下载Connector/NET并安装,在开发IDE界面中将MySQL数据库引擎MySQL.data.dll引用至项目中。在web.config文件中加入数据库连接配置定义。

2.1.4 前端开发环境

前端页面的开发需要用到EasyUI,HighCharts等开源组件,如EasyUI组件引入,从EasyUI官网下载开发js包,解压到项目根目录中,在前端页面文件的块中引入相应的css和js文件。

需要显示图标的页面中引入HighCharts组件,从官网上下载相应的js包,解压到项目的根目录,在前端页面文件的块中引入相应的js文件。

2.2 程序开发

2.2.1 Web服务器应用程序开发(后端)

在解决方案资源管理器中,新建文件夹ASHX用于放置WebServer服务类文件,也就是响应前端请求的程序在ASHX文件夹中添加一般处理程序(*.ashx),依次命名为login.ashx,initialLeftTree.ashx,qureyData.ashx,ExportExcel.ashx和EPBPDataDownload.ashx,一般处理程序是通过“context.Request.QueryString[″命令名″]”获取前端网页发起的请求,根据“命令名”的请求查询和处理数据,并将结果转换拼接成符合前端组件所需要的JSON数据格式的字符串。分别完成“用户注册登录”,“初始化树形菜单”、“数据查询”、生成趋势图和“导出Excel”,“EPBP数据下载”等功能。

2.2.2 前端页面程序开发

在开发IDE界面中,新建“page”文件夹,在该文件夹中新建“default.aspx,login.aspx,queryData.aspx,drawLine.aspx,downLoadData.aspx”等前端页面,分别是网站主页面框架,登录页面,数据查询报表展示页面、趋势图生成页面、数据下载页面等,页面文件分别放置EasyUI的表单控件(input输入框、Date组件、button组件、dataGrid组件),建立人机交互界面,通过javascript语言编写事件代码,完成各项功能。

前端页面和后端页面的交互采用JQuery的AJAX技术,在Button组件点击事件绑定AJAX请求,请求的url与一般应用程序路径一致。AJAX请求传递“井号名称”和“时间范围”等参数需采用encodeURL()命令进行编码,防止出现乱码,在后端处理过程中C#通过System.Web.HttpUtility.UrlDecode()进行反编码。

其中,EasyUI Tree组件、DataGrid组件和HighCharts图表组件的使用按照开源开发文档给出的API属性、事件和方法进行相应的配置和处理,该系统即可完成所需的人机交互。

在drawLine.aspx页面中,通过checkbox完成对HighCharts图表中的曲线的显示或隐藏控制。特别需要提示的是,由于趋势图多条曲线是同一x轴数据,为保证图表的美观,通过对HighCharts最下面的x轴设置为显示,其余曲线的x轴设置为不显示。

2.3 项目编译发布

该系统开发完成后,通过测试,没有出现错误后,点击开发IDE界面中的[生成][发布]命令,将Web项目编译,以“文件系统”方法发布,经过编译生成的网站程序到指定的磁盘文件夹。

2.4 配置IIS并运行

在Windows服务器[控制面板][IIS管理器]中新建网站,取名“MyWeb”,并将发布生成的文件夹配置到网站应用程序的物理路径,应用程序池中的.NET FrameWork版本与新建项目时选择的一致,在应用程序池的高级设置需要将[启用32位应用程序]设置为“true”。指定服务器的IP和空闲端口号(默认80)。鼠标右键点击配置完成的网站“MyWeb”,选择[启动],网站便启动完成,就可以开始油水井的数据分析和图表的生成。

3 系统应用

3.1 单井生产动态分析

通过该系统可以查询出油井和注水井的基础资料信息,还可以查询分析一段时间的历史数据,通过趋势图能够直观显示油水井生产参数的突变和渐变趋势,指导开发人员及时找出变化原因,采取必要的调整措施,稳定生产。

3.1.1 油井分析

该系统可以快速查询出油井机型、泵径、液面、压力、投产以来的油水比例和目前生产情况,报表中还呈现出该井历史上或者一阶段内调整生产的参数和方法及其效果,分析各项生产指标,总结提炼科学的生产组织方式,并分析了解生产潜力,制定开发生产潜力的措施。

3.1.2 注水井分析

该系统可以快速查询出注水井注水层位、分层注水、注水压力、层段配注和实注水量等数据,分析注水压力、注水量和分层吸水量的变化趋势,实现科学注水,提高注水效率,降低能耗。

3.2 井组生产动态分析

该系统除了完成单井分析外,还可以同时查询对比油井和注水井的生产数据,在一个趋势图上展示出来,便于分析注水井及对应油井的生产能力、注水能力、注采比、压力变化、油水井连通状况和注水效果,找出变化原因制定调整开发生产潜力的措施。

MySQL,EasyUI和HighCharts等开源框架和技术开发的油水井生产数据分析系统,较大限度地减轻了传统Excel进行大量数据图表生成所需要的繁琐操作,只需要操作鼠标就可以完成,耗时由原来的0.5 h缩短至5 min;B/S架构的Web网页交互的互操作性更强,维护和使用更容易,其数据访问和处理都变得简单方便。

猜你喜欢
水井油井应用程序
山西发现一口2000余年前的大型木构水井
油井遭袭
水井的自述
面向剩余油挖潜的单油井控制区域划分方法研究
删除Win10中自带的应用程序
凡水井处皆听单田芳
谷歌禁止加密货币应用程序
抽油井杆管防偏磨原因分析及对策研究
乌龟与水井
三星电子将开设应用程序下载商店