新闻中心

EEPW首页>嵌入式系统>设计应用> 基于电磁感应的多层管柱电磁探伤测井系统

基于电磁感应的多层管柱电磁探伤测井系统

作者: 时间:2016-11-29 来源:网络 收藏

通信协议设计

井下设备完全受井上PC客户端控制,如开始测井、暂停测井等,井下设备负责响应上位机的命令。本系统中定义了测井数据帧、命令帧和应答帧三种帧结构。数据帧主要用于井下设备向上位机发送的测井数据,命令帧用于上位机向井下设备发送控制命令,应答帧为双方接收到测井数据帧和命令帧之后应答成功或者失败的帧结构。

  • 测井数据帧

测井数据帧结构定义如表格1所示。测井数据帧包括起始标志字节、帧序号字节、类型字节、当前时间字节、当前深度字节、温度字节、伽马射线字节、发射电路字节、纵向探头A电压字节、横向探头B电压字节、横向探头C电压字节、校验和字节以及结束标志字节。

表格 1 测井数据帧结构

起始标志

帧序号

类型字节

当前时间

当前深度

FSTA

3字节

1字节(’D’)

4字节

4字节

温度

伽马射线

发射电流

纵向探头A电压

横向探头B电压

4字节

2字节

2字节

48*3*2字节

48*2字节

横向探头C电压

校验和

结束标志

48*2字节

4字节

FEND

由于PIC32MX7为32位单片机,处理int型数据(4字节)较快,并且CAN2.0B标准帧每帧可以发送8字节的数据,所以在协议中采用4字节为一个单位的设计。

起始标志字节为“FSTA”四个字节,结束标志字节为“FEND”四个字节,帧序号为启动测井仪器后发送的数据帧的序号,类型字节为“D”。其他字节为当前深度下采集的测井数据。

协议采用简单的校验和的方法进行帧的校验。先将每四个字节组成一个int型的数据,然后所有的数据相加,然后将结果截短到一个int型数据的长度。发送端将待发送的数据进行校验和计算,将校验和值放在数据后一起发送,在接收端对接收到的数据进行校验和计算,然后和接收到的校验和字节比较,来进行误码判断。设定要进行校验和和计算的字节不包括起始和结束标志字节。

  • 命令帧

命令帧结构定义如表格2所示。命令帧包括起始标志字节、帧序号字节、类型字节、校验和字节和结束标志字节。

表格 2 命令帧结构

起始标志

帧序号

类型字节

校验和

结束标志

FSTA

3字节

1字节(命令字)

4字节

FEND

根据系统的需要,命令字设有开始命令字、暂停命令字、继续命令字和结束命令字,类型字节分别是‘S’、‘P’、‘C’、‘E’。

  • 应答帧

应答帧结构定义如表格3所示。令帧包括起始标志字节、帧序号字节、类型字节、校验和字节和结束标志字节。其中接收成功ACK应答帧类型字节为‘A’,接收失败NAK应答帧类型字节为‘N’。

表格 3 应答帧结构

起始标志

帧序号

类型字节

校验和

结束标志

FSTA

3字节

1字节(’A’/’N’)

4字节

FEND

除了帧结构的定义以外,整个系统的通信还需要遵守以下规则:

  1. 数据传输的双方以100kbps的速率传输数据,使用主从式通信,主机发送数据,从机接收数据;
  2. 从机在接收完数据帧后,将根据最后的校验结构判断数据接收是否成功,若校验正确,则向主机发送ACK应答帧,标志接收成功,若校验错误,则发送NAK应答帧,表示错误,请求重发;
  3. 主机接收到ACK应答帧,则通信结束,否则主机将重新发送这组数据。

表格4是测井数据传输模型,为整个测井过程中数据传输模型。

表格 4 测井数据传输模型

开始测井标志

数据帧

应答帧

数据帧

应答帧

……

数据帧

EMISTART

数据帧0

ACK

数据帧1

ACK

……

数据帧n

应答帧

数据帧

应答帧

……

结束测井标志

NAK

数据帧n

ACK

……

EMITOEND

辅助测量模块

温度探头

温度传感器的选择主要是要考虑被测量物体的温度范围、电阻材料的化学稳定性、电阻值与温度变化要保持线性关系等。

一般来讲,地壳中温度与深度成正比,深度每增加100米温度便要上升3℃左右。除此之外,还要考虑油井的深度。早期油井只有几十至几百米深,近年来油井深度逐渐加深,大部分石油生产并的深度在1000米至3000米之间。石油生产井的最深记录是6500米。由于地温梯度的存在,井下的温度将随深度的增加而升高,由此可以对温度传感器的所需测温范围进行估算。

井底最高温度可由下式进行计算确定:

式中为井底最高温度(℃),为地温梯度(℃/100m),h为井深(m)。

当取为℃/100m,则在6500米处温度则为23+4.5×6500/100=315.5℃。因此,测温部分的温度传感器测量范围选在0—320℃即可满足绝大多数条件下的测温要求。

在此温度范围内可供选择的有热电偶、热电阻及集成测温元件等。考虑到其使用环境等因素,选用热电阻作为系统的测温元件较为适合。

铂电阻具有测量温度范围大、精度高、稳定性好、性能可靠等优点,而且具有高熔点、高稳定性,因此被我们选为系统的测温元件。

具体的测温电路如下图所示:

图 21 温度测量原理图

