气象实时数据监控程序的设计与开发

2014-04-29 16:15秦虹
安徽农业科学 2014年27期
关键词:气象程序监控

秦虹

摘要 对上海气象信息与技术支持中心而言,原先的气象信息数据监控系统由于操作复杂而需要改进。新的监控系统开发使用delphi6.0语言和多线程技术,对自动站数据、雷达和卫星数据、MICAPS压缩数据和MICAPS解压数据这四类气象实时数据进行监控,以一体化的方式展现所有重要的监控信息,提高了工作效率。

关键词 监控系统;气象实时数据;delphi6.0语言;多线程编程

中图分类号 S161 文献标识码 A 文章编号 0517-6611(2014)27-09434-03

Design & Development of RealTime Meteorological Data Monitoring Program

QIN Hong

(Shanghai Meteorological Information and Technology Center, Shanghai 200030)

Abstract For the Shanghai Meteorological Information and Technology Center, the original meteorological data monitoring system should be improved for its complex operation. The new monitoring system using delphi6.0 language and multi thread technology, the automatic station data, radar and satellite data, MICAPS compression data and MICAPS unpack data were monitored, all the important information was presented in an integration way, so as to improve the working efficiency.

Key words Monitoring system; Meteorological realtime data; Delphi6.0 language; Multi thread programming

近年来随着气象业务发展,各类观测数据、预报预测及气象服务产品数据大量增加,气象信息的传输时效要求也越来越高。由中国气象局研发的新一代国内气象通信系统,是继9210通信系统后国内气象通信系统的重要升级。对上海气象信息与技术支持中心而言,原先的气象数据传输与监控系统也需要相应的升级改造。对于信息网络监控岗位工作,能实时监控各类气象数据是最根本的要求。以往的监控需要逐个打开相应设备查看,不但操作繁琐,且不能及时发现错误气象信息,从而延误维护时间。所以新的监控系统需做到信息量大、监控面广、界面不杂乱、有声音及颜色告警,各种监控信息对于值班工作人员应能一目了然,以一体化方式展现,节约查询时间和查询步骤,从而提高监控效率。为达到以上要求,笔者在此对气象实时数据监控程序的设计和开发进行了详细的介绍,该程序开发使用delphi6.0语言和多线程技术,目前对自动气象站数据、雷达和卫星数据、MICAPS压缩数据和MICAPS解压数据这四类数据进行监控[1],满足了气象实时数据的监控。

1 需求分析和总体设计

1.1 需求

目前对于上海气象信息与技术支持中心的信息网络值班工作而言,及时掌握各类气象信息的数据是否按时上行国家局和下行各用户单位非常重要,需要有一款既能快速查询和浏览各类气象要素上下行时间数据又能及时提供相应警报的软件,缩短工作人员对故障的判断和响应的时间,提高工作效率。

1.2 软件的预期功能

1.2.1 监控的气象信息。目前主要是对于自动站数据接收时间信息、多普勒及风廓线雷达上行时间信息、新一代传输系统中的DVBS接收时间信息和对上述接收到的信息进行解码后气象产品的时间信息。所监控的气象信息均采用多线程编程,将信息分成四大类后以表格形式并行呈现,且将错误信息置顶。如此设计能将所有必需监控的信息显示在同一块屏上,正确与错误信息一目了然,缩短工作人员的故障判断时间。所有表格能根据主窗口的缩放而自动改变大小,方便工作人员查看。由于采用模块化设计,因此如果今后需要增加或减少监控项目,对主程序的改动非常小,甚至某些监控仅需改变配置文件即可而无需涉及编程。

1.2.2 时钟显示功能设计。因为气象信息对时效的要求非常高,而该程序的设计主要依赖运行该程序计算机的时钟,如果该计算机时钟与实际时间差别较大的话,容易形成误判误报,此点必须重点关注。因此尽管时钟功能的实现非常简单,却是最重要且必不可少的。

1.2.3 声音和颜色告警功能。告警功能非常重要,由于目前上海气象信息与技术支持中心的信息网络值班工作为7×24 h单人值班制度,同一时间内需要进行数据监控、视频会商管理和数据传输故障处理,所管理的计算机及其配套设备覆盖多个楼面和机房,还必须兼顾软件开发任务和工作岗位对外介绍任务,如果监控软件无警告功能就形同虚设。因此该程序设定声音和颜色2种告警功能同时运作。颜色以醒目的鲜红色标出故障信息,且置顶表格显示以方便工作人员观察。声音告警用mp3音乐,用以区别其他的监控告警程序,选曲可根据值班工作人员要求随时进行更换。

