ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:329.74KB ,
资源ID:10034420      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10034420.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(油田计量站控制系统的软件设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

油田计量站控制系统的软件设计.docx

1、油田计量站控制系统的软件设计河北大学工商学院 本科生毕业论文(设计) 题目:油田计量站控制系统的软件设计学 部 信息科学与工程学部 学科门类 工学 专 业 自动化 学 号 2007479243 姓 名 张强 指导教师 刘鑫 2011年5月12日油田计量站控制系统的软件设计摘要在油田生产和管理过程中,油气计量工作是一项非常重要的工作。随着先进的计算机技术、工业控制技术以及通信技术的迅猛发展和油田信息化进程的不断深入,计量方式向自动化、智能化、远程化方向发展。因此,实现油田计量自动化是整个油田自动化的一个重要组成部分,它可以提高油田的实时控制和高效管理。本文设计的是一个基于SCADA的油田计量自动

2、化系统,此系统利用计量控制器作为计量站的下位机,并通过无线通讯网络传输给服务器,利用组态软件对计量站的现场数据和计量过程进行远程实时监控。对于油气的计量,下位机的计量管理程序会根据液、气计量的数学模型计算出日产液量、气量。该系统已成功应用于实际的计量中,并取得了很好的效果。关键词:油田计量站;自动化;软件Oil Field Metering Station Control System Software DesignABSTRACTIn the process of oilfield production and management, oil and gas metering work is

3、 a very important job.With advanced computer technology, industrial control technology,and rapid development of communication technology and oil information process further,metering automation, intelligent, long-range direction. Therefore, to achieve automation of the entire oil field measurement is

4、 an important part of automation, which can increase the field of real-time control and efficient management. This design is based on measurement automation oilfield SCADA system, the system controller as measured by measurement stations under the crew, and through wireless communication network tra

5、nsmission to the SCADA server, using the configuration software for field data measurement points and measurement process Remote real-time monitoring. For the measurement of oil and gas, under the crew management process based on the measurement of liquid and gas measurement mathematical model to ca

6、lculate the daily fluid production rate,gas.The system has been successfully applied in practical measurement, and achieved good results.Key words:oilfield metering station; automation; software 4.2 组态软件设计 234.2.1 系统参数设置 23前言长期以来,工业自动化与计算机技术的应用是分不开的。从早期的单片机、单板机开始,经历了工业控制机阶段,到目前的DCS系统、SCADA系统,计算机在工业自

7、动化中的应用达到了一个新的水平。当前,自动化技术与计算机技术、网络技术相结合,朝着管控信息一体化的方向发展。 计量站是油田的重要组成部分。计量站生产担负着站内各个油井的液、油、气三相计量任务,需要及时、准确地为油田地质部门提供油藏工程资料。然而,目前我国很多油田计量站仍然采用人工计量方式,采注工人三班工作制,劳动强度大、效率低。同时,人工计量是间歇不连续的,计量次数少、时间短,再加上大部分油井间出、原油含水较高,所以计量结果代表性差,不能为油藏工程提供真实可靠的资料。自动化和管理信息系统为实现计量站生产全面自动化提供了可能。国内外陆续推出了功能完善的远程控制终端(RTU),提高了计量站现场控制

8、的自动化水平;通过无线/有线通信系统,可以将各个计量站RTU与中控室连接起来,构成数据采集和监控(SCADA)系统,在中控室完成生产监控,实现计量站无人值守;而SCADA系统的实时生产数据通过网络传输到管理信息系统(MIS)后,可实现对生产数据的自动分析处理。1系统概述1.1系统结构油田计量自动化系统由现场仪表、计量控制器、无线通信网络、SCADA服务器和客户端等组成1,如图1-1所示。计量间的现场仪表有、压力变送器、温度变送器、气体流量计、分离器液位计、电动阀等仪表。计量控制器通过无线通信网络与服务器进行数据双向传输,它向中心控制室传输采集到的实时监测数据和计量结果,同时接收中心控制室或人机

9、界面发送的计量等命令来控制电动阀动作,从而使计量站的远程计量达到很高的自动化控制水平。图1-1计量站SCADA系统结构图1.2系统功能ECHO 5400 RTU 是一个真正的实时多任务系统。计量过程控制程序负责对分离器计量的过程进行控制,而计量管理程序则负责计量结果的计算、计量选井、排序,不仅可以实现自动排序计量,即RTU按照事先预置的计量时间、计量次数、顺序自动选井计量,也可以针对某一口井,实现手动选井计量,系统功能如表 1-1。表1-1ECHO 5401/5406三相计量仪功能表类别功能说明备注自动三相计量 计量方式: 定时计量。 定次计量。支持定次计量最大时间设定。 倒井方式: 自动排序

10、倒井。 人工倒井(多井计量)。 计量结果: 计量过程结果:总日产液、油、水、气量,平均含水率。 单罐计量结果:单罐日产液、油、水、气量,平均含水率。2计量原理2.1计量油气分离器加压力平衡罐计量工艺 油气分离器加压力平衡罐计量工艺流程2如图2-2所示。该工艺中,设置一个与油气分离器相互连通的压力平衡罐,二者气压始终平衡。压油阶段打开压油阀,此时油气分离器内液面相对平衡罐液位存在一定的位差(2m左右),油气分离器内液体靠自重压入压力平衡罐内。 由于减少了故障点,所以增大了采注计量站油气集输、油气计量的安全系数,减少了采注计量站维护工作量。特别适合低产低能油井自动计量。图2-2油气分离器加压力平衡

11、罐计量工艺流程图2.2计量过程该工艺34中,采用油气分离器和压力平衡罐,二者相互连通,气压始终平衡。压油阶段打开压油阀,此时油气分离器内液面相对平衡罐液位存在一定的位差(2m左右),油气分离器内液体可以靠自重压入压力平衡罐内。当需要计量时,选择一个电动三通球阀(D10D12)如图2-3所示,将油井的来油改入分离器进行气、液两相分离。当向计量站的计量控制终端(RTU)发出启动命令后,RTU将分离器电动两通阀D13关闭,分离器液位上升。当液位上升到液位计下限时,液位计的相应触点开关F1动作,RTU开始有效计量时间的计时(也可根据液位值判断上下液位)。 当液位上升到液位计上限时,液位计的相应触点开关

12、F2动作,RTU停止有效计量时间的计时。根据分离器容积和每次计时时间,可以计算出该油井日产液量,结合含水率或原油密度,可计算出该油井的日产油量;气体通过气体流量计计量后与原油混合进集油汇管,混输至集中处理站。根据每次计时时间内的天然气流量F累计,并检测出气时的温度T、压力P进行补偿,可以计算出该油井的日产气量;然后进入压油过程,RTU将分离器的电动两通阀D13打开,油水混合液通过D13压出,分离器液位下降。同时,用高含水分析仪A1连续测量含水率,并计算含水率平均值,从而计算液、油产量。当分离器液位下降到低于“分离器液位计下限”,液位计的相应触点开关F2动作,压油结束,RTU将电动两通阀D13关

13、闭。此后分离器液位转而上升,又进入下个罐次的计量。每个计量过程可包含多个罐次,其结果数据包括:井号,计量起始日期和时间,计量总时间和有效时间,计量罐数,日产液量(体积和重量)、日产油量(体积和重量)、日产水量(体积和含水率)、日产气量等。对于这种工艺流程,计量站远程控制终端(RTU)应能够完成以下功能:(1) 倒井控制根据RTU人机界面操作命令或中控室远程操作命令,自动将某一或多个油井切换到计量位,并启动计量。倒井控制可包括人工倒井和自动排序倒井等方式,用于倒井的电动阀除了上述的三通阀外,也可以是多通阀。 (2) 计量流程控制 某一个或多个油井切换到计量位后,根据上、下液位开关状态自动控制压油

14、阀的开、关,完成一定时间或一定罐次的计量(由RTU人机界面或中控室设置)。 (3) 计量计算 计量过程结束后,根据计量有效时间、实际计量罐次、平均含水率、天然气流量自动计算出液、油、气的日产量。图2-3 采注计量站三相自动计量3系统硬件及I/O3.1ECHO 5400控制器ECHO 5400系列自动计量控制器是为适应油田自动化的需要而设计的远程控制终端,选用先进的主控制器和IO模块,硬件采用模块化结构,控制器指标,如表3-1所示。表3-15400控制器指标控制器内存640k通讯口2个RS232串行口/一个以太网接口波特率3006001200 24004800 9600 19200 38400通

15、讯协议Modbus ASCII Modbus RTU/ModbusTCP/IPAI/AO模块8路 A/D分辨率 12位0-20mA/4-20mA DC电流信号0-5V/1-5V DC电压信号热电输入4路PI模块4路 0-10kHZ频率脉冲信号DI/DO模块8路 继电器触点信号 状态电平信号串行口2路RS232口通讯方式无线 租用电话 专用双绞线供电方式220V AC (20%)50HZ温度特征使用温度 -40-+70存储温度-50-+80测量精度0.1%3.2 电动阀电动阀5:用于液体、气体和风系统管道介质流量的模拟量调节,是AI控制。在大型阀门和风系统的控制中也可以用电动阀做两位开关控制。

16、电动阀:可以有AI反馈信号,可以由DO或AO控制。 (1) 开关形式 电动阀的驱动一般是用电机,开或关动作完成需要一定的时间模拟量的,可以做调节。 (2) 工作性质 电动阀的驱动一般是用电机,比较耐电压冲击。电磁阀是快开和快关的,一般用在小流量和小压力,要求开关频率大的地方电动阀反之。电动阀阀的开度可以控制,状态有开、关、半开半关,可以控制管道中介质的流量而电磁阀达不到这个要求,如图3-1所示。 图3-1 计量间电动阀3.3 系统I/O为了系统计量进行进行更好的控制,需要实时的对计量过程中的气体液体流量、压力、液位、含水率等物理量进行采集,在程序中对这些物理量进行分析,并通过DO控制电动阀动作

17、,同时为油井产量及含水率的计算提供原始数据,以下是系统的I/O配置:(1) AI工程值,其中通道号的十位数为模块号,个位数为通道号如表3-2。表3-2AI工程值工程值名称单位AI1分离器液位 mmAI2 含水率%AI3出气流量AI1M3/hAI4出气流量AI2M3/hAI5出气压力MPa(2) DI工程值,采集电动阀及计量罐物理量,如表3-3所示表3-3DI工程值工程值名称DI1断电检测DI2下液位开关DI3上液位开关DI4两通阀开状态DI5两通阀关状态DI61号井计量状态DI71号井生产状态DI82号井计量状态DI92号井生产状态(3) DO工程值,控制电动阀动作,实现倒井功能,如表3-4所

18、示表3-4DO工程值工程值名称DO1计量指示灯DO15两通阀开控制DO16两通阀关控制DO171号井计量控制DO181号井生产控制DO192号井计量控制DO202号井生产控制4系统软件设计 4.1下位机软件设计 4.1.1下位机软件框架下位机程序是基于uC/OS-II操作系统6的,uC/OS-II是一个实时多任务的操作系统,uC/OS总是运行优先级最高的任务,用户可根据需要注册自己的任务,图4-1所示。 图4-1下位机软件框架4.1.2系统设置、时间设置,对系统的日期、时间进行设置78,代码如下 typedef struct u_char hour; u_char minute; u_char

19、 second; u_char year; u_char month; u_char day; u_char week; TIMER;static TIMER t; static first_run; / /处理从人机界面对系统时间日期的更改 if(first_run=0)/首次运行时,同步寄存器值和中间变量值 first_run=1; t.hour =Dbase(ADDR_HOUR ); t.minute=Dbase(ADDR_MINUTE); t.second=Dbase(ADDR_SECOND); t.year =Dbase(ADDR_YEAR ); t.month =Dbase(ADD

20、R_MONTH ); t.day =Dbase(ADDR_DAY ); if(Dbase(ADDR_HOUR )!=t.hour/若寄存器现在的值与上次写入值不一致,说明从界 面对寄存器值进行了修改. |Dbase(ADDR_MINUTE)!=t.minute |Dbase(ADDR_SECOND)!=t.second |Dbase(ADDR_YEAR )!=t.year |Dbase(ADDR_MONTH )!=t.month |Dbase(ADDR_DAY )!=t.day ) t.hour =Dbase(ADDR_HOUR ); t.minute=Dbase(ADDR_MINUTE);

21、t.second=Dbase(ADDR_SECOND); t.year =Dbase(ADDR_YEAR ); t.month =Dbase(ADDR_MONTH ); t.day =Dbase(ADDR_DAY ); set_clock(&t); /处理从人机界面对系统时间日期的更改 / /显示当前的时间 日期 get_clock(&t); SetDbase(ADDR_HOUR ,t.hour ); SetDbase(ADDR_MINUTE,t.minute ); SetDbase(ADDR_SECOND,t.second ); SetDbase(ADDR_YEAR ,t.year ); S

22、etDbase(ADDR_MONTH ,t.month ); SetDbase(ADDR_DAY ,t.day);2、 串口通讯参数设置,其主要设置Modbus协议、主从关系、半/全双工、通讯速率、数据位、停止位及校验位的设置。 US2_CONFIG-station=1; US2_CONFIG-protocol=US_MODBUS_RTU; US2_CONFIG-state=US_SLAVE; US2_CONFIG-duplex=US_FULL; US2_CONFIG-baud=38400; US2_CONFIG-parity=US_PARITY_NO; US2_CONFIG-data_bit

23、s=US_DATA_BIT_8; US2_CONFIG-stop_bits=US_STOP_BIT_1; US2_CONFIG-time_out=100; US2_CONFIG-time_delay=0; US2_CONFIG-port_type=US_RS232; US2_Config=US2_CONFIG; /*置接收状态*/ IO_Init(&US2_DEF.rts); /*初始化RTS*/ IO_Init(&US2_DEF.cts); /*初始化CTS*/ IO_Output(&US2_DEF.rts,0); /*置接收状态*/ /*串口2初始化*/ set_us_config(&US

24、ART2_DESC,US2_Config); at91_usart_receive_frame(&USART2_DESC,(char*)us2_rx_buf,US_BUF_SIZE,10); at91_irq_open (US2_ID,7,AIC_SRCTYPE_INT_EDGE_TRIGGERED,asm_us2_irq);4.1.3 AI数据采集for(i=0;i NUM_AI_ENGI;i+) AI_Engi_BaseAddr=E5501_ENGI_START + i*20; ChannelCode =Dbase(AI_Engi_BaseAddr); /*界面设置的AI量物理通道代号*/

25、 Card =ChannelCode/10 -1; /*十位数表示卡件号*/ Channel =ChannelCode%10 -1; /*个位数表示通道号*/ AI_Chan_Addr =E5501_CHAN_START + Card*8 +Channel; if( Card =NUM_E5501|Channel =8 ) BinData =0; /*输入卡件、通道数据非法?*/*读物理通道二进制数:物理通道从E5501_CHAN_START开始 */ else BinData =Dbase(AI_Chan_Addr); /*0-20mA到4-20mA转换*/ if(BinData10000)

26、 BinData=10000;BinData=(unsigned long)(BinData-10000)*32767.0/40000.0);4.1.4 检测含水率与计算 float highth; /*当前液位高度*/ static float pre_highth; /*上个液位段高度*/ static int pre_measure_water; /*上次的含水检测标志*/ static float number; /*在一个液位段内的检测次数累积*/ static float accum ; /*在一个液位段内的含水率 累积*/ float average; /*在一个液位段内的含水率

27、 平均值*/if(measure_water)/*在含水测量起点和终点之间,测量含水率*/ /*含水检测次数、重量含水率累加在UPON_OIL_UP阶段清零*/ single_ratio_number +=1; /*含水检测次数*/ single_g_ratio_sum += FloatDbaseWaterRatioG(); /*重量含水率累加*/*实时动态显示含水检测次数*/ SetLongDbase(ADDR_SINGLE_RATIO_NUMBER_DISPLAY,(int)single_ratio_number); 4.1.5 数据显示 switch(Dbase(ADDR_WATER_M

28、ODE)/*含水率显示*/ case 0: case 2: SetLongDbase(ADDR_WATER_RATIO_DISPLAY,(unsignedlong)(FloatDbaseWaterRatioG()*WATER_RATIO_SCALE) );/*写入重量含水率*/ break; case 1: /*写入体积含水率*/ case2:SetLongDbase(ADDR_WATER_RATIO_DISPLAY,(unsignedlong)(FloatDbaseWaterRatioV()*WATER_RATIO_SCALE) ); break; /*出气流量显示*/ SetLongDba

29、se(ADDR_GAS_DISPLAY,(unsigned long)(FloatDbaseGas()*GAS_SCALE) ); 4.1.6 ADP处理手动倒井命令 extern int stage; /*外部变量声明:计量阶段*/ int i; /*处理ADP3人机界面倒井命令,计量过程中应该禁止倒井*/ for(i=0;i1+ Dbase(ADDR_NUM_WELLS) ;i+)/* 1个两通阀 + 井数个三通阀*/ /*开阀或置计量位*/ if(/*stage=IDLE &*/ Dbase(BASE_ADDR_VALVES_ORDER+i)=1) SetDbaseValve(i,1,0); /*关阀或置生产位*/ if(Dbase(BASE_ADDR_VALVES_ORDER+i)=2) SetDbaseValve(i

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1