便携式压力采集系统的数据通信
2014-08-03王捷艾红
王 捷 艾 红
(1.北方工业大学机电工程学院,北京 100144;2.北京信息科技大学自动化学院,北京 100192)
压力测井是采油过程中的一个重要环节,压力数据的正确采集与获取关系到油井的工况,通过对压力数据的采集与分析可以对油井采取维护措施,提高采油效率。便携式压力采集系统是由压力传感器、微处理器和外围电路构成的,测井时可以通过测量与记录压力数据,经分析后评估油井工作状态并给出维护方法。电子压力计已逐步取代机械压力计成为井下压力采集的主流[1],寻求一种适用于油田的压力采集系统具有实际应用价值。在此,笔者给出一种便携式压力采集系统及其数据通信方案的设计过程。
1 系统构成①
采油过程中压力测井用便携式压力采集系统的构成如图1所示,包括信号处理与放大、数据存储、键盘与液晶显示操作接口。采用电池供电,软开机控制。高效率的开关式电源转换模式。压力信号采用应变式不平衡电桥测量,信号放大采用AD620差分放大器,将采集到压力传感器的模拟信号放大,通过调节与其连接的电位器阻值确定放大倍数。采集中需要设置开始时间、采样间隔和结束时间。系统用到的芯片还有MAX813、MAX735及LM2574-5.0等。
图1 便携式压力采集系统构成示意图
2 数据通信方案选择
由于测量地点大多在野外现场,不方便携带数据处理的主计算机,当数据采集完毕之后需要将便携式设备带到数据处理中心进行数据上传、汇总与分析。可以考虑选用两种方案:无线传输和人工带回数据。无线传输受条件限制,在有些
地方网络覆盖和服务不是很好,无线信号无法使用。由于设计的便携式压力采集系统对实时性要求不是很高,采集周期一般2~3天,因此将采集的压力数据存储起来,由人工带回数据处理场所,优点是不用无线传输模块,可以节省高昂的数据传输成本;受无线电干扰的可能性降低。
3 压力数据的采集与存储
3.1 数据采集
压力传感器是将压力转换成电信号的器件,采用的压力传感器主要技术参数,量程0~20MPa、过载压力150%、供电电压5V、零点输出-0.18mV、满量程输出16.2mV、线性0.12%、迟滞和重复性0.2%、输入阻抗13.35kΩ、输出阻抗12.55kΩ。选用此传感器的优势:传感器的量程和精度符合工艺要求;供电5V容易提供;信号输出为差动信号,抗干扰能力强;器件的外形尺寸和安装方法符合工艺要求;选用AD620将压力传感器输出信号进行放大,根据工艺要求压力采集的时间间隔大于1s,数据采集采用A/D转换芯片TLC2543,TLC2543具有11路模拟输入信号,是逐次逼近式A/D转换器,具有12位分辨率的高精度,最大±1LSB的线性误差及低噪声等优点。
3.2 存储器接口硬件
数据存储器接口电路如图2所示,存储器芯片AT24C1024的容量是128KByte,需要17位地址线。写操作有字节写和页写两种方式,字节写和页写均需向AT24C1024发送设备地址字节,在设备地址字节中包含P0、A1和R/W选择,其中A1位为片选地址,即I2C总线上最多可并联两个串行EEPROM芯片;P0为存储器页地址,加上后面的两个字节组成存储器物理地址;R/W为读写控制位,“0”为写操作,“1”为读操作。值得注意的是,对存储器操作时,每读/写一个字节,单片机必须送一个应答位ACK,释放一下SDA数据线,以便存储器能继续接收数据。在读取结束后要发送一个负的应答信号NACK。
图2 数据存储电路
设计串行E2PROM存储器AT24C1024写程序时的地址有3个:addr_p是页地址,addr_hi是高位地址,addr_lo是低位地址。AT24C1024有页写入功能,在页写入时AT24C1024会自动增加低位地址顺序写入数据,一页256Byte;然而当数据写到AT24C1024的页尾时,如果继续写入存储器不会自动增加高位地址addr_hi,而是覆盖页首地址位置上的数据。如果不对存储地址做出调整,AT24C1024的存储空间不会连续而且会造成存储上的错误,因此必须进行地址调整得到连续的存储空间。地址调整步骤:先判断在本页内存储器是否有足够的空间写入,如果有则直接进行写入;否则将要写入的数据前半部分写入本页的剩余空间,其余部分写入高位地址增加后的存储空间,这样就可以使分页写入的存储器空间变成一个全部连续的存储器空间了。
4 数据通信程序
4.1 通信协议与功能
便携式压力采集系统的数据通信程序需要实现的主要功能包括:下位机发送采集的压力值给上位机,或者是由上位机发送系统时间给下位机(表1)。进入串口中断服务程序后,要判断检测字符是“RR”(即下位机发送数据标志符)还是“TT”(即下位机接收系统时间标识符)。在实现通信程序设计中,要使上位机和下位机的波特率和传输数据格式一致。在数据通信时上位机和下位机的初始化波特率为9 600b/s、8位数据位和1位停止位。
表1 上位机发送命令与下位机功能
下位机发送数据标志符RR是上传命令字。便携式压力采集系统收到此命令字时,将压力数据上传给计算机。下位机系统会从AT24C1024 EEPROM存储器中将全部数据转换成ASCII码后通过串口上传到上位机。将压力数据的BCD码数据转换为两个ASCII码数据上传,直到上传完地址00000 H到存储器中地址指针所指的数据,包含最后的0B和0E结束标志,液晶显示画面此时显示“数据上传中…”。CC是清除内存命令字,此命令把E2PROM数据指针调整回00000H,并写入结束标志0B 0E到地址00000H和00001H中,内存清除后液晶显示“内存清除完毕”。
下位机系统在收到TT命令后进行对时操作,将TT后面的时间数据转换成BCD码数据写入便携式压力采集系统的时钟存放单元,并在液晶显示器上显示当前时间。5s后返回停止状态。
4.2 上位机对上传数据的处理
上位机程序设计功能中有判断数据是否传送完毕的功能。当数据传输时每经过一段时间查询上传到数据缓冲区的字符数是否有增加,若有增加说明仍有数据在传输,需要继续等待。当数据缓冲区内的字符数没有增加了,说明已经完成上传数据,并弹出对话框显示“数据上传完毕”。
4.3 上位机发送系统时间
上位机为下位机发送系统时间。利用VB中的now函数返回系统当前的时间,利用format函数格式化这个日期和时间值。组成相应的字符串即系统时间,激活MSComm控件,将系统时间发送到下位机。发送系统时间的部分程序代码如下:
Private Sub Command12_Click()
Dim mystr1,mystr2,mystr3,mystr4,mystr5,mystr6,mystr7 As String
mystr3=Format(Month(Now),"00")′系统时间的月份
mystr4=Format(Day(Now),"00")′日
mystr5=Format(Hour(Now),"00")′小时
mystr6=Format(Minute(Now),"00")′分钟
mystr7=Format(Second(Now),"00")′秒
mystr1=right(year(Now),2)′年份
Comm1.Output=Trim("TT"&mystr1&mystr3&mystr4&mystr5&mystr6&mystr7)′组合成通信协议形式发送
End Sub
5 上位机接收数据的处理方法
上位机对上传的压力数据及采样间隔时间等数据要进行处理。根据通信协议,每个数据包都是按照协议的格式上传到上位机的,这个数据包是一个若干长度的字符串,包含井号、采样间隔时间、采集压力的最初时间和若干个压力数据。要运用字符串处理的一些函数来分割、截取数据包让这些数据段找到各自的相应属性,步骤如下:
a. 判断数据包的整个长度,若长度不够说明这个数据包是错误的,则退出数据处理的程序。
b. 分割字符串。接收到一个正确的字符串要将它分割并截取,再确定字头的位置。利用num1=InStr(n2,buf,"B")函数找到字头位置为这个字符串的第一位,字头后的四位为井号,截取后再放到储存井号的寄存器t0里。用类似方法把每个数据段分别存储好。
c. 加工。分割好的字符数据并不带有任何意义,利用对时间函数的操作将最初采样时间的数据段合成为一个返回值作为时间属性的数据,year=t4&","&t5&","&t6 mytime=DateValue(year)取得年月日,b=t7×3600+t8×60+t9取得时分秒。同样把采样间隔时间换算成秒,c=t1×3600+t2×60+t3′间隔时间。
d. 存储数据。当字符串处理到第24位时,井号、采样间隔时间和采样最初时间都已处理完毕,下面的字符都是每四位一个的压力数据了,那么判断字尾的“B”找到它的位置,只要计算好有多少个压力值就可以用for语句循环多少次,把所有的压力数据和它的采样时间一一对应,并保存到相应的寄存器里,以便在报表、数据库和曲线绘制的应用中提取这些数据。VB可以定义一个很大的数组来存储压力数据。
e. 循环判断。协议规定每个数据包都以B为字头,一个字符串中可以有若干个数据包,那么就有很多个B作为字头,而且也作为上一个数据包的结尾。取数据包最后一位,设为N,取整个字符串最后一位E的位数是M。判断N+1和M的大小,如果相等那么说明已经处理完所有得数据包;若N+1 便携式压力采集系统为了提高电池性能,可以使用采样和休眠两种工作方式,采样时处于全速工作状态,其余时间处于休眠节电状态。存储系统采用128KByte的E2PROM芯片,最大存储的测量压力数据约为60KByte。当采样间隔为10s时,对应采样时间可长达约166h。系统利用VB语言编程,建立了人机交互界面,通过管理系统,实现了技术人员对采集数据的分析与处理。通过分析压力数据为油井维护方案提供了依据和针对性措施。6 结束语