摘要:目前胜利油田滨南采油厂原油盘库系统的自动化程度较低。为大力提高其自动化水平,本文根据该采油厂各联合站分散采集、集中监视的特点,设计了基于RS-485总线和主从单片机结构的数据采集子系统方案。由位于监控室的主单片机作为中枢,通过RS-485总线采集各从单片机收集到的原油参数并通过串口上传到上位机中。利用上位机软件配合Proteus软件和Keil软件对整个子系统进行了仿真和测试,从而验证了其可行性。
在采油厂联合站中对原油的液位、油水界面、密度、含水、库存量等各项参数的计量过程就是盘库。盘库是原油生产过程中的一项重要工作,只有精确掌握了各项生产数据才能做出更好的生产及销售决策。这是一项关系到企业发展和经济效益的重要任务,因此,研究与开发一套现代化的原油自动盘库系统是非常必要的。滨南采油厂是胜利油田位于山东省滨州市的一个重要采油厂,但受限于当时的技术与资金等方面的因素,该厂现在使用的盘库系统自动化程度不高,突出表现在源头数据的采集与传输必须以人工的方式完成,费时劳力,已经满足不了现代化、高效率、高精度的生产要求。本文就是以滨南采油厂为背景,在其实际应用盘库系统的基础上,参考了国内外一些油田联合站的盘库方案,设计开发了一套基于RS-485总线和主从单片机结构的原油自动化盘库数据采集子系统。
1 研究背景
滨南采油厂现有的原油盘库系统是以基于浏览器和客户端软件的方式进行原油生产数据的采集、传输及处理。首先通过人工读取的方式获得原油罐上测量仪表或其他计量工具测量得到的数据,然后生产单位用浏览器将原油生产数据录入数据库,之后计划科工作人员用客户端软件对原油生产数据进行统计以供全厂人员查询。
该系统由5部分组成,第一部分为原油生产数据录入部分,由各矿区和集输大队的工作人员以浏览器的方式将数据录入到服务器中;第二部分为原油生产数据统计部分,计划科工作人员每天通过客户端软件对各单位上报数据进行统计,形成每天的产量数据;第三部分为原油生产数据查询部分,供全厂各部门以浏览器方式查询生产数据;第四和第五部分分别是原油生产数据报表输出和系统维护部分,供计划科人员使用,以客户端软件的形式实现。
现有系统到目前为止已建成十余年,一直运行稳定。但其整体自动化程度亟待提高,集中表现在源头数据的采集和传输只能依靠人工完成。若能实现源头数据的自动采集和传输,即可完成现有盘库系统中第一部分(即:生产数据录入部分)的升级代替,并能与现有盘库系统中的其余部分实现良好衔接,从而可将滨南采油厂原油盘库系统的自动化水平提高到较高水平。
2 需求分析及测量方法
针对滨南采油厂现在实际运行的盘库系统由人工完成数据采集的现状,需做出以下几方面的改进:利用传感器技术实现源头数据的自动采集,提高数据采样频率,实现数据自动存储、显示与上传,实现数据的远程实时监控。
为实现盘库数据的自动采集,经多方比较,针对不同类型油罐采用了如下测量方法。
2.1 针对沉降罐的测量方法
沉降罐的特点是原油含水率较高,且随着高度的不同含水率变化较大,且一般不是线性关系。因此,应测量出不同高度处的含水率并进行平均。为此,先用超声波液位变送器测量出油水混合物的液位,然后使用智能采集装置测量出不同高度处的含水率与温度。智能采集装置的主要工作部件是一个装有短波发生器及接收器的移动探头。当油水混合物的含水率变化时,其对能量的吸收也会相应变化,这种表现会被接收装置记录下来并转换成适宜单片机接收的标准信号。
具体工作过程是让移动探头先运行至油罐最底部,然后在油罐中自下而上采集不同高度处的含水率,并将含水率为95%的位置处定义为油水界面。此后,让探头继续等间隔上升,测量出油层不同高度处的含水率及温度,直至液面的顶端。该方案的整体结构如图1所示。
根据上述测量原理,沉降罐中原油储量的计算公式为:
其中,ρo和ρw分别是水和原油的密度,并且需要做温度修正。
2.2 针对净油罐的测量方法
净油罐中原油的特点是含水率较低,通常来油的含水率已经低于5%,经净油罐再次沉降后甚至可达1%以下。并且,净油罐中的含水率随油层高度变化不大,因此可用外输原油的含水率来代替油罐中的含水率。这样,只需使用射频导纳界面仪和超声波液位变送器分别测出油水界面的高度和液位就可以计算出油罐中的储油量了。计算公式为:
其中,H为油层的高度,即液位减去油水界面高度。
2.3 针对外输管道的测量方法
通过安装高精度的含水分析仪、在线密度计和流量变送器可实现计量。具体计算公式为:
G=Viρ[MfCpCt(1-Cω)] (4)
其中,Vt为流量计测得的总流量,Mf为流量修正系数,Cp为原油压力修正系数,Ct为原油温度修正系数。
3 总体设计
该系统由3层结构组成,最底层是现场数据采集层,负责对传感器采集到的数据进行调理与转换;中间层是数据传输层,负责数据的本地存储与传输;最上层是数据存储与界面层,负责将采集到的数据存储到上位机的数据库中,并实现与工作人员的人机对话,可显示即时及历史数据、绘制统计图、输出报表及打印、设置系统参数、执行远程手动控制等。
系统工作过程为:由安装在各类油罐上的各种功能的传感器将采集到的生产数据如液位、油水界面高度、原油含水率和温度等信息经信号调理、模数转换后,传送到安装在油罐附近的现场单片机即从单片机上,然后利用RS-485总线通过串口传送到主单片机中,最后经电平转换将采集到的数据发送到上位机,在上位机中进行数据的运算、存储与显示。
系统总体结构图如图2所示。
4 系统硬件设计
硬件部分主要由主/从单片机最小系统、串口复用电路、RS-485通信电路、数据存储电路、模数转换电路等组成,系统硬件结构图如图3所示。
为节约成本,本系统中使用的单片机均为51单片机。所使用的时钟均为内部方式,即在XTAL1和XTAL2两端外接石英晶体作定时元件,内部反相放大器自激振荡产生时钟,时钟频率为11.059 2 MHz。复位方式采用手动复位。
51单片机仅有一个串口,而主单片机与上位机和与从单片机的通信均是通过串口进行,因此涉及到串口复用。文中串口复用电路就是实现这个功能,具体是使用两片多路模拟开关4051分别实现单片机读写数据的方向选择,另外使用两个控制端口进行通路的选通。
主从单片机之间的通信是基于RS-485总线来实现的,总线拓扑结构采用终端匹配的总线型结构,首尾两端使用的阻抗匹配电阻为120Ω。通信协议采用的是Modbus中的RTU模式,通信方式为主从式,仅有一个主机,各从机有唯一编号,且从机间不能相互通信。
由于要在现场单片机进行数据备份,防止总线故障时出现数据丢失,因此要在从单片机电路上扩展外部数据存储器。经容量测算,选用6264静态RAM进行了扩展,并用一片74LS373进行数据锁存。
A/D转换器采用MCP3204,这是由Microchip公司生产的4通道、12位微功耗串行模数转换器。4个通道分别用于采集液位、油水界面、含水及温度,其他量可在上位机上计算得出。12位模数转换器的精度可达0.2‰,完全可满足需要。
5 系统软件设计
软件设计采用模块化结构。单片机程序使用C语言开发,开发环境为Keil μVision4。上位机程序使用VB6.0进行开发。
系统软件设计包括主单片机程序设计、从单片机程序设计以及上位机程序设计3部分,其结构框图如图4所示。其主要功能模块的作用如下:
串行通信模块用来实现主从单片机间的通信以及主单片机与上位机间的通信;定时器模块用来设置串行口波特率以及RS-485通信协议中的帧定时和字节定时;模数转换模块用于对传感器采集的数据进行AD转换。上位机程序中的数据处理与显示模块用于对主单片机上传的数据进行处理、显示并将结果存储到数据库中。
主单片机和从单片机主程序的流程图分别如图5和图6所示。
上位机的主要功能是定时唤醒主单片机,并向其发送数据采集命令,然后等待接收数据,最后将数据实时显示并存储。其主程序的流程图如图7所示。
6 仿真实现
本文中主、从单片机的数据采集与通信部分均通过Proteus软件进行了仿真实现。上位机软件与Proteus软件之间通过虚拟串口进行相互通信。图8给出了主单片机上LCD的显示结果,对应当前采集过程中3个油罐的液位和油水界面高度。图9为上位机上的显示结果,给出了本次采集的时间以及3个油罐中所有生产数据等信息。
7 结论
文中为实现滨南采油厂各联合站生产数据的自动采集、传输、存储与显示,设计了一套原油盘库数据采集子系统。该子系统采用主、从单片机结构,利用RS-485总线进行数据传输,并最终上传到联合站主控室上位机的数据库中。
利用Proteus、Keil和上位机软件进行了联合仿真与调试,验证了方案的可行性,值得在采油厂中应用。该方案具体实施后,将实现对滨南采油厂现有盘库系统中人工录入数据部分的升级代替,并能与现有盘库系统中的其余部分实现良好衔接,从而可将该厂原油盘库系统的自动化水平提高到较高水平。