倪友忠,朱培育,朱佳苗,束亞一
(1.上海市地震局佘山地震基準臺,上海 200062;2.上海市地震局崇明地震臺,上海 202164)
臺站監測數據恢復平臺的開發
倪友忠1,朱培育2,朱佳苗2,束亞一1
(1.上海市地震局佘山地震基準臺,上海200062;2.上海市地震局崇明地震臺,上海202164)
摘要:為應對雷電、網絡故障等突發事件引起的通訊及網絡故障,出現通過正常途徑無法采集數據采集器中觀測數據的情況,特研發監測數據恢復平臺。該平臺通過串口通信工程的開發研究,實現通過采集器的RS232串口連接,讀取存儲器單元中的數據,并將之提取并保存為固定格式。通過數據庫編程技術,將提取的觀測數據導入到“十五”Oracle數據庫中,從而達到提高觀測資料完整率的目的。
關鍵詞:數據采集器;存儲器;監測數據;恢復平臺
0引言
隨著上海佘山地震基準臺(以下簡稱佘山臺)前兆2012年“十五”數字臺網的改造完成,佘山臺形變觀測已經全面實現數字網絡化,監控能力得到了極大的提升。“十五”數字網絡化系統的實現,大大提高了觀測效率。但大量電子產品的應用,也不可避免地帶來了新的問題。出現的問題主要有以下幾點:(1) 夏季雷雨季節的時候,由于佘山臺信息設備高度集中,電子設備的耐沖擊能力卻顯著降低,雷電產生的電磁脈沖對佘山臺形變電子設備的損害,有逐年上升的趨勢;(2) 儀器本身的設計問題。如,產品設計的不成熟,科學實驗的時間不長就應用到實際觀測,電子產品的焊接工藝等等,導致地震監測設施的相關電子產品保質期過于短暫,設計運行的時間遠遠小于實際運行的時間;(3) 儀器自身的老化。佘山臺大部分的前兆儀器是2000年安裝,至今,已經超負荷運行14年;(4) 觀測儀器的數量增多,手段多樣化,與人員的專業化程度存在差異,造成了儀器維護的困難比以往大大增加,儀器故障率逐年提升。
鑒于上述問題,該文從提高觀測資料完整率的角度出發,通過VB串口通訊工程的開發與研究及VB數據庫編程技術,設計開發本平臺[1]。當前兆管理平臺無法正常收取數據時,通過該數據恢復平臺,能完成各項儀器數據的采集及入庫等操作。
1程序設計目的
設想在網絡不通,光纖被破壞且暫時無法修復;或者網絡協議轉換設備故障,無備份設備替換等觀測條件下,通過開發“臺站監測數據恢復平臺”,用筆記本實現和DSC-1A的RS232C串口直接通訊,將數采中的觀測數據采集下來,并通過該平臺將觀測數據錄入到Oracle數據庫中。這樣做的好處有3點:一是盡可能多的利用本平臺恢復能夠被恢復的臺站第一手觀測資料,避免被擱置,被遺漏。臺站目前沒有這方面的研究來達到這一目的,儀器生產廠商也未提供對應接口的軟件。所以,通過該研究,能達到盡可能的降低觀測數據的斷記率,保證觀測資料的完整率;二是可以作為“十五”前兆數據管理系統的數據采集備份,防患未然。當使用正常方式無法采集觀測數據的時候,可以作為應急平臺加以使用;三是此平臺開發后,可以進一步應用推廣到條件艱苦臺站、無網絡信號覆蓋的偏遠臺站。
根據此目的,設計的程序流程圖如第22頁圖1所示。
2平臺的研究內容
這項研究涉及如下三方面的內容。
(1) 串口通信工程的開發[2]。通過成熟的Vbasic.net串口通訊技術,實現與RS232串口通訊,通過指令的方式將HK 非易失性隨機存取存儲器(NVRAM)中保存的前兆觀測數據提取出來。需要了解數據采集器的接口標準、數據格式、通訊約定,從而在此基礎上,設計臺站監測數據恢復平臺,兼容中國地震局前兆軟件管理平臺。學習研究了中國地震局已經發布的部分行業技術標準,如《傳感器接口與控制》《前兆儀器網絡通訊技術規程》等。

