基于C#.NET的地震数据采集终端软件设计和实现

2017-11-03 15:55庹先国
自动化仪表 2017年10期
关键词:线程勘探终端

刘 颖,庹先国,,,刘 勇,,

(1.西南科技大学核废物与环境安全国防重点学科实验室,四川 绵阳 621010;2.四川理工学院自动化与电子信息学院,四川 自贡 643002;3.成都理工大学地质灾害防治与地质环境保护国家重点实验室,四川 成都 610059)

基于C#.NET的地震数据采集终端软件设计和实现

刘 颖1,庹先国1,2,3,刘 勇1,2,3

(1.西南科技大学核废物与环境安全国防重点学科实验室,四川 绵阳621010;2.四川理工学院自动化与电子信息学院,四川 自贡643002;3.成都理工大学地质灾害防治与地质环境保护国家重点实验室,四川 成都610059)

针对大规模地震勘探过程中软件系统实时响应和处理能力不足等问题,基于复杂环境多波地震数据采集系统,提出了一种搭载于Linux中心数据存储服务器、面向Windows系统的轻量级地震数据采集控制系统终端软件设计方案。通过数据存储中心模式、多线程处理机制和对数据库的操作,利用服务器完成各采集节点数据的收集、存储等核心工作,凭借Windows系统终端软件与服务器的交互,最终实现数据采集的远程控制、数据快速回放、分析处理等功能,构建了统一、高品质、实用性好的地震勘探数据管理平台和软件集成平台。测试结果表明,该软件能够长时间稳定运行,数据传输延时短,对硬件环境没有特殊的要求,并且具有良好的适应性、稳定性及扩展性,可以满足分布式多道地震勘探需求。

地震; 数据采集; 软件设计; 数据存储; 远程控制; 实时处理; 通信协议

0 引言

地震勘探是查明地下地质构造的有效的方法之一,在油气藏勘探中应用极其广泛。目前在工程领域中,为了提高分辨率,勘探设备节点的分布越来越密集,采集数据量不断增长,这就要求软件系统能对大量数据进行高效、高质量处理[1]。如何实现对采集数据的实时监控和处理,一直是地震软件技术研究的重要课题[2]。

为实现地震勘探设备的远程控制和地震数据处理效率的提升,本文在成功自主研制分布式地震数据采集硬件系统的基础上,提出了中心服务器数据存储方案和终端软件设计方案。该方案利用数据库技术实现数据的集中管理,结合多线程并行处理技术实现数据实时动态显示,终端软件通过与服务器交互实现远程控制,从而为整个地震勘探系统提供有效的操作平台。

1 总体方案设计

1.1采集控制系统组成

采集控制系统由采集网络、中央服务器和终端软件三种主体成分构成,相互间均采用网络电缆连接,系统架构如图1所示。

图1 采集控制系统架构图

终端软件是用户主控制台,它通过操作指令与中央服务器进行交互。中央服务器是“实际工作”模块。服务器等待控制中心的连接,接收上位机软件发送的命令并转发到各采集站,同时利用各节点上的文件服务器完成采集站数据文件的收集。因此,服务器也能充当客户端的角色。采集网络中众多采集节点接收其他主机的连接请求,然后根据指令执行控制操作,将检波器上的传感器数据整合成为固定格式文件。

1.2软件功能设计

终端软件主要实现对地震数据的采集控制,快速可视化以及相关处理操作。软件运行时,可根据采集网络的拓扑信息在软件界面选择多个采集节点,并进行采集参数配置,包含采样方式选择、采样间隔和采样长度的设置,以完成采集控制操作。终端软件收集从服务器传来的数据信息,并完成对数据的加工处理,再以图像形式展示。

2 软件的开发和实现

终端软件以VisualStudio2015作为软件开发工具,基于C#.NET平台开发,服务器在安装有debian系统的工控机上运行。

2.1数据存储中心模式设计

在地震数据勘探过程中,文件数据传输是系统主要的功能。终端软件发起对数据仓库的操作,然后对数据进行分析和处理。

采集过程涵盖有指令、状态、信息传输和文件传输[3],分别对应通信长链路和文件传输链路。服务器服务模型如图2所示。

