鱼雷动力试验数据管理软件设计与开发
2016-09-12陈立杉刘培培高慧中
陈立杉, 孙 涛, 刘培培, 高慧中
(中国船舶重工集团公司 第705研究所, 陕西 西安, 710077)
鱼雷动力试验数据管理软件设计与开发
陈立杉, 孙 涛, 刘培培, 高慧中
(中国船舶重工集团公司 第705研究所, 陕西 西安, 710077)
目前国内外的数据分析系统基本上都是利用文件夹来存储测试数据, 数据管理方式落后、采集设置和分析调取耗时费力。为了解决以文件夹管理数据的弊端并提高采集分析软件各功能模块之间的信息交互性, 文中采用Access结合LabVIEW设计开发出一套鱼雷动力试验数据管理软件。在Access中设计了数据库模型及各个数据表之间的关系, 在 LabVIEW 中开发了数据库维护工具、数据库与各功能模块的接口程序, 实现了对数据库中各表的查询、修改、删除及数据的导入导出。该软件极大地提高了鱼雷动力试验数据的管理效率和水平。
鱼雷动力试验; 数据库; 数据管理; LabVIEW; Access
0 引言
鱼雷动力装置试验类型多、测点多、数据量大, 随着试验次数的不断增加, 势必产生海量的试验数据。此种情况下, 以文件夹为核心的数据存储方式存在查找耗时费力等弊端。此外, 随着试验次数的增多, 文件夹不断累积, 同类型试验可能因文件夹命名相同而导致新文件夹覆盖旧文件夹, 存在数据安全隐患。为此, 文中面向鱼雷动力试验, 采用LabVIEW编程工具, 开发了以数据库为核心, 集数据管理、分析、报告为一体的测试分析系统。数据管理软件(数据库及其管理模块)作为该测试分析系统的核心, 对整个系统的功能、性能、稳定性影响很大, 在整个试验数据管理工作中发挥着至关重要的作用。
LabVIEW 本身并不具备数据库访问功能,不能像VB、VC那样方便地操作数据库, 因此系统需要借助其他辅助方法和工具来实现对数据库的访问及操作。刘立辉[1]通过对复杂信息系统的分层框架设计, 调用动态链接库(dynamic linking library, DLL)实现对数据库的访问及操作, 该方法需要从底层进行复杂编程, 工作量大且界面缺乏友好性; 熊宗接[2]与孙炜强[3]分别利用LabVIEW的ActiveX功能, 调用Microsoft ADO控件, 通过SQL语言实现对数据库的操作, 该方法需要熟练掌握Microsoft ADO和SQL语言, 也需要从底层进行复杂编程; 张捍东[4]与吴刚[5]利用通过第3方开发的免费工具包LabSQL实现对数据库的操作, 这样的方式虽然成本较低, 但工具包中的控件设计较为专业, 同样要求用户熟练掌握SQL语言。
美国NI公司历来重视LabVIEW访问和操作数据库的能力, 经过不断完善, 几年前推出了简单易用、功能完善的数据库工具包LabVIEW SQL Toolkit。该工具包集成封装了一系列具有数据库操作和访问功能的高级功能模块, 可以方便地访问多种数据库。与以上几种数据库访问方式相比,该工具包具有以下优势: 支持 ADO所有数据库引擎; 具有高度可移植性, 任何情况下, 用户通过改变DB Tools Open Connection VI的输入参数Connection String更换数据库; 将数据库中的Column Values数据类型转换为标准 LabVIEW Database Connectivity Toolset数据类型, 使数据可移植性进一步增强; 不使用SQL语句就可以实现数据库记录的查询、添加、修改及删除等操作。目前, 论述LabVIEW SQL Toolkit访问和操作数据库的文献还很少, 针对此项应用技术开展研究很有必要。
文中在对动力试验流程进行梳理的基础上,设计了基于Access的动力试验数据库, 研究了数据维护工具的具体实现方法, 通过高速数据流文件(technical document management system,TDMS)[6]设计了各功能模块与数据库的接口程序, 实现了数据库与采集软件和数据处理软件的无缝连接。
1 系统数据库设计与配置
1.1 数据库设计
鱼雷动力试验过程中, 主要产生试验配置信息(包括人员信息、产品信息、试验信息)、测点配置信息(包括测点信息、采样信息)和测量信息(包括各监测参数的波形数据)等三大类六小类信息。动力试验数据库用于存储这三大类信息, 数据库管理模块用于创建数据库并管理(添加、修改、删除等)测量信息[1]。
Access是微软办公套装软件的一个重要组成部分, 有着广泛的用户群, 以它开发数据库不但节省资源而且便于数据库的部署。文中所构建数据库基于Access数据库结构, 根据存贮信息的类型确定表的类型和表的字段类型, 根据采集、分析、报告等各模块的信息流向确定各表之间的关系。Access数据库的“表”是数据库的核心组成部分, 数据库中所有的数据信息根据其自身不同的属性存储在不同的表中。既对原始数据有存储功能, 又具有对原始数据进行操作的功能。为满足试验数据存储及分析的需要, 共设计了 6个基本表, 分别为: 检测人员信息表、试验对象信息表、试验信息表、测点信息表、采样信息表、波形数据表。其中检测人员信息表与试验对象信息表、试验对象信息表与试验信息表、试验信息表与测点信息表、测点信息表与采样信息表存在一对多的从属关系, 采样信息表与波形数据表存在一对一的对应关系, 其E-R模型如图1所示。
1.2 LabVIEW对系统数据库的配置
为避免用户在使用软件过程中对数据库进行繁琐配置, 在使用软件前需要配置数据库, 这样的程序设计使得用户在使用软件时更加高效、便捷。在目前公开的资料中, 将LabVIEW与数据库进行连接需要通过 Windows操作系统控制面板中的管理工具对开放式数据库互接(open database connectivity, ODBC)数据源进行配置, 通过这种方式, 用户每次使用 LabVIEW 访问任何类型的数据库前都必须通过该方式创建数据源名(data source name, DSN)并将其添加到Windows ODBC数据源配置中, 这样大大降低了数据库操作过程的效率。
图1 数据库E-R模型Fig. 1 E-R database model
使用LabVIEW附带的Database Connectivity Toolkit工具包对数据库进行连接与操作。并通过字符串的连接, 创建SQL语言并将其输入至工具包中的数据库连接子VI中, 将传统复杂的ODBC数据源配置步骤封装到了一个 VI中, 使用这样的方式避免了用户对控制面板ODBC数据源设置及SQL语言繁琐的操作, 只需要在路径中选中要配置的数据库点击确定即可, 同时, 如果将数据库工具从Access改变为SQL Sever等其他形式,只需要将驱动数据库软件名改变即可。同时, 设计了“新建数据库”子VI, 用户可以使用动力试验数据库模板与此VI新建数据库。
图2 数据库维护工具Fig. 2 Database maintenance tool
2 数据库维护工具开发
为了方便用户对数据信息的管理, 保证鱼雷动力测试软件的统一性, 数据库管理软件的设计原则是尽量使用户在使用软件时只在鱼雷动力测试软件中操作而不接触Access数据库, 如需要对数据库进行操作, 在软件的数据库维护管理软件中进行即可, 在此原则下设计了数据库维护工具,用户利用该工具实现对数据库各个表中数据的添加, 删除以及修改等操作, 如图2所示。
数据库维护工具的界面设计为选项卡模式,这样使得界面更加简单明了, 同时, 使操作更加方便。在该子系统编程中, 设计了对应各个数据表的子VI, 在除波形数据表外的每个子VI中都包含添加、删除及修改功能, 并使这3个模块以并列形式运行, 相互不受影响。由于在数据采集完毕时波形数据已经录入数据库, 而且波形信息表中的录入时间、试验信息 ID以及试验产品名称均在数据源配置时已输入数据库中, 因此, 在波形信息表中不包含“添加”功能, 这样也对数据库起到保护作用, 防止数据的冗余错乱。将对应各个表的子 VI以并列形式放入该子系统整体框架中, 在每个子 VI中, 都使用 Database Connectivity Toolkit工具包中的信息添加、修改与删除子VI完成, 以试验信息表为例, 其添加、修改和删除操作程序如图3所示。
这3种子VI分别以LabVIEW的Database Connectivity Toolkit工具包中的添加、修改和删除工具子VI为核心, 在添加子VI中, 将所要添加的字符串输入后即可通过 INS.VI将数据添加至所连接的数据库; 在修改子VI中, 每个不同的表都有一个特定的搜索字段, 这个字段是不能改变的, 通过搜索字段选定需要改变的内容, 将修改后的字符串输入后, 即可通过 UPD.VI将改后的内容输入数据库, 实现修改功能; 在删除子 VI中, 将搜索字段字符串与 SQL语句结合为删除SQL语言, 并输入FREE.VI删除子工具VI后, 用户可以在不接触SQL语言的同时, 利用搜索字段选定所需删除的内容后, 即可完成表中内容的删除操作。
图3 表的添加、修改和删除操作程序Fig. 3 Addition, modification and deletion processes on datasheet
3 基于TDMS技术的接口程序设计
从信息流的角度而言, 数据库的数据来自采集模块, 二者之间是输入关系, 数据库中的数据供分析模块使用, 二者之间是输出关系, 因此数据库模块应与其他模块之间实现无缝对接。为了扩大数据来源, 本数据库管理工具也可以以文本格式为桥梁将其他软件采集的数据录入本数据库并导出至信号处理模块进行分析处理。
3.1 采集模块中试验数据的循环录入
通过TDMS技术实现数据流的控制, 鱼雷动力试验数据采集软件获取的数据以TDMS文件形式输入至本数据库, 如图 4所示, 采用这种针对大数据的传输方式可以极大的提高数据传输速度,其速度大大高于传统的数据传输方式[1]。
在信号采集与数据库接口模块中, 由信号采集模块得到的数据以TDMS文件的形式存在于指定的模板TDMS文件中, 使用TDMS读取控件将该模板文件中的数据读入数据库。在模板TDMS文件中, 每次的采集数据都将覆盖上一次存储的数据, 这样的方式使得模板 TDMS文件始终只有一个, 并且其仅仅作为一个中间路径的形式存在, 使得 TDMS文件的占用内存几乎为零。最后, 将获取的波形成分由FOR循环形式一一录入[1]。
图4 高速数据流(TDMS)数据读取程序Fig. 4 Rata reading process of the technical document management system(TDMS)
3.2 试验数据读取至信号处理模块
在数据库模块与信号处理模块接口程序设计中, 首先将数据库连接至程序, 应用SEL.VI数据选择控件对字段进行检索, 再通过循环检索, 应用Database vaiant to data.VI将变体数据转化为字符串, 使用户得到通道信息, 从而将数据库中波形数据表的每个字段名称以数组的形式导出, 如图5所示。
将每个字段里的内容以数组的形式进行循环导出, 并转换为字符串表格, 最终将字段名称添加到该字符串表格的第一行作为表头, 将字段中的内容作为表中数据输入数据表。数据循环读出的程序设计与循环读入的程序设计思路相通, 但其实现方式相反。
若需要将其他软件采集的以文本形式存储的数据录入该数据库并进行信号处理, 只需将其他形式数据文件转换至TDMS文件形式, 即可使用导入导出接口模块实现数据的导入导出。其转换程序如图6所示, 通过使用表格控件将表格读出后, 应用MATLAB软件编写转换算法, 将表格中的行与列进行变换, 通过循环检索将数据转变为数组, 再通过TDMS控件, 将数组写入TDMS文件, 从而实现数据形式的转换[1]。
4 结束语
图5 数据表中字段名称的读取程序Fig. 5 Reading process of field name in datasheet
图6 其他形式数据文件至TDMS文件转换程序框图Fig. 6 Block diagram of file conversion from any other format to TDMS one
文中运用 Access设计了动力试验关系型数据库, 在 LabVIEW 中开发了数据源配置、数据库维护工具、数据库与各功能模块的接口程序,实现了鱼雷动力试验数据的有效管理, 并为采集分析软件各功能模块之间信息交流提供了一个统一描述的蓝本, 为模块间的互操作创造了必要条件。该软件既可作为独立的试验数据管理软件使用, 也可作为基于数据库的采集分析软件的一部分, 具有很强的实用性和适用性。Access作为小型关系型数据管理系统, 数据存储量相对较小,且不支持并发处理, 难以满足今后存贮大容量数据及远程访问和处理数据的需要。下一步计划采用大型数据管理系统(如SQL Server, ORacle)开发动力试验数据库, 并改进数据库管理模块的功能,不断完善其可靠性与高效性。
[1] 刘立辉, 孟庆鑫. 基于动态链接库的复杂信息系统分层框架设计[J]. 计算机与信息技术, 2009(5): 39-45. Liu Li-Hui, Meng Qing-Xin. Designing of the Complete Layered Information System Based on LabVIEW[J]. Computer & Information Technology, 2009(5): 39-45.
[2] 孙炜强, 王德明, 马义平. LabVIEW 与数据库在柱状静态参数测量系统中的应用[J]. 仪表技术, 2014(10): 47-54. Sun Wei-Qiang, Wang De-Ming, Ma Yi-Ping. Application of LabVIEW and Database in Static Parameter Measurement System of Columnar Parts[J]. Instrumentation Technol-ogy, 2014(10): 47-54.
[3] 熊宗接, 毕鹏. 利用数据库在LabVIEW中实现自动测试[J]. 国外电子测量技术, 2007, 26(8): 56-59. Xiong Zong-Jie, Bi Peng. Autp Test in the LabVIEW Environment by Using Data Base[J]. Foreign Electronic Measurement Technology, 2007, 26(8): 56-59.
[4] 张捍东, 纪文志. 数据采集系统中的LabVIEW数据库访问技术[J]. 工业仪表与自动化装置, 2009(4): 63-66. Zhang Han-Dong, Ji Wen-Zhi. The Database Access Technology Based on LabVIEW in Data Acquisition System[J]. Industrial Instrumentation & Automation, 2009(4): 63-66.
[5] 吴刚, 施建礼, 焦吉祥. 基于 LabSQL的故障诊断系统研究[J]. 机床与液压, 2013, 41(17): 183-187. Wu Gang, Shi Jian-Li, Jiao Ji-Xiang. Study on Fault Diagnose System Based on LabSQL[J]. Machine Tool & Hydraulics, 2013, 41(17): 183-187.
[6] 陈树学, 刘萱. LabVIEW宝典[M]. 北京: 电子工业出版社, 2011.
[7] 查志武, 史小锋, 钱志博. 鱼雷热动力技术[M]. 北京:国防工业出版社, 2006.
[8] 李江伟, 汪锐, 汪仁煌, 等. 基于Labview的便携式大型旋转机械故障诊断系统的数据管理[J]. 自动化仪表,2001, 22(8): 12-14. Li Jiang-Wei, Wang Rui, Wang Ren-Huang, et al. The Labview Based Portable Data Management for Fault Diagnosis System of Large Rotating Machines[J]. Process Automation Instrumentation, 2001, 22(8): 12-14.
[9] 丰伟伟, 杨世文, 南金瑞, 等. 基于LABVIEW中TDMS文件和SQL数据库数据处理速度的研究[J]. 仪器仪表与分析检测, 2011(1): 10-12. Feng Wei-Wei, Yang Shi-Wen, Nan Jin-Rui, et al. The Data Processing Speed Research of TDMS File and SQL Database in LabVIEW[J]. Instrumentation Analysis Monitoring,2011(1): 10-12.
[10] 张鹏, 赵剡, 基于LabVIEW的位标器性能测试系统[J]. 计量与测试系统, 2011, 38(1): 60-64. Zhang Peng, Zhao Yan. Coordinator Performance Testing System Base on LabVIEW[J]. Metrology & Measurement Technique, 2011, 38(1): 60-64.
[11] 刘有耀, 李彬. 基于Hadoop的测试数据处理系统设计与实现[J]. 计算机技术与应用, 2015, 41(7): 140-143. Liu You-Yao, Li Bin. The Design and Implementation of Test Data Processing System Based on Hadoop[J]. Application of Electronic Technique, 2015, 41(7): 140-143.
(责任编辑: 许 妍)
Development of Data Management Software for Torpedo Power Test
CHEN Li-shan, SUN Tao, LIU Pei-pei, GAO Hui-zhong
(The 705 Research Institute, China Shipbuilding Industry Corporation, Xi′an 710077, China)
At present, data analysis systems usually use folder to store test data, but this manner is insufficient for data management and spends more time in data acquisition, analysis and access. Therefore, a data management software for torpedo power test is developed based on LabVIEW and Access to improve information interaction among modules in the acquisition and analysis software. In Access a database model and the relationship among datasheets are designed,and in LabVIEW database maintenance tool and interface program between database and function modules are developed. Thus query, modification, deletion, and data input/output operations on datasheets are implemented with higher efficiency.
torpedo power test; database; data management; LabVIEW; Access
TJ630.32; TP311.56
A
1673-1948(2016)04-0271-06
10.11993/j.issn.1673-1948.2016.04.006
2016-05-04;
2016-07-20.
船舶工业国防科技预研基金项目(14J4.4.1)、 中国船舶重工集团公司第七 〇五研究所总工程师基金(CX-1507).作者简介: 陈立杉(1990-), 男, 硕士, 主要研究方向为动力测试测量技术.