• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      利用C#編程實(shí)現(xiàn)測井探頭信號(hào)的記錄

      2015-06-15 19:01:05張守偉臧德福李澤田黃玉科
      自動(dòng)化儀表 2015年5期
      關(guān)鍵詞:測試軟件控件繪圖

      張守偉 臧德福 李澤田 黃玉科

      (勝利油田博士后科研工作站1,山東 東營 257096;中石化勝利石油工程有限公司2,山東 東營 257096)

      利用C#編程實(shí)現(xiàn)測井探頭信號(hào)的記錄

      張守偉1臧德福2李澤田2黃玉科2

      (勝利油田博士后科研工作站1,山東 東營 257096;中石化勝利石油工程有限公司2,山東 東營 257096)

      為了配合電磁測井裝置進(jìn)行探頭的發(fā)射和接收試驗(yàn),開發(fā)測試軟件,用于對(duì)實(shí)時(shí)測量數(shù)據(jù)進(jìn)行繪圖及存儲(chǔ)。設(shè)計(jì)軟件功能框圖,并對(duì)串口通信、Access數(shù)據(jù)庫操作、利用MSChart控件繪圖等關(guān)鍵技術(shù)制定了編程方法,將關(guān)鍵技術(shù)加以整合,利用C#語言編制測試軟件。通過與測井裝置通信,測試軟件實(shí)現(xiàn)了對(duì)探頭發(fā)射電流、接收電壓測量數(shù)據(jù)的實(shí)時(shí)觀測,通過歷史查詢完成了對(duì)測量數(shù)據(jù)的分析及統(tǒng)計(jì)。

      電磁測井裝置 測試軟件 串口通信 Access數(shù)據(jù)庫 MSChart控件 C#語言

      0 引言

      瞬變電磁測井的一大優(yōu)勢是[1],使用較低的工作頻率、較大的發(fā)射功率來獲得較大的穿透深度。近年來,瞬變電磁技術(shù)的探測范圍逐步向套管外延伸,采用穿透套管進(jìn)行管外電阻率的測量。這一方法稱為瞬變電磁過套管電阻率測井法。國內(nèi)對(duì)這種方法的相關(guān)理論研究還不完善,相關(guān)儀器還在研制。在瞬變電磁過套管測井儀器[2]研制前期,需要在試驗(yàn)室中搭建試驗(yàn)環(huán)境,設(shè)計(jì)電磁探頭進(jìn)行信號(hào)的發(fā)射和接收測試,了解套管井中電磁信號(hào)指數(shù)的衰減變化規(guī)律,為后期的儀器設(shè)計(jì)奠定基礎(chǔ)。

      軟件的開發(fā)是為滿足相應(yīng)的應(yīng)用需求,成型儀器一般都配有相應(yīng)的應(yīng)用軟件。目前,用于地面探礦、煤礦礦井探測的瞬變電磁儀采用Visual C++、Visual Basic、LabVIEW、Matlab等語言進(jìn)行研發(fā)編程[3],通過軟件可以實(shí)現(xiàn)對(duì)測道數(shù)據(jù)的提取與測線剖面曲線圖的成圖等,完成反演及正演計(jì)算等功能。在前期試驗(yàn)階段,為了更好地實(shí)現(xiàn)人機(jī)交互和數(shù)據(jù)分析,編制測試軟件是不可缺少的一項(xiàng)重要開發(fā)工作。本測試軟件是在Visual Studio 2010環(huán)境下利用C#語言開發(fā),配合下位機(jī)(測井實(shí)驗(yàn)裝置)進(jìn)行測試。軟件通過串口通信,獲得探頭發(fā)射電流及接收電動(dòng)勢的實(shí)時(shí)數(shù)據(jù),完成對(duì)探頭數(shù)據(jù)的實(shí)時(shí)記錄及統(tǒng)計(jì)。

      1 軟件設(shè)計(jì)

      采取的方案是以計(jì)算機(jī)作為主機(jī),硬件上具備通信串口,下位機(jī)(測井實(shí)驗(yàn)裝置)是以單片機(jī)為核心的瞬變發(fā)射和信號(hào)采集系統(tǒng),二者通信實(shí)現(xiàn)數(shù)據(jù)交換[4]。通過測試軟件可實(shí)時(shí)顯示測量數(shù)據(jù),也可保存數(shù)據(jù)以供查詢和后期分析,需要配置相應(yīng)的數(shù)據(jù)庫進(jìn)行數(shù)據(jù)存儲(chǔ)。在瞬變電磁理論中,測量的接收電動(dòng)勢早期信號(hào)反映淺層地質(zhì)構(gòu)造,晚期信號(hào)反映深部地質(zhì)構(gòu)造。根據(jù)此項(xiàng)觀測需求,軟件界面中的顯示窗口能實(shí)時(shí)顯示瞬變電磁早期、中期、中晚期以及晚期道的測量信號(hào),便于試驗(yàn)過程中對(duì)所測試介質(zhì)的電性特征進(jìn)行動(dòng)態(tài)分析。

      結(jié)構(gòu)化軟件開發(fā)技術(shù)和面向?qū)ο筌浖_發(fā)技術(shù)已經(jīng)成為測井軟件開發(fā)最強(qiáng)有力的技術(shù)支撐,軟件開發(fā)過程需要對(duì)編程平臺(tái)與環(huán)境進(jìn)行精心選擇與定制。隨著操作系統(tǒng)的升級(jí),微軟推出了新一代技術(shù)平臺(tái).NET,編程語言增加了C#等的新一代開發(fā)語言,開發(fā)的程序在操作系統(tǒng)具備Framework框架環(huán)境就可以正常運(yùn)行。.NET平臺(tái)使得編程開發(fā)變得更方便與簡單[5]。本次開發(fā)基于64位Windows7系統(tǒng)、32位office 2010版本、32位Visual Studio 2010開發(fā)環(huán)境、Framework 4.0、用C#語言開發(fā)的軟件框架。

      通過對(duì)軟件的應(yīng)用需求進(jìn)行分析,得出測試軟件需具備以下主要功能:串口通信、數(shù)據(jù)存儲(chǔ)、測井曲線繪圖等。程序按照一定的定時(shí)時(shí)間執(zhí)行,執(zhí)行流程按照通信、繪圖、數(shù)據(jù)庫存儲(chǔ)等步驟順序進(jìn)行。軟件功能構(gòu)成框圖如圖1所示。

      圖1 軟件功能組成圖

      2 軟件開發(fā)技術(shù)

      2.1 SerialPort類實(shí)現(xiàn)串口通信

      現(xiàn)在大多數(shù)硬件設(shè)備采用串口技術(shù)與計(jì)算機(jī)相連,因此串口的應(yīng)用程序開發(fā)越來越普遍[6-7]。.NET Framework 2.0以上類庫包含了SerialPort 類,在微軟的Visual Studio 2010開發(fā)工具箱中把SerialPort圖標(biāo)拖到窗體界面中實(shí)現(xiàn)SerialPort類的添加。SerialPort 控件與Visual Studio 6.0中的MSComm通信控件差異不大,只要通過對(duì)SerialPort類控件的屬性和事件進(jìn)行相應(yīng)編程操作,就可以輕松地實(shí)現(xiàn)串口通信。在屬性中設(shè)置串口號(hào)(PortName方法)、波特率(BaudRate方法)、串口開啟(Open方法)等。通信過程采用主從模式,發(fā)送過程調(diào)用Write和WriteLine方法發(fā)送數(shù)據(jù),接收過程調(diào)用Read或ReadLine方法。通過對(duì)上述方法的正確編程,保證串口通信的成功性。

      串口通信需要一定的速率,因此在接收過程數(shù)據(jù)時(shí),從開始接收到接收完畢需要持續(xù)一定的時(shí)間。在程序量較小時(shí),串口發(fā)送完畢后可采取延時(shí)一段時(shí)間后進(jìn)行接收編程。該編程方法簡單且后期程序修改更為方便。本測試軟件功能相對(duì)較少,接收過程采用了延時(shí)等待。延時(shí)編程利用系統(tǒng)內(nèi)核延時(shí)比線程延時(shí)效果好,相比之下內(nèi)核延時(shí)編程實(shí)時(shí)性較強(qiáng),軟件中進(jìn)行其他功能操作時(shí)反應(yīng)較快。串口程序的執(zhí)行過程如圖2所示。

      圖2 串口程序執(zhí)行過程示意圖

      編程過程先定義字節(jié)數(shù)組data1、data2,調(diào)用Write和Read方法,方法中程序編寫按照一定的格式,如:byte[] butter, int offset, int count。串口發(fā)送完數(shù)據(jù)后延時(shí)200 ms,讀出串口返回的數(shù)據(jù)。程序如下。

      serialPort1.Write(data1.ToArray(), 0, data1.Length);

      ms= 200;

      uint start = GetTickCount();

      while (GetTickCount() - start < ms)

      {

      Application.DoEvents();

      }

      serialPort1.Read(data2, 0, data2.Length);

      2.2 MSChart控件進(jìn)行曲線繪圖

      MSChart控件[8-9]已經(jīng)內(nèi)置于Visual Studio 2010開發(fā)環(huán)境中,并且只適用于.NET Framework 3.5以上版本。 MSChart控件具備與TeeChart控件一樣強(qiáng)大的繪圖功能,可以顯示的圖形有散點(diǎn)圖、折線圖、條形圖等多種類型,界面美觀。把工具箱里的Chart圖標(biāo)項(xiàng)拖到Form窗體中,調(diào)節(jié)放置位置及控件大小,然后在繪圖屬性需要進(jìn)行更為詳細(xì)的設(shè)置。設(shè)置內(nèi)容包括圖表集合屬性、繪圖樣式、坐標(biāo)軸格式等,屬性窗口可視化設(shè)置減輕了后期編程強(qiáng)度。測試軟件繪圖利用MSChart控件,使用此控件編程最大的優(yōu)勢是編程簡單,相比GDI+編程減少大量編程代碼,繪圖效果較好。

      軟件編程需要對(duì)電流、電壓數(shù)據(jù)進(jìn)行曲線繪制,MSChart控件曲線顯示設(shè)置為二維折線圖,控件內(nèi)只繪制一條曲線。程序中利用多個(gè)MSChart控件實(shí)現(xiàn)電流數(shù)據(jù)、電壓數(shù)據(jù)、不同時(shí)期(早期、中期、中晚期、晚期)的電壓數(shù)據(jù)實(shí)時(shí)顯示。

      繪制接收電壓數(shù)據(jù)時(shí),MSChart控件名稱為Chart1,通過圖表集合Series添加曲線名稱“測量”。制定好曲線名稱后,代碼編寫主要針對(duì)此曲線進(jìn)行數(shù)據(jù)集的添加。測試數(shù)據(jù)是實(shí)時(shí)變化的,繪圖時(shí)需要?jiǎng)討B(tài)添加二維數(shù)組數(shù)據(jù)源,X軸數(shù)據(jù)(iTime)為整型數(shù)組,數(shù)值范圍是0~300 ms,Y軸數(shù)據(jù)(fVoltage)為浮點(diǎn)型數(shù)組。利用AddXY方法實(shí)現(xiàn)繪圖數(shù)據(jù)的添加。編制的部分程序示例如下。

      chart1.Series["測量"].Points.Clear();

      chart1.Series["測量"].Points.AddXY(iTime[i], fVoltage[i]);

      不同時(shí)期電壓曲線繪圖MSChart的數(shù)據(jù)源相同,只是把繪圖區(qū)域的X坐標(biāo)軸設(shè)置顯示區(qū)間不同。例如,中期時(shí)間定義為(100~200)ms,MSChart控件名稱為Chart2,編制程序如下。

      Chart2.ChartAreas[0].AxisX.Minimum=100;

      Chart2.ChartAreas[0].AxisX.Maximum=200;

      2.3 Access數(shù)據(jù)庫使用

      Access是Microsoft Office家族的一個(gè)成員,它是基于SQL的關(guān)系型數(shù)據(jù)庫,其功能強(qiáng)大、使用方便,常常用于小型項(xiàng)目中[10]。本次存儲(chǔ)數(shù)據(jù)具備兩種不同類型,測試記錄點(diǎn)(X軸數(shù)據(jù))是整數(shù)型,電壓和電流數(shù)據(jù)(Y軸數(shù)據(jù))是浮點(diǎn)型,建立數(shù)據(jù)庫時(shí)內(nèi)部數(shù)據(jù)表的類型分別按照整型、浮點(diǎn)型進(jìn)行設(shè)置。實(shí)施過程是用Access軟件建立一個(gè)mdb數(shù)據(jù)庫,存儲(chǔ)于工程文件的Debug目錄中,添加工作表“測試數(shù)據(jù)表”,打開表結(jié)構(gòu)的設(shè)計(jì)視圖,增加表結(jié)構(gòu)的字段名稱,如記錄序號(hào)(文本類型)、記錄時(shí)間(日期時(shí)間類型)、測1時(shí)刻(長整型)、測1值(單精度型)等。設(shè)置記錄序號(hào)為“主鍵”,方便數(shù)據(jù)的查詢編程。

      Access數(shù)據(jù)庫的操作方法可利用OleDb編程實(shí)現(xiàn),編程時(shí)通過ADO.NET的OleDb方式與工程文件的Debug目錄下數(shù)據(jù)庫建立鏈接,使用Select指令加載DataAdapter。對(duì)數(shù)據(jù)庫的表進(jìn)行修改時(shí),利用OleDbDataAdapter的Insert、Update、Delete命令。

      軟件在通信成功后往數(shù)據(jù)庫的“測試數(shù)據(jù)表”新增加一行,行所有字段名稱整合為一個(gè)InsertTalbeName字符串,寫入數(shù)據(jù)庫的數(shù)據(jù)所有值整合為ValuesString字符串。編制的程序如下。

      string InsertTableCmd ="Insert into 測試數(shù)據(jù)表" + InsertTalbeName + "Values"+"(" + ValuesString + ")";

      Adapter1.InsertCommand = new OleDbCommand(InsertTableCmd, MyConnection);

      Adapter1.InsertCommand.ExecuteNonQuery();

      上述程序針對(duì)Access數(shù)據(jù)庫先通過ADO.NET的OleDb方式進(jìn)行鏈接,然后利用OleDbDataAdapter的Insert命令對(duì)數(shù)據(jù)庫進(jìn)行操作,以最基本的編程語句實(shí)現(xiàn)了數(shù)據(jù)庫的操作。編程過程相比使用一些數(shù)據(jù)庫控件的方法,利用OleDb編程程序量較大,但優(yōu)勢是在調(diào)試時(shí)每一步的運(yùn)行結(jié)果都是可控的。

      3 開發(fā)實(shí)現(xiàn)

      通過前期對(duì)軟件進(jìn)行詳細(xì)的功能劃分和編程設(shè)計(jì),把數(shù)據(jù)通信、數(shù)據(jù)存儲(chǔ)、繪圖等關(guān)鍵技術(shù)加以整合,開發(fā)出測試軟件。窗體采用多文檔界面(MDI)的方式,并在界面中設(shè)有快捷菜單。利用定時(shí)器實(shí)現(xiàn)通信,并按照一定的時(shí)間間隔進(jìn)行。數(shù)據(jù)庫中的數(shù)據(jù)集合利用DataGridView控件實(shí)現(xiàn)數(shù)據(jù)表的顯示,測量原始數(shù)據(jù)和數(shù)字平均濾波計(jì)算后的數(shù)據(jù)可在DataGridView中進(jìn)行對(duì)比。MSChart控件用于顯示發(fā)射電流、接收電壓的實(shí)時(shí)和歷史數(shù)據(jù),如圖3、圖4所示。

      圖3 發(fā)射電流曲線圖

      圖4 接收電壓曲線圖

      4 結(jié)束語

      通過研究串口通信、MSChart控件繪圖、Access數(shù)據(jù)存儲(chǔ)等編程技術(shù),利用C#語言開發(fā)出測試軟件。軟件可與電磁測井裝置實(shí)現(xiàn)實(shí)時(shí)通信,獲得觀測數(shù)據(jù),通過繪圖和數(shù)據(jù)庫操作實(shí)現(xiàn)了發(fā)射電流和接收電壓測量數(shù)據(jù)的觀測及統(tǒng)計(jì),有力配合了電磁探頭進(jìn)行信號(hào)的發(fā)射和接收測試試驗(yàn)。

      [1] 宋汐瑾.生產(chǎn)井瞬變電磁探測理論與方法研究[D].西安:西安電子科技大學(xué),2012.

      [2] 范照晉.瞬變電磁測井通信及地面系統(tǒng)研究[D].西安:西安石油大學(xué),2012.

      [3] 李楠楠.瞬變電磁測井井下系統(tǒng)研究[D].西安:西安石油大學(xué),2012.

      [4] 李全棟.基于DSP的測井信號(hào)檢測及處理系統(tǒng)設(shè)計(jì)[D].武漢:華中科技大學(xué),2012.

      [5] 鄭宇生.C#多線程編程技術(shù)在數(shù)控測井軟件中的應(yīng)用[J].石油儀器,2012,26(4):79-81.

      [6] 陳學(xué)軍.Windows平臺(tái)下串口通信數(shù)據(jù)實(shí)時(shí)獲取與監(jiān)測[J].自動(dòng)化儀表,2012,33(3):66-69.

      [7] 程麗玲.UART及USB雙模通信接口的研究及實(shí)現(xiàn)[J].自動(dòng)化儀表,2013,34(12):70-72.

      [8] 李懷川,吳孟春.利用微軟圖表控件MSChart實(shí)現(xiàn)紫外線數(shù)據(jù)圖形化顯示[J].計(jì)算機(jī)與網(wǎng)絡(luò),2012(12):47-50.

      [9] 闞金明,趙潤軍.MSChart控件在流動(dòng)機(jī)械維護(hù)管理系統(tǒng)中的應(yīng)用[J].物流工程與管理,2012,34(6):119-120.

      [10]王思敏.基于ACCESS的部門管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].天津:天津大學(xué),2012.

      Implementation of Recording the Signals of Well Logging Probe by Utilizing C# Programming

      In order to act in concert with the transmitting and receiving experiments for probes of electromagnetic logging apparatus, the testing software has been developed. The goal is to plot and storage the real time measurement data. The block diagram of software functions is designed, and the programming method for various critical technologies is formulated, including serial port communication, Access database operation, plotting by using MSChart control, etc. These critical technologies are integrated, and the testing software is worked out by using C# language. Through communicating with the logging apparatus, real time observation for the data of transmit current and receiving voltage of the probe can be implemented. In addition, the analysis and statistics of the measurement data are achieved by historical inquiry.

      Electromagnetic logging apparatus Testing software Serial communication Access database MSChart control C# language

      中國博士后科學(xué)基金資助項(xiàng)目(編號(hào):2013M541956);

      張守偉(1977-),男,現(xiàn)為勝利油田博士后科研工作站地質(zhì)資源與地質(zhì)工程專業(yè)在讀博士后;主要從事電磁測井理論、測井地面軟件開發(fā)及儀器研制等方面的研究。

      TP319

      A

      10.16086/j.cnki.issn1000-0380.201505003

      中石化勝利石油工程有限公司科研項(xiàng)目(編號(hào):SKC1401)。

      修改稿收到日期:2014-11-04。

      猜你喜歡
      測試軟件控件繪圖
      來自河流的你
      中國三峽(2022年7期)2022-12-02 05:28:02
      “禾下乘涼圖”繪圖人
      網(wǎng)絡(luò)自適應(yīng)測試軟件運(yùn)行方法設(shè)計(jì)
      關(guān)于.net控件數(shù)組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      基于HTML5 Canvas繪圖技術(shù)應(yīng)用
      電子測試(2018年4期)2018-05-09 07:28:32
      自動(dòng)化檢測EPU10A板卡系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      Surfer和ArcView結(jié)合在氣象繪圖中的應(yīng)用
      河北遙感(2015年2期)2015-07-18 11:11:14
      遠(yuǎn)程開放教育學(xué)生自主學(xué)習(xí)能力評(píng)價(jià)的研究
      一款重型包裝抗壓系統(tǒng)控制軟件的設(shè)計(jì)與開發(fā)
      軟件工程(2014年7期)2014-09-24 20:03:26
      就這樣玩會(huì)VBA中常見的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      赣榆县| 汕尾市| 泰和县| 望江县| 新沂市| 遂宁市| 凯里市| 临高县| 琼中| 南京市| 平顺县| 崇左市| 米易县| 共和县| 张北县| 磐石市| 漳州市| 内江市| 云林县| 玉门市| 阿拉尔市| 棋牌| 兰考县| 丘北县| 平凉市| 新干县| 周口市| 光山县| 舟山市| 平利县| 胶州市| 南漳县| 永嘉县| 武威市| 彰化县| 上虞市| 河间市| 洪泽县| 高尔夫| 永兴县| 博罗县|