基于Forward平台的二次开发流程

上传人:平*** 文档编号:46300349 上传时间:2018-06-25 格式:PPT 页数:24 大小:2.01MB
返回 下载 相关 举报
基于Forward平台的二次开发流程_第1页
第1页 / 共24页
基于Forward平台的二次开发流程_第2页
第2页 / 共24页
基于Forward平台的二次开发流程_第3页
第3页 / 共24页
基于Forward平台的二次开发流程_第4页
第4页 / 共24页
基于Forward平台的二次开发流程_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《基于Forward平台的二次开发流程》由会员分享,可在线阅读,更多相关《基于Forward平台的二次开发流程(24页珍藏版)》请在金锄头文库上搜索。

1、Yangtze University基于Forward平台的 二次开发流程时新磊长江大学生产测井实验室2009.11.10参考书籍均有电子版,安装Forward和SDK后提供重点是WellBase技术开发手册ContentsForward/WellBase简介1开发一个方法模块的操作步骤2源代码说明3模块的挂接实现4Forward/WellBase简介WellBase(Well Basic Analysis System Environment)是为了满足 勘探、开发测井资料分析处理的需要而设计开发的测井解释平台底层,是 构成Forward和Watch测井系统的基础,具有测井数据输入、测井资料

2、预 处理、测井资料基本处理、测井解释成果输出等功能,由平台数据底层和 平台工具两部分组成。WellBase数据底层数据管理工具平台工具预处理工具成果输出工具应用工具Forward/WellBase简介为满足我国勘探开发测井解释处理的需要,由CNPC油气勘探部和 油气开发部组织全国各油田测井单位、研究院和院校的优秀测井软 件人员,组成测井软件开发项目组,对七五和八五攻关成果进行优 选和整理,在建立WellBase环境的基础上开发完成了具有我国独 立自主版权的勘探测井解释系统Forward(Formation Oil&Gas Reservoir Well_Logging Analysis & Re

3、search & Development)和生产测井解释系统Watch(Well_Logging Analysis Technique for Casing Hole)Forward/WellBase简介WellBase开发工具包(SDK)为帮助您快速开发测井处理程序,WellBase提供其软件开发工具包SDK( Software Development Kit)。SDK中提供了大量的Fortran和C+输入输出接口函数,并分类进行了面向对 象封装SDK还提供了多种开发工具,帮助您快速生成各种测井应用源程序框架,通过 必要的修改后便可产生各种应用程序。Forward/WellBase简介安装W

4、ellBase开发工具包(SDK)bin目录中存放平台所有可执行文件及动态库。在 WellBase上开发的应用程序的执行文件必须存放在该 目录下 bin的子目录dlldecode中存放数据解编动态库。 用户开发完成的数据解编动态库必须存放在该目录 下才能够被数据解编程序加载和调用。 bin的子目录dllprocess中存放处理方法动态库。 用户开发完成的处理方法动态库必须存放在该目录 下才能够被综合常规处理程序加载和调用include目录中存放利用C或C+语言对平台进行开发 时需要的所有头文件Forward/WellBase简介安装WellBase开发工具包(SDK)lib目录中存放利用For

5、tran、C或C+语言对平台进行 开发时需要的所有库文件source目录中存放WellBase平台提供的所有源程序。 其子目录method中存放处理方法动态库源程序; process中存放Fortran处理方法源程序; processframe中存放处理部分框架源程序,decode中 存放部分解编源程序Forward/WellBase简介安装WellBase开发工具包(SDK)template目录中存放处理程序的绘图模板 、缺省处理参数文件以及参数可视编辑控 制文件, 处理程序的模板目录名称采用处理程 序名,处理程序的绘图模板、缺省处 理参数文件(*.def)以及参数可视编 辑控制文件(*.c

6、fg)均存放在该目录 下。 系统的模板目录与bin等目录平级。进 行用户登记时可将用户的模板目录修 改为用户缺省模板目录(用户名 template)或用户缺省指定目录。 采用用户缺省模板目录的优点在于不 同的用户具有各自的模板目录,用户 修改模板时不会影响其他用户Forward/WellBase简介安装WellBase开发工具包(SDK)workspace目录为用户工作区,其中存放用户处理井的数据,其目录结构 如右图所示。 一口井的全部数据存放在名为“#井名”的目录下,可以采用一个WIS 文件保存该井的全部数据,也可将数据分类(例如,按测井系列分类 )保存为多个WIS文件。采用拖拉方式处理井时

