区域自动气象站维护维修查询工具的开发与应用
2017-05-16彭柏池
陈 科,陈 静 , 彭柏池
(1. 湖南省常德市气象局,湖南 常德 415000;2. 湖南省气象技术装备中心,湖南 长沙 410007 )
区域自动气象站维护维修查询工具的开发与应用
陈 科1,陈 静2, 彭柏池1
(1. 湖南省常德市气象局,湖南 常德 415000;2. 湖南省气象技术装备中心,湖南 长沙 410007 )
要提高区域自动气象站观测数据的可用率,关键在于加强日常维护。该文介绍了几个典型的维护维修查询工具的开发方法及应用,包括无降水站点查询、在线状态及最后一次上线电压值查询、到报延时查询、设备电压查询等等。为维护人员加强日常维护,及时发现设备故障提供帮助,切实提高区域自动气象站观测数据的可用率。
区域自动气象站; 查询工具;开发; 应用
1 引言
区域自动气象站在气象监测、天气预报、气候分析评估等方面发挥了重要作用。如果区域自动气象站传感器(如雨量、风向风速、温度、气压传感器等)、通讯模块、电源等出现故障,将直接造成观测数据缺测或异常,降低了观测数据的可用性。这就要求保障人员加强对区域自动气象站的日常维护。要提高日常维护的效率,及时有效的发现设备故障是关键。根据日常维护的经验积累,通过数据库编程,开发了一些区域自动气象站运行状态及观测数据[1]的查询工具,通过查询结果,对设备运行状态信息及观测数据进行分析,从而为及时发现设备异常起到很好的辅助作用,提升维护维修效率,使故障得到及时排除,能最大限度提高区域自动气象站观测数据的可用率。
2 数据来源
维护维修查询工具的数据来源于区域自动气象站中心站数据库和湖南省中小尺度天气资料应用系统数据库年库。
3 选择开发工具
维护维修查询工具选用Delphi+SQLServer的数据库应用开发模式。
4 维护维修查询工具的开发
4.1 无降水站点查询工具
4.1.1 功能介绍 每次降水过程结束后,通过该查询工具,可以查询出没有降水或降水偏少站点,并与周边站点进行比较,对数据进行空间一致性分析,确定该站点是否需要维护,比如是否存在干簧管损坏等故障,从而使故障得到及时的排除,提高降水观测数据的可用性。
4.1.2 开发方法 通过设定降水过程起止时间来查询相应时间段内所有站点的降水,并按升序排列,然后点击确定显示查询结果。主要的SQL语句如下:
//查询需显示的字段
SELECT a.地市名, a.县名,a.台站名称, a.区站号, SUM(b.rr) AS 降水
//“台站参数”为站点信息表;“整点降水”为存储各站整点降水的数据表;
FROM manageinfo.dbo.台站参数 a
//以台站参数表为主,进行左连接
left join 整点降水 b
on (a.区站号 = b.区站号 )and
//需查询的时间段,date_start参数为起始时间,date_end为结束时间
(b.观测时间 BETWEEN ''' + date_start +''' and '''+ date_end +''' )'
where a.地市名 = '''+Ls_city_name+''''
// Ls_city_name站点所在地市
GROUP BY a.地市名, a.县名, a.台站名称, a.区站号
ORDER BY SUM(b.rr), a.县名, a.区站号
然后,通过执行SQL语句,得到结果,并通过循环语句将结果显示在表格中,主要代码如下:
//加载SQL语句,并执行
MyAdoquery.SQL.Add(S_sql);
MyAdoquery.Active:=true;
MyAdoquery.Open;
// 显示查询结果
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('台站名称').AsString;AdvStringGrid1.Cells[3,i] :=myadoquery.fieldbyname('区站号').AsString;AdvStringGrid1.Cells[4,i] :=FormatFloat('0.0',myadoquery.fieldbyname('降水').AsInteger * 0.1);
AdvStringGrid1.RowHeights[i] := 24 ;
myadoquery.Next;
i :=i + 1 ;
end;
图1 无降水站点查询Fig.1 query of stations without rainfall
4.1.3 应用效果 如图1,通过查询11月无降水的站点,结果显示有4个站的降水量为0.0 mm,2个站的降水偏小,通过分析比对可知,这6个站点是需要维护了。如果是汛期,还可以缩短查询的时间段,比如一个降水过程的起止时间,这样既可有针对性的对有降水故障的站点进行及时维护,又能大大提高维护效率。
4.2 在线状态查询工具
4.2.1 功能介绍 在线状态查询工具的主要功能就是查询出当前是否在线的站点明细,包括站点所属区域,站名,站号,最近到报时间,当前电瓶电压值等信息。管理人员可利用此工具查询出当前不在线的站点,以便通知站点所属区域维护人员及时维护;维护人员可利用此工具查询维护结果,是否已经正常上线并根据最新到报时间判断是否收到报文,还可以根据当前电压值的信息判断是否是因为电源问题导致不在线,便于有针对性的对该站点进行维护。
4.2.2 开发方法 在线状态查询工具查询结果应包括站点所属区域,站名,站号,最近到报时间,当前电瓶电压值等信息,然后点击确定显示结果。其主要SQL查询语句如下:
//查询需显示的字段
SELECT B.StationID as 站号, B.Name as 站名, A.县名, A.台站标识 AS 要素, C.GprsID as ID, C.GsmID as 手机卡号, C.Online as 状态,' (SELECT MAX(到报时间) FROM'+ dataname +'.dbo.到报记录表 where 区站号=B.StationID GROUP BY 区站号) as 时间,
(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.台站参数 AS A ON B.StationID = A.区站号 INNER JOIN AWS.dbo.CollectorPar AS C ON B.StationID=C.StationID
WHERE(B.StationType = '''+'GPRS'+''')and(C.Online=0)
//合并查询另一厂家设备的在线状态
UNION all
SELECT B1.站号, B1.站名, B1.所属县 as 县名, 1 AS 要素, B1.序列号 as ID, B1.卡号 as 手机卡号,B2.状态,B2.时间,'''+''' as 电压
FROM autoRainStation.dbo.Station AS B1 INNER JOIN
autoRainStation.dbo.status AS B2 ON B1.站号 = B2.站号
//厂家设定的在线状态标识,‘!’表示不在线;
where B2.状态 = '''+'!'+''''
order by 县名,站号。
4.2.3 应用效果 如图2,通过实时查询可知,当前有4个站点不在线。通过分析最新到报时间,可以知道该站点不在线多长时间了;再分析电压值,可初步确定不在线的原因,是否为供电不足引起;再分析是否为骨干站及考核站,确定抢修的紧急程度。
图2 不在线站点查询Fig.2 The query of offline stations
4.3 到报延时查询工具
4.3.1 功能介绍 到报延时查询工具的主要功能是查询一段时间内区域自动气象站整点报文到报延时的情况。因区域自动气象站均安装在野外,且报文的传输采用的GPRS无线方式,安装地点的信号强度以及通讯模块的性能都可能影响整点数据的即时接收,有时可能几分钟,有时可能几十分钟甚至几个小时都有可能。目前业务上规定超过10 min就算迟报,超过30 min就算缺报,所以报文是否及时到报,直接影响业务质量。通过该工具便可以全面掌握各站点到报延时的情况,从而有针对性的对这些隐性故障及时加以排除。
4.3.2 开发方法 到报延时查询工具的重点是要得到站点的整点报文缺报或延时的信息,可以以每个站点的整点为基准点,通过比对该整点的报文的实际到报时间,超过10 min便可视为延时到报。然后点击确定显示结果。主要的SQL语句如下:
Select *
from (Select E.区站号,台站名称,E.县名, 观测时间,到报时间,datediff(mi,[观测时间],[到报时间]) 延迟分钟
from (Select 区站号,台站名称,县名 from [manageInfo].[dbo].[台站参数] ) E right join
(Select 区站号,观测时间,到报时间 from
(Select 区站号,观测时间,到报时间 from
(Select AA.区站号,AA.观测时间,BB.到报时间 From
(Select 区站号,观测时间 from
(Select distinct 观测时间 FROM ['+dataname+'].[dbo].[到报记录表]//需查询的时间段设定,date_start参数为起始时间,date_end为结束时间
where [观测时间] >='''+date_start+''' and [观测时间] <='''+date_end+''''
and datename(n,[观测时间])='''+'0'+''')A,
(Select 区站号 from [manageInfo].[dbo].[台站参数]
where 地市名='''+'常德'+''''
//所要查询的区站号区间,即可以有选择的查询某些站点
and 区站号>='''+stationno_start+''' and 区站号<='''+stationno_end+''' ) B) AA left join
(SELECT [区站号] ,[观测时间],[到报时间]
FROM ['+dataname+'].[dbo].[到报记录表]
where [观测时间] >='''+date_start+''' and [观测时间] <='''+date_end+''''
and datename(n,[观测时间])='''+'0'+''''
and 区站号>='''+'P1900'+''' and [区站号]<='''+'P2300'+'''
) BB ON AA.区站号=BB.区站号 and AA.观测时间=BB.观测时间) C
) d where (到报时间 is NULL or datediff(mi,[观测时间],[到报时间])>='+trim(edit3.Text) +')) F
on E.区站号=F.区站号 ) G
where 区站号>='''+stationno_start+''' and 区站号<='''+stationno_end+''' '
order by 县名,区站号,观测时间。
4.3.3应用效果 如图3,根据查询结果可知,在当天出现8站次到报延时,其中3站次为凌晨时间段缺报,这时就需要做更进一步的分析和排查,特别是缺报的站,应结合其它工具综合分析缺报的原因。如果这种延迟的情况比较频繁,说明运营商的无线信号稳定性差,应及时反馈给运营商,沟通协调解决办法。
图3 到报延时站点查询Fig.3 the query of stations with forecast delay
4.4 设备电压查询工具
4.4.1 功能介绍 电压查询工具的主要功能就是查询某个站点蓄电瓶一段时间内的电压值的变化情况,从而掌握蓄电瓶的运行状态,进而判断该蓄电瓶是否已经老化,需更换,做到提前预防因断电造成数据的缺测。
4.4.2 开发方法 蓄电瓶电压查询工具的重点是要获取所选站点的电压数据。选定站号和需要查询的天数,然后点击确定显示结果。主要SQL语句如下:
// EXTPowerVoltage和MainboardVoltage为厂家定的存储电压值的字段
Select 县名,区站名,区站号,观测时间,电源类型,(EXTPowerVoltage+MainboardVoltage) as 电压
from (Select A.Area 县名, A.Name 区站名,A.[StationID] 区站号,A.[ObservTime] 观测时间,B.[PowerSupply] 电源类型,
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;
5 应用扩展
为了更加及时准确的掌握设备运行状态,还可以对以上部分工具进行自动化处理,实现实时监控,并将监控到的故障信息,以短信或邮件的方式,及时发送到维护人员的手机上。
如短信提醒方式,可利用短信猫二次开发实现直接发送故障信息到指定手机。短信猫二次开发的主要代码如下:
//先将短信猫基于DELPHI的控件加载到开发环境
//初始化短信猫
Smsgate1.CommPort := Strtoint(Ls_com) ;
Smsgate1.SmsService :=Ls_center_no ;
Smsgate1.Settings :=Ls_speed + ',n,8,1' ;
Ls_return := Smsgate1.Connect(Li_secon);
//发送提醒短信(Ls_content:短信内容;Ls_telno:接收短信手机号码;Li_report:是否需发送报告,1为是,0为否;Ls_pv:是否带有效期;Ls_return接收反回值,为y表示发送成功,否则发送失败;
Ls_return:=Smsgate1.Sendsms(Ls_content,Ls_telno,Li_report,Ls_pv);
6 小结
要提高区域自动气象站观测数据的可用性,必须加强日常维护。因站点基本都安装在野外,且无人值守,往往设备出现故障后不能被及时发现,或者存在一些隐性故障,又或者即将产生故障,比如电瓶老化等等。维护人员如果能借助这些查询工具,通过对设备运行状态及观测数据的查询分析,便能及时发现设备存在的一些故障或故障隐患,从而使故障得到及时的排除。本文仅列举了一些典型常用的查询工具,维护人员还可以根据实际需要,开发出更多更实用的查询工具,提高维护效率,切实增强区域自动气象站观测数据的可用性。
[1]江苏省无线电科学研究所有限公司.ZQZ-A系列中小尺度自动气象站用户手册[S]. 江苏,2006.
[2] 陈林,李舟鑫,卢家羽,等.自动站降水异常情况的分析与处理[J].贵州气象,2011,35(5):54-55.
[3] 杨秀勋,舒新明. 一次强降水过程中自动站故障的原因分析及处理方法[J].贵州气象,2011,35(5):54-55.
[4] 庄红波,刘晓峰,高瑞泉,等. 自动气象站故障诊断、测试、维修系统设计与实现[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—),男,工程师,主要从事气象装备保障及维护工作。E-mail:sekk_2010@126.com。
TP311.52
B