基于动态链接库的海上溢油数据库设计与研究

2017-09-30 05:59尚前明
船电技术 2017年9期
关键词:主程序溢油报警

胡 舜,尚前明



基于动态链接库的海上溢油数据库设计与研究

胡 舜1,尚前明2

(1.武汉武船船舶设计有限公司,武汉 430060;2.武汉理工大学,武汉430070)

船舶海上溢油事故给国家财产和海洋环境造成巨大损失,有效的事故处理措施能够大大降低事故后果,而紧急处置综合指挥系统作为岸上人员调度和指挥的核心,合理和完整的指挥系统数据库的设计显得极其重要。为了对海上溢油事故进行综合指挥,在分析综合指挥系统数据库构成及关联关系的基础上,阐述了数据库设计的准则以及存在的关键技术,对健全我国海上溢油规章制度有着重要意义。

船舶 溢油 综合指挥系统 数据库

0 引言

随着我国经济的快速发展,石油消费和运输不断持续增长,海上溢油事故不断发生。据不完全统计,近30年期间,我国发生的溢油事故大约有2600多起,溢油量超过50吨的重大溢油事故大约有70起,占总溢油事故的2%,总溢油量接近4万吨,尤其是2005年以后,由于运油量的增加,船舶溢油事故也相应增加。长期以来,海上溢油事故给国家和人民财产造成了巨大的损失,人们开始从法律、组织和技术层面对船舶溢油事故进行研究[1]。人们逐渐对船舶溢油事故的共性管理技术进行研究,借助信息技术实现船舶溢油事故管理的数字化[2],而溢油综合管理系统数据库作为岸上指挥和调度的核心,有效的数据库建立能够迅速对溢油事故做出应急反应并采取应急措施,以控制、减少和清除污染。本文通过对系统数据库的设计,优化子数据库之间的关联性,通过溢油信息的匹配生成最佳的应急计划以及各种信息之间的相互融合,为制定溢油应急计划提供可靠依据。

1 系统数据库

该系统数据库的设计包括基础信息数据库、事故案例数据库、溢油模拟数据、应急信息数据库、应急预案以及损失评估。由于动态链接库文件的使用较为广泛,其大部分功能都是由链接库实现的[2]。编程人员可以进行分块编程,最后提供动态链接库的库文件和函数调用说明,可以很好地完成系统程序的开发,大大降低程序开发者的工作量,系统的升级也更加便利。

1.1 数据库的信息需求

1)溢油应急处理信息需求

在船舶溢油事故处理过程中,需要获取大量的信息,如溢油地点、溢油量、清理溢油需要获取治理工具的信息等。当发生溢油事故后,相关部门需要将该溢油事故信息报告给政府,政府组织人员进行应急处理,同时政府要根据事故的危害程度追究肇事者的责任,如果溢油事故较严重,则要向法律部门提出诉讼,要求肇事者对事故进行相应的赔偿和承担相应的责任,因此该系统还要有法律法规信息和历史数据信息等。

2)系统决策支持需求

主要包括船舶溢油事故的统计分析、船舶溢油事故损失评估、船舶溢油事故应急计划生成等。船舶溢油事故损失评估是对应用应急计划处理溢油事故后造成损失的一种评估,它为应急决策和赔偿机制提供了非常有力的依据。船舶溢油事故应急计划生成是一个难点,岸载端对船舶溢油事故现场传送过来的数据进行分析,将这些信息和溢油模拟的数据进行结合来预测油实时扩散的动态,来协助应急方案的实施,从而对溢油事故进行远程调度和救援。

1.2 数据库的功能需求

数据库作为该系统的核心部分,一个功能完善的数据库对指挥人员处理溢油事故极其重要,能够有效降低事故造成的危害,所以该系统的数据库需要具有以下功能:

1)添加功能

若某一个数据库中需要添加新的字段和内容,除了在后台数据库中可以添加外,还可以利用数据添加功能将需要的信息添加到表格中,在表格上显示新添加的内容会同步到数据库中。

2)删除功能

数据库中某些数据已经不实用或没有实际价值需要将其删除,这样可以节约系统的空间,有利于空间更好的循环利用。

3)修改功能