1.2.4 日常定时工作提示。定时工作提示模块主要由一个Access数据库来支撑,分为汛期与非汛期两张表。之前提及由于目前上海气象信息与技术支持中心的信息网络值班工作为7×24 h单人值班制度,管理范围广,因此容易在繁忙时忘记某一时刻的定时工作。而此提示模块,可以有效地解决这一问题。

1.3 数据控制及各功能模块流程

1.3.1 主程序与各功能子模块流程。主程序运行后,各功能子模块以多线程方式并行运行。提高运行速度的同时,也不会因为某一个功能模块卡死而导致其他功能模块不能运行。具体的流程图如图1所示。

1.3.2 各功能子模块数据流程。

各气象数据监控子模块数据流程都基本相同。首先逐条读入配置文件,之后进行格式判断,数据格式正确后,再从相应的数据存放文件或数据库中读取监控信息,如果符合监控条件则正常显示,如果不正确则触发告警程模块,直到配置文件尾,等待下次监控时间再次重复(图2)。

1.4 软件的设计原则

1.4.1 功能简单实用。

最大限度满足实际工作要求,充分考虑用户状况、环节管理中数据处理的便利性和可行性,把满足用户需求作为第一要素。

1.4.2 使用安全可靠。

确保各功能模块级数据资源运行可靠,将软件运行的故障率降至最低限度。经常会出错的软件一定会被使用人员扔进垃圾桶。

1.4.3 信息时间一致。

由于所监控的气象信息有非常高的时效性,监控时间与被监控数据的生成时间必须精确,否则肯定会造成信息误判而达不到预期目的。

1.4.4 显示内容完整。

显现的被监控数据信息要完整,能让工作人员在第一时间获取足够的监控信息,快速对故障点进行处理。

1.4.5 界面简洁清晰。 各功能模块界面应简便、规范,对用户友好。避免复杂操作与显示信息的混乱而导致降低使用该软件的界面障碍。

1.4.6 警告标志突出。

告警处理必须谨慎,模糊的告警非但不能起到警示作用,还会降低监控工作效率。该软件采用醒目红色背景标志出错误气象信息,同时使用区别于其他告警软件的声音告警。双重告警机制能保证任何人经过都能知晓有警报,可及时通知专业工作人员。

2 软件开发工具简介

2.1 Delphi简介

Delphi是著名的Borland(现在已和Inprise合并)公司开发的可视化软件开发工具。“真正的程序员用C语言,聪明的程序员用Delphi”,这句话是对Delphi最经典、最实在的描述。Delphi被称为第四代编程语言,它具有简单、高效、功能强大的特点。与VC相比,Delphi更简单、更易于掌握,而在功能上却丝毫不逊色;与VB相比,Delphi则功能更强大、更实用。可以说Delphi同时兼备了VC功能强大和VB简单易学的特点,它一直是程序员至爱的编程工具。

Delphi具有基于窗体和面向对象的方法、高速的编译器、强大的数据库支持,与Windows编程紧密结合,强大而成熟的组件技术。但最重要的还是Object Pascal语言,它才是一切的根本。 Object Pascal语言是在Pascal语言的基础上发展起来的,简单易学。

Delphi提供了各种开发工具,包括集成环境、图像编辑(Image Editor)以及各种开发数据库的应用程序,如DesktopDataBase Expert等。除此之外,还允许用户挂接其他的应用程序开发工具,如Borland公司的资源编辑器(Resourse Workshop)。

2.2 Access数据库

Microsoft Office Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。软件开发人员和数据架构师可以使用Microsoft Access开发应用软件,“高级用户”可以使用它来构建软件应用程序。与其他办公应用程序一样,Access支持Visual Basic宏语言,它是一个面向对象的编程语言,可以引用各种对象,包括DAO(数据访问对象)、ActiveX数据对象以及许多其他的ActiveX组件。可视对象用于显示表和报表,它们的方法和属性是在VBA编程环境下,VBA代码模块可以声明和调用Windows操作系统函数。

Access有强大的数据处理、统计分析能力,利用Access的查询功能,可以方便地进行各类汇总、平均等统计;并可灵活设置统计的条件,如在统计分析上万条记录、十几万条记录及以上的数据时速度快且操作方便,这一点是Excel无法与之相比的。Access用来开发软件,如生产管理、销售管理、库存管理等各类企业管理软件,其最大的优点是易学,非计算机专业的人员也能学会。低成本地满足了那些从事企业管理工作的人员的管理需要,通过软件来规范同事、下属的行为,推行其管理思想。