圖1 程序流程簡圖Fig.1 Diagram of the program flow
(2) 數據的拼接功能。如,當天的數據采集器發生故障后,如果數采中的存儲芯片未損壞,保存在其芯片中的數據完好,則通過本平臺提取00點00分至故障發生時的這段數據,然后將該段數據與恢復正常記錄時的數據(即故障解決時,恢復正常記錄至23點59分的數據)進行拼接,拼接成一個相對完整的天文件數據,減少數據的缺失。以往,在數據采集器故障后,這部分數據(00點00分至發生故障時)由于生產商未提供相應的恢復軟件,是無法恢復的。通過該研究,能夠極大減少當天的數據丟失,有效提高觀測資料的完整率。
(3) 格式轉換功能及數據庫編程。在滿足《地震前兆數據庫結構規范》及中華人民共和國地震行業標準《地震測項分類與代碼》的基礎上,編制標準的格式轉換程序及入庫程序,保證入庫數據格式正確,從而保證“十五前兆數據處理系統”能正常處理入庫數據。同時兼顧科學研究,滿足數據分析的要求。編制三類觀測數據格式:“九五”格式——能兼容早期的“九五”數據處理系統;“十五”格式——方便數據入庫;mapsis等會商格式——能使用mapsis等地震分析軟件,方便對觀測數據進行更深入地分析研究。
3模塊劃分
參考地震前兆觀測數據處理系統[3],將軟件基本功能劃分為參數設置、連接數采并采集觀測數據、數據操作、數據入庫等四大模塊(見圖2)。
(1) 參數設置模塊。參數設置包括:臺站參數設置及儀器測項設置。

圖2 程序結構示意圖Fig.2 Diagram of the program structure
(2) 連接數采并采集觀測數據模塊。參考地震前兆數據采集器的設計考慮[4],通過成熟的Vbasic.net串口通訊技術,實現與RS232串口通訊,通過指令的方式將HK 非易失性隨機存取存儲器(NVRAM)中保存的前兆觀測數據提取出來,并保存。
(3) 數據操作模塊。該模塊劃分為4個小模塊[3],即:數據拼接、格式轉換、數據保存、數據作圖。數據拼接功能,將故障前記錄的當天某一段數據和故障檢修排除后記錄的數據進行拼接,減少缺測時間。格式轉換功能,具備3種格式(“九五”格式、“十五”格式、MAPSIS會商格式)相互轉換的功能;數據保存功能,將采集或者拼接后的數據保存成如上的3類格式;數據作圖功能,具備3類格式的作圖功能,方便查看儀器的工作狀態。
(4) 數據入庫模塊。通過VB數據庫技術,將采集的數據及拼接處理后的數據,導入Oracle數據庫。
4平臺的技術途徑及研究方法
本系統是基于Vbasic.net架構,采用了較為成熟的開發模式。數據庫系統前端采用oracle 11g數據庫系統,主要功能模塊采用Visual basic.net編寫,采用標準的串口通信技術開發通信平臺(見第23頁圖3)。
(1) 軟件內存管理。
軟件中,對儀器的管理采取如下方法:為每個儀器定義一個結構變量,并且在程序啟動時為每個儀器的結構變量分配內存和初始化結構變量,直到軟件退出時才刪除所有儀器的結構變量空間。實驗證明,這種內存管理方法對軟件的穩定性起了關鍵作用。

圖3 串口通訊模式架構示意圖Fig.3 Diagram of architecture with serial communication mode
Public Type Station_info//自定義臺站信息存儲類型
Sname As String//儀器 臺站名稱
jingdu As Double//儀器 臺站經度
weidu As Double//儀器 臺站緯度
gaocheng As Double//儀器 臺站高程
daima As String//儀器 臺站代碼
yiqihao As String//儀器號
End Type
Public StationInfo() As Station_info ′臺站信息
Option Explicit
Dim SendCount As Integer//定義已發送字符對應字節數
Dim ReceiveCount As Integer//定義已接收字符對應字節數
Dim PortSwitch As Boolean//定義串口是否打開標志
Dim DisplayFlag As Boolean//定義接收窗口是否繼續顯示標志
Dim item As Integer//定義串口的通訊類型
Dim tempbyte() As Byte//定義串口通訊返回字節類型
Dim databuffer(9000) As Byte//定義字節數組
(2) 串口通訊模式。
當軟件工作在串口通訊模式下時,其硬件連接如圖3所示,現場總線向下通過光隔副側與前兆儀器相連,向上通過光隔主側與臺站收數計算機相連。工作模式切換到串口通訊模式,然后根據儀器串口屬性,相應地打開收數計算機串口(如,波特率19200、數據位8、奇偶校驗無、停止位1、數據流控無等),即可通過圖4所示軟件,對現場總線上儀器進行控制與數據采集。

圖4 串口通訊模式采數程序示意圖Fig.4 Diagram of data acquisition program of serial communication mode
串口通訊模式采數程序如下:

′ 串口初始化

Private Sub InitialPort(SerialPort As String, BaudRate As String, ParityBit As String, DataBit As String, StopBit As String)
MSComm.CommPort = val(Mid(SerialPort, 4, Len(SerialPort) - 3))//設定端口
//設置波特率、校驗位、數據位、停止位
MSComm.Settings = BaudRate & ″,″ & Left(ParityBit, 1) & ″,″ & DataBit & ″,″ & StopBit
MSComm.InBufferSize = 1024//設置接收緩沖區為1 024字節
MSComm.OutBufferSize = 4096//設置發送緩沖區為4 096字節
MSComm.InBufferCount = 0//清空輸入緩沖區
MSComm.OutBufferCount = 0//清空輸出緩沖區

