多线程编程技术在数控测井技术中的应用分析

多线程编程技术在数控测井技术中的应用分析

ID:42660595

大小:255.04 KB

页数:9页

时间:2019-09-19

多线程编程技术在数控测井技术中的应用分析_第1页
多线程编程技术在数控测井技术中的应用分析_第2页
多线程编程技术在数控测井技术中的应用分析_第3页
多线程编程技术在数控测井技术中的应用分析_第4页
多线程编程技术在数控测井技术中的应用分析_第5页
资源描述:

《多线程编程技术在数控测井技术中的应用分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、多线程编程技术在数控测井技术中的应用分析摘要:在当今的测井技术中,根据实际的需要,往往要提高能源的利用率,当今在数控测井技术软件开发中把多线程的编程技术运用于当中,并且分析了多线程编程技术应用的价值。本文通过软件的模块框图与多线程间的关系,运用MFC的自定义类封装与实现各个线程,在软件中依次实现了串口通讯、数据的处理、实时性绘图的功能,利用事件和消息推送的方法来调度同步线程。据实验结果分析,当今数控的测井软件在应用了多线程编程技术以后,要比没有使用多线程技术时,使CPU提高了50%的使用效率,而且很好地实现了程序控制的实时性。关

2、键字:多线程、数控测井、串口通信、数据处理当今,测井技术是油田勘探及开发过程中不可缺少的基本技术。科学技术日益的发展,数控测井系统已经成为了现如今油田行业非常重要的测井系统手段。数控测井软件在数控测井系统中的地位非常重要,它是安装在上位机上,其作用是主要负责同下位机进行数据交换,并且进一步处理实时数据,将图片和文字同时且及时地显示在显示器上,并且把数据保存在需要的数据库中。本系统具有实时数据处理、储存、图形显示、数据报表打印等的功能。为了可以满足实时数据传输和显示的需求,我们把多线程技术运用在了数控测井软件的实时测井的任务中,从

3、而使此应用程序不仅能够在上位机和下位机之间进行串口收发数据,而且能够完成数据的处理、数据库的读写、图形曲线的实时绘制等一系列的其他任务,用来以提高资源及能源的利用率以及程序的实时性能及整体性能。1数控测井系统及软件1.1数控测井系统数控测井系统的主要功能和作用是给石油地质专业的工程技术人员来提供各种各样的资料与数据,从而解决一些油田生产过程中的问题,它是搜寻、评估油气能源的重要技术手段。数控测井系统的主要构成是井下系统与地面系统。井下系统是运用各种传感器把井下的各种物理参数转换成相应的电信号并且由测井电缆来上传到地面系统。地面系

4、统是由地面数据采集仪(下位机)、工业控制机(上位机)和数控测井软件组成。其中,下位机是将测井信号进行调理、初步计算、数据打包,从而组建成一定的数据帧格式,再通过串行通信的方式送往上位机,交给数控测井软件来进行进一步的处理。数控测井系统组成框图以及数据处理流程如图1所示。1.2数控测井软件的功能分析例如图2中所示,数控测井软件系统大概分为了3大部分:实时处理部分,图形处理部分,数据部分。其中,实时处理部分是主要进行数据的读取与实时状态的控制显示功能;图形处理部分则主要进行测井曲线图形的实时显示、回放显示与报表生成、打印功能等;且数

5、据部分它主要进行数据的存储及处理功能。当实时测井时,此软件主要完成一下的任务:串口数据的接受、数据的处理、数据的显示及图形绘制、数据库的数据存储、数据图形的打印。若程序运用单线程处理,则以上的任务就进能依次的执行,这样的话系统的实时性及可靠性就会大大地降低。而且如串口数据到达的时候此软件正在执行其余的任务,就会没有办法接受此串口数据,这将造成串口数据的堵塞,甚至会丢失;且如任务链中的任何一个环节出现了问题,则会导致所有的任务都没法执行,造成人力物力及财力的相应损失。然而,运用多线程的编程技术可以将串口数据的接受、数据的处理及数据

6、库的数据存储、数据的显示与图形绘制、数据图形打印的一系列任务分别地放到不同的独立的线程中去,这样可以使实时测井的时候多个任务同时地进行,这样既能够提高测井的实时性,又能在其中的某一个任务出现问题的时候也不会影响到其余的任务执行,从而使得每个测井的数据达到最大化。2多线程数控测井软件的实施2.1多线程编程技术在MFC中,线程可以分为两大类:工作者线程与用户界面线程。工作者线程其是主要运用于完成后台计算的;用户界面线程其主要用于接收并处理用户的输入信息,且处理相关的事件与消息。这两者之间最大的区别就是在工作者线程中没有消息循环,而在

7、用户界面线程中则有着自己的消息循环,能够处理系统和用户的消息。对于操作系统来说,程序也就是任务,此多线程技术把任务划分为了更加小的执行单位,且赋予了不同的优先级别,由该系统进行负责此线程的运行和切换,从而实现了线程的分时运行,也提高了程序的运行效率。在多个处理器的计算机系统中,它的系统能够把线程分配给到不同的CPU或可以在不同的CPU上面移动,用来平衡CPU的负载压力,此方法也就实现了真正意义上的多任务(多线程)同时进行。一般来说,单个进程中的每个线程分别地独立操作运行,各个线程间是没有任何关系的。但在实际的多线程任务中,程序的

8、各个线程间没有任何的联系明显是不可能的,例如资源共享,数据传递等等。为了实现同一线程能够在不同时刻访问同一个资源,这样就要将访问共享资源的线程进行同步、调度,以来避免几个线程甚至整个系统的奔溃。2.2实时测井任务的多线程实现该系统利用事件及消息推动的途径实现了实

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。