3 程序内容实现

3.1 主程序界面设计

主程序界面如设计原则中所提,要求界面清晰且显示内容完整。所以主界面中仅显示当前时间、监控的气象信息、下个时次的定时工作任务、声音告警控制按钮,且将四大类气象信息分4张表分别显示,同时将警告信息置顶显示,使工作人员对于各种监控信息一目了然(图3)。

3.2 Access数据库具体设计

该程序中Access数据库主要为每日定时工作提醒模块而设计,由于每年汛期与非汛期2个时间段的定时工作有不同,故此分为2个表以区分。具体字段定义为监控时间、监控内容、监控计算机地址、监控数据目录,其中将监控时间定义为数字型,为了方便比对与排序查寻,其余字段全部定义为字符型。

3.3 编程使用的主要技术

3.3.1 FindFirst函数和FindNext函数。

可以遍历一个本地路径下的所有文件,包括目录文件的卷文件,文件名过滤条件在path中指定,但查找结果中默认不会显示隐藏文件、系统文件、卷文件和目录文件,如果想在结果中包含这些属性的文件,就需要在Attr中给予明确的指明[2]。此函数原型为:

Function FindFirst(const Path:Sting;Attr:Integer;Var F:TSearchRec):Integer;

3.3.2 数据库语言SQL。

SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。SQL功能强大、使用方便,已经成为了数据库操作的基础,且现在几乎所有的数据库均支持SQL。该程序中主要用到的是其中的select语句及其嵌套用法,其原型为:

Select 字段名 from 表名 where 条件

3.3.3 多线程技术。

随着分布式系统的兴起,并发多任务技术变得越来越重要。在现有基于多线程的操作系统上开发并发多任务程序已经成为程序设计的热点。根据需要在应用程序中创建线程,多个线程可以并发地运行在同一个进程中,操作系统的多任务特性使得线程之间能独立运行,但彼此共享存储空间。尽管多线程能提高CPU利用率,但也不能太多,同时,在多个线程操作同一个内存地址时需处理好它们之间的同步关系[3]

3.4 告警功能说明

该程序采用颜色及声音双重告警,对所有四大类气象数据监控均采用视觉差异较大的红色为底色,便于引起人员高度注意。由于MICAPS气象数据大类中并非所有子数据每天都全部按时收到,且间隔时间也没有规律,只要保证有90%以上数据正确接收并解码就能正常工作,因此声音告警仅应用自动站与雷达卫星两大类中。

3.5 软件的测试与维护

为保证软件的可靠运行,需要针对各种情况进行测试。首先对各个功能模块进行分别测试,包括对正确数据读取测试、错误数据读取测试、容错性测试,然后将所有功能模块联合在一起作总体调试,最后在工作平台进行实际运行测试。

在实际测试的同时,该程序也已进入运行维护阶段,改正在特定使用条件下会暴露的潜在程序错误或设计缺陷,在软件使用过程中数据环境发生变化或处理环境发生变化时进行及时修改。若有工作人员提出改进意见时,及时对软件做出修正。

目前经过连续2个月试运行未出现重大故障,证明该程序运行的稳定性与可靠性达到设计要求。

人员的基本责任之一。在信息传输技术与手段发生变化时,在最短时间内做出相应监控手段的调整以确保对气象信息的有效监控。

该程序对四大类实时气象数据的监控融于一体,并伴有每日定时任务提醒,各界面清晰简洁,采用多线程技术以提高各监控模块运行速度,从而使值班人员能方便并迅速地通过该程序进行监控,迅速判断故障并采取相应措施,提高了工作效率。同时,模块化的程序设计也使今后对于整个程序的修改工作变得方便。

参考文献

[1] 吴玲,侯俊.中国气象局卫星数据广播系统CMACast简介[J].沙漠与绿洲气象,2011(Z1):26.

[2] 张曜,张青,李彬.delphi函数使用手册[K].北京:冶金工业出版社,2002.

[3] 张世明.delphi程序设计基础[M].北京:电子工业出版社,2010.

猜你喜欢
气象程序监控
气象树
The Great Barrier Reef shows coral comeback
《内蒙古气象》征稿简则
你被监控了吗?
Zabbix在ATS系统集中监控中的应用
试论我国未决羁押程序的立法完善
大国气象
美丽的气象奇观
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序