999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

利用C#編程實現測井探頭信號的記錄

2015-06-15 19:01:05張守偉臧德福李澤田黃玉科
自動化儀表 2015年5期
關鍵詞:數據庫

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

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

利用C#編程實現測井探頭信號的記錄

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

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

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

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

0 引言

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

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

1 軟件設計

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

結構化軟件開發技術和面向對象軟件開發技術已經成為測井軟件開發最強有力的技術支撐,軟件開發過程需要對編程平臺與環境進行精心選擇與定制。隨著操作系統的升級,微軟推出了新一代技術平臺.NET,編程語言增加了C#等的新一代開發語言,開發的程序在操作系統具備Framework框架環境就可以正常運行。.NET平臺使得編程開發變得更方便與簡單[5]。本次開發基于64位Windows7系統、32位office 2010版本、32位Visual Studio 2010開發環境、Framework 4.0、用C#語言開發的軟件框架。

通過對軟件的應用需求進行分析,得出測試軟件需具備以下主要功能:串口通信、數據存儲、測井曲線繪圖等。程序按照一定的定時時間執行,執行流程按照通信、繪圖、數據庫存儲等步驟順序進行。軟件功能構成框圖如圖1所示。

圖1 軟件功能組成圖

2 軟件開發技術

2.1 SerialPort類實現串口通信

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

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

圖2 串口程序執行過程示意圖

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

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控件進行曲線繪圖

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

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

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

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

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

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

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

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

2.3 Access數據庫使用

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

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

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

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

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

Adapter1.InsertCommand.ExecuteNonQuery();

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

3 開發實現

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

圖3 發射電流曲線圖

圖4 接收電壓曲線圖

4 結束語

通過研究串口通信、MSChart控件繪圖、Access數據存儲等編程技術,利用C#語言開發出測試軟件。軟件可與電磁測井裝置實現實時通信,獲得觀測數據,通過繪圖和數據庫操作實現了發射電流和接收電壓測量數據的觀測及統計,有力配合了電磁探頭進行信號的發射和接收測試試驗。

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

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

[3] 李楠楠.瞬變電磁測井井下系統研究[D].西安:西安石油大學,2012.

[4] 李全棟.基于DSP的測井信號檢測及處理系統設計[D].武漢:華中科技大學,2012.

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

[6] 陳學軍.Windows平臺下串口通信數據實時獲取與監測[J].自動化儀表,2012,33(3):66-69.

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

[8] 李懷川,吳孟春.利用微軟圖表控件MSChart實現紫外線數據圖形化顯示[J].計算機與網絡,2012(12):47-50.

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

[10]王思敏.基于ACCESS的部門管理系統的設計與實現[D].天津:天津大學,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

中國博士后科學基金資助項目(編號:2013M541956);

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

TP319

A

10.16086/j.cnki.issn1000-0380.201505003

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

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

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 韩日无码在线不卡| AV不卡在线永久免费观看| 波多野结衣视频网站| 无码精油按摩潮喷在线播放| 亚洲日韩精品伊甸| 国产免费看久久久| 青草视频网站在线观看| 91麻豆国产在线| 久久精品人妻中文视频| 日韩福利视频导航| 国产第一页亚洲| 国产精品高清国产三级囯产AV| 亚洲国产高清精品线久久| 国产亚洲欧美日韩在线观看一区二区| 久久国产乱子| 中文字幕乱码中文乱码51精品| 久草网视频在线| 人妻无码AⅤ中文字| 97成人在线视频| 亚洲日本一本dvd高清| 国产国产人成免费视频77777| 红杏AV在线无码| 日韩精品中文字幕一区三区| 五月丁香在线视频| 欧美日韩国产在线人成app| 国产又粗又猛又爽| 亚洲精品国偷自产在线91正片| a级毛片免费看| 东京热高清无码精品| 欧美无专区| 制服无码网站| 成人国产精品一级毛片天堂| 五月天丁香婷婷综合久久| 54pao国产成人免费视频| 四虎影院国产| 欧美性色综合网| 婷婷亚洲视频| 国产精品一区不卡| 狠狠综合久久| 亚洲久悠悠色悠在线播放| 波多野结衣在线se| 国内精品一区二区在线观看| 日韩免费毛片| 手机在线看片不卡中文字幕| 日韩亚洲高清一区二区| 国精品91人妻无码一区二区三区| 日韩少妇激情一区二区| 国产免费久久精品44| 精品超清无码视频在线观看| 国产高颜值露脸在线观看| 一本视频精品中文字幕| 国产91小视频在线观看| 男女男免费视频网站国产| 亚洲永久视频| 激情影院内射美女| 欧美精品高清| 无码一区中文字幕| 人妻丰满熟妇AV无码区| 狠狠干欧美| 欧美精品1区| 九色91在线视频| 久久综合结合久久狠狠狠97色| 国产噜噜噜| 国产精品乱偷免费视频| 在线亚洲精品自拍| 伊人激情久久综合中文字幕| 亚洲欧洲美色一区二区三区| 欧美日韩成人在线观看| 综合社区亚洲熟妇p| 成人夜夜嗨| 国产二级毛片| 91色国产在线| 蜜桃臀无码内射一区二区三区| 国产精品香蕉在线观看不卡| 国产AV毛片| 国产成人三级| 久久综合亚洲色一区二区三区 | 国产精品妖精视频| 亚洲小视频网站| 亚洲国产av无码综合原创国产| 精品91视频| 国产第二十一页|