图2 服务器服务模型

信号采集时,终端软件首先创建TcpClient对象,请求连接到服务器的IP地址和端口,中央服务器的Netty服务框架在3333端口提供通信服务。终端软件按协议封装带有参数设置信息和采集控制指令的字符串,通过BeginWrite方法发送至服务器;中央服务器收到数据后进行解析提取关键信息,通过Netty服务框架下的ChannelHandlerAdapter向采集节点发起通信长链接请求,然后转发给采集站。采集站收到指令后,按照指令对应的方式采集数据,同时通过原链接返回状态信息至服务器,并告知服务器准备收集数据文件。服务器对收集到的采集网络信息进行整理更新,并向采集站发起文件传输请求,从各节站获取数据文件[4]。采集站在21端口号上提供Ftp服务。而凭借中央服务器Tomcat容器提供Jfinal Java Web服务,终端软件可以在任何时候通过访问服务器获得采集网络状态信息和数据文件。

json协议格式如表1所示。

表1 json协议格式

表1中,中心服务器返回的协议格式结构中在“cmd”和“data”加入了“status”字段,用于记录“true”或“false”标志。

根据数据形成的不同阶段,将数据分为原始数据、数据库数据、留存数据。地震数据传输模型[5]如图3所示。在整个模型中,数据库的CURD操作都由数据服务器完成。

图3 地震数据传输模型图

原始数据采用简单的地震数据记录格式,每个文件仅含有128B的文件描述块,以及由1个三分量检波器采集到的3道数据。服务器获取原始数据时,首先通过预处理提升地震数据信号拾取的完整性和准确性,然后提取道头中的信息生成数据库管理数据,再将数据存储在文件系统中[6]。终端软件在需要获取数据时,向服务器发送获取文件索引指令,服务器在数据库中搜索。如果存在索引,即直接根据搜索到的索引信息通知终端软件;如果未找到索引,则需先由服务器尝试从相应采集节点获取原始数据[7],再由终端软件利用http服务访问服务器上存储的对应采集站地址的数据,加工处理形成标准格式的成果数据。

2.2多线程处理机制

上位机与服务器的操作指令和数据文件的传输过程中,使用线程来执行耗时较长的I/O操作效率并不高,因此在需要处理大量数据时,使用异步操作比使用线程+同步I/O操作更合适[8]。终端软件和服务器连通后,终端软件将封装好的json协议字符串转成规定格式的报文,通过NetworkStream的BeginWrite方法将指令发送到服务器上,开启1个数据写线程和1个异步线程AsyncCallback(sendCallback),等待接收服务器的返回信息。一旦检测到服务器有消息传回,程序就会自动执行回调函数sendCallback。在sendCallback中,采用EndWrite方法结束数据写线程,然后用BeginRead方法开启1个数据读线程和1个异步线程AsyncCallback(receiveCallback)。该线程开始读取服务器返回信息,同时执行receiveCallback方法,对报文格式进行解析,再根据需要进行显示或处理。被开启线程不能一直处于等待状态,超过一定时间的线程应自动释放。通过线程控制类的Monitor方法可以快速通知等待队列中锁定对象状态的更改情况,保证软件的性能不受影响。

2.3地震数据的归一化回放

地震数据以文件的形式被保存之后,需要以直观的形式进行显示。系统采取归一化回放方式[9],以整体归一化和各道归一化2种形式显示,能以缩放形式改变增益和幅度。电压幅值表示每道数据中单位长度所代表的电压差距值。

每个记录点数对应的电压值为:

(1)

式中:N为采集站ADC的位数;UR为参考电压;D为单道记录数据段中每个32位定点数表示的无符号整形数值。

增益为:

(2)

式中:Umax为单道记录中最大绝对值电压。

当各道归一化显示时,每一道的波形都有各自不同的增益。整体归一化时,需要先提取各道中的最小增益值,然后按此增益数字显示每道数据。此时,相对电压值为:

(3)

增益缩放时,改变后的增益为:

(4)

式中:n的绝对值为缩放次数,正数表示放大,负数表示缩小。