′ 接收數據

Private Sub MsComm_OnComm()//接收數據
Dim InputString As Variant//定義接收變量
Dim BytReceived() As Byte//定義接收數組
Dim ReceiveData As String//定義輸入字符串變量
Dim strCharacter As String//定義每次接收字符的變量
Dim Counter As Integer//定義接收字符的數量
Dim i As Long//定義臨時變量
Dim Ii As Long//定義臨時變量
Dim jj As Long//定義臨時變量
Select Case MSComm.CommEvent
Case comEvSend//每發送1個數就觸發一次
SendCount = SendCount + LenB(StrConv(TxtSend.Text, vbFromUnicode))
Case comEvReceive//發生接收事件時
Select Case item
Case 1001//調回儀器時鐘
tempbyte = MSComm.Input
Call dispdata
Case 1002, 1003//調回昨天、當天數據
tempbyte = MSComm.Input
For i = LBound(tempbyte) To UBound(tempbyte)
databuffer(Ii) = tempbyte(i)
If databuffer(Ii) < 16 Then
RichTextBox1.Text = RichTextBox1.Text + ″0″ & Hex(databuffer(Ii))
Else
RichTextBox1.Text = RichTextBox1.Text + Hex(databuffer(Ii))
End If
Ii = Ii + 1
Text17.Text = Ii
′If Ii Mod 48=0 Then
′jj = jj + 1
′End If
Next i
Case 1004//調回當前數據
tempbyte = MSComm.Input
For i = LBound(tempbyte) To UBound(tempbyte)
If Ii >= 5 Then
If Ii < 50 Then
RichTextBox1.Text = RichTextBox1.Text + Chr(tempbyte(i))
Else
RichTextBox1.Text = RichTextBox1.Text + Chr(tempbyte(i))
End If
End If
Ii = Ii + 1
Next i
Case Else
End Select
Case Else
End Select
5軟件應用
該軟件自調試完畢后,即投入地震臺站日常工作,效果良好。圖4展示的是該軟件的一部分主要功能,即通過“九五”串口通訊方式(通訊協議符合“九五通信標準”細則)采集數據。該功能菜單簡潔直觀,具備以下幾大功能:校對儀器時鐘;調回儀器時鐘;采集前N天數據;采集當天數據;采集當前數據;數據保存。當網絡通訊無法使用時,臺站人員可以攜帶便攜式筆記本電腦,進入儀器安裝現場或者山洞洞室內,利用現場總線,分別聯接筆記本串口及數據采集器串口,啟動臺站監測數據平臺,實時采集數據,避免數據的丟失。
該軟件還具備現場調試的功能,確定數據采集器等是否正常工作。
6結語
筆者通過幾個月的努力,完成了該系統的開發研制,并制作了安裝盤,在臺站試用。在使用過程中,根據實際情況,做了多次改動和完善,基本滿足了臺站觀測的要求。通過測試和使用,證明該平臺已達到設計的預期效果,但仍存在一些設計缺陷,主要表現在軟件只能在本臺站進行應用,還無法面向其他地震臺站進行推廣使用。今后,該軟件還需要不斷改進系統性能,增強軟件推廣應用功能。
參考文獻:
[1]Microsoft Corporation.VISUAL BASIC 6.0中文版程序員指南[M].北京:希望電子出版社,1998.
[2]周振安.地震前兆數據采集器的設計考慮[J].大地測量與地球動力學,2004,24(3):120-123.
[3]尹亮,曾文浩,李東生,等.地震前兆觀測數據處理系統[J].地震地磁觀測與研究,2005,26(2):97-102.
[4]周振安,范良龍,王秀英,等.數據采集系統的設計與實踐[M].北京:地震出版社,2005.
Development of Monitoring Data Recovery Platform of Seismic Stations
NI You-zhong1, ZHU Pei-yu2, ZHU Jia-miao2, SHU Ya-yi1
(1.Sheshan Referential Seismological Station of Earthquake Administration of Shanghai City, Shanghai 200062, China;2.Chongming Seismological Station of Earthquake Administration of Shanghai City, Shanghai 202164, China)
Abstract:In order to deal with communication failures caused by lightning, network failures and other emergency, monitoring data recovery platform are developed to resolve the problems that data are unable to be collected from data collector by usual way. Through the development of serial port communication, the platform realizes connection of RS232 serial through collector, reads the data from the memory unit and extract and store data in fixed format. Observational data are imported to “Tenth five-year plan” Oracle database by database programming to improve the integrity rate of observation data.
Key words:Data collector; Memory; Monitoring data; Recovery platform
作者簡介:第一倪友忠(1974—),男,上海市人。2012年畢業于上海交通大學,工程師。
基金項目:中國地震局監測、預測、科研三結合課題(140901)。
收稿日期:2014-09-19
中圖分類號:P315.6-39
文獻標志碼:A
文章編號:1000-6265(2015)01-0021-05