基于安卓的钻井液班报系统的设计与实现

2017-05-16 00:24刘胜娃苏兴华詹胜
物联网技术 2017年4期
关键词:安卓钻井液数据库

刘胜娃+苏兴华+詹胜

摘 要:在长庆钻井公司的基层井队中,传统的钻井液数据记录和计算方式都通过纸笔和计算器手工完成,在条件艰苦的井场中,这种方式记录计算的数据准确性、实时性和正确性都难以保证。文中介绍了一种基于安卓系统的钻井液班报表系统实现方法,试点使用表明,该系统显著减轻了井队技术员的负担,提高了工作效率,提升了数据质量,得到用户的广泛好评。

关键词:安卓;钻井液;数据库;信息化

中图分类号:TP309 文献标识码:A 文章编号:2095-1302(2017)04-0-03

0 引 言

钻井液又称钻孔冲洗液,是钻井过程中孔内使用的循环冲洗流体,是液体和化学处理剂的混合物,是钻井工程的血液。钻井液按组成成分可分为清水、泥浆、无粘土相冲洗液、乳状液、泡沫和压缩空气等。钻井液在钻井过程中起着护壁防塌、携砂防卡、润滑防粘等作用,钻井作业中钻井液的性能和不同的处理方法直接关系着钻井过程的成败。在钻井过程中需要及时、准确的观察分析钻井液容量及性能的变化,钻井液主要参数的变化,发现异常及时报警和处置,降低直至消灭井漏、井塌、井涌等井下事故。同时还要详细收集钻井各阶段各深度钻井液数据的资料,为以后在同区域钻井的钻井液配方提供参考。然而目前工作在钻井一线的钻井液技术人员在填写《钻井液班报》时存在一些缺陷。

基层钻井队在钻井液数据采集方面,受作业环境、人员素质和技术水平等的限制,一线员工工作方式的信息化程度还很落后,仍采用传统的纸笔记录方式。由于钻井液数据需要频繁记录,在寒冷的季节,技术员戴着厚重的手套导致时常跟不上作业流程的节奏,而且人工笔录也会由于字迹潦草或环境条件恶劣导致污损等对数据准确率造成影响,从而使得采用纸笔记录的钻井液数据质量不稳定,可信度不高,加重了后期数据清洗的负担,出现安全隐患,通过手动计算的反应时间较长。由于钻井队地处偏远,缺乏有效监督,难以避免钻井液技术员投机取巧的行为。按照规章制度,钻井液数据需要每15分钟检查并记录一次,次数频繁,技术员不仅要读取仪表上的数据进行记录,还要根据固定公式计算出两次检测之间钻井液容量的变化等多个参数,往往一次检测的计算还没结束,下次检测的时间又到了,让技术员无暇应对,因此技术员弄虚作假也就在所难免。而这样的数据对以后同区域的钻井难以提供真正有价值的参考,也无法及时发现安全隐患。

针对以上问题,结合当前信息化的发展水平,我们设计实现了运行在安卓平板电脑上的《钻井液班报系统》应用软件,为提升基层井队的信息化水平提供了有力支持。该系统已在多个井队试运行,用户反馈表明,该系统极大地减少了钻井液技术人员的工作量;方便钻井液数据的历史查询、备份;杜绝了数据的弄虚作假;内置计算公式的自动计算功能替代了以往的手动计算,大大缩短了计算时间,为及时发现安全隐患提供了支持。综上所述,该系统有效提高了钻井液数据收集和计算的效率,提升了数据质量,为以后的钻井液大数据分析奠定了坚实的基础。

1 系统功能模块划分

《钻井液班报表系统》共分为数据录入模块、数据查询统计模块、数据上传模块、数据导出备份模块、系统配置模块、用户注册模块、内置计算模块和安全预警模块。系统功能模块框图如图1所示。

1.1 数据录入模块

