地面气象观测网络中断报警功能的实现

2015-08-07 18:05王淑
南方农业·下旬 2015年6期
关键词:自动气象站

王淑

摘 要 通过开发一款软件,实现地面自动气象站网络连接的实时监控,一旦发生网络连接中断,软件会自动报警,提醒值班人员,避免因网络中断无法及时上传观测数据。

关键词 自动气象站;网络传输;中断报警

中图分类号:P415.12 文献标志码:B 文章编号:1673-890X(2015)18--02

近年来,自动地面气象观测业务快速发展,气象观测数据通过专用光纤网络(SDH)实时传输,传输速率高,极大地提高了数据上传的时效性[1]。但是本站业务主机与省信息中心服务器网络连接中断或异常,未能及时发现,会给值班人员带来不必要的麻烦,轻则短时间数据无法及时上传,造成上传数据逾限,重则造成长时间的网络中断,导致定时数据缺报。目前,基层台站还没有配备能够及时检测到网络故障的设备或是软件。因此,开发一款网络中断报警软件,对于提高地面数据上传率,提高地面观测综合质量意义重大[2]。

1 实现网络中断实时报警的原理

地面气象观测数据是通过业务主机的组网通讯软件,与省气象信息中心的FTP服务器连接,24 h实时上传数据文件。因此利用Microsoft Visual Basic编写一个程序,每隔5 min(可通过运行界面更改间隔时间)监控本机与FTP服务器的连接情况。一旦网络异常,无法连接,程序会自动调用指定的音乐文件播放,实现网络异常报警功能,及时提醒值班人员处理,缩短网络中断时间,使网络故障的影响降至最低。

2 网络中断实时报警的代码实现

利用API函数实现与FTP服务器的连接与对话,可以根据主机的地址、密码和端口连接到任何一台FTP服务器上。能够成功连接FTP服务器,则能进行文件上传,说明网络正常,反之则网络发生故障。在本程序中,与FTP服务器的连接与对话是通过API函数来实现的,建立连接必须遵循一定的步骤和规则,才能正确地与FTP服务器取得连接和对话。对于实现连接与对话的每一个步骤,API函数至关重要,在整个交互对话过程中,只要熟悉了相应的API函数,就可以进行FTP操作的用法。至于API函数怎么样通过Internet与FTP进行会话的底层细节,可不必去考虑。

利用API函数实现与FTP服务器的连接与对话前,先在模块中声明该程序用到的API函数及其常量。

Public Declare Function InternetOpen Lib “wininet.dll” Alias “InternetOpenA” _

(ByValsAgent As String,ByVallAccessType As Long,ByValsProxyName As String, _

ByValsProxyBypass As String,ByVallFlags As Long) As Long

Public Declare Function InternetConnect Lib “wininet.dll” Alias “InternetConnectA” _

(ByValhInternetSession As Long,ByValsServerName As String,ByValnServerPort As Integer, _

ByValsUsername As String,ByValsPassword As String,ByVallService As Long, _

ByVallFlags As Long,ByVallContext As Long) As Long

Public Declare Function InternetCloseHandle Lib “wininet.dll” _

(ByValhInet As Long) As Integer

為了监控不同的FTP服务器,在程序主窗体建立所需监控的FTP服务器IP、用户名和密码输入框(图1)。通过internetopen()和internetconnect()函数,连接FTP服务器,若成功则下个时间间隔再测试,不成功则通过sndPlaysound函数,发出报警声音。

图1 输入框

主要代码编写如下:

Private Sub Timer1_Timer()

a = a - 1

If a = 0 Then

bActiveSession = False

hOpen = 0

hConnection = 0

(下转第页)

(上接第页)

hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT,vbNullString,vbNullString, 0)

If Not bActiveSessionAndhOpen<> 0 Then

Dim nFlag As Long

nFlag = INTERNET_FLAG_PASSIVE

Dim txtServerIp As String

Dim strUser As String

Dim strPassword As String

txtServerIp = txtFTPserverIP.Text

strUser = txtUsename.Text

strPassword = txtPassword.Text

DimPortAs Integer

Port = txtPort.Text

hConnection = InternetConnect(hOpen,txtServerIp, Port, _

strUser,strPassword, INTERNET_SERVICE_FTP,nFlag, 0)

If hConnection = 0 Then

bActiveSession = False

sndPlaySoundApp.Path& “\1.wav”, SND_ASYNC

ElseIfhConnection<> 0 Then

InternetCloseHandlehConnection

hConnection = 0

End If

End If

a = h

End If

End Sub

报警音乐的设置:代码默认的报警音乐文件为程序路径下的“1.wav”,可以根据自己的需要指定任意一个同名音乐,替换原来的音乐文件。

最后将该报警软件设置成为开机自启动,或者在每次开机之后手动打开,保持运行状态,检查主机是否连接音箱,并保持常开状态。

3 结论

在业务机上运行本程序,即能有效地监控本机与上级信息中心服务的连接是否正常。不管何种原因无法连接,本软件都能及时自动报警。比单纯的通过PING命令来检查网络是否通断更为可靠和有效。虽然软件是通过直接连接FTP服务器的方法实现监控,但是该方法是利用业务机运行该软件来实现的报警功能,所以一旦业务计算机故障或者停电关机,报警功能就起不到作用,这是使用中必须注意的。

参考文献

[1]李黄.自动气象站实用手册[M].北京:气象出版社,2008.

[2]李江全,等.Visual Basic串口通信与测控应用技术实战详解[M].北京:人民邮电出版,2007.

(责任编辑:赵中正)

猜你喜欢
自动气象站
自动气象站数据预处理方法
自动气象站维护和技术保障思考
自动气象站指示灯在日常维护中的应用
自动气象站发生故障时报表数据处理研究
DZZ4新型自动站常见故障排除及日常维护
DZZ5型新型自动气象站的常见故障及维修维护
基于.NET的自动气象站监控系统设计
分析新型自动气象站几个关键问题的维修对策
县级气象台站在新形势下如何提高气象观测质量