如果数据库表名或字段名与其内容不相符合,或者表中的内容有误,需要对其进行修改,方便系统管理员针对错误的信息及时进行纠正。

4)查询功能

查询功能是数据库管理系统中一个动态的功能,同时也是较为重要的一个功能。由于系统中储存了很多数据,如果逐条对数据进行查看较为麻烦,查询功能可以让用户快速浏览信息。

1.3 系统子程序实现

该系统的子程序全部采用Visual C++ 6.0软件基于动态链接库创建,动态链接库全部放在库文件里。动态链接库是基于MFCAppWizard [dll]的,按照默认的选择后,插入一个对话框,申明类及运行后,需要对程序进行修改,建立动态链接库的流程如图1所示。

1)在对话框的源文件中将addadditionalincludeshere改为resource.h;

2)在resource的头文件下将新建对话框的ID号进行更换,不可与程序中已有的ID相同;

3)将此信息复制到对话框的头文件中,完成动态链接库的创建;

1.4 主程序与子程序链接实现

主程序是基于MFCAppWizard [exe]建立的,当主程序和子程序都建好后,最重要的是将两者连接起来。建立三个文件夹,第一个是主程序,第二个是库文件,第三个是Library文件,使两者链接起来需要以下几个步骤:

1)在子程序中project的Settings中Output files写为该目录下的Library,如D:ShipOilLeakSysLibrary。

2)在主程序的project的Settings中,在Debug目录下,将Working directory 设置为D:ShipOilLeakSysLibrary。

3)在C/C++目录下,将Category的Additional library path设置为D:ShipOilLeakSysLibrary,并在Object/library modules 中写上库文件的.lib文件,如Plan Team.lib

4)将动态链接库的头文件拷贝到主程序的文件夹中,并将其头文件加入到主程序中。

自此将主程序与库文件链接起来,就可以在主程序中调用各个数据库文件,从而实现各个功能需求。

2 系统的设计

2.1 系统结构

系统结构图如下图2所示,其中登录模块是管理用户登录的过程;主窗口模块是系统主界面,功能子窗口模块对应各项需求功能;安全管理模块用来检验用户密码,管理用户权限和用户信息;系统控制模块是管理各界面的生成与功能的使能;窗口管理模块是对管理窗体各种操作的响应;数据管理模块是管理所有对数据库的操作。系统资源模块是存储管理各种系统所需的资源,输入输出模块主要负责读取或存储数据到外部文件,Office SDK管理模块具有管理方案文件输出操作的底层功能。

2.2 数据库间的关联关系

如上所述,船舶溢油综合指挥系统数据库不仅库、表多,数据信息量大,而且彼此关联关系复杂。因此必须开发数据库管理系统,以实现数据的集中管理和相互之间的调度,见图3。

图3 溢油计划流程图

如图3所示,当海上出现溢油事故时,该系统将会把采集的溢油事故数据存储到基础信息数据库,例如:溢油量,溢油时间,溢油种类等相关信息(可见以上所述);在综合指挥系统中可以输入船舶相关信息对溢油的扩散进行实时模拟,以便在应急决策时提供可靠信息依据。同时该系统可以根据船舶溢油信息给出相应的预案,并且对计划做出风险评估,最后生成最佳的应急计划,从而辅助应急决策有效实施。

在进行数据库建立时,需要在拓扑结构表上加入代表图形要素的唯一标识—ID号(即标识符),在非空间属性数据库中加入同样标识符,通过标识符来建立空间数据库与非空间属性数据库的连接[3]。该系统对标识符进行识别来连接不同的非空间属性表,将数据库进行关联,可以实现溢油系统数据库的方案调度,生成最佳的应急预案以及各项准备工作。同时,该系统基于可视化编程语言编写,可实现界面人性化、显现的数据和图形效果好、交互接口简洁,从而完成属性数据的无缝连接。

图4 数据库间关联图

2.3 系统软件

由图5可知,系统主界面主要包括6个大的区域,分别是系统信息区、实时监控区、功能切换、应急调度区、电子海图区以及船舶信息区。

1)系统信息区

信息显示区主要包括:系统日期、系统时间、当前值班、值班记录及权限设置。当前值班显示值班人,如出现问题可以找值班人员。值班记录是一个数据库,里面记录有关值班人的信息。权限设置是指用户在进入管理系统的登录环节,只有输入正确的密码才能登入到数据界面,不用的用户使用的权限不同,普通用户只能浏览查询,管理员可以进行修改,添加操作。

