APP下载

基于VBA编程的数据库建模自动化技术

2017-07-05洪晔李海平刘学民

船海工程 2017年3期
关键词:舱室组态舰船

洪晔,李海平,刘学民

(中国船舶重工集团公司第七一八研究所,河北 邯郸 056027)



基于VBA编程的数据库建模自动化技术

洪晔,李海平,刘学民

(中国船舶重工集团公司第七一八研究所,河北 邯郸 056027)

在舰船安全监控系统设计过程中,利用VBA开发Access数据库管理工具,解决由于上位机组态软件变量数量庞大,建点工作繁杂,且当用户需求发生变更的时候,重新布点工作量大、耗时长的问题,提高组态软件数据变量建立的效率,快速生成测点分布表,建立清晰的逻辑控制关系,根据用户需求快速调整布点表及变量。

VBA编程;Access数据库;组态软件;编程自动化技术

为了满足现代舰船作战要求,大型水面舰船需携带航空煤油。航空煤油易于燃烧,挥发性强,还具有一定的毒性和腐蚀性。航空煤油的储存、输送、加注、回收、装卸等作业的安全越来越得到重视,建设舰船安全监控系统的需求十分迫切。舰船安全监控系统能够对相关舱室中湿度、温度、可燃气体、氧气、二氧化碳等与舰船安全紧密相关的信息进行实时采集分析,出现危险时及时发出报警信息,并控制相关的通风、消防设施采取应急措施,确保舰船安全。

为了能够反应真实的安全环境信息,首先,从硬件布置上要设计能够覆盖防护需要的最低限度的探测器、报警器以及通风、消防设施;其次要设计可靠的软件用于采集、分析、存储、报警和控制功能的实现。系统还应及时将监测信息送至安全监控中心。舰船安全监控系统总图如图1所示,采用上位机-总线中继器-探测器的架构,为了保证系统的可靠性,采用组态软件作为上位机监控软件的开发平台。

随着海军由绿水海军向蓝水海军进展,舰船的体积和吨位逐渐增大,甲板层数多、舱室数量大,舰船安全监控系统需要同时采集各个舱室中的相关参数,其测点分布范围和探测器数量也急剧增加。上位机监控软件编制工作量也随之增大。针对这一问题,提出在开发上位机软件过程中,使用VBA在Access数据库基础上实现数据库建模编程自动化。

1 编程自动化需求分析

大型舰船甲板层数多、舱室数量大,需要同时采集各个舱室中的相关参数,监测控制点数量很大。在设计监控测点的过程中,需要根据不同客户的不同要求,依据舱室的分布和布点规模,建立测控点位布置表,并制定相应的控制策略。

舰船安全监控系统上位机采用WINDOWS XP操作系统,使用三维力控公司的组态软件开发图形化人机交互界面,实时监测各测点的信息及状态,完成信号监测、外部设备自动控制、故障分析等功能,并可进行数据实时存储及历史数查询。

利用组态软件进行开发必不可少的步骤是建立一个能够覆盖每一个监测点、控制点和报警点的数据库,再使用脚本语言将图形标志与有关的数据点进行关联。这一过程对于监控点、报警点多、各报警点关联性强的系统来说工作量巨大,重复性劳动多。以一个温度测点为例,根据监测、报警需求,数据库中需要建立对应的变量29个,那么,一只具有12层甲板、每层60个相关舱室的大型舰船,每个舱室按1个温度探测器计算,仅温度相关变量为20 880个(29×60×12=20 880)。此处仅是温度一种类型的探测器以最低需求量,粗略计算的数据,一套舰船安全监控系统中的监测点及控制点数量至少有千余个监控点,再考虑到一些中间变量,大约变量总数在10万个左右。完全依靠程序员手工操作具有以下难点。

①数据库的逐一建点,效率低下,致使软件编程人员把大量精力放在建点等基础工作上,而疏忽了关键核心技术。

②这些变量在主程序脚本中都有相关语句,一旦一个测点发生调整,工程改动量非常庞大。

③在编程过程中,一旦变量变化,查找错误点及主程序中该点相关程序代码的难度也很大。

这些数据变量具有与监控点之间有一对多的关系,监控点的脚本控制语言与其余监控点之间具有确定的对应关系,这恰好与关系型数据库数据之间的关系一致。因此,提出利用利用VBA开发Access数据库管理工具完成任务,加快软件开发进度,减少调试时间,提高软件的可靠性。

2 编程自动化

2.1 数据点的建立

提出基于VBA编程的数据库建模自动化编程方法,只要将测控布点位布置表(excel格式)导入Access数据库,就可以生成测点总表,测点编号,测点对应数据点总表,各舱室测点总表,各舱室变量总表,测点分类总表以及编程中需要的各种其他表格。

建立空窗体,在空窗体上建立2个按钮,如图2所示。按钮“核对布置表”用于打开查看测控布点位布置表是否正确;按钮“生成数据点”用于生成各种测点表。选择数据库工具中的Visual Basic打开代码窗口,进行程序设计[1-2]。

