陳 科,陳 靜 , 彭柏池
(1. 湖南省常德市氣象局,湖南 常德 415000;2. 湖南省氣象技術(shù)裝備中心,湖南 長(zhǎng)沙 410007 )
區(qū)域自動(dòng)氣象站維護(hù)維修查詢(xún)工具的開(kāi)發(fā)與應(yīng)用
陳 科1,陳 靜2, 彭柏池1
(1. 湖南省常德市氣象局,湖南 常德 415000;2. 湖南省氣象技術(shù)裝備中心,湖南 長(zhǎng)沙 410007 )
要提高區(qū)域自動(dòng)氣象站觀(guān)測(cè)數(shù)據(jù)的可用率,關(guān)鍵在于加強(qiáng)日常維護(hù)。該文介紹了幾個(gè)典型的維護(hù)維修查詢(xún)工具的開(kāi)發(fā)方法及應(yīng)用,包括無(wú)降水站點(diǎn)查詢(xún)、在線(xiàn)狀態(tài)及最后一次上線(xiàn)電壓值查詢(xún)、到報(bào)延時(shí)查詢(xún)、設(shè)備電壓查詢(xún)等等。為維護(hù)人員加強(qiáng)日常維護(hù),及時(shí)發(fā)現(xiàn)設(shè)備故障提供幫助,切實(shí)提高區(qū)域自動(dòng)氣象站觀(guān)測(cè)數(shù)據(jù)的可用率。
區(qū)域自動(dòng)氣象站; 查詢(xún)工具;開(kāi)發(fā); 應(yīng)用
區(qū)域自動(dòng)氣象站在氣象監(jiān)測(cè)、天氣預(yù)報(bào)、氣候分析評(píng)估等方面發(fā)揮了重要作用。如果區(qū)域自動(dòng)氣象站傳感器(如雨量、風(fēng)向風(fēng)速、溫度、氣壓傳感器等)、通訊模塊、電源等出現(xiàn)故障,將直接造成觀(guān)測(cè)數(shù)據(jù)缺測(cè)或異常,降低了觀(guān)測(cè)數(shù)據(jù)的可用性。這就要求保障人員加強(qiáng)對(duì)區(qū)域自動(dòng)氣象站的日常維護(hù)。要提高日常維護(hù)的效率,及時(shí)有效的發(fā)現(xiàn)設(shè)備故障是關(guān)鍵。根據(jù)日常維護(hù)的經(jīng)驗(yàn)積累,通過(guò)數(shù)據(jù)庫(kù)編程,開(kāi)發(fā)了一些區(qū)域自動(dòng)氣象站運(yùn)行狀態(tài)及觀(guān)測(cè)數(shù)據(jù)[1]的查詢(xún)工具,通過(guò)查詢(xún)結(jié)果,對(duì)設(shè)備運(yùn)行狀態(tài)信息及觀(guān)測(cè)數(shù)據(jù)進(jìn)行分析,從而為及時(shí)發(fā)現(xiàn)設(shè)備異常起到很好的輔助作用,提升維護(hù)維修效率,使故障得到及時(shí)排除,能最大限度提高區(qū)域自動(dòng)氣象站觀(guān)測(cè)數(shù)據(jù)的可用率。
維護(hù)維修查詢(xún)工具的數(shù)據(jù)來(lái)源于區(qū)域自動(dòng)氣象站中心站數(shù)據(jù)庫(kù)和湖南省中小尺度天氣資料應(yīng)用系統(tǒng)數(shù)據(jù)庫(kù)年庫(kù)。
維護(hù)維修查詢(xún)工具選用Delphi+SQLServer的數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)模式。
4.1 無(wú)降水站點(diǎn)查詢(xún)工具
4.1.1 功能介紹 每次降水過(guò)程結(jié)束后,通過(guò)該查詢(xún)工具,可以查詢(xún)出沒(méi)有降水或降水偏少站點(diǎn),并與周邊站點(diǎn)進(jìn)行比較,對(duì)數(shù)據(jù)進(jìn)行空間一致性分析,確定該站點(diǎn)是否需要維護(hù),比如是否存在干簧管損壞等故障,從而使故障得到及時(shí)的排除,提高降水觀(guān)測(cè)數(shù)據(jù)的可用性。
4.1.2 開(kāi)發(fā)方法 通過(guò)設(shè)定降水過(guò)程起止時(shí)間來(lái)查詢(xún)相應(yīng)時(shí)間段內(nèi)所有站點(diǎn)的降水,并按升序排列,然后點(diǎn)擊確定顯示查詢(xún)結(jié)果。主要的SQL語(yǔ)句如下:
//查詢(xún)需顯示的字段
SELECT a.地市名, a.縣名,a.臺(tái)站名稱(chēng), a.區(qū)站號(hào), SUM(b.rr) AS 降水
//“臺(tái)站參數(shù)”為站點(diǎn)信息表;“整點(diǎn)降水”為存儲(chǔ)各站整點(diǎn)降水的數(shù)據(jù)表;
FROM manageinfo.dbo.臺(tái)站參數(shù) a
//以臺(tái)站參數(shù)表為主,進(jìn)行左連接
left join 整點(diǎn)降水 b
on (a.區(qū)站號(hào) = b.區(qū)站號(hào) )and
//需查詢(xún)的時(shí)間段,date_start參數(shù)為起始時(shí)間,date_end為結(jié)束時(shí)間
(b.觀(guān)測(cè)時(shí)間 BETWEEN ''' + date_start +''' and '''+ date_end +''' )'
where a.地市名 = '''+Ls_city_name+''''
// Ls_city_name站點(diǎn)所在地市
GROUP BY a.地市名, a.縣名, a.臺(tái)站名稱(chēng), a.區(qū)站號(hào)
ORDER BY SUM(b.rr), a.縣名, a.區(qū)站號(hào)
然后,通過(guò)執(zhí)行SQL語(yǔ)句,得到結(jié)果,并通過(guò)循環(huán)語(yǔ)句將結(jié)果顯示在表格中,主要代碼如下:
//加載SQL語(yǔ)句,并執(zhí)行
MyAdoquery.SQL.Add(S_sql);
MyAdoquery.Active:=true;
MyAdoquery.Open;
// 顯示查詢(xún)結(jié)果
while not MyAdoquery.Eof do
begin
AdvStringGrid1.Cells[0,i] := inttostr(i);AdvStringGrid1.Cells[1,i] :=myadoquery.fieldbyname('縣名').AsString;AdvStringGrid1.Cells[2,i] :=myadoquery.fieldbyname('臺(tái)站名稱(chēng)').AsString;AdvStringGrid1.Cells[3,i] :=myadoquery.fieldbyname('區(qū)站號(hào)').AsString;AdvStringGrid1.Cells[4,i] :=FormatFloat('0.0',myadoquery.fieldbyname('降水').AsInteger * 0.1);
AdvStringGrid1.RowHeights[i] := 24 ;
myadoquery.Next;
i :=i + 1 ;
end;
圖1 無(wú)降水站點(diǎn)查詢(xún)Fig.1 query of stations without rainfall
4.1.3 應(yīng)用效果 如圖1,通過(guò)查詢(xún)11月無(wú)降水的站點(diǎn),結(jié)果顯示有4個(gè)站的降水量為0.0 mm,2個(gè)站的降水偏小,通過(guò)分析比對(duì)可知,這6個(gè)站點(diǎn)是需要維護(hù)了。如果是汛期,還可以縮短查詢(xún)的時(shí)間段,比如一個(gè)降水過(guò)程的起止時(shí)間,這樣既可有針對(duì)性的對(duì)有降水故障的站點(diǎn)進(jìn)行及時(shí)維護(hù),又能大大提高維護(hù)效率。
4.2 在線(xiàn)狀態(tài)查詢(xún)工具
4.2.1 功能介紹 在線(xiàn)狀態(tài)查詢(xún)工具的主要功能就是查詢(xún)出當(dāng)前是否在線(xiàn)的站點(diǎn)明細(xì),包括站點(diǎn)所屬區(qū)域,站名,站號(hào),最近到報(bào)時(shí)間,當(dāng)前電瓶電壓值等信息。管理人員可利用此工具查詢(xún)出當(dāng)前不在線(xiàn)的站點(diǎn),以便通知站點(diǎn)所屬區(qū)域維護(hù)人員及時(shí)維護(hù);維護(hù)人員可利用此工具查詢(xún)維護(hù)結(jié)果,是否已經(jīng)正常上線(xiàn)并根據(jù)最新到報(bào)時(shí)間判斷是否收到報(bào)文,還可以根據(jù)當(dāng)前電壓值的信息判斷是否是因?yàn)殡娫磫?wèn)題導(dǎo)致不在線(xiàn),便于有針對(duì)性的對(duì)該站點(diǎn)進(jìn)行維護(hù)。
4.2.2 開(kāi)發(fā)方法 在線(xiàn)狀態(tài)查詢(xún)工具查詢(xún)結(jié)果應(yīng)包括站點(diǎn)所屬區(qū)域,站名,站號(hào),最近到報(bào)時(shí)間,當(dāng)前電瓶電壓值等信息,然后點(diǎn)擊確定顯示結(jié)果。其主要SQL查詢(xún)語(yǔ)句如下:
//查詢(xún)需顯示的字段
SELECT B.StationID as 站號(hào), B.Name as 站名, A.縣名, A.臺(tái)站標(biāo)識(shí) AS 要素, C.GprsID as ID, C.GsmID as 手機(jī)卡號(hào), C.Online as 狀態(tài),' (SELECT MAX(到報(bào)時(shí)間) FROM'+ dataname +'.dbo.到報(bào)記錄表 where 區(qū)站號(hào)=B.StationID GROUP BY 區(qū)站號(hào)) as 時(shí)間,
(SELECT Case when AB.[EXTPowerVoltage] IS NULL then AB.[MainboardVoltage] else AB.[EXTPowerVoltage] end FROM AWS.dbo.tabMinuteSTA AB where AB.StationID =B.StationID and AB.ObservTime = '''+ date_end +''') as 電壓
FROM AWS.dbo.StationPar AS B INNER JOIN ManageInfo.dbo.臺(tái)站參數(shù) AS A ON B.StationID = A.區(qū)站號(hào) INNER JOIN AWS.dbo.CollectorPar AS C ON B.StationID=C.StationID
WHERE(B.StationType = '''+'GPRS'+''')and(C.Online=0)
//合并查詢(xún)另一廠(chǎng)家設(shè)備的在線(xiàn)狀態(tài)
UNION all
SELECT B1.站號(hào), B1.站名, B1.所屬縣 as 縣名, 1 AS 要素, B1.序列號(hào) as ID, B1.卡號(hào) as 手機(jī)卡號(hào),B2.狀態(tài),B2.時(shí)間,'''+''' as 電壓
FROM autoRainStation.dbo.Station AS B1 INNER JOIN
autoRainStation.dbo.status AS B2 ON B1.站號(hào) = B2.站號(hào)
//廠(chǎng)家設(shè)定的在線(xiàn)狀態(tài)標(biāo)識(shí),‘!’表示不在線(xiàn);
where B2.狀態(tài) = '''+'!'+''''
order by 縣名,站號(hào)。
4.2.3 應(yīng)用效果 如圖2,通過(guò)實(shí)時(shí)查詢(xún)可知,當(dāng)前有4個(gè)站點(diǎn)不在線(xiàn)。通過(guò)分析最新到報(bào)時(shí)間,可以知道該站點(diǎn)不在線(xiàn)多長(zhǎng)時(shí)間了;再分析電壓值,可初步確定不在線(xiàn)的原因,是否為供電不足引起;再分析是否為骨干站及考核站,確定搶修的緊急程度。
圖2 不在線(xiàn)站點(diǎn)查詢(xún)Fig.2 The query of offline stations
4.3 到報(bào)延時(shí)查詢(xún)工具
4.3.1 功能介紹 到報(bào)延時(shí)查詢(xún)工具的主要功能是查詢(xún)一段時(shí)間內(nèi)區(qū)域自動(dòng)氣象站整點(diǎn)報(bào)文到報(bào)延時(shí)的情況。因區(qū)域自動(dòng)氣象站均安裝在野外,且報(bào)文的傳輸采用的GPRS無(wú)線(xiàn)方式,安裝地點(diǎn)的信號(hào)強(qiáng)度以及通訊模塊的性能都可能影響整點(diǎn)數(shù)據(jù)的即時(shí)接收,有時(shí)可能幾分鐘,有時(shí)可能幾十分鐘甚至幾個(gè)小時(shí)都有可能。目前業(yè)務(wù)上規(guī)定超過(guò)10 min就算遲報(bào),超過(guò)30 min就算缺報(bào),所以報(bào)文是否及時(shí)到報(bào),直接影響業(yè)務(wù)質(zhì)量。通過(guò)該工具便可以全面掌握各站點(diǎn)到報(bào)延時(shí)的情況,從而有針對(duì)性的對(duì)這些隱性故障及時(shí)加以排除。
4.3.2 開(kāi)發(fā)方法 到報(bào)延時(shí)查詢(xún)工具的重點(diǎn)是要得到站點(diǎn)的整點(diǎn)報(bào)文缺報(bào)或延時(shí)的信息,可以以每個(gè)站點(diǎn)的整點(diǎn)為基準(zhǔn)點(diǎn),通過(guò)比對(duì)該整點(diǎn)的報(bào)文的實(shí)際到報(bào)時(shí)間,超過(guò)10 min便可視為延時(shí)到報(bào)。然后點(diǎn)擊確定顯示結(jié)果。主要的SQL語(yǔ)句如下:
Select *
from (Select E.區(qū)站號(hào),臺(tái)站名稱(chēng),E.縣名, 觀(guān)測(cè)時(shí)間,到報(bào)時(shí)間,datediff(mi,[觀(guān)測(cè)時(shí)間],[到報(bào)時(shí)間]) 延遲分鐘
from (Select 區(qū)站號(hào),臺(tái)站名稱(chēng),縣名 from [manageInfo].[dbo].[臺(tái)站參數(shù)] ) E right join
(Select 區(qū)站號(hào),觀(guān)測(cè)時(shí)間,到報(bào)時(shí)間 from
(Select 區(qū)站號(hào),觀(guān)測(cè)時(shí)間,到報(bào)時(shí)間 from
(Select AA.區(qū)站號(hào),AA.觀(guān)測(cè)時(shí)間,BB.到報(bào)時(shí)間 From
(Select 區(qū)站號(hào),觀(guān)測(cè)時(shí)間 from
(Select distinct 觀(guān)測(cè)時(shí)間 FROM ['+dataname+'].[dbo].[到報(bào)記錄表]//需查詢(xún)的時(shí)間段設(shè)定,date_start參數(shù)為起始時(shí)間,date_end為結(jié)束時(shí)間
where [觀(guān)測(cè)時(shí)間] >='''+date_start+''' and [觀(guān)測(cè)時(shí)間] <='''+date_end+''''
and datename(n,[觀(guān)測(cè)時(shí)間])='''+'0'+''')A,
(Select 區(qū)站號(hào) from [manageInfo].[dbo].[臺(tái)站參數(shù)]
where 地市名='''+'常德'+''''
//所要查詢(xún)的區(qū)站號(hào)區(qū)間,即可以有選擇的查詢(xún)某些站點(diǎn)
and 區(qū)站號(hào)>='''+stationno_start+''' and 區(qū)站號(hào)<='''+stationno_end+''' ) B) AA left join
(SELECT [區(qū)站號(hào)] ,[觀(guān)測(cè)時(shí)間],[到報(bào)時(shí)間]
FROM ['+dataname+'].[dbo].[到報(bào)記錄表]
where [觀(guān)測(cè)時(shí)間] >='''+date_start+''' and [觀(guān)測(cè)時(shí)間] <='''+date_end+''''
and datename(n,[觀(guān)測(cè)時(shí)間])='''+'0'+''''
and 區(qū)站號(hào)>='''+'P1900'+''' and [區(qū)站號(hào)]<='''+'P2300'+'''
) BB ON AA.區(qū)站號(hào)=BB.區(qū)站號(hào) and AA.觀(guān)測(cè)時(shí)間=BB.觀(guān)測(cè)時(shí)間) C
) d where (到報(bào)時(shí)間 is NULL or datediff(mi,[觀(guān)測(cè)時(shí)間],[到報(bào)時(shí)間])>='+trim(edit3.Text) +')) F
on E.區(qū)站號(hào)=F.區(qū)站號(hào) ) G
where 區(qū)站號(hào)>='''+stationno_start+''' and 區(qū)站號(hào)<='''+stationno_end+''' '
order by 縣名,區(qū)站號(hào),觀(guān)測(cè)時(shí)間。
4.3.3應(yīng)用效果 如圖3,根據(jù)查詢(xún)結(jié)果可知,在當(dāng)天出現(xiàn)8站次到報(bào)延時(shí),其中3站次為凌晨時(shí)間段缺報(bào),這時(shí)就需要做更進(jìn)一步的分析和排查,特別是缺報(bào)的站,應(yīng)結(jié)合其它工具綜合分析缺報(bào)的原因。如果這種延遲的情況比較頻繁,說(shuō)明運(yùn)營(yíng)商的無(wú)線(xiàn)信號(hào)穩(wěn)定性差,應(yīng)及時(shí)反饋給運(yùn)營(yíng)商,溝通協(xié)調(diào)解決辦法。
圖3 到報(bào)延時(shí)站點(diǎn)查詢(xún)Fig.3 the query of stations with forecast delay
4.4 設(shè)備電壓查詢(xún)工具
4.4.1 功能介紹 電壓查詢(xún)工具的主要功能就是查詢(xún)某個(gè)站點(diǎn)蓄電瓶一段時(shí)間內(nèi)的電壓值的變化情況,從而掌握蓄電瓶的運(yùn)行狀態(tài),進(jìn)而判斷該蓄電瓶是否已經(jīng)老化,需更換,做到提前預(yù)防因斷電造成數(shù)據(jù)的缺測(cè)。
4.4.2 開(kāi)發(fā)方法 蓄電瓶電壓查詢(xún)工具的重點(diǎn)是要獲取所選站點(diǎn)的電壓數(shù)據(jù)。選定站號(hào)和需要查詢(xún)的天數(shù),然后點(diǎn)擊確定顯示結(jié)果。主要SQL語(yǔ)句如下:
// EXTPowerVoltage和MainboardVoltage為廠(chǎng)家定的存儲(chǔ)電壓值的字段
Select 縣名,區(qū)站名,區(qū)站號(hào),觀(guān)測(cè)時(shí)間,電源類(lèi)型,(EXTPowerVoltage+MainboardVoltage) as 電壓
from (Select A.Area 縣名, A.Name 區(qū)站名,A.[StationID] 區(qū)站號(hào),A.[ObservTime] 觀(guān)測(cè)時(shí)間,B.[PowerSupply] 電源類(lèi)型,
Case when B.[EXTPowerVoltage] IS NULLthen 0 else B.[EXTPowerVoltage] end as EXTPowerVoltage,
Case when B.[MainboardVoltage] IS NULL then 0 else B.[MainboardVoltage] end as MainboardVoltage
from (SELECT t2.Area, t2.Name ,t1.[StationID],t1.ObservTime
FROM [AWS].[dbo].[tabMinuteSTA] t1 left join [AWS].[dbo].[StationPar] t2 on t1.[StationID] = t2.[StationID]
where t1.[ObservTime]>= ''' + date_start +''''
and t1.[StationID]='''+ stationno + ''''
A Left Join [AWS].[dbo].[tabMinuteSTA] B On A.[StationID]=B.[StationID] and A.ObservTime=B.ObservTime) C;
為了更加及時(shí)準(zhǔn)確的掌握設(shè)備運(yùn)行狀態(tài),還可以對(duì)以上部分工具進(jìn)行自動(dòng)化處理,實(shí)現(xiàn)實(shí)時(shí)監(jiān)控,并將監(jiān)控到的故障信息,以短信或郵件的方式,及時(shí)發(fā)送到維護(hù)人員的手機(jī)上。
如短信提醒方式,可利用短信貓二次開(kāi)發(fā)實(shí)現(xiàn)直接發(fā)送故障信息到指定手機(jī)。短信貓二次開(kāi)發(fā)的主要代碼如下:
//先將短信貓基于DELPHI的控件加載到開(kāi)發(fā)環(huán)境
//初始化短信貓
Smsgate1.CommPort := Strtoint(Ls_com) ;
Smsgate1.SmsService :=Ls_center_no ;
Smsgate1.Settings :=Ls_speed + ',n,8,1' ;
Ls_return := Smsgate1.Connect(Li_secon);
//發(fā)送提醒短信(Ls_content:短信內(nèi)容;Ls_telno:接收短信手機(jī)號(hào)碼;Li_report:是否需發(fā)送報(bào)告,1為是,0為否;Ls_pv:是否帶有效期;Ls_return接收反回值,為y表示發(fā)送成功,否則發(fā)送失?。?/p>
Ls_return:=Smsgate1.Sendsms(Ls_content,Ls_telno,Li_report,Ls_pv);
要提高區(qū)域自動(dòng)氣象站觀(guān)測(cè)數(shù)據(jù)的可用性,必須加強(qiáng)日常維護(hù)。因站點(diǎn)基本都安裝在野外,且無(wú)人值守,往往設(shè)備出現(xiàn)故障后不能被及時(shí)發(fā)現(xiàn),或者存在一些隱性故障,又或者即將產(chǎn)生故障,比如電瓶老化等等。維護(hù)人員如果能借助這些查詢(xún)工具,通過(guò)對(duì)設(shè)備運(yùn)行狀態(tài)及觀(guān)測(cè)數(shù)據(jù)的查詢(xún)分析,便能及時(shí)發(fā)現(xiàn)設(shè)備存在的一些故障或故障隱患,從而使故障得到及時(shí)的排除。本文僅列舉了一些典型常用的查詢(xún)工具,維護(hù)人員還可以根據(jù)實(shí)際需要,開(kāi)發(fā)出更多更實(shí)用的查詢(xún)工具,提高維護(hù)效率,切實(shí)增強(qiáng)區(qū)域自動(dòng)氣象站觀(guān)測(cè)數(shù)據(jù)的可用性。
[1]江蘇省無(wú)線(xiàn)電科學(xué)研究所有限公司.ZQZ-A系列中小尺度自動(dòng)氣象站用戶(hù)手冊(cè)[S]. 江蘇,2006.
[2] 陳林,李舟鑫,盧家羽,等.自動(dòng)站降水異常情況的分析與處理[J].貴州氣象,2011,35(5):54-55.
[3] 楊秀勛,舒新明. 一次強(qiáng)降水過(guò)程中自動(dòng)站故障的原因分析及處理方法[J].貴州氣象,2011,35(5):54-55.
[4] 莊紅波,劉曉峰,高瑞泉,等. 自動(dòng)氣象站故障診斷、測(cè)試、維修系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].氣象科技,2016,44(4):555-561.
Development and application of regional automatic meteorological observation stations maintenance query tools
CHEN Ke1,CHEN Jing2,PENG Baichi1
(1. Changde Meteorological Bureau of Hunan,Changde 415000,Hunan;2. Meteorological Technical Equipment Center of Hunan Province, Changsha 410007, Hunan)
To improve regional automatic meteorological station observation data availability, the key is to strengthen routine maintenance of the equipment. This paper introduces the development method and application of several typical maintenance query tools, including no precipitation site query, online status and the last time online voltage value inquiry, message delay query, query voltage equipment etc. It is useful for maintenance staff to strengthen the routine maintenance, timely find equipment failure, and improve availability of regional automatic weather station observation data.
regional automatic weather stations; query tools; development; application
1003-6598(2017)02-0067-05
2016-11-07
陳科(1981—),男,工程師,主要從事氣象裝備保障及維護(hù)工作。E-mail:sekk_2010@126.com。
TP311.52
B