基于LabVIEW的数据库管理系统开发
2022-06-09徐霄唯张志华
徐霄唯,张志华,金 添,李 刚
基于LabVIEW的数据库管理系统开发
徐霄唯1,张志华2,金 添3,李 刚1
(1.辽宁工业大学 汽车与交通工程学院,辽宁 锦州 121001;2.莱茵动力(锦州)有限公司,辽宁 锦州 121007;3.大连海事大学 信息科学技术学院,辽宁 大连 116026)
针对工程上各种测试上位机系统的测试数据记录、收集、调取、存储不够完善的问题,应用LabVIEW软件和MySQL软件开发了一套数据库管理系统。用户可根据自身需求,在该系统中建立属于自己的账户,进行新建表格、打开已有表格、删除废弃表格等数据库操作,对数据库内数据进行记录、修改、调取、存储、折线图显示。该系统界面简洁明了,简单易操作,可作为企业、个人、商户的信息管理系统,满足工程应用要求。
LabVIEW;MySQL数据库;数据库管理
对于测试用试验台,需要对被测件进行大量的实验测试,测出的数据通常存储在一个个表格中,当存储了大量的数据后无论是对数据的查找、修改还是分析工作都会造成大量的困扰,这时就需要数据库管理系统[1]。本文应用LabVIEW软件可视化集成开发环境,基于MySQL数据库管理系统,进行了数据库管理系统开发研究。LabVIEW是美国国家仪器公司Ni创新软件产品,摒弃了晦涩难懂的文本代码,采用图形化编程语言G编写程序,产生的程序是框图的形式。程序界面逻辑清晰,有很多专业的集成控件,实现了“软件就是仪器”的理念[2]。以LabVIEW为核心,采用不同的专用工具包,可以实现不同技术领域的需求[2]。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样既增加了速度,又提高了灵活性。但MySQL需要使用SQL访问数据库的标准化语言[3],为了降低使用难度,论文采用Navicat[4]数据库管理工具对MySQL数据库进行管理[5]。Navicat是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用数据库内数据,且包容性强;它可以用来对本机或远程的MySQL、SQL Server、SQLite、Oracle及PostgreSQL数据库进行管理及开发,有效地降低了对数据库操作者的使用难度。
本文进行数据管理系统开发研究,通过管理系统高效录入、删除、查询、修改数据,直观看出两组数据之间的关系,提高数据处理的速度,增加数据处理灵活性,且操作方法简易。
1 系统功能设计
数据库管理系统的逻辑流程框图,如图1所示。
图1 数据库管理系统的逻辑流程
整个数据库处理系统基于LabVIEW平台开发,分为登录系统和数据处理系统两部分,新用户可以注册属于个人或公司两种属性的账号,相同属性的用户名不可以重复,已注册用户可以根据账号密码直接登录[6]。系统连接MySQL数据库中的多个数据库,其中一个用于存储用户账号密码,做加密处理,其余用于存储用户数据,根据自己的需求新建或者打开已有表格、更改表格内数据。由于MySQL数据库的操作难度系数较大,需要专业的数据库语言,所以采用Navicat数据库管理系统用于操作、查看MySQL数据库内的数据,以降低系统的使用难度。
1.1 系统安全
作为数据库管理系统,最重要的是对于被管理数据的安全性、可靠性有足够的保障。所以应当设计成用户通过账户名和密码登录的系统,这样设计不但能保护系统所保存数据的私密性,而且能保护系统本身,避免没有权限的人恶意破坏程序[7];系统的每个功能模块都由不同的子VI构成,拥有独立的前面板和程序框图,彼此之间相互关联,所以即使某一块功能的程序逻辑出现问题,不会影响大部分功能的使用,且系统所关联的存储数据的数据库是本地数据库,不需要联网,单机即可使用,增加了数据保存的安全性,使系统更加安全可靠。
当打开程序第一步时,只会弹出一个登录/注册界面,不会调用其他程序;当输入的账户名或密码有误时,则登录界面将不会调用后续程序直至登陆成功。用户的账号密码将保存在一个独立的数据库内,只有开发人员有权限查看。
注册时需要填写用户个人真实姓名或公司的名称、用户名、密码和开发人员提供的独一无二的注册序号;每个用户都拥有自己的注册序号,用于系统识别和后期如若用户忘记密码后的账户密码找回。每个账户都有独立的标签,即使用户名或者真实姓名一样也可以轻松分辨,为后续的服务提供保障。
开发者系统中在注册/找回这一模块中可以访问存储账户密码的数据库,通过用户提供的真实姓名进行数据库查询,再根据专属注册序号确定用户的用户名和密码,辅助用户找回账号密码。
1.2 数据处理
当登录成功后可以选择进入数据库或数据采集界面,论文只介绍系统的数据库管理界面。通过数据库管理系统可以打开已有表格、新建表格、删除废弃表格和对表格内数据进行一系列操作等。
当输入想要打开的表格名称时,将会打开已有表格,左侧表格显示控件可以显示出当前数据库已存储的数据,可以用于查看或者参考。右侧曲线图控件可以根据表格内任意两组相关数据生成关系曲线,形象地表达了两组数据之间的联系,方便用于观察测试数据趋势和研究相互影响关系。
若想要新建表格存储数据,则只需要输入表格名称并点击新建表格即可,左侧控件就会显示一个全新的表格。在添加数据功能模块中,可以添加表头,也可以直接在表格控件中添加,但后者这种方法表头并不可以保存至数据库表格内,只适用于数据类型简单的记录。新添加的数据会实时显示在左侧表格控件和右侧曲线图控件内,以便于实时观察。而且根据不同的数据需求,可以设置阈值限制或数据过滤。
如若有废弃的表格,则只需要输入废弃表格的名称,然后点击删除表格即可。需要注意的是此操作不可逆,删掉的表格将被永久删除,表格内的数据无法找回。
数据库系统内添加数据模块则是按照名称将想要添加的数据依次填好即可,输入框数量和前面的数据名称可随时按照使用者需求更改。保证针对不同的情况下使用,但如果是单纯作为上位机数据库管理,则一般存储的数据类型都是固定的,不需要做二次更改。
修改数据模块是根据数据所在序号作为横坐标,数据所在列数作为纵坐标对数据进行精准定位,将表格内原内容更改为用户所输入的修改内容,用于数据的精准修改。
删除行模块是进行批量删除的一种快捷删除方式,根据你所输入的想要删除的行的序号即可将一行数据全部删除。删除操作也是不可逆的。
2 系统功能实现
2.1 注册登录系统代码实现
注册界面采用Labsql控件将输入变量依次写入MySQL中账号密码数据库表格内并进行保存,如图2~图4所示。
图2 注册界面前面板
图3 数据库信息存储
图4 注册界面代码
图5为登录界面前显示面板。程序整体嵌套在一个While循环里,保证程序能一直运行,再嵌套一个条件结构,条件结构的触发条件是当登录按钮的值发生改变,也就是点击一次登录按钮时内部程序将被触发。内部有一个逻辑与判定结构,当两次判定都为真时则弹出判定条件为真的条件结构,调用其中子VI,如果有一项判定不为真,则弹出判定条件为假的条件结构,调用其中子VI。
图5 登陆界面前面板
图6~图8所示为程序中2个账户。程序前面板输入框创建变量并转换为读取和数据库存储账户名创建变量并转换为读取。用For循环循环比较这两个值,确定输入框内账户名在数据库中,密码验证也用此方法,但是不同的是密码有循环条件,它的循环次数是固定的,为账户的循环次数。通俗地说就是查询一个只有两列的Excel表格,你在第几行找到了这个账户名,相应地就在后面那一列去查找相应行所对应的密码。两次判定结束后若逻辑与输出为真,则跳出判定条件为真的条件结构中的子VI,这个子VI为选择功能面板,可以选择进入数据库处理系统或者是信号采集系统。若逻辑与输出为假则跳出对话框提示用户登录失败重新登录。
图6 登录界面代码
图7 登录成功前面板
图8 登录失败前面板
当用户忘记密码时点击账号找回按钮,则弹出对话框显示开发人员联系方式联系工作人员找回密码,开发人员可以根据用户提供的注册序号等相关信息帮助用户找回密码,如图9和图10所示。
图9 忘记密码前面板和代码
2.2 数据处理系统代码实现
当登陆成功后,选择进入数据库后则会弹出数据库管理系统,如图11所示。
图11 数据库处理系统前面板
通过LabVIEW中Database控件下的DB Tools Create Table.vi控件新建表格,并将表格写入MySQL数据库中,表格名称为输入框输入变量,如图12所示。
打开表格是通过Database控件中DB Tools Open Connection.vi控件链接MySQL数据库并通过表格控件将MySQL数据库内选中的表格显示出来,曲线图控件通过指定表格内任意两行数据生成线性关系图,如图13~图15所示为打开nedc表格并显示速度与时间的关系。
图12 新建表格代码
图13 链接数据库代码
图14 曲线图显示代码
图15 打开指定表格前面板
删除表格是通过LabVIEW中Database控件下DB Tools Drop Table.vi实现,将输入框内名称的表格在MySQL数据库内进行删除,如图16所示。
图16 删除表格代码
添加数据是通过LabVIEW中Database控件下DB Tools Insert Data.vi实现,将要添加的表格数据写入MySQL数据库表格中,如图17、图18所示。
图17 添加表格数据代码
修改数据通过Labsql工具包内ADO Set Field Value.vi进行实现[8-9],通过输入表格名、次序确定数据所在行数,再通过列数进行精准修改数据,如图19、图20所示。
图18 添加表格数据前面板
图19 修改表格数据代码
图20 修改表格数据前面板
删除行功能通过Database控件中DB Tools Execute Query.vi和DB Tools Free Object.vi控件组合实现,通过表名和次序精准定位被删除行,如图21、图22所示。
图21 删除行数据代码
图22 删除行数据前面板
实时刷新功能的实现是用到LabVIEW中的平铺式顺序结构,当每个按钮值发生改变,对数据库内数据进行更改后,将会从新载入表格控件和曲线图控件中的数据,实现数据实时刷新[10],如图23所示。
图23 实时刷新程序图
数据过滤与阈值限制,本文以国标GB/T 18386—2017电动车能量消耗率与续航里程的测试方法为例,如图24所示。
图24 基本市区循环
当基于以上标准进行数据存储时,通过对表格控件的字符串数组进行索引第四列、第五列和第七列对速度的变化量进行求导得出加速度与第三列数据索引进行比较,精度为±0.01,当有数据超出范围或误差过大将自动滤除,通过式(1)和车身重量、轮胎半径可以计算出电机所需扭矩,如图25、图26所示。
3 结论
(1)选择LabVIEW进行系统开发使得操作界面简单明了,相对于MySQL数据库软件来说对操作人员的技术门槛要求很低,给出的系统开发方法实现了账号独立,数据库独立,数据存储高安全性,添加、修改、删除等数据处理等实用功能,节省大量的数据处理时间。
图26 电机扭矩计算程序框图
(2)系统由多个VI嵌套而成,既相互关联又相互独立,既保证了系统的安全性也保证了系统的稳定性,可以嵌套在任何一个上位机系统内,而且与原系统不发生干扰,提高了产品数据保密程度。
[1] 张诗健, 李卫民. 基于VB的矿井提升机数据库管理系统的设计与研究[J]. 机械工程师, 2015(1): 152-153.
[2] 陈树学, 刘萱. LabVIEW宝典[M]. 北京: 电子工业出版社, 2011: 460-473.
[3] 王晓燕. MySQL查询的基本原则[J]. 办公自动化, 2021, 26(15): 61-62, 47.
[4] Ozar G. MySQL management and administration with Navicat[M]. Birmingham: Packt Publishing Ltd., 2012.
[5] 吴苇苇. 基于Access的卫生统计数据采集系统设计[J]. 微型电脑应用, 2021, 37(6): 143-145, 149.
[6] 刘世杰, 王雅萍, 朱目成, 等. 基于LabVIEW平台的数据采集与处理系统[J]. 煤矿机械, 2010, 31(1): 155-158.
[7] 于永芳, 王毓顺, 许中运, 等. 基于LabVIEW的登录界面设计[C]. 济南市人民政府, 2017中国自动化大会(CAC2017)暨国际智能制造创新大会(CIMIC2017)论文集: 中国自动化学会, 2017: 5.
[8] 张国喜, 韩国福, 冯德妍, 等. 基于ADO技术实现LabVIEW动态访问MySQL数据库[J]. 青海师范大学学报: 自然科学版, 2019, 35(3): 31-35, 40.
[9] 文皓, 南金瑞, 杨世文, 等. LabVIEW与数据库ADO连接方法的补充研究[J]. 化工自动化及仪表, 2011, 38(10): 1230-1231, 1257.
[10] 王云涛, 叶华, 陈广博. 一种基于LabVIEW平台的数据处理系统: CN102495951A[P]. 2012-06-13.
Development of Database Management System Based on LabVIEW
XU Xiao-wei1, ZHANG Zhi-hua2, JIN Tian3, LI Gang1
(1. School of Automobile and Traffic Engineering, Liaoning University of Technology, Jinzhou 121001, China; 2. RHIVA Power (Jinzhou) Co., Ltd., Jinzhou 121007, China; 3.School of Information Science and Technology, Dalian Maritime University, Dalian 116026, China)
Aiming at the problem of insufficient test data recording, collection, retrieval, and storage of various test host computer systems in the project, a database management system has been developed. LabVIEW software is used for the entire system development, and MySQL software for database management. Users can create their own accounts in the system to perform database operations such as creating new tables, opening existing tables, deleting discarded tables, etc., according to their own needs, and record, modify, retrieve, store, and display the data in the database. The interface is simple, clear, and easy to operate. The system can be used as an information management system for enterprises, individuals, and merchants, and meets engineering application requirements.
LabVIEW; MySQL database; database management
10.15916/j.issn1674-3261.2022.02.003
TP392;TN948.61
A
1674-3261(2022)02-0082-06
2021-06-17
国家自然科学基金面上项目(51675257);辽宁省重大科技专项(2020H1/10100021)
徐霄唯(1997-),男,辽宁盘锦人,硕士生。
李 刚(1979-),男,辽宁朝阳人,教授,博士。
责任编辑:陈 明