2)实时监控区

实时监控区主要包括:报警消声,报警应答,报警数目,当前实时监控船舶以及当前报警。报警消声是发生报警后船员的一种反应,如果消声消除表示船员已知道报警,然后消除声音。但是报警信息仍然会闪烁,报警应答表示要去处理报警事故的操作,报警数目显示该船舶超出设定极限值的信息。当前实时监控船舶是当发生溢油事故后,监测派去救援的船舶,当前报警显示船舶溢油事故名称以及因为何种原因发生溢油[4]。

3)功能切换区

功能切换区主要包含电子海图,事故列表,视频图像和实时通讯信息。电子海图描述溢油船舶以及监测船舶的直升机的航迹,事故列表主要记录发生事故的信息,溢油船舶,溢油种类,溢油量,溢油位置,溢油原因等。视频图像是将船舶发生溢油的情况图片通过FIP协议发送至岸载端,以便指挥中心可以实时了解溢油情况。

4)应急调度区

数据库显示区主要包含6大数据信息,分别是基础信息数据库、事故案例数据库、溢油模拟数据、应急信息数据库、应急预案以及损失评估[5]。

5)电子海图区

电子海图描述了溢油船舶的航迹以及监测船舶的直升机的路径,并且可以实现轨迹的回放和地理位置范围的放大和缩小功能

6)船舶信息区

船舶信息区主要显示溢油船舶的航迹,航迹回放,风向,风速等信息;监视船舶的直升机轨迹,直升机轨迹回放,以及直升机经纬度和电子海图维护管理等信息。

3 结论与建议

船舶溢油综合指挥数据库的建设对处理船舶海上溢油具有十分重要的作用。本文介绍了综合指挥系统数据库的设计与建设方法,最终设计和建立标准,完善溢油事故数据库和人员调度方案设计。为了使该数据库的功能更加优化,可以加上GIS图文互访、空间分析等优势,为海上溢油事故研究以及灾害信息管理和应急指挥等系统的建立做好数据上和技术上的准备,同时省级溢油事故数据库的建立使灾害数据在较大的范围内实现共享,减少了数据的冗余,使政府部门能够站在一个更高的角度和更高的技术层面对与灾害相关工作进行统筹规划,提高在防灾减灾方面的工作能力。

[1] 赵文朋. 船舶溢油应急决策系统的研究与开发[D].上海: 上海海事大学, 2007.

[2] 赵慧敏,李文,土晓宁,聂冰,梁佩鹏. 动态链接库在数据采集系统中的一个应用[J].控制工程, 2004,11(1):87-90.

[3] 陈雄波,孟遂民,秦红玲. 基于GIS的输电线路运行管理系统数据库设计[J]. 电力建设, 2005,26(8): 65-67,70.

[4] 陈维皓. 海上溢油应急决策支持系统的研究与开发[D]. 上海:上海海事大学, 2006.

[5] 齐忠怀. 基于预测和决策功能的海上船舶溢油应急信息系统[J].办公自动化杂志, 2003,(8): 40-43.

Design and Research of Oil Spill Database Based on Dynamic Link Library

Hu Shun1, Shang Qianming2

(1.Wuhan Ship Design Co., Ltd., Wuhan 430060, China; 2. Wuhan Institute of Technology, Wuhan 430070, China)

U698.7

A

1003-4862(2017)09-0009-05

2017-04-15

胡舜(1984-),男,工程师。研究方向:电力推进及自动化技术。

猜你喜欢
主程序溢油报警
基于Petri网的深远海溢油回收作业风险演化分析
自动升级程序在船舶监测系统中的应用
近岸溢油漂移扩散预测方法研究——以胶州湾溢油事件为例
基于GF-1卫星的海上溢油定量监测——以青岛溢油事故为例
浅谈数控铣削技术代码程序的嵌套方式研究
电控冰箱软件模块化设计
LKD2-HS型列控中心驱采不一致报警处理
时光倒流 换回PotPlayer老图标
2015款奔驰E180车安全气囊报警
死于密室的租住者