数据库点生成设计流程见图3。

所有数据变量生成后,可以导出Access数据库点,装载至力控组态软件中,大幅减少工作量,提高工作效率。

2.2 代码的自动生成

在监控软件中,针对每一个测点需要生成脚本语言的代码对应于传感器的各个变量,控制显示的各种状态和模拟状态的切换。

考虑到每个测点数据变量多,各变量涉及到的主程序内容较多,利用Access数据库为每一类型测点创建1个窗体,在窗体上设置2个按钮,一个生成代码按钮,一个复制代码按钮。

生成代码按钮设置的代码流程见图4。

复制代码按钮将窗体代码框中的代码复制到剪贴板上,直接用于力控组态软件代码的输入[3-9]。复制代码按钮的代码为

Private Sub 复制代码按钮_Click()

Me.生成的代码.SetFocus

DoCmd.RunCommand acCmdCopy

End Sub

Access数据库Microsoft Visual Basic编辑器中代码截图,如图5所示。

2.3 工作流程

当与用户确定测控点位布置表后,手工将测控点位布置表导入Access数据库,打开数据点的建立窗体,按下数据点生成按钮,生成各个测控点的数据点,同时生成每一类传感器和控制器的总表。在监控软件人机界面设计好并得到用户的确认后,进入代码开发阶段。编程人员打开力控的编程窗口,同时打开相应代码生成窗体,按下生成代码按钮,生成相应测控点的代码,按下复制按钮就可以将代码复制到粘贴板上,再将其粘贴到力控的编程窗口即可。

3 结论

1)将原本近2个月的组态软件建立数据库的工作量,缩短至1周内完成,即使考虑到工具的2周开发时间,也大大地缩短了开发时间,减少了工作量,同时,避免了大量的人工复制,替换,减少了错误的出现机会,节省了调试时间。

2)能够快速生成测点分布表,建立清晰的逻辑控制关系。一旦用户的数据测控点确定后,马上就能生成数据点表,从数据库中可以清晰地看到各种类探测器分布、每个房间的传感器编号、通风系统等外部设备与房间的关联及逻辑控制关系,便于设计、维护。

3)使用Access数据库,针对用户需求改变的情况,只需重新组点,将用户需求输入数据库,一键完成生成数据库点、主程序代码的工作,不易出错,即使出错,也容易查询和修改。

编程中利用VBA实现的Access数据库自动化编程技术,对软件项目成员理清逻辑关系、减少工作量、提高工作效率和后续软件调整具有很大借鉴意义,值得推广应用。

[1] 王宇虹,朱亦文,陈格,等.Access数据库系统开发从基础到实践[M].北京:电子工业出版社,2006.

[2] 于繁华,等.Access基础教程[M].北京:中国水利水电出版社,2005.

[3] 李志梅,陈艳.利用Access VBA和SQL相结合实现教师信息动态查询[J].桂林航天工业高等专科学校学报,2011(4):443-445.

[4] 常广炎.用VBA开发Excel、Access的数据处理软件[J].数字技术与应用,2014(6):170-171.

[5] 张建莉.应用程序中的VBA自动化设计[J].农业网络信息,2015(4):121-123.

[6] 张宏飞.利用VBA实现探测器测试报表的自动生成[J].福建电脑,2016(9):129-130.

[7] 陆锦鹤.利用VBA编程提高报表制作效率[J].中小企业管理与科技,2016(12):152-153.

[8] 韩泽坤.Access行业数据库开发范例应用[M].北京:中国青年出版社,2006.

[9] 张玉洁,孟祥武.数据库与数据处理Access 2010实现[M].北京:机械工业出版社,2013.

On the Automation Technology of Database Modeling Based on VBA Programming

HONG Ye, LI Hai-ping, LIU Xue-min

(No. 718 Research Institute of CSIC, Handan Hebei 056027, China)

In design process of the safety monitoring system, the use of Access database management tools which developed by VBA can solve the problem of large number of the software data variables, also when the user's demand changes, re-distribution workload. The Access database can make a substantial increase in the configuration software variables to establish the efficiency, which can quickly generate the measuring point distribution tables, establish a clear logic control relationship, adjust the distribution table and variables quickly according to the user needs.

VBA; Access database; configuration software; technology of programming automation

10.3963/j.issn.1671-7953.2017.03.030

2017-01-18

国家部委基金资助项目

洪晔(1986—),女,硕士,工程师

研究方向:分析仪器

U665.261

A

1671-7953(2017)03-0128-03

修回日期:2017-03-20

猜你喜欢

舱室组态舰船
浅谈力控ForceControl V7.2组态软件在自动化控制工程中的应用
风浪干扰条件下舰船航向保持非线性控制系统
ZnF低激发电子态的组态相互作用研究
舰炮弹药连续内爆对舱室毁伤效应的仿真分析
舰船测风传感器安装位置数值仿真
“新永安”号客滚船整体舱室空调系统设计
组态软件技术现状与发展
高职“工业组态技术”课程建设探析
台日舰船对峙内幕曝光