摘要:本文主要介绍了基于Delphi的水平定向钻进监控系统软件设计方案和主要功能模块的实现方法。该软件能根据地貌信息和施工要求合理设计水平定向钻进钻孔轨迹,并在实现整个施工过程中钻孔状态实时监测的同时,对钻进给予一定的预测和调控,大大提高了施工的精度和可靠性。软件基于Windows操作系统,采用面向对象、数据库功能强大的Delphi语言作为RAD平台,具有良好的可维护性、可操作性、友好的界面。
关键词:水平定向钻进,钻进轨迹设计,状态监测,调控
0 引言
近十年来,随着钻进方法和设备的完善,交通、环保、法律意识的增强,成本的降低和政府的支持,水平定向钻进技术得到了广泛的应用。如图1所示,为水平定向钻进过程。钻头中安装的地下传感发射探头测得钻头的各状态参数后发射电磁波信号,地面手持式定位跟踪仪接收到地下传感发射探头测得的钻头当前信息后,以通讯协议规定数据格式通过无线收发器将数据发送到钻机主控制器。主控制器显示探测到的数据的同时,将数据通过串口发送到PC机。PC机通过轨迹监控软件计算得到下一步的钻头工具面向角和钻进模式,返回给主控制器,再由主控制器改变钻头工具面向角继续钻进。 (图片) 美国Vermeer公司、Ditch Witch公司已相继开发出与其公司生产的导向设备和钻孔监控软件。针对国内钻孔轨迹监控软件完全依赖于进口的现状,我们对水平定向钻进钻孔轨迹设计和调控中的一些关键技术进行了系统的研究,基于广泛应用于工业测控领域的Delphi可视化开发平台,开发了一套集数据库管理、轨迹设计和实际轨迹可视化、轨迹预测和控制于一体的水平定向钻进监控系统。
1 系统总体设计
图2为钻进轨迹规划流程图。系统启动后,可根据需求新建工程项目。在新建项目过程中,需要输入项目信息、地理参数信息、器械参数信息和钻进空间参数信息。项目新建完成时这些信息将保存到数据库中,并同时建立起地理空间参考系。根据系统建立的参考系,用户输入对应的地表数据、原有地下管线数据和障碍物位置数据,系统会自动将这些数据保存到数据库中,便于图形显示和用户随时更改。同时,主窗口中将绘图显示这些信息。所有参数输入完成后,可进行钻孔轨迹设计。用户可根据施工要求,对钻孔轨迹进行多次设计和修改,直到满意为止。设计完成后所有轨迹数据也将保存到数据库中,以便实际施工中调用。(图片) 图3为实际施工过程中软件监控工作流程图。软件开始工作后,等待接收数据,当接收到满足通信协议数据格式的数据后,进行实际轨迹数据处理,得到当前钻孔在系统参考坐标系中的坐标,在主窗口中进行图形显示。然后从数据库中读取相应位置处的钻孔轨迹设计数据,计算实际轨迹与设计轨迹之间的误差距离,如果大于规定值,则从当前实际钻孔位置开始,进行调控设计,使当前实际轨迹逐渐回到设计轨迹上,并将调控设计得到的工具面向角信息和轨迹三维坐标值覆盖数据库中对应的原数据。最后读取数据库中当前钻杆的工具面向角信息发送到主控制台,由主控制台根据接收的工具面向角的值改变钻具的工作模式,继续钻进。
2 软件实现方案
2.1 数据库的选取
目前数据库管理系统有多种,包括Microsoft公司的Access、SQL Server,IBM公司的DB2,Informix公司的Informix,Oricle公司的Oricle数据库以及SyBase公司的产品等。Access数据库最便宜,适合小型应用,并且支持一定的事务处理能力,根据本软件的要求,我们采用本地数据库Access作为数据库后台管理系统。
2.2 通信接口
在此系统中我们需要把导向设备测得的数据传输到计算机内进行处理,传统的计算机ISA总线速度低、不能热插拔,在计算机中已经逐渐减少;PCI总线具有高速的特点,但开发比较困难,成本也较高; USB接口具有通用、高速、热插拔、即插即用等优点,目前已经在各种计算机上得到普及,成为计算机的标准设备,非常适合在现场数据采集中应用。所以,我们采用USB总线实现PC机与导向设备间的通信。(图片) 我们选取的是讯通科技的USB100通用串行总线模块,结构框图如图4所示。在PC机上安装USB 100模块专用驱动程序后,USB100即作为PC机上的一个标准设备,可以按照与操作串口完全一样的方法来编程。
目前,利用Delphi 实现串行通信的常用方法主要有四种: ①调用API 函数; ②使用串口; ③直接嵌入汇编; ④在Delphi 中调用DLL函数。对这四种方法进行对比可知:利用控件编程比较简单,只要设定好属性,使用好方法和事件就可以成功实现串行通信。所以,我们采用第二种方式,即使用Microsoft 公司提供的Windows 下串行通信编程的ActiveX控件MSComm。该控件具有丰富的与串行通信密切相关的属性与事件,提供了一系列标准通信命令的接口。
2.3 软件总体构架
根据系统的要求,软件总体构架框图如图5所示。(图片) 3 功能实现
3.1 数据的存储和处理
用Access建立数据库的E-R图如图6所示。(图片) Delphi提供了ADO控件来实现ADO功能。我们使用TADOConnection建立与Access数据库的连接,通过在运行期间指定SQL语句,命令TADOQuery控件增加、删除、查询和修改数据库。其中,项目管理表中包括项目信息和钻进参数信息。
在钻进轨迹设计模块、预测模块和控制参数计算模块中,通过读取数据库中的钻进参数信息,采用曲率半径法、自然参数法等方法进行计算,得到的数据通过指定SQL语句存入数据库中,或通过USB接口输出。
3.2 通信模块
安装USB100模块专用驱动程序后,PC机上将新增一个虚拟通讯端口COM3。驱动程序的作用实际上是将USB端口模拟成虚拟串口。
MSComm控件用来连接USB100,它屏蔽了大部分串口通信的底层运行过程和许多繁琐的数据处理过程,具有两种处理方式:一是事件驱动方式,由MSComm控件的OnComm事件捕获并处理通信错误及事件;二是查询方式,通过检查CommEvent属性的值来判断事件和错误。MSComm控件主要属性如下:
(1) CommPort设置并返回通信端口号。 例如:MSComm.CommPort:= 1 ;
(2) Setting设置并返回波特率、奇偶校验、数据位和停止位参数。 例如:MSComm.Setting:= ‘19200 ,N ,8 ,1’;
(3) PortOpen设置并返回通信端口状态,True/False可以打开/关闭串口。例如:MSComm.PortOpen:=True 。
由USB端口模拟成的虚拟串口通信速率为8Mbps, PC上设定该串口的速率不会对传输速率有影响,这是与实际串口的区别。
3.3 轨迹图形显示模块
图形的显示模块主要包括坐标系的转换,地貌信息的显示,地下原有管线的显示,钻进设计轨迹的显示,实际轨迹的随钻显示,以及放大、测量距离和倾角等功能。
3.3.1 显示功能
对于各信息的显示,根据实际需要,我们采取平面图和剖面图两个视图同时显示的方式。图形显示我们采用TImage组件,分为绘制图层和显示图层。其中绘制图层是不可见的,又分为地貌信息图层、地下原有管线图层,设计轨迹图层、实际轨迹图层等。读取数据库中的数据后,通过坐标转换,在不同的绘制图层上用TImage组件的Canvas属性绘制信息图,然后根据用户要求,在显示图层上复制所需显示的绘制图层。这样,可方便地根据用户要求在图板上显示钻进过程的不同时期所需要的信息。
例如,我们可通过复制地下原有管线图层到设计轨迹图层,然后在此基础上读取数据库数据绘制设计轨迹,通过图形显示,用户可以很方便地知道设计的合理性和可靠程度。如果不满意,可重新设计,刷新数据库,并通过上述过程重新绘制轨迹,直到满意为止。
3.3.2 局部放大功能
通过局部放大,用户可清晰地在图中比较实际轨迹和设计轨迹。通过修改参数还可以改变放大区域大小和放大倍数。
其核心是利用TCanvas的CopyRect方法实现图像的放大。CopyRect方法的功能是将源画布上的一个指定矩形区域(源矩形)内的象素拷贝到目的画布上的一个指定矩形区域(目的矩形)中。由CopyMode属性确定拷贝的模式。在直接拷贝模式(cmSrcCopy)下,当源矩形与目的矩形面积相等时,图像不变;当源矩形面积小于目的矩形时,图像便被拉伸、放大(在目的矩形中扩展)。源矩形和目的矩形大小之比,决定了图像的放大倍数。
3.3.3 测量功能
在图像上测量起始点单击鼠标右键,并拖拉到测量终点,可通过相应鼠标事件,在绘制测量线段的同时获得测量起始点和终点的画布坐标。在图形显示功能实现中,数据库中的数据通过坐标转换由实际测量坐标变为画布上的坐标,在此通过逆转换即可得到需测量两点间的实际距离和倾角值。
3.4 报表输出和打印功能
我们采用Delphi提供的快速创建报表的工具QuickReport实现报表的输出和打印。QuickReport是QuSoft公司提供的一个控件包,利用它能够快速生成报表并实现报表的打印功能,使用简单、方便。
4 部分实现结果
系统通过串口通信获取由导向设备测得的实际轨迹的空间位置(深度、倾角和方位角)信息,转换为三维坐标,并实现实际钻进轨迹与设计轨迹的坐标统一,以方便与设计轨迹相比较。若实际轨迹与设计轨迹误差在规定范围内,继续钻进;若超出范围,则进行轨迹调控设计,及时采取纠偏措施。
5 结束语
系统能根据地貌信息和施工要求设计水平定向钻进钻孔轨迹,并在实现整个施工过程中轨迹实时监测的同时,对钻进给予一定的预测和控制,大大提高了施工的精度和可靠性。软件采用面向对象的开放式系统结构,易于扩充,大大方便了系统在使用过程中的完善和发展。整个系统在Windows XP 环境下运行,人机界面友好,操作方便,易学易用。
参考文献:
[1] 叶建良,蒋国盛,非开挖铺设地下管线施工技术与实践,中国地质大学出版社,2000
[2] 蒋国盛,张家铭等,定(导)向钻进的轨迹设计,地质与勘探,2000,36(2):13-15
[3] Steve Teixeira,Xavier Pacheco,Delphi5开发人员指南,机械工业出版社,,2000,7
[4] 张大年,廖智勇,刘剑锋等,Borland Delphi数据库应用开发技术与实例,清华大学出版社,2002,1
8/22/2008
|