基金项目:中国地震局地壳应力研究所所长基金(J2209830、J220981301)资助.
(1.中国地震局地壳应力研究所,北京100085; 2.廊坊市地震局,河北 廊坊 065000; 3.廊坊开发区大地工程检测技术开发有限公司,河北 廊坊 065000)
(1.Institute of Crustal Dynamics,CEA,Beijing 100085,China)(2.Earthquake Administration of Langfang City,Langfang 065000,Hebei,China)(3.Langfang Development Zone,Earth Engineering Detection Technology Development Co.Ltd.,Langfang 065000,Hebei,China)
CNEM08-I electrical disturbance instrument,the tenth-five Data Management System
备注
基金项目:中国地震局地壳应力研究所所长基金(J2209830、J220981301)资助.
以CNEM08-I型电扰动仪原有的采集方法、计算方法为基础,保留其数据采集模块原有的工作模式,对其工控机内部软件进行升级改造,使其工作更为稳定、数据完整率得到大幅提高,仪器通讯符合中国地震局“十五”前兆通信规程。
This article realize that the CNEM08-I electrical disturbance instrument access to the tenth-five earthquake precursor data management system,remaining the old data acquisition module and calculation method,upgrading the internal software to conform to the tenth-five precursor communications protocol of CEA.
引言
CNEM08-I型电扰动仪是河北省廊坊开发区大地工程检测技术开发有限公司协助廊坊市地震局研制的一套大地电场观测仪器,该仪器已经在北京市地震局、新疆地震局、河北省地震局等得到广泛运用。CNEM08-I型电扰动仪分为地下传感器部分和地面主机部分。传感器为埋地电极; 地面主机用来实时记录地下电场的波动变化,定时监测地电阻率的变化并消除地质条件变化对仪器观测产生的影响,确保各台站之间的资料具有可比性。该仪器研制后,在廊坊地震局电磁观测台试运行期间,观测到2006年7月4日文安5.1级地震震前异常幅度大、次数多,震后异常幅度减少,次数减少,说明该仪器的传感器工作原理符合地震前兆仪器观测要求,其主机具有高精度、稳定的数据采集功能,在地震前兆观测领域中具有较好的发展前景。
由于CNEM08-I型电扰动仪的核心技术开发较早,先于中国地震局“十五”地震前兆通信规程的颁布,所以该仪器通信协议未按“十五”规程来实现,严重制约了其在地震前兆台站的布局和产出数据的正常入库,再加上全国已有的十几台正在正常运行的仪器,都面临着数据资料正常接入到“十五”前兆数据管理系统中的问题,从而使解决仪器的通信协议问题成了仪器发展的必要条件。
本文着眼于对已有仪器的升级以及今后仪器的发展计划,以中国地震局“十五”通信规程为指导,在保留仪器原有的采集、工作原理的前提下,进行工控机内部软件的升级,使之符合“十五”通信规程,产出数据可以直接被“十五”前兆数据管理系统采集、入库,为仪器的升级、更新提供技术支持。
1 主机工作原理
CNEM08-I型电扰动仪主机采用低功耗、高性能的工控机为硬件平台,24位A/D转换,大容量硬件存储,实时采集、定时传输。图1为CNEM08-I型电扰动仪数据采集原理框图。由图1可看出,电或磁传感器经过A/D转换器(崔艳云,李云堂,2009),通过CPU控制,以十六进制格式将高采数据存储到4 k的存储器内,存储器有一位写满判断位,一旦存储器写满,置该位为1,即通知PC104工控机对其进行数据读取(王秀英等,2004)。PC104工控机与数据采集部分之间采取DMA方式进行传输,利用该方式工控机可以直接访问到数据存储器,从而大大提高数据传输速度和CPU工作效率。由此工控机与数据采集模块之间的数据传输可以直接采用memcpy(bData_Src,bData_Dst,memoryAddressmemorySize),将指定地址、指定空间大小的数据传回到工控机。当数据存储器中数据读取完毕后,清空数据存储器,进入到下一个数据采集循环。
PC104工控机将高采数据以十六进制格式存储到硬盘中,并且按其转换方法计算出秒钟值数据,每天定时通过FTP服务器自动将数据上传到地磁台网中心(廊坊地震局)数据服务器,将数据交付给预报人员使用。
虽然通过这样的方式可以将数据成功传输到台网中心,但由于其数据格式、通信协议都未按中国地震局“十五”规程所规定的方式进行传输(中国地震局监测预报司,2004),其数据无法通过“十五”前兆数据管理系统将数据采集、入库、共享、分析,也正如此,通信方式的局限性成了CNEM08-I型电扰动仪的发展瓶颈。
2 软件改造流程
由于工控机与主机采集模块中“握手”信号在于数据存储器写满判断位,因而工控机中软件开发的出发点也就是对写满位的判断。对于该位状态的判断主要有以下3种方案:
(1)中断方案,即数据存储器写满时判断位的状态变换,对工控机产生读中断,工控机通过获取该中断后从数据存储器中将数据读回。该方案在其原理上较为通用、准确,但要求工控机、数据采集模块工作都相对稳定,并且从软件实现上来说相对较为复杂。
(2)循环读取方案,即工控机采集程序开启一个死循环对其判断位进行读取,一直读到有数据时将数据存储器中的数据读回到工控机中。虽然该方案的原理实现较为简单,但存在很大风险,如出现退出条件不满足时极易导致死循环,并且对系统资源也是严峻的考验,极易导致操作系统崩溃。
(3)定时扫描方案,即开启一较短时间的定时器(如100 ms)对判断位进行扫描(罗斌等,2005),当判断位为1时则对数据进行读取。该方案结合了上述两种方案的优势,软件实现过程也相对简单,所以本文采取这种改造方案。
图2所示为整个软件运行程序框图:整机通电后引导工控机内的操作系统启动。本次改造过程中采用的是Windows 98系统。通过软件、BIOS看门狗机制保证工控机内部操作系统、用户程序的稳定运行; 由于操作系统和用户工作在同一PC104工控机上,其系统资源显得尤为重要,这是本次改造替换原有Windows XP系统的主要原因。从软件开发难易方面考虑,未采用资源更节省的DOS系统; 再者由于该仪器长期工作在因特网上,如何尽可能地减少病毒攻击也是本次改造的一个重要环节,综上所述,本次改造选用Windows 98作为仪器操作系统最为理想。
操作系统引导仪器FTP服务器、VNC服务器以及主控制程序。其中FTP服务器主要负责仪器数据的下载、软件远程更新等功能; VNC主要实现远程桌面,从远程可以感观上查看系统运行状态(何案华等,2008)。主控制程序为本次软件升级的核心所在(赵刚等,2005),其主要有以下几项功能:
(1)网络校时。通过连接网络固定的SNTP服务器,保证仪器时钟与网络标准时钟同步。
(2)引导仪器网页服务器。网页服务器主要实现远程通过浏览器访问仪器,从网页浏览仪器运行状态、仪器参数等(王罡,林立志,2002)。
(3)引导“十五”规程服务器。该程序主要负责处理“十五”前兆数据管理系统发来的相应命令,如数据采集、日志采集、仪器控制等。
(4)引导数据采集程序。该项为整个改造内容的关键部分,下文对其功能有较详细描述。
(5)检查上述三个程序的运行状态。通过软件看门狗机制,查询上述三个程序的运行状态,如果某个程序出现崩溃、内存泄漏等异常时,主控制程序会强制关闭该进程、并重新启动该程序,甚至重新启动操作系统。
图2 改造后的CNEM08-I型电扰动仪软件工作原理图
Fig.2 The software principle diagram of Transformed CNEM08-I electric disturbance instrumentSetTimer(TIMER_CAISHU,50,NULL);
开启一50 ms定时器,定时对仪器“握手”信号(写满标志位)进行扫描,如有数据则进行数据读取,并置标志位为0。
InitDMA(m_int_memorySize/2-1,m_dword_physicalMemoryAddress);
GetPortVal(0x00d0,&DMAShieldBit,1);
DMAShieldBit=DMAShieldBit&0x20;
if(DMAShieldBit !=0x20)
//判断数据写满判断位是否为1
{
return;
}
SetPortVal(0x00D4,0x0001,1);
//清除CH5屏蔽位
GetPortVal(0x00d0,&DMAStatusBit,1);
//读DMA5状态位
DMAStatusBit=DMAStatusBit&0x02;
if(DMAStatusBit !=0x02)
{
return;
} //直至传输完毕
SetPortVal(0x00D4,0x05,1);
//置CH5屏蔽位
buffer=new BYTE[m_int_memorySize];
memset(buffer,‘\0',m_int_memorySize);
DMA_98(buffer,m_int_memorySize);
//将数据采集模块数据传回到程序内存
if(buffer[0]!=m_int_tongdaoShu || buffer[2]!=m_int_caiyangLv)
//判断通道数与采样率是否为设置值,否则进行同步
{
SetPara(m_int_gain1,m_int_gain2,m_int_gain3,m_int_gain4,
m_int_caiyangLv,m_int_tongdaoShu,1);
Sleep(50);
SetPortVal(0x0315,0x01,1);
}
通过上述代码将数据采集回程序内存后,再按要求进行相应的数据计算机、转换、存储即完成整个数据采集过程。相应地,“十五”协议服务器、网页服务器与数据采集之间的交互直接采用数据文件进行,譬如远程通过“十五”协议进行仪器数据收取时,直接从工控机里的文件进行读取,从而使数据采集程序只是单纯负责数据采集任务,保证整个系统、用户程序的稳定性。
3 改造结果
图3所示为仪器改造完成后的实验室实验结果。将仪器设置成4通道采样、每通道增益倍数均为1倍,其中第1到3通道输入同一标准正弦信号源,第4通道将输入端短路(付子忠,2003)。从其高采波形可以看出,曲线光滑,频率、幅度与输入的信号源一致,说明其采集过程中达到预期目标。第4通道即可看成仪器噪声,其噪声在0.007~-0.008 mV之间,从其数据可以看出各项指标都已达到设计技术指标。
Yt=∑19i=0(|yi|×0.05).
从其计算过程来看,其实就是将所有采样点值的绝对值相加然后乘以采样时间步长。
改造完成后,经北京市地震局积极配合,我们已经在其所辖顺义牛栏山、延庆张庄、昌平流村、长陵中学、密云东邵渠等台站仪器进行改造升级,该批仪器都为北京市地震局“十五”项目主测项仪器,此次改造后,其仪器产出数据可自动汇集到北京市“十五”数据管理系统,数据连续率达到100%。图4所示为2010年2月份延庆张庄台数据采集情况汇总。
4 软件升级运行结果及待解决问题
在廊坊市大地公司和廊坊市地震局相关人员的大力配合下,整个软件升级改造耗时约3个月,成功接入到中国地震局“十五”前兆数据管理系统。从其运行状态来看,仪器较为稳定,各项指标、功能都符合“十五”规程的要求,为已有的CNEM08-I型电扰动仪软件更新和下一步新生产的CNEM08-I型电扰动仪在软件方面提供了整体、稳定的技术支持。
本次改造也还存在一些待解决问题,譬如系统重启时会带来几十秒钟的数据缺失、中国地震局“十五”前兆数据管理系统中还未有相应的仪器型号添加等问题。我们相信这些小问题会随着仪器硬件、软件方面的不断完善得到圆满的解决。
- 崔艳云,李玉堂.2009.CNEM08-Ⅰ电扰动仪的开发与研制[J].国际地震动态,(7):19-21.
- 何案华,赵刚,王军,等.2008.串口前兆仪器的因特网接入方案与配套软件开发[J].地震研究,31(3):279-283.
- 罗斌,等.2005.Visual C++编程技巧精选[M].北京:中国水利出版社.
- 汪晓平,钟军.2003.Visual C++网络通信协议分析与应用实现[M].北京:人民邮电出版社.
- 王罡,林立志.2002.基于Windows的TCP/IP编程[M].北京:清华大学出版社.
- 王秀英,周振安,牛从达,等.2004.高精度数据采集器网络通讯功能的实现[J].地震研究,27(2).203-207.
- 付子忠,等.2003.地震前兆台站数字观测技术[M]//北京:地震出版社.
- 赵刚,何案华,郭藐西.2005.数字化温度计的网络化设计[J].地震研究,28(3):180-185.
- 中国地震局监测预报司.2003.地震电磁观测技术[M].北京:地震出版社.
- 中国地震局监测预报司.2004.数字化前兆仪器网络通讯规程[M].北京:地震出版社:240-327.