7、,缺省打开“井名 .wis”文件。 tapedata目录中存放若干可供练习使用的测井原始数据文件。 系统的用户工作区目录与bin等目录平级。进行用户登记时可将用户 的工作区目录修改为用户缺省目录(用户名workspace)或用户缺 省指定目录。采用用户缺省工作区目录的优点在于不同的用户具有各 自的工作区目录,用户修改井数据时不会影响其他用户。 Forward/WellBase简介WellBase SDK提供的主要C+类开发一个方法模块的操作步骤利用WellBase可以开发三种类型的扩展模块/程序:测井处理动态库 DLL库 测井处理动态库是一种外挂式的测井处理模块,开发人员利用动态库来完成测井资

8、料的 计算过程,由测井常规处理框架LogProcess动态调用,并由LogProcess实现图形操作、 数据同步、参数编辑等过程,通过调用动态库的计算模块完成整个处理过程。测井常规 处理框架如下图所示 测井处理框架应用 EXE程序 测井处理框架是一种基于LogFrame底层的多文档或单文档应用程序。LogFrame底层定 义了应用类CLogFrameApp、主窗口类CLogMDIMainFrame、子窗口类CLogChildFrame 、文档类CLogProcessDoc、视图类CLogProcessView及许多图形对象类,应用软件仅需 完成自己的处理方法对象类。通过底层函数,应用程序可以访

9、问所有的图形对象、修改 图形的显示方式、控制鼠标动作、加入自己的图形对象,是一个真正的应用程序 数据解编动态库 DLL库 数据解编动态库是一种外挂式的测井数据解编模块,开发人员利用动态库来完成对单个 文件的解编过程,由WellBase平台的LogTape主应用程序来实现对磁带机或磁盘文件的 控制,配置解编动态库及调用顺序,主计算模块通过解编动态库的文件识别、信息扫描 和数据转换函数实现对测井数据的解编开发一个方法模块的操作步骤测井应用程序一般结构输入:指定要处理的曲线处理:对曲线数据进行加工输出:生成新的曲线或重写现有曲线 WellBase完成了井数据格式的管理(Wis)完成了井绘图功能 开发

10、者所需要做的工作多数情况下只需要编写处理代码开发一个方法模块操作步骤首先建立一个应用图像框架工程:开发一个方法模块操作步骤代码窗口操作步骤流程如下 v熟悉了解待开发的模块的原理和解释方法 v利用Forward SDK提供的VC6.0“测井分析动态库自动生成器”Wizard产生 初始代码 v修改代码:v 修改输入曲线描述结构和输入曲线数据缓冲结构v 修改输出曲线描述结构和输出曲线数据缓冲结构v 修改参数描述信息结构、参数数据缓冲结构和参数默认值结构v 编写Method方法的代码 v撰写以下文件v 参数可视化配置文件(.CFG)v 缺省参数文件(.DEF)v 缺省绘图模块(.PPR) v编译调试,

11、反复修改直到符合要求源代码说明由Wizard产生的项目包括下列文件(XXX为方法名):XXX.cpp主文件,实现入口函数DoProcess和About,DoProcess函数构造 处理方法对象,并调用该方法的处理函数进行处理。About函数显示版本、 版权等信息。XXX.def模块定义文件,定义两个引出函数DoProcess和About。XXX.rc资源文件。XXXMethod.cpp处理方法对象源文件,实现所有的处理函数。定义输 入、输出曲线及参数名称。XXXMethod.h处理方法对象头文件,定义处理方法对象及其函数, 定义输入、输出曲线及参数变量 。Stdafx.cpp 预编译源文件。S