使用ZedGraph5.1图形控件绘图,将归一化后的数据点添加至PointPairList数据集。每道数据共绘制3条curveList曲线:1条用于完整线条的平滑显示,其上附带有显示增益和幅度的标签,另外2条通过Fill填充函数和isVisible属性控制左右填充的切换,以直观地展示电压正负值间的差别。利用坐标适应方法AxisChange() 与更新方法Refresh(),可在图形面板上快速、流畅地显示数据变动的情况。

2.4地震波形数据实时监控

实时监控流程包含采集控制的多项工作,具体如图4所示。终端软件以s为单位向服务器发送数据请求,而服务器搜索到此时刻采集到的地震数据文件,终端软件访问此文件并实现波形显示[10]。

图4 实时监控流程图

3 系统测试

对于某野外地震勘探环境现场,在采集网络中布设90个有线采集站,连续采集地震数据,采样率为4kHz。终端软件每隔2s根据当前时刻传回的数据进行一次刷新显示,共耗时2h。在测试过程中,终端软件能够正常、稳定工作,未出现异常,能很好地完成整个采集的控制和协调管理工作。根据地震数据文件中记录的节点采集结束时间戳,对终端软件波形显示完成时刻和文件中采集结束时刻的差距进行统计。某采集站的数据采集时延记录曲线如图5所示。其中,最大时延为102ms,平均时延为81.6ms,通信速率稳定,数据吞吐率最高约为4.5Mb/s。运行终端软件的便携式计算机的CPU为Intel(R)Core(TM)i5系列,软件运行时,CPU占用率在25%附近波动,性能表现良好,能满足地震数据实时监测的需求。

图5 数据采集时延记录曲线

4 结束语

分布式地震勘探中采集节点众多,并发传输数据量大,对软件系统的实时并行处理能力提出了较高的要求。本文对基于C#.NET的轻量级地震数据采集终端软件系统进行了设计和实现。利用数据仓库存储中心模式、数据传输技术,实现了数据的集中存储与传输,并通过多线程并行处理技术和ZedGraph5.1绘图控件,实现了大规模地震勘探中远程控制以及数据的快速回放。经过功能测试和性能测试,软件性能表现良好,其处理效率和实时性均能满足应用需求。

[1] 陆基孟.地震勘探原理[M].东营:石油大学出版社,2001:1-4.

[2] 周杰,宋克柱,曹平,等.高精度地震采集系统中的主控软件设计[J].计算机工程,2010(4):229-232.

[3] 谢俊宇.陆用地震勘探系统中央工作站软件系统的研制[D].南京:南京理工大学,2016.

[4] 李旭,童乔凌.高分辨率无线分布式浅层地震仪的设计[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架构中数据库优化模式的研究与实现[D].北京:北京邮电大学,2015.

[8] 王立峰.实时数据库数据采集处理系统的设计与实现[D].西安:西安工业大学,2012.

[9] 杜赫然.基于ARM的集中式地震仪主控系统研发[D].长春:吉林大学,2016.

[10]张晓普,林君,杨泓渊,等.基于无线网络的无缆地震仪远程监控系统[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

国家重大科研仪器设备研制专项基金资助项目(41227802)、国家自然科学基金青年科学基金资助项目(41604088)、国家自然科学基金应急管理资助项目(41641041)

刘颖(1992—),男,在读硕士研究生,主要从事计算机应用方向的研究。E-mailliuyingmvp@qq.com。

庹先国(通信作者),男,博士,教授,主要从事地球物理勘探方法、电子学仪器的研制和相关技术的研究工作。

E-mail:tuoxg@swust.edu.cn。

猜你喜欢
线程勘探终端
油气勘探开发三年滚动计划编制的思考
复杂线束在双BCI耦合下的终端响应机理
基于C#线程实验探究
X美术馆首届三年展:“终端〉_How Do We Begin?”
基于国产化环境的线程池模型研究与实现
勘探石油
通信控制服务器(CCS)维护终端的设计与实现
线程池调度对服务器性能影响的研究*
立秋
“吃人不吐骨头”的终端为王