摩托车制动器性能测控系统数据库设计
2016-05-31胡军钟绍华
胡军,钟绍华
(1.武汉理工大学现代汽车零部件技术湖北省重点实验室,湖北武汉430070;2.武汉理工大学汽车零部件技术湖北省协同创新中心,湖北武汉430070)
摩托车制动器性能测控系统数据库设计
胡军1,2,钟绍华1,2
(1.武汉理工大学现代汽车零部件技术湖北省重点实验室,湖北武汉430070;2.武汉理工大学汽车零部件技术湖北省协同创新中心,湖北武汉430070)
摘要:基于Labview虚拟仪器开发平台,使用Labview数据库连接工具包和Access 2007数据库开发了摩托车制动器性能测控系统数据库,实现了测试数据的存储、查询、更新、删除等主要功能;采用Labview报表生成工具包实现了Excel报表生成、打印功能;针对Access数据库只是删除数据记录后,占用磁盘空间并没有减少的问题,运用ADO扩展方法Compress Database实现了数据库的压缩。
关键词:Labview;Database工具包;制动器;Access数据库
摩托车制动器的性能是摩托车行车安全的重要保障,因此必须完善检测手段,严格控制制动器产品的质量。为此笔者设计了摩托车制动器性能测控系统,和大多数测控系统一样,该系统需要设计相应的数据库,用于存储试验测试数据以便测试后检索查询,同时解决试验参数较多,且试验过程中数据量大、数据类别繁杂等问题。这就需要创建一个数据库来管理存储的试验数据,以有效地对数
据进行组织,实现更方便、快速的存取和管理。
1 开发环境的搭建
1.1 Labview中访问数据库的形式
Labview不能直接访问数据库[1],但可以通过ADO(ActiveX Data Object)、DAO(Data Access Ob⁃ject)或ADO.NET等方法来与数据库连接[2]。应用中主要有以下几种:1)利用Labview的ActiveX功能,可以调用Microsoft ADO对象,利用SQL语言实现数据库的访问[3],但需要用户对Microsoft ADO及SQL语言有较深的了解。2)通过第三方开发的免费工具包LabSQL访问[4]。LabSQL利用Microsoft ADO及SQL语言来完成数据库访问[5]。3)利用其他语言间接访问,如Visual C + +编写DLL程序访问数据库[6],再利用Labview所带的DLL接口访问该程序,这样可实现间接访问数据库,但工作量太大[7]。4)利用NI公司的附加工具包中的数据库和连接工具包(Database Connectivity Toolkit)直接对数据库进行访问[8],提供的范例较多,易学易用,开发简单;可节省开发时间,提高工作效率,尤其对于数据库访问中涉及到的数据存取操作非常便捷[9]。
NI公司开发的Labview数据库连接工具包提供了一套简单、易用的数据库操作工具,使开发人员不但可以进行一般的数据操作,还可以完成更高级的数据库任务。概括来说,主要包括以下几个功能:1)无需进行SQL编程,就可执行表的创建或数据记录的查询、插入、更改以及删除等诸多常用操作;2)提供与本地或远程常见数据库直接交互操作的能力;3)提供完整的SQL功能,使开发者可以在程序中实现高级的数据库功能;4)可以使用ADO技术操作大多数常用数据库的功能;5)较强的移植性。综上所述,本文中选择Labview数据库连接工具包来开发数据库。
1.2 Access数据库及报表生成工具
Labview中常用的3种数据库为Access、SQL Server和Oracle。其中Access数据库是由微软发布的运行环境简单的小型关系型数据库,融合了微软Jet数据库引擎(Microsoft Jet Database Engine)和图形用户界面2项特点。其特征是按关系数据模型组织数据库,以其结构简单、理论基础坚实、数据独立性高以及提供非过程性语言等优点而被广泛应用。Access数据库存储容量有限,但其数据存储量完全满足了摩托车制动器性能测试系统的需求,故选用Access数据库作为该测试系统的数据库。
NI公司开发的Labview报表生成工具包(Re⁃port Generation Toolkit)是Labview中一个专用的功能模块,可以很方便地生成Microsoft Office支持的报表,是最通用的报表生成方法。本文中先制定好Excel模板,再利用Labview报表生成工具包调用模板即可快速开发出简洁、专业的报表。
2 摩托车制动器性能测试系统简介
系统总体设计框图如图1所示。摩托车制动器性能测控系统由硬件和软件组成。硬件部分主要包括惯量模拟系统,制动力操纵系统以及由温度、转速、力矩、压力等传感器组成的数据采集系统,数据采集系统将采集到的传感器信号通过数据采集卡传输到计算机。软件部分控制硬件各执行部件的动作,并将制动器制动后数据采集系统采集到的数据进行计算,按国家标准《摩托车和轻便摩托车制动器台架试验方法》计算出其平均减速度、管路压力、制动力矩、制动初速度、制动器衬片温度,通过计算机显示出来,并将测试数据按照相应的关系导入数据库,再进行数据检索生成试验报表,最后通过打印机输出打印试验报告。
图1 系统总体设计框图
数据库存储的数据为试验管理参数、试验参数、试验动态管理参数、试验测试数据。其中试验管理参数包含检索需要的数据(如试验日期、生产厂家、测试员、试验编号等),动态管理参数可以记录试验表总共打印的次数,试验测试数据并不是硬件采集的测试数据,而是经过Labview测试系统计算后的试验结果数据。当测试人员需要查询历史数据时,在查询历史数据界面按照输入的检索条件任意选择一个或多个检索数据并显示在界面上,确定无误后生成打印试验报表。为防止数据库数据量过大,导致数据无法存储,或消耗服务器过多内存,在每次试验之后都检查数据库容量是否大于设定值,若大于设定值则将最早存入的数据删除,并压缩修复数据库。
3 测试系统数据库创建
3.1 Labview数据库工具包访问数据库
首先安装Labview数据库连接工具包,然后在Microsoft Office里建立所需的数据库文件,将其命名为“数据.mdb”,并和主VI保存在同一目录中。操作数据库的前提是已经建立到数据源的连接,只有在建立到数据库的连接后,才能对其中的数据进行各种操作。在Labview数据库程序设计过程中,可以基于ODBC或ADO来访问数据库,ODBC标准通过DSN(Data Source Names)连接数据库,ADO则使用UDL(Universal Data Links)连接数据库。Lab⁃view数据库连接工具包中的“DB Tools Open Con⁃nection”VI支持各种数据库连接方法。
在建立与数据库连接的过程中,常会出现2个问题:1)当数据库文件被移动,会因为文件路径的改变而导致访问出错。这里采用动态组合字符串的方式来连接数据库,可以有效解决上述问题。程序使用代码以VI自身所在位置为参考,自动获取数据库文件保存的路径,并将该路径与其他连接数据库的信息字符串组合在一起,构成完整的数据库信息后传递给“DB Tools Open Connection”VI,实现数据库连接。源程序中动态链接数据库程序框图如图2 a所示。2)程序打包成可执行文件时,可能产生一个不合法的路径,会导致打包后的程序无法调用数据库文件。这是由于Labview在开发阶段和运行阶段组合路径方法不同,运行阶段需要多加一个获取目录函数。程序使用应用程序的App. Kind属性判断条件程序当前是处于开发阶段还是打包后运行阶段并根据不同情况组合路径。应用程序中动态链接数据库程序框图如图2 b所示。
建立好与数据库的连接之后可以按照下列步骤操作Access数据库:1)利用DB Tools Insert.vi、DB Tools Select.vi、DB Tools Update.vi以及DB Tools Delete.vi完成相应数据库的添加、查询、删除和更新等操作;2)利用DB Connection Close.vi关闭与数据库之间的连接。
图2 动态链接数据库程序框图
3.2数据库中数据表的关系
摩托车制动器性能测试共包含11个测试项目,在试验结束后需生成11个不同的报表。每个报表里包含有部分公共数据和随试验条件变化的不同数据。如试验管理参数、试验参数在同一个制动器试验中每个报表都有相同的数据。而每项试验各自的试验结果数据,以及每次打印之后都要更新记录打印批次的动态管理参数都会发生变化。而测试系统需要保留一定量的历史数据,这就必须要求数据库有足够的存储空间。为了充分利用存储空间,同时又避免公共数据的重复录入,为此,在设计数据表时应将公共数据和各项试验的结果数据存储在不同的表格当中,并通过编辑关系将各表格关联起来。本文中设计的数据库表格通过两级关联,一是将试验管理参数、试验参数、动态管理参数通过“试验日期”关联;二是将动态管理参数、试验数据结果通过“试验项目”关联。关联后,每次试验存入管理参数时,系统自动生成一次时间,每次试验自动生成的时间都精确到秒,且每次存入的最小间隔设置为1 s。这样就保证了存入数据的准确性,不会和其他试验数据重复,且每个数据表格关联之后都可以唯一的检索到到所有试验数据,保证了试验数据的完整性,方便测试人选查询历史数据。同时在数据库维护时,只需删除管理参数,相应的关联数据(试验参数、动态管理参数、各项试验结果)都会自动删除,极大地节省了系统运行时所占用的资源。本文中所设计的数据库中数据表关系图如图3所示。
3.3试验数据存入数据库
根据数据库数据表关系的设计,在每次试验结束时,都将试验数据存入数据库,其流程图如图4所示。首先由系统自动生成测试时间,并显示当前时间,由试验员手动输入其他管理参数,当确定无误后按“确定”按钮即可将管理参数存入数据库。然后其他表格存入参数时,所存入的时间是通过运用“当前时间局部变量”输入,确保和管理参数中的时间一致。当所有试验结果数据都存入数据库时,系统弹出试验结果表格,并提示测试员是否打印,若选择打印,程序同样运用“时间局部变量”导出刚才试验中所有表格中的数据。通过之前的数据表关系设计,可以知道这里提取的数据都是同一次试验的数据,保证了试验数据的准确性。
图3 数据库中数据表关系
图4 试验数据存入数据库流程图
以存入管理参数为例详细介绍数据存入过程。先调用DB Tools Open Connection.vi建立与数据库之间的连接;然后调用DB Tools Insert Data.vi向数据库中存入数据,对应表格名“试验管理参数”,表格列信息对应了表中所有字段的名字、字符格式、大小、是否键入空值等信息;在数据出入端,采用while语句每1 000 ms循环一次,将所有管理参数捆绑成簇,当测试员输入管理参数,并按下确定按钮后,即可将之前自动生成的试验日期与手动输入的试验管理参数存入数据库中;最后调用DB Tools Close Connection.vi断开与数据库的连接,即完成了一次管理参数数据存入,如图5 a所示,在向其他表中存入数据时,将存入管理参数时创建的“试验日期”局部变量连同其他数据存入对应表中,建立各表数据的对应关系,其他过程和存入管理参数类似,如图5 b所示。
图5 存入管理参数程序框图
图6 实验数据表前面板
打印报表时,将保存的所有数据提取出来显示在前面板中,如图6所示。程序采取每制动一次及存储一次试验数据的方式存入数据,当制动次数达到设定值时,结束存储试验数据子程序,再将本次试验同一试验项目的所有试验数据提取出来,并显示在前面板上。根据局部变量“试验日期”索引出试验管理参数,再以同样的方式索引出试验参数,然后根据2个局部变量“试验日期”和“试验项目”依次索引出动态管理参数表以及对应试验项目表中的数据。其中在读出动态管理参数之前应将“打印次数”字段所保存的数据加1,以更新打印次数,再读出动态管理参数。
3.4查询历史数据
历史数据查询流程如图7所示。在程序设计中笔者设计了4个查询条件:试验日期范围、试验员、生产厂家以及制动器编号,如图8所示,可根据4个条件中的一种或多种检索数据。然后程序将满足条件的所有记录显示在前面板中,试验员选择要打印的记录,以及表格(可打印全部表格,也可只打印单项试验表格),然后再将检索数据导出生成报表并打印。
3.5报表生成
图7 查询历史数据流程图
图8 查询历史数据前面板
程序利用Labview Report Generation Toolkit for Microsoft Office模块实现Excel报表生成,报表所包含内容符合汽车行业标准QC/T654—2005。先调用New Report.vi建立新的报表,类型设置为Excel,这里采用调用模板的方式来生成Excel报表,和动态建立数据库连接一样,所以在模板输入端也要运用动态提取模板存取路径的方式来提取模板存放路径;再调用Excel Easy Text.vi来写入试验文本数据,字体采用默认字体可以不用设置,位置由Excel单元格名称决定,即在“Name”端输入插入点的单元格名称,就会在Excel模板中对应的单元格中插入对应的试验数据;再调用Excel Easy Title.vi设置单元格的内容、位置及字体,这里位置也由Excel单元格名称决定;再利用Append Table to Report.vi插入试验结果数据,试验结果数据为2维数组,在Ex⁃cel模板中选定区域并编辑单元格名称,试验结果数据即可按次序写入到Excel表格对应位置中;再调用Save Report to File.vi和Print Report.vi保存和打印数据,设置为选择结构,试验员可选择是否保存数据,采用弹出窗口的方式提示选择可用打印机;最后可调用Excel Bring to Front.vi将Excel文件置于顶层,调用Dispose Report.vi关闭文件。
3.6数据库维护
因Access定位于小型数据库,其存储容量有限,一般Access数据库达到50 M左右的时候性能会急剧下降。为此需要对数据库进行维护,要求程序自动删除陈旧试验数据,以保持Access数据库的存取性能。
试验每一条记录大约占5 kB,笔者设计数据库的要求保存3 000条历史记录,存储总量约为15 M,能够保证数据库的存取性能。每次测试试验做完最后一项试验时,程序都会自动调用数据库维护子程序。程序开始时读取数据库中试验管理参数记录条数,当记录大于3 000条时,程序就会自动删除最早存入的一条数据,即第1条,因数据库设计时,其他表和试验管理参数是级联删除关系,所以其他表中同一时间的记录都会被自动删除。删除记录之后,数据库文件的大小并没有减小,因为数据在使用一段时间之后会出现因数据删除造成数据库空闲空间太多的情况,需要减少分配给数据库文件和事物日志文件的磁盘空间,以免浪费磁盘空间,调用ADO扩展方法Compress Database实现了数据的压缩。之后再查询试验管理参数记录条数,直到记录条数不大于3 000条即可结束程序。压缩数据库程序框图如图9所示。
图9 压缩数据库程序框图
4 结论
通过Labview数据库连接工具包实现了对Ac⁃cess数据库的访问;设计了用于摩托车制动器系能测控系统的数据库数据表之间的关系,确保了数据存取的准确性;完成了测试数据的存储与按条件查询操作,将该方法运用到摩托车制动器性能测控系统中。经实践证明:该方法使用方便、编程效率高;运用Labview Report Generation Toolkit for Microsoft Office模块实现Excel报表生成,开发简单、界面专业,对于摩托车制动器性能测试系统中数据量较大、报表结构复杂,其优势明显。
参考文献:
[1]林静,林振宇,郑福仁. LabVIEW虚拟仪器程序设计从入门到精通[M]. 2版.北京:人民邮电出版社,2013: 274-283.
[2]杨高科. LabVIEW虚拟仪器项目开发与管理[M].北京:机械工业出版社,2012:373-403.
[3]高国华,张永忠.在LabVIEW中利用ActiveX技术访问数据库[J].国外电子测量技术,2004(2):15-16,22.
[4]吴松涛,龚佳伟.在LabVIEW中利用LabSQL实现数据库访问[J].国外电子测量技术,2006,25(4)53-56.
[5]罗文辉. LabVIEW中的数据库访问[J].武汉理工大学学报(信息与管理工程版),2006,28(3):13-16.
[6]毕虎,律方成,李燕青,等. LabVIEW中访问数据库几种不同方法[J].微计算机信息,2006,22(1):131 -134.
[7]毕家鑫.后视镜曲率半径测控系统数据库开发[J].武汉理工大学学报(信息与管理工程版),2015,37(3):282-286.
[8]钱思思,朱永生,张优云,等.利用LabVIEW SQL Tool⁃kit对不同类型数据存取操作的方法研究[J].测控技术,2014,33(9):105-109.
[9]谢宽,梁述海,姚斌,等.基于LabVIEW的柴油机状态监控数据库系统[J].微计算机信息,2010(19):84-85.
Database Design of Motorcycle Brake Performance Test and Control System
Hu Jun1,2, Zhong Shaohua1,2
(1. Hubei Key Laboratory of Advanced Technology for Automotive Components, Wuhan University of Technology, Wuhan 430070, China; 2. Hubei Collaborative Innovation Center for Automotive Components Technology, Wuhan University of Technology, Wuhan 430070, China)
Abstract:Based on Labview virtual instrument development platform, by Labview Database Connectivi⁃ty Toolkit and Access 2007, the database of the motorcycle brake performance test and control system was developed. The main functions such as storage, query, update and deletion of the test data were im⁃plemented. By Labview Report Generation Toolkit, the report generation and printing were realized. In view of the problem of take-up disk space after deleting data record of the Access database, the data⁃base compression was achieved by the method of ADO extension.
Key words:Labview; Database Toolkit; brake; Access database
作者简介:胡军(1990-),男,湖北汉川人,硕士,主要从事汽车零部件测试系统方面的研究。E-mail:233231@whut.edu.cn
收稿日期:2015-12-24
doi:10.3969/j.issn.1008-5483.2016.01.011
中图分类号:U483;TP274
文献标识码:A
文章编号:1008-5483(2016)01-0042-06