本系统基于安卓开发,选用安卓自带的SQLite数据库作为后台数据库。数据录入模块的主要功能是在平板上设计一个类似原有纸质记录的表单,方便钻井液技术员迅速上手。以前需手写的空白部分在表单中用文本框实现,而且每个文本框都设有类型检查功能,防止用户在填写时出错。重要的字段设置为非空,以免用户漏填。此外,表单具有自动提交功能,一旦记录提交后,每15分钟表单就会自动提交一次,以此来督促技术员必须按时提交,杜绝了当时不计,过后作假的行为。表单还设有自动计算功能,在技术员填入新的仪表读数后,许多字段的内容可以通过定义的公式自动计算并填充,降低技术员的工作量。表单还具有记忆功能,因为并非每次填空的数据都会发生变化,因此自动记忆的数值缺省将填写在文本框中,如果此次采集的数据没有发生变化,技术员就可以直接跳过,无需重复记录。

1.2 数据查询统计模块

数据查询模块提供一个界面,方便用户查询和统计SQLite数据库中存储的已提交表单。由于钻井的信息较多,一方面为了能让用户简单、快速地查询出所需信息,另一方面由于运行在安卓平板上的系统只是一个轻载系统,更丰富的查询手段可在中心的数据库服务器上实现。因此我们将查询条件简化为井号,施工类型,起始日期,终止日期。同时用户也可以通过灵活选填查询条件来查询自己需要的结果。

1.3 数据上传模块

本系统提供了数据库的上传功能,在异地信息中心数据库服务器上建立了一个库表结构相同的SQL Server数据库,各平板电脑可根据注册用户的权限自动连接远方的数据库服务器,实现数据库的增量上传和备份,由于井队网络不稳定,因此支持断点续传,降低了网络包流量,方便数据传输。

1.4 数据导出备份模块

系统除能够支持上传数据外,还提供了本地导出和备份功能,技术员可以根据需要选择SQLite数据库中的内容并按Excel的形式导出,或者对数据库进行导出和备份,可大大方便用户生成固定模板的电子表格。

1.5 系统配置模块

该模块主要用于输入井队信息和钻井区块信息,基础配置部分包括井号、队号、井型、施工类型等信息,由于不同井型和施工类型所需填写的记录表单不同,因此首次使用本系统时,只需设置好基础配置信息就可确定输入模块中的表单格式。此外,还有区块和地层配置,用户可选择事先输入的区块信息,区块确定后,其相應的地层也就确定了,而这些都可以通过下拉单实现,但若出现特殊情况,还支持用户手动输入。

1.6 用户注册模块

该模块主要实现用户的注册。系统后台有日志文件可以记录每个注册用户登录系统后的行为。如果发生任何数据安全问题,通过查阅日志可以追溯到具体人员,该功能使得每个操作都具有不可抵赖性,强化了技术员的责任心。

1.7 内置计算模块

在记录钻井液的过程中涉及多项计算,有些简单计算直接嵌入到表单输入的文本框中,用户只需填写前几项,就可以通过自动计算来准确填写后几项。此外,系统还包含特定模块来实现较复杂的计算,而且将计算公式也植入系统中,用户只要给定输入,系统就会自动提供输出,相比之前使用计算器手动计算是一个显著进步。封装在系统中的计算公式包括钻井液配制与加重的计算、两种不同密度钻井液混合后的密度计算、固相分析计算、利用屈服值进行经验计算等4大类,50余个计算公式。

1.8 安全预警模块

该模块实现了异常情况的报警功能。我们根据用户的经验值或规定量确定了安全预警的运算逻辑,由用户在配置界面中或者在系统交付初始化时设置好触发报警的安全阈值,一旦读取的仪表数据经计算后发现超出了给定的安全阈值,即刻触发报警程序,通过语音提示,文字闪烁等方式报警,显著缩短了安全隐患的发现时间,提高了反应速度,为井队安全生产提供了强有力的支持。

2 技术路线

2.1 后台数据库

本项目采用Android 4.0以上的版本,其自带一个轻载型数据库SQLite。SQLite是符合ACID数据库业务要求的关系型数据库管理系统,具有占用资源少,支持 Windows/Linux/Unix/Android等主流操作系统,支持Java、C++、PHP、.Net等程序开发语言,支持ODBC接口,处理速度快等优点。虽然SQLite3仅支持NULL、VARCHAR(n)、CHAR(n)、INTEGER、REAL、 TEXT、BLOB、DATA、TIME几种数据类型,但对于本项目而言已经足够。Android提供了一个专用于操作SQLite数据库的类SQLiteDataBase,该类封装了所有的数据库SQL操作,使用该类可以实现建表、查询、更新和删除操作。该类的execSQL()方法可以实现数据库经典的insert、delete、update和CREATE TABLE之类的SQL语句;而rawQuery()方法主要执行select语句实现记录的查询。

