基于ARM 的固井水泥浆密度监测系统
2022-04-13郭颖娜
樊 恒,刘 萌,陈 佳,郭颖娜
(西安石油大学,陕西 西安 710065)
0 引言
固井分为下套管和注水泥两个阶段,在套管下入井中之后,把水泥浆泵入套管内,再用钻井液把水泥浆顶替到管外环空内设计的位置。水泥浆是水、干灰和外加剂混合的浆体。在固井施工过程中,水泥浆密度值过高或过低都会直接影响固井的质量和施工安全。因此,水泥浆密度的监测就显得尤为重要。
目前,国内传统的水泥浆监测系统多采用有线连接,施工难度大、易发生意外、维护耗时耗力,严重影响固井施工的进度和质量。
随着信息技术、智能控制和物联网技术的发展,无线监测已成为未来监测的重要技术。基于ARM 的嵌入式开发已广泛应用于智能家居、环境监测、舰船、农业等各个领域中。但是在实际固井施工中微控制器多采用单片机,不能快速处理大排量固井水泥浆密度的数据。本文提出一种基于嵌入式ARM 平台的固井水泥浆密度监测系统,包含数据的采集、数据处理、数据的无线传输、数据存储及数据显示等功能,用户可在浏览器实时查看密度值和历史数据,也可通过人机交互界面查看数据值和其他信息。
1 监测系统总体设计
基于ARM 的固井水泥浆密度监测系统主要包括上位机和下位机两部分。上位机为监测中心,负责监测水泥浆密度变化、设备状态和串口的配置信息。下位机由ARM 和一些外围电路组成,负责对采集的数据进行处理。通过RS 485 接口连接采集传感器进行数据采集,数据传输采用ModBus 总线,微控制器ARM 对传感器采集的数据进行处理,再利用WiFi 网络将数据发送给上位机,数据的存储、显示及查看、历史数据和错误信息进行日志输出和打印在上位机实现。监测系统总体框图如图1 所示。
图1 监测系统总体设计框架
1.1 微控制器的选择
固井施工过程中密度变化速度快,处理器要进行数据的采集、处理和发送等任务,一般的单片机无法满足这样的需求。系统的微处理器选择三星发布的Exynos4412 四核处理器,采用ARM Cortex⁃a9 架构,主频可达1.4~1.6 GHz。该芯片体积小、功耗低、处理数据能力快,保证了整个监测系统的稳定性和功能性。
1.2 传感器的选择
目前,油田开采多采用放射性密度计来测量水泥浆的密度,测量精度不高,采集的信号为模拟信号,需要转换成数信号,且在水泥车大幅震动的情况下易滑脱。因此,本次设计采用美国霍尼威尔公司推出的PPTR 系列智能精密压力传感器,这些传感器集多种电路于一身,可实现网络化,测量精度高达±0.05,有数字和模拟两种测量方式,传输距离长达几千米,体型小、方便安装,具有良好的稳定性和重复性。PPTR 压力传感器内部结构框图如图2 所示。
图2 PPTR 压力传感器内部结构图
1.3 WiFi模块的选择
考虑到固井施工现场布线繁琐的问题,通过WiFi模块实现主控制器和后台PC 机的数据传输,实现水泥浆密度的实时监测。WiFi 模块选用ESP8266 模块,支持无线IEEE 802.11b/g,内置TCP/IP 协议,支持STA/AP/STA+AP 三种工作模式,工作电压为3.3 V。
微控制器通过串口与ESP8266 连接,设置工作模式为STA,通过路由器连接互联网,实现PC 机与控制器的无线信号传输。
2 软件设计
固井水泥浆密度监控系统的软件设计是基于Linux操作系统。Linux 操作系统相对于Windows 操作系统具有免费开源、模块化程度高、安全稳定、良好的可移植性等优点。本文采用C 语言编程。
监测系统的软件主要实现PC 机与微控制器之间的通信。主程序开始后,提前创建多个线程保存到线程池,当有消息来临时,从池中取出闲置的线程去执行任务,结束任务后返回池中继续等待被再次唤醒。系统的软件设计采用模块化设计,包括主控模块、串口模块、数据存储模块、网络模块、人机交互模块和日志模块。软件设计结构如图3 所示。
图3 软件设计结构框架
主控模块:对所有模块初始化,管理所有模块通信的数据结构。
串口模块:从传感器设备中读取数据(支持轮询上报模式和主从模式),可以向设备发送控制命令。
数据存储模块:通过数据库存储采集的数据,对历史的数据进行查询。
网络模块:包括网络参数配置和Web 服务器。网络参数信息和串口信息通过网络参数配置模块进行配置。
Web 服务器工作方式为TCP Server,可接入多个客户端,可对RS 485 设备采集信息(主从模式、轮询上报模式),可控制设备。
人机交互模块:显示串口的工作状态、网络工作状态、设备工作状态和实时密度。
日志模块:完成所有模块及工作状态的打印,实现日志文件的保存。
2.1 串口模块
串口通信采用标准异步串行半双工RS 485 通信接口,通信协议采用ModBus。设置通信的帧格式为:一位起始位,八位数据位、无奇偶校验位,一位停止位,波特率为115200 b/s。协议由主机或从机地址、功能码、数据、差错校验四部分组成。地址用来识别设备,每台可通信设备都有唯一的地址。功能码即本条数据包所执行的操作类型。数据则是所要发送的数据内容,它由一系列的字节组成。差错校验用于检测数据是否正确,采用CRC16 循环冗余码检验,占2 个字节。由上位机发送命令,当下位机监测到首个地址码时,判断是否为设备地址,若是则启动接受中断,同时将数据放到缓存区中;若不是,设备继续等待。串口接收数据流程如图4 所示。
图4 串口接收数据流程
2.2 网络模块
网络模块包含网络参数配置和Web 服务器的搭建。
网络参数配置是基于HTML 语言编写网页。用户可登录浏览器进行本机参数配置和RS 485 串口参数配置,如图5 和图6 所示。
图5 本机配置信息界面
图6 串口配置信息界面图
Web 服务器是基于B/S 模型、通过HTTP 协议、使用多线程(epoll)实现并发访问,用户可通过访问浏览器查看泥浆密度数据。Web 服务器子程序首先创建socket套接字,三次握手建立连接,通过HTTP 协议发送请求报文和响应报文进行数据的传输,最后释放连接。Web服务器流程如图7 所示。
图7 Web 服务器流程
2.3 数据存储模块
考虑到固井施工周期长、采集水泥浆密度数据量大等特点,采用MySQL 数据库存储和查询数据。MySQL数据库为大中型数据库,免费开放、服务稳定、体积小、安装方便、易于维护。
根据对固井水泥浆密度监测系统的功能需求分析,数据库主要有密度信息表和本机配置信息表,具体如下:
1)密度信息表,主要包括序号、时间、密度值。
2)本机配置信息表,主要包括序号、时间、本机IP、本机地址类型、物理地址、子网掩码和网关地址。
用户可输入关键字对两个表进行查询。
2.4 人机交互模块
基于Visual Basic 6.0 搭建可视化界面,主要对下位机采集数据进行显示,包括密度值、网络配置参数、串口配置参数和设备工作状态。人机交互界面如图8所示。
图8 人机交互界面
3 实验测试
在实验室模拟固井水泥浆密度监测环境。打开本机网络下计算机的浏览器,配置规定的网关本机信息和串口信息,串口波特率设置为115200 b/s,采用轮询模式,数据帧格式设置为:1 位起始位,8 位数据位,1 位停止位,无奇偶校验位,2 s 采集一次数据,60 s 存储及显示一次数据。总共进行3 次实验,0~60 s 进行第一次监测,设定密度为1.85 g/cm,30 s 之后,水泥浆密度值在1.85 g/cm上下范围5%内波动;60~120 s 进行第二次监测,将水泥浆的密度上调到2.45 g/cm,在80 s 之后,水泥浆密度值在2.45 g/cm上下范围5%内波动;120~180 s进行第三次监测,将水泥浆密度下调到1.45 g/cm,在160 s 之后,水泥浆密度值在1.45 g/cm上下范围5%内波动,验证了系统的稳定性和准确性。实验结果如表1 所示。实验的测试结果曲线如图9 所示。
表1 固井水泥浆密度测试结果 g/cm3
图9 固井水泥浆密度监测测试结果
4 结 语
1)本文采用嵌入式ARM 微控制器、Linux 系统和无线网络技术,通过软硬件结合的方法设计了基于ARM 的水泥浆密度监测系统,实现了泥浆密度的实时监测,为后续调节泥浆密度值提供了便利。
2)通过实验测试,验证了本次设计的可行性。实验结果表明:本系统具有采集数据精度高、功耗低、可靠性高等特点,对工业领域的监测具有一定的实用价值。
3)由于固井过程中环境比较复杂,水泥车振动幅度大、现场信号复杂,容易造成网络信号不稳定,偶尔会出现掉线的情况,还需要对网络功能模块进行进一步的改进。