TL431为OP07提供恒压源,由于电压源也不是纯粹的恒压,为消除电压波动,添加R5和C1作为电源滤波。R2,R3,R4,RT作为测量电桥,通过检测C端和D端的电压差来计算温度的变化,根据集成运算放大器工作在线性区域的输入端虚短特性,OP072端电压等于3端电压;由于TL431为OP07提供了相对稳定的电压源,根据集成运算放大器工作在线性区域的输入端虚断特性,流过R4的电流只流经RT,所以相当于有一个恒流源流经R4和RT。当电桥达到动态平衡时,有:。通过计算可知,,从而求出RT的变化量。通过查铂电阻温度表,即可得到温度值。

伽马探头

自然伽马测井仪测量由地层中放射性元素衰变所产生的自然伽马射线的强度。自然伽马资料可以用来划分地层岩性、求地层的泥质含量。在套管井测井中,自然伽马曲线、套管接箍定位曲线与裸眼井资料的对比可以保证地层定位和射孔深度的准确性。一般自然伽马电路分闪烁探测器、输入极、选择整形级、放大输出级和高压电源部分。结构图如图 22所示。

图 22 自然伽马探测结构图

软件系统设计

下位机软件设计

主程序流程图

图 23 主程序流程图

主程序进入之后首先对各模块进行初始化,包括全局变量、单片机I/O口、CAN总线等模块。其后进入系统工作状态判断,根据不同的工作状态,系统执行不同的内容。系统的工作状态由系统和上位机控制切换,上位机是通过命令帧给下位机发送命令。

测井流程图

图 24 测井流程图

在测井状态中,单片机控制IGBT全桥电路产生125ms的正向脉冲,根据不同的时刻控制可编程放大的倍数并进行A/D采样。采样结束后单片机控制IGBT全桥电路再次产生125ms的负向脉冲,同时通过CAN总线向上位机发送测井数据帧,如果100ms内未发送成功则返回发送失败标志并推出发送。负向脉冲后重复放大和采样,并发送测井数据帧。最后判断是否有发送失败的测井数据帧,并发送失败的数据帧。

CAN总线数据处理流程图

系统采用PIC32MX的CAN1模块,波特率设为100kbps,分别使用2个32个报文深的FIFO作为发送和接收FIFO,采用接收中断的方式来接收上位机的数据。在接收中断服务程序中对接收到的数据进行处理。如图 25为CAN总线数据处理的流程图。

图 25 CAN总线数据处理的流程图

系统在接收到一个完整的数据帧之后,且校验和正确,会对接收缓存数据进行处理,会根据不同的类型的数据帧做相应的操作。当发生未能正确接收一个完整的数据帧时,下位机会返回错误类型,并回复NAK应答帧。

实时时钟

PIC32MX 器件上提供的实时时钟和日历(Real-Time Clock and Calendar,RTCC)硬件模块及其操作。RTCC是为需要长时间维持精确时间的应用设计的,无需或只需最少的CPU干预。该模块为低功耗使用进行了优化,以便在跟踪时间的同时延长电池的使用寿命。使用RTCC模块的要求是需要一个外部32.768 kHz时钟晶振。

测井数据帧的当前时间使用RTCC模块提供,该模块只需要初始化并设置起始时钟和日历即可自动运行。

上位机软件设计

概述

需求概述

本软件的功能主要为接收本系统硬件部分发送的数据,通过一定的协议解析,提取并分析信息,计算管壁厚度,绘制厚度可视化的图形,为工程人员提供直接的和有效的资料。

由于本系统在探伤的同时,着重分析损伤位置,因此必须对远近有所分离,另外最好能够绘制从远到近的厚度谱图,因此,本软件需要绘制两种图线,一种划分为远场近场两条曲线,另一种给出彩色的厚度谱图。

由于测井时间很长,工程人员很难全程跟踪,为了便于从存储的信息中恢复信息以便日后查阅,还需要给本软件增加文件存储和图像存储的功能。

最后,工程人员还需要实施观测现场状况,随时得到从井下传递来的信息,这样随时观测的方法,可以有效的节省测井时间,对于损伤过大的井可不必测完。

软硬件支持环境

本软件采用VS2008编译通过,在编写中使用了.net3.5架构,因此运行本软件需要Microsoft .net3.5运行时库的支持。

另外,本系统采用USBCAN模块进行通信,由于厂商没有给出其在Windows Vista和Windows 7下的驱动,因此,本软件只能工作在Windows XP系统下,且需要安装USBCAN模块驱动。

程序建模

本程序采用面向对象程序设计方法,其中的多数功能被封装在对象中,程序有较好的移植性和安全性。程序主要封装在以下几个类中

用途

记录测井全程信息、

文件存储和读出

由下位机传来的8字节信息

由下位机传来的数据包

其中包括一正一反两个数据包,记录其平均值和其他的数据处理结果

测井曲线图

衰减曲线图

  1. 总线通信

另外本软件采用了多线程处理技术,主程序负责按键响应、图形显示等处于主线程中,而信息处理算法由子进程执行。这样有效的提升了数据处理算法的效率和独立性,使得又原先的每包处理时间1000ms左右大幅降至14ms左右。

界面设计

下图为一软件运行时截图,可以看到程序右左上方的文件/设备控制区,右上方图形控制区,左下方的信息显示区以及右下方的图形显示区组成。而其中最重要的,也是占用面积最大部分是图形显示区,较大的面积保证了观看的方便。另外,为了观察直观的一手数据,我们还专门设置了显示由采样设备直接传来的未经处理的衰减信号,以便工程人员直接判断测井系统是否正常工作,以及管壁是否发生严重损伤。这个衰减曲线是可以隐藏的,因为它毕竟不是主要需要显示的内容,而且占用屏幕空间较大。如果你觉得图像显示空间还不够大,甚至可以隐藏图例。这里图例被设计成悬浮于绘图之上,可以跟随滚动条滑动而动。



评论


技术专区

关闭