2.2 数据导出

平板中数据导出可以支持数据库结构导出(不含数据)、表结构导出(不含数据)、表数据导出和数据库导出四种,我们主要采用定期全数据库导出方式,将数据导入Excel电子表格中,使用jExcelAPI实现。jExcelAPI是纯Java的API,可以支持中文,并不依赖Windows系统,即使运行在Android系统下也能够正确处理Excel文件。由于SQLite与Excel的数据类型都比较简单,因此该API提供的数据格式化操作能够满足应用。对于输出格式的定义,例如行高、列宽、单元格合并等,通过jExcelAPI都能方便实现。

2.3 界面设计

常规的Android程序开发包含资源部分与资源操作部分。资源部分完成对资源的导入、设置、整合等工作;资源操作部分完成对资源的调用、使用、控制等。而界面的作用在于连接这两部分,为其提供一个用户管理操作资源的接口。

(1) Activity。Activity是为用户提供可视化界面并支持与用户交互的组件。安卓App通常由多个绑定的Activity组成。

(2)ViewGroup。在Android中采用ViewGroup类别组件来实现整个界面框架结构的设计,ViewGroup提供了很多子类进行界面的整体布局。

(3)常用View。界面框架完成后,View提供了丰富的控件來实现文本框,下拉单,图片框,按钮等。

(4)时间选择器。DataPicker是安卓中最常见的日期选择控件,用来实现日期选择。

2.4 数据上传

由于井场的网络不稳定,因此《钻井液班报系统》支持断点续传,即数据文件要从上次已经上传的地方继续上传,而非每次失败后重新上传。断点续传要求客户端给服务器发送请求时要多加一条信息说明从何处开始。Range属性用于说明要传送数据的范围与大小。Accept-Ranges字段是服务器的应答,客户端通过该字段可以判断服务器是否支持断点续传,如果服务器支持断点续传,另一个字段Content-Ranges就指定了数据文件的字节范围。ETag是服务器为一个文件产生的唯一标识,每次文件发生更新,数值就会发生变化。通过这种校验机制,客户端可以查看特定文件断点续传后是否发生改变,如果发生改变,就必须重新上传以保证文件的完整性。

3 结 语

《钻井液班报表系统》目前已在长庆多个井队试点应用,根据用户反馈,多数用户认为《钻井液班报表系统》将传统的纸笔记录方式移植到了平板电脑上,将数据的计算公式固化在系统内,显著减轻了员工的数据录入和计算工作量、大幅降低了出错率,提高了数据质量。综上所述,《钻井液班报表系统》切实满足了基层井队技术员对钻井液数据的记录、统计、备份和上传的需要,显著提高了工作效率。

参考文献

[1]刘胜娃,陈思锦,李卫,等.企业私有云平台安全技术研究[J].现代电子技术,2014,37(2): 67-70.

[2]刘胜娃,高翔,王敏.基于贝叶斯网络的攻击图方法在网络安全评估中的应用[J].现代电子技术,2013,36(9):84-87.

[3]刘胜娃,陈思锦,李卫,等.面向企业私有云计算平台的安全构架研究[J].现代电子技术,2014,37(4):34-36.

[4] 马纪颖,朱力军,张颜.Web信息检索中信息分类技术研究[J].现代电子技术,2008,31(10):76-78.

[5]包晓安,钟乐海.基于ID3算法的快速分类方法研究[J].现代电子技术,2004,27(7): 84-85.

[6]马晓昊.基于云计算的安全数据存储服务的研究与实现[D].上海:同济大学,2008.

[7]张凯.基于移动数据城域网的建设规划[J].现代电子技术,2014,37(21):27-30.

[8]朱广宇.组态软件内存实时数据库性能测试[J].物联网技术,2014,4(3):70-72.

猜你喜欢
安卓钻井液数据库
新型非磺化环保低摩阻钻井液
文物表情包
一种钻井液用高效抗磨润滑剂
一种基于安卓系统的手机侧抓包分析方法
安卓L未至安卓M来了!安卓首泄漏M系统
复合有机盐钻井液在庄X15井的应用
董7井井壁稳定钻井液技术