12、tdafx.h预编译头文件。Resource.h 资源符号定义头文件。Readmt.txt 工程说明文件。源代码说明定义输入曲线,描述方法所需的输入曲线:在XXXMethod.h头文件的InVar结构中定义输入曲线数据变量,可以是各种 类型的变量或数组,变量的类型和井数据文件中实际存放曲线的类型无关, 有数据底层实现不同类型数据的转换过程,例子中定义两个输入曲线变量 GR和SP,都为单精度浮点在XXXMethod.cpp中定义INCURVE结构数组变量(该结构在LogProcess.h 中定义,关于该结构具体说明参考ClogProcess底层),数组的元素个数通 过宏变量NNoI给出,它的值为

13、输入曲线条数,例子中为两条输入曲线,该 值为2。对定义的INCURVE结构数组变量PInCurve赋值,每条曲线结构的变量代码 和数据采样个数必须和InVar结构变量中指定的一致。若输入曲线数据结构 InVar中定义的某条曲线变量类型不是单精度浮点,则在PInCurve结构数据 中对应的元素中指定变量代码类型,若输入曲线数据结构InVar中定义的某 条曲线变量是数组,则在PInCurve结构数据中对应的元素中指定采样点数。源代码说明定义输出曲线,描述方法所产生的输出曲线:在XXXMethod.h头文件的OutVar结构中定义输出曲线数据变量,可以是各 种类型的变量或数组,变量的类型与井数据文件

14、中实际存放曲线的类型无关 ,有数据底层实现不同类型数据的转换过程,例子中定义两个输出曲线变量 XGR和XSP,都为单精度浮点。在XXXMethod.cpp中定义OUTCURVE结构数组变量(该结构在LogProcess.h 中定义,关于该结构具体说明参考ClogProcess底层),数组的元素个数通 过宏变量NNoO给出,它的值为输出曲线条数,例子中为两条输出曲线,该 值为2。对定义的OUTCURVE结构数组变量POutCurve赋值,每条曲线结构的变量 代码和数据采样个数必须和OutVar结构变量中指定的一致。若输出曲线数据 结构OutVar中定义的某条曲线变量类型不是单精度浮点,则在POu

15、tCurve结 构数据中对应的元素中指定变量代码类型,若输出曲线数据结构OutVar中定 义的某条曲线变量是数组,则在POutCurve结构数据中对应的元素中指定采 样点数源代码说明定义输入参数:在XXXMethod.h头文件的InpVar结构中定义输入参数变量,变量的类型必 须是单精度浮点。在XXXMethod.cpp中INPNAME类型字符串数组变量(该结构在 LogProcess.h中定义,关于该结构具体说明参考ClogProcess底层),数组的 元素个数通过宏变量NNoC给出,它的值为输入参数个数,例子中为两个输 入参数,该值为2。在XXXMethod.cpp中,定义参数缺省值数组变

16、量PARA,并赋缺省值源代码说明方法调用过程:第一步:主程序装入方法动态库,并调用DoProcess函数,将井文件名和参 数名传递到该函数中,控制转移到该函数。第二步:DoProcess函数构造处理方法对象,并调用方法对象的Processing函 数,控制转移到该函数。第三步:Processing函数实现数据处理后,返回到DoProcess函数。第四步:DoProcess函数删除方法对象,返回由Processing函数返回的数值, 控制回到主程序。第五步:主程序释放方法动态库,根据DoProcess的返回代码判断是否刷新 图形及同步数据,若返回值小于零,不刷新图形和同步数据,否则刷新图形 和同步数据模块的挂接实现第一步:将编译后的可执行文件(.exe)拷贝至Forward或Watch平 台安装目录下的执行程序目录.bin下;第二步:数据表定义文件“deftable.inf”拷贝至Forward或Watch平台 安

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号