劉 穎,庹先國,,,劉 勇,,
(1.西南科技大學(xué)核廢物與環(huán)境安全國防重點學(xué)科實驗室,四川 綿陽 621010;2.四川理工學(xué)院自動化與電子信息學(xué)院,四川 自貢 643002;3.成都理工大學(xué)地質(zhì)災(zāi)害防治與地質(zhì)環(huán)境保護國家重點實驗室,四川 成都 610059)
基于C#.NET的地震數(shù)據(jù)采集終端軟件設(shè)計和實現(xiàn)
劉 穎1,庹先國1,2,3,劉 勇1,2,3
(1.西南科技大學(xué)核廢物與環(huán)境安全國防重點學(xué)科實驗室,四川 綿陽621010;2.四川理工學(xué)院自動化與電子信息學(xué)院,四川 自貢643002;3.成都理工大學(xué)地質(zhì)災(zāi)害防治與地質(zhì)環(huán)境保護國家重點實驗室,四川 成都610059)
針對大規(guī)模地震勘探過程中軟件系統(tǒng)實時響應(yīng)和處理能力不足等問題,基于復(fù)雜環(huán)境多波地震數(shù)據(jù)采集系統(tǒng),提出了一種搭載于Linux中心數(shù)據(jù)存儲服務(wù)器、面向Windows系統(tǒng)的輕量級地震數(shù)據(jù)采集控制系統(tǒng)終端軟件設(shè)計方案。通過數(shù)據(jù)存儲中心模式、多線程處理機制和對數(shù)據(jù)庫的操作,利用服務(wù)器完成各采集節(jié)點數(shù)據(jù)的收集、存儲等核心工作,憑借Windows系統(tǒng)終端軟件與服務(wù)器的交互,最終實現(xiàn)數(shù)據(jù)采集的遠程控制、數(shù)據(jù)快速回放、分析處理等功能,構(gòu)建了統(tǒng)一、高品質(zhì)、實用性好的地震勘探數(shù)據(jù)管理平臺和軟件集成平臺。測試結(jié)果表明,該軟件能夠長時間穩(wěn)定運行,數(shù)據(jù)傳輸延時短,對硬件環(huán)境沒有特殊的要求,并且具有良好的適應(yīng)性、穩(wěn)定性及擴展性,可以滿足分布式多道地震勘探需求。
地震; 數(shù)據(jù)采集; 軟件設(shè)計; 數(shù)據(jù)存儲; 遠程控制; 實時處理; 通信協(xié)議
地震勘探是查明地下地質(zhì)構(gòu)造的有效的方法之一,在油氣藏勘探中應(yīng)用極其廣泛。目前在工程領(lǐng)域中,為了提高分辨率,勘探設(shè)備節(jié)點的分布越來越密集,采集數(shù)據(jù)量不斷增長,這就要求軟件系統(tǒng)能對大量數(shù)據(jù)進行高效、高質(zhì)量處理[1]。如何實現(xiàn)對采集數(shù)據(jù)的實時監(jiān)控和處理,一直是地震軟件技術(shù)研究的重要課題[2]。
為實現(xiàn)地震勘探設(shè)備的遠程控制和地震數(shù)據(jù)處理效率的提升,本文在成功自主研制分布式地震數(shù)據(jù)采集硬件系統(tǒng)的基礎(chǔ)上,提出了中心服務(wù)器數(shù)據(jù)存儲方案和終端軟件設(shè)計方案。該方案利用數(shù)據(jù)庫技術(shù)實現(xiàn)數(shù)據(jù)的集中管理,結(jié)合多線程并行處理技術(shù)實現(xiàn)數(shù)據(jù)實時動態(tài)顯示,終端軟件通過與服務(wù)器交互實現(xiàn)遠程控制,從而為整個地震勘探系統(tǒng)提供有效的操作平臺。
1.1采集控制系統(tǒng)組成
采集控制系統(tǒng)由采集網(wǎng)絡(luò)、中央服務(wù)器和終端軟件三種主體成分構(gòu)成,相互間均采用網(wǎng)絡(luò)電纜連接,系統(tǒng)架構(gòu)如圖1所示。
圖1 采集控制系統(tǒng)架構(gòu)圖
終端軟件是用戶主控制臺,它通過操作指令與中央服務(wù)器進行交互。中央服務(wù)器是“實際工作”模塊。服務(wù)器等待控制中心的連接,接收上位機軟件發(fā)送的命令并轉(zhuǎn)發(fā)到各采集站,同時利用各節(jié)點上的文件服務(wù)器完成采集站數(shù)據(jù)文件的收集。因此,服務(wù)器也能充當客戶端的角色。采集網(wǎng)絡(luò)中眾多采集節(jié)點接收其他主機的連接請求,然后根據(jù)指令執(zhí)行控制操作,將檢波器上的傳感器數(shù)據(jù)整合成為固定格式文件。
1.2軟件功能設(shè)計
終端軟件主要實現(xiàn)對地震數(shù)據(jù)的采集控制,快速可視化以及相關(guān)處理操作。軟件運行時,可根據(jù)采集網(wǎng)絡(luò)的拓撲信息在軟件界面選擇多個采集節(jié)點,并進行采集參數(shù)配置,包含采樣方式選擇、采樣間隔和采樣長度的設(shè)置,以完成采集控制操作。終端軟件收集從服務(wù)器傳來的數(shù)據(jù)信息,并完成對數(shù)據(jù)的加工處理,再以圖像形式展示。
終端軟件以VisualStudio2015作為軟件開發(fā)工具,基于C#.NET平臺開發(fā),服務(wù)器在安裝有debian系統(tǒng)的工控機上運行。
2.1數(shù)據(jù)存儲中心模式設(shè)計
在地震數(shù)據(jù)勘探過程中,文件數(shù)據(jù)傳輸是系統(tǒng)主要的功能。終端軟件發(fā)起對數(shù)據(jù)倉庫的操作,然后對數(shù)據(jù)進行分析和處理。
采集過程涵蓋有指令、狀態(tài)、信息傳輸和文件傳輸[3],分別對應(yīng)通信長鏈路和文件傳輸鏈路。服務(wù)器服務(wù)模型如圖2所示。
圖2 服務(wù)器服務(wù)模型
信號采集時,終端軟件首先創(chuàng)建TcpClient對象,請求連接到服務(wù)器的IP地址和端口,中央服務(wù)器的Netty服務(wù)框架在3333端口提供通信服務(wù)。終端軟件按協(xié)議封裝帶有參數(shù)設(shè)置信息和采集控制指令的字符串,通過BeginWrite方法發(fā)送至服務(wù)器;中央服務(wù)器收到數(shù)據(jù)后進行解析提取關(guān)鍵信息,通過Netty服務(wù)框架下的ChannelHandlerAdapter向采集節(jié)點發(fā)起通信長鏈接請求,然后轉(zhuǎn)發(fā)給采集站。采集站收到指令后,按照指令對應(yīng)的方式采集數(shù)據(jù),同時通過原鏈接返回狀態(tài)信息至服務(wù)器,并告知服務(wù)器準備收集數(shù)據(jù)文件。服務(wù)器對收集到的采集網(wǎng)絡(luò)信息進行整理更新,并向采集站發(fā)起文件傳輸請求,從各節(jié)站獲取數(shù)據(jù)文件[4]。采集站在21端口號上提供Ftp服務(wù)。而憑借中央服務(wù)器Tomcat容器提供Jfinal Java Web服務(wù),終端軟件可以在任何時候通過訪問服務(wù)器獲得采集網(wǎng)絡(luò)狀態(tài)信息和數(shù)據(jù)文件。
json協(xié)議格式如表1所示。
表1 json協(xié)議格式
表1中,中心服務(wù)器返回的協(xié)議格式結(jié)構(gòu)中在“cmd”和“data”加入了“status”字段,用于記錄“true”或“false”標志。
根據(jù)數(shù)據(jù)形成的不同階段,將數(shù)據(jù)分為原始數(shù)據(jù)、數(shù)據(jù)庫數(shù)據(jù)、留存數(shù)據(jù)。地震數(shù)據(jù)傳輸模型[5]如圖3所示。在整個模型中,數(shù)據(jù)庫的CURD操作都由數(shù)據(jù)服務(wù)器完成。
圖3 地震數(shù)據(jù)傳輸模型圖
原始數(shù)據(jù)采用簡單的地震數(shù)據(jù)記錄格式,每個文件僅含有128B的文件描述塊,以及由1個三分量檢波器采集到的3道數(shù)據(jù)。服務(wù)器獲取原始數(shù)據(jù)時,首先通過預(yù)處理提升地震數(shù)據(jù)信號拾取的完整性和準確性,然后提取道頭中的信息生成數(shù)據(jù)庫管理數(shù)據(jù),再將數(shù)據(jù)存儲在文件系統(tǒng)中[6]。終端軟件在需要獲取數(shù)據(jù)時,向服務(wù)器發(fā)送獲取文件索引指令,服務(wù)器在數(shù)據(jù)庫中搜索。如果存在索引,即直接根據(jù)搜索到的索引信息通知終端軟件;如果未找到索引,則需先由服務(wù)器嘗試從相應(yīng)采集節(jié)點獲取原始數(shù)據(jù)[7],再由終端軟件利用http服務(wù)訪問服務(wù)器上存儲的對應(yīng)采集站地址的數(shù)據(jù),加工處理形成標準格式的成果數(shù)據(jù)。
2.2多線程處理機制
上位機與服務(wù)器的操作指令和數(shù)據(jù)文件的傳輸過程中,使用線程來執(zhí)行耗時較長的I/O操作效率并不高,因此在需要處理大量數(shù)據(jù)時,使用異步操作比使用線程+同步I/O操作更合適[8]。終端軟件和服務(wù)器連通后,終端軟件將封裝好的json協(xié)議字符串轉(zhuǎn)成規(guī)定格式的報文,通過NetworkStream的BeginWrite方法將指令發(fā)送到服務(wù)器上,開啟1個數(shù)據(jù)寫線程和1個異步線程AsyncCallback(sendCallback),等待接收服務(wù)器的返回信息。一旦檢測到服務(wù)器有消息傳回,程序就會自動執(zhí)行回調(diào)函數(shù)sendCallback。在sendCallback中,采用EndWrite方法結(jié)束數(shù)據(jù)寫線程,然后用BeginRead方法開啟1個數(shù)據(jù)讀線程和1個異步線程AsyncCallback(receiveCallback)。該線程開始讀取服務(wù)器返回信息,同時執(zhí)行receiveCallback方法,對報文格式進行解析,再根據(jù)需要進行顯示或處理。被開啟線程不能一直處于等待狀態(tài),超過一定時間的線程應(yīng)自動釋放。通過線程控制類的Monitor方法可以快速通知等待隊列中鎖定對象狀態(tài)的更改情況,保證軟件的性能不受影響。
2.3地震數(shù)據(jù)的歸一化回放
地震數(shù)據(jù)以文件的形式被保存之后,需要以直觀的形式進行顯示。系統(tǒng)采取歸一化回放方式[9],以整體歸一化和各道歸一化2種形式顯示,能以縮放形式改變增益和幅度。電壓幅值表示每道數(shù)據(jù)中單位長度所代表的電壓差距值。
每個記錄點數(shù)對應(yīng)的電壓值為:
(1)
式中:N為采集站ADC的位數(shù);UR為參考電壓;D為單道記錄數(shù)據(jù)段中每個32位定點數(shù)表示的無符號整形數(shù)值。
增益為:
(2)
式中:Umax為單道記錄中最大絕對值電壓。
當各道歸一化顯示時,每一道的波形都有各自不同的增益。整體歸一化時,需要先提取各道中的最小增益值,然后按此增益數(shù)字顯示每道數(shù)據(jù)。此時,相對電壓值為:
(3)
增益縮放時,改變后的增益為:
(4)
式中:n的絕對值為縮放次數(shù),正數(shù)表示放大,負數(shù)表示縮小。
使用ZedGraph5.1圖形控件繪圖,將歸一化后的數(shù)據(jù)點添加至PointPairList數(shù)據(jù)集。每道數(shù)據(jù)共繪制3條curveList曲線:1條用于完整線條的平滑顯示,其上附帶有顯示增益和幅度的標簽,另外2條通過Fill填充函數(shù)和isVisible屬性控制左右填充的切換,以直觀地展示電壓正負值間的差別。利用坐標適應(yīng)方法AxisChange() 與更新方法Refresh(),可在圖形面板上快速、流暢地顯示數(shù)據(jù)變動的情況。
2.4地震波形數(shù)據(jù)實時監(jiān)控
實時監(jiān)控流程包含采集控制的多項工作,具體如圖4所示。終端軟件以s為單位向服務(wù)器發(fā)送數(shù)據(jù)請求,而服務(wù)器搜索到此時刻采集到的地震數(shù)據(jù)文件,終端軟件訪問此文件并實現(xiàn)波形顯示[10]。
圖4 實時監(jiān)控流程圖
對于某野外地震勘探環(huán)境現(xiàn)場,在采集網(wǎng)絡(luò)中布設(shè)90個有線采集站,連續(xù)采集地震數(shù)據(jù),采樣率為4kHz。終端軟件每隔2s根據(jù)當前時刻傳回的數(shù)據(jù)進行一次刷新顯示,共耗時2h。在測試過程中,終端軟件能夠正常、穩(wěn)定工作,未出現(xiàn)異常,能很好地完成整個采集的控制和協(xié)調(diào)管理工作。根據(jù)地震數(shù)據(jù)文件中記錄的節(jié)點采集結(jié)束時間戳,對終端軟件波形顯示完成時刻和文件中采集結(jié)束時刻的差距進行統(tǒng)計。某采集站的數(shù)據(jù)采集時延記錄曲線如圖5所示。其中,最大時延為102ms,平均時延為81.6ms,通信速率穩(wěn)定,數(shù)據(jù)吞吐率最高約為4.5Mb/s。運行終端軟件的便攜式計算機的CPU為Intel(R)Core(TM)i5系列,軟件運行時,CPU占用率在25%附近波動,性能表現(xiàn)良好,能滿足地震數(shù)據(jù)實時監(jiān)測的需求。
圖5 數(shù)據(jù)采集時延記錄曲線
分布式地震勘探中采集節(jié)點眾多,并發(fā)傳輸數(shù)據(jù)量大,對軟件系統(tǒng)的實時并行處理能力提出了較高的要求。本文對基于C#.NET的輕量級地震數(shù)據(jù)采集終端軟件系統(tǒng)進行了設(shè)計和實現(xiàn)。利用數(shù)據(jù)倉庫存儲中心模式、數(shù)據(jù)傳輸技術(shù),實現(xiàn)了數(shù)據(jù)的集中存儲與傳輸,并通過多線程并行處理技術(shù)和ZedGraph5.1繪圖控件,實現(xiàn)了大規(guī)模地震勘探中遠程控制以及數(shù)據(jù)的快速回放。經(jīng)過功能測試和性能測試,軟件性能表現(xiàn)良好,其處理效率和實時性均能滿足應(yīng)用需求。
[1] 陸基孟.地震勘探原理[M].東營:石油大學(xué)出版社,2001:1-4.
[2] 周杰,宋克柱,曹平,等.高精度地震采集系統(tǒng)中的主控軟件設(shè)計[J].計算機工程,2010(4):229-232.
[3] 謝俊宇.陸用地震勘探系統(tǒng)中央工作站軟件系統(tǒng)的研制[D].南京:南京理工大學(xué),2016.
[4] 李旭,童喬凌.高分辨率無線分布式淺層地震儀的設(shè)計[J].自動化儀表,2016,37(4):88-92.
[5]HUANGZ,MOHAMMEDE.Applicationofdatabasetechnologyinthesoftwareofseismicdataacquisition[J].BritishJournalofAppliedScience&Technology,2015,7(1):31-36.
[6]RINGLERAT,HAGERTYMT,HOLLANDJ,etal.Thedataqualityanalyzer:Aqualitycontrolprogramforseismicdata[J].Computers&Geosciences,2015(3):96-111.
[7] 趙利慶.JavaWeb架構(gòu)中數(shù)據(jù)庫優(yōu)化模式的研究與實現(xiàn)[D].北京:北京郵電大學(xué),2015.
[8] 王立峰.實時數(shù)據(jù)庫數(shù)據(jù)采集處理系統(tǒng)的設(shè)計與實現(xiàn)[D].西安:西安工業(yè)大學(xué),2012.
[9] 杜赫然.基于ARM的集中式地震儀主控系統(tǒng)研發(fā)[D].長春:吉林大學(xué),2016.
[10]張曉普,林君,楊泓淵,等.基于無線網(wǎng)絡(luò)的無纜地震儀遠程監(jiān)控系統(tǒng)[J].自動化儀表,2016,37(2):49-53.
DesignandImplementationofTerminalSoftwarefor Seismic DataAcquisitionBasedonC#.NET
LIU Ying1,TUO Xianguo1,2,3,LIU Yong1,2,3
(1.Key Discipline Laboratory for National Defence on Nuclear Wastes and Environmental Safety Laboratory,Southwest University of Science and Technology,Mianyang621010,China;2.School of Automation and Electronic Information,Sichuan University of Science & Engineering,Zigong643002,China;3.State Key Laboratory of Geohazard Prevention and Geoenvironment Protection,Chengdu University of Technology,Chengdu610059,China)
In view of the insufficient capability of the software system for real-time response and handling in exploration process of large scale seismic,on the basis of the complex environmental multi-wave seismic data acquisition system,and based on Linux center data storage server,the Windows-oriented design strategy for the terminal software of lightweight seismic data acquisition control system is proposed.By virtue of the data storage center mode,multi-thread mechanism,and the operation of database,the core works such as data collection and storage of each node are completed by using the server,with help of the interaction of Windows system terminal software and server,the functions of data acquisition,including remote control,data fast playback,analysis and processing are realized; a unified,high-quality,practical seismic exploration data management platform and software integration platform are constructed.The test results indicate that the software is sustainable stable,with short data transmission delay; no special hardware is requested,and features excellent adaptability,stability and expansibility.The requirement of distributed multi-channel seismic exploration can be well satisfied.
Earthquake; Data acquisition; Software design; Data storage; Remote control; Real-time processing; Communication protocol
TH76;TP311
10.16086/j.cnki.issn1000-0380.201710018
修改稿收到日期:2017-04-24
國家重大科研儀器設(shè)備研制專項基金資助項目(41227802)、國家自然科學(xué)基金青年科學(xué)基金資助項目(41604088)、國家自然科學(xué)基金應(yīng)急管理資助項目(41641041)
劉穎(1992—),男,在讀碩士研究生,主要從事計算機應(yīng)用方向的研究。E-mailliuyingmvp@qq.com。
庹先國(通信作者),男,博士,教授,主要從事地球物理勘探方法、電子學(xué)儀器的研制和相關(guān)技術(shù)的研究工作。
E-mail:tuoxg@swust.edu.cn。