基于LabVIEW的自动取款机模拟系统.docx
- 文档编号:28554962
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:35
- 大小:817.79KB
基于LabVIEW的自动取款机模拟系统.docx
《基于LabVIEW的自动取款机模拟系统.docx》由会员分享,可在线阅读,更多相关《基于LabVIEW的自动取款机模拟系统.docx(35页珍藏版)》请在冰豆网上搜索。
基于LabVIEW的自动取款机模拟系统
摘要
本自动取款机模拟系统是基于LabVIEW平台设计的对银行取款机功能进行仿真实现的模拟设计。
本系统由主菜单模块,存取款模块,查询余额模块,外汇转换模块,转账汇款模块,打印凭条模块,公交充值模块,修改密码模块组成。
用户可以通过插卡输入密码完成密码验证后登录进入系统选择各种功能。
本系统通过LabSQL工具包实现了系统与数据库控制软件MySQL之间的链接,在得到了数据库的支持后,系统可以为多用户提供服务,并储存各个用户的信息,使得系统的泛用性和安全系数得到了提升。
关键词:
自动取款机模拟系统,LabVIEW,MySQL
Abstract
TheautomaticcashmachinesystemsimulationisbasedontheLabVIEWplatform,whichwasdesignedtosimulatethebankcashmachinefunctions.Thissystemconsistsofmanymodulesincludingadepositandwithdrawalmodule,aforeigncashexchangemodule,areceiptprintingmodule,abuscardchargemoduleandapasswordmodificationmodule.Thebankusercanloginintothesystembyenteringtheirrightpasswordafterenteringtheircard,thenselectthefunctiontheyneeduse.ByusingtheLabSQLtoolkit,thissystemrealizesthelinkingwiththedatabasecontrolsoftwareMySQL.Afterobtainingthedatabasesupport,thesystemcanservesmultipleusersandstoretheirinformationinawell-designeddatabase,whichmeansthesystem’sversatilityandsafetyhasbeenimproved
KeyWords:
automaticcashmachinesystem,LabVIEW,MySQL
1绪论
1.1课题背景
自动取款机系统是银行业务流程,银行业务体系,银行服务环节中十分重要且可以说是必备的系统之一,在整个银行业务中起着承上启下的一种作用。
在如今银行业务已得到广泛普及的情况下,对自动取款机系统的功能要求也变得越来越高,也逐渐趋向于复杂化,多元化,信息一体化,研究和开发一款操作方便,功能齐全,且贴近用户生活需要的自动取款机系统是有必要的。
目前许多银行在业务流程的处理上,仍然使用着手工操作的方式,这种不仅直接导致了业务具体实施过程中存在着效率低下的情况,还消耗了许多不必要的时间,精力,以及人手等资源。
除此之外,由于人类工作往往存在着主观性的干扰,一些对准确性和效率要求十分高的工作,往往无法达到其理想的效果。
而随着科技的发展,这种问题的解决也慢慢变得可行且急迫起来,人们生活水平在提升,高性能高效率的产品也越来越受欢迎,最初的自动取款机系统只能每周取出十英镑的数额,这在现今是无法想象的。
自动取款机系统作为一种智能机器,他的提升与人们的生活息息相关,人们可以直接通过与它的交互,代替手工操作,提升银行工作效率,也可节省用户时间。
我国在80年代末期才开始在深圳出现提款机,现已扩展到全国各地,但凡是有银联标志的银行卡现都可以通用,香港是最早采用自动取款机系统的地区之一,也是最早建立其银行信息网络(银通网络)的地区,部分银行甚至设置了提款限额以及充值缴费,纳税服务等,在步入21世纪后,各金融机构相继发行芯片卡,磁条式卡片也开始停用。
目前我国自动取款机的数量自2000年以来就一24.62%的年增长率高速增长,至2010年已达27.10万台,取代日本成为全球第二大的自动取款机市场。
随着移动互联网的发展,自动取款机系统也面临着更新换代,取款机功能单一,安全系数较低,操作等待时间过长等等问题都已暴露。
LabVIEW自动取款机模拟系统在这些问题上提供了一些解决方案,首先作为一种数据流编程的软件,他的信息传递过程清晰明了,一旦发生故障,即刻就能发现问题并加以解决,很大程度上降低了维护和维修成本,对银行系统维护人员的素质要求也不高。
第二,通过合理设置数据存取的顺序,可以大大节约用户的时间,提升系统运行速率。
第三,通过设置多重密码验证环节,整个系统的安全性也可以得到保障。
除此之外,通过利用计算机本身强大的运算能力,本来需要通过大量的硬件实验以及硬件知识才能进行这种软件开发的过程变得更为简单,一些针对系统功能的改动也无需花费过多时间进行分析,很大程度上降低了成本,加快了开发效率,在节约成本上来看,系统的仿真开发无疑代表了今后主流的软件开发技术。
LabVIEW自动取款机系统的模拟开发研究与实现,不但可以节约大量的时间投入和人员配置,而且对系统的更新,调整也可以通过简单的计算机模拟进行可行性分析,无需对硬件进行多次修改实验,提升了软件开发效率和质量,可形成一个更为灵活,且符合现代软件开发要求的研究开发体系。
LabVIEW自动取款机系统的实现,可有效缓解各银行体系在经费,用户体验,器材方面面临的挑战和压力,能为银行用户提供更多方便而快捷的服务,为银行管理者提供更多的资源盈余。
随着我国金融电子化建设的深入发展和客户对银行金融服务质量的要求逐渐提升,自动取款机在金融行业的应用也越来越广泛,在拉近用户和银行之间的
距离,拓展营业网点,改善用卡环境,提供全天候,全方位的金融服务,降低经营成本,提升服务质量以及综合竞争力等方面上发挥着不可替代的作用[1],但作为一种集计算机技术,网络技术,机电技术,自动控制技术于一体的高技术产品,要完成一系列读卡,上传,校验,检测,查询等复杂动作,自动取款机的任意软硬件故障都会影响其运行效率[2],Labview作为一种具有强大的图形编程能力的开发平台,通过多种自定义控件,可有效地解决这些因技术因素产生的问题,并且在不会产生任何不利结果的情况下对各种改动进行仿真设计和实现,通过虚拟仿真设计,找出各种问题,才能在产品进入市场前做到有的放矢。
现今许多大学,如美国的麻省理工学院,加州伯克利大学,新加坡的南洋理工学院,新加坡国立大学,国内的哈尔滨理工大学,西安电子科技大学,都已经开展了相应的图形编程课程,通过引进美国NI公司的Labview开发平台,在各式各样的系统开发上都取得了一定的成就。
LabVIEW自动取款机模拟系统有下列特点:
1.在计算机模拟环境中能真实的还原取款机系统的各种操作,对正确操作以及错误的使用都会有着相应的系统反馈,通过仿真给予用户真实体验,得到用户反馈后可方便的进行改进。
2.提供给系统开发者修改系统优化银行服务一些参照,也能方便地在维护硬件系统时避免软件故障等问题。
3.在数据的获取,处理和上传方面做到清晰明了,方便对程序的数据处理方式进行更新优化。
4.通过封装相应的程序子vi,银行技术人员可通过方便的调用进行系统安全性的优化提升。
1.2本论文主要研究工作
本文研究对象是基于LabVIEW开发的自动取款机模拟系统,通过应用LabVIEW设计并仿真了多功能自动取款机系统,降低了银行相应业务系统的开发及维护成本,提升了用户体验,弥补了传统自动取款机在现今挑战暴露下的不足之处。
主要做了以下内容:
1.熟练掌握LabVIEW软件的基本理论。
2.完全掌握目前生活中取款机的功能。
3.分析自动取款机的优点与缺陷,针对缺陷改善、研究出具有特色的取款机。
4.针对自己构思的取款机所有的功能,利用LabVIEW软件来实现。
5.对程序进行调试,运行、使取款机功能能够完善。
本文所研究的自动取款机模拟系统充分利用了LabVIEW软件强大的图形编程能力,发挥了其编程环境开放,灵活的优点,解决了传统系统开发过程中在硬件设备,人手,以及时间分配上会遇到的问题,操作简单,用户界面也简单清晰。
本系统完全继承了传统取款机的基本功能,并在此基础上增添了特色功能,更为贴近现今人们的生活需要。
2虚拟仪器
2.1虚拟仪器简介
仪器,在传统意义上往往指的是科学技术上用于实验、计量、观测。
检验。
绘图等工作的器械,在人们的认知中,仪器多是作为实体存在的有一定用途的一套设备或者小型的便携器具,在仪器演变的越来越复杂,应用范围越来越广,使用技术越来越先进的现代社会,一台仪器的购置与维护成本也变得水涨船高,面临着当前实验室以及人们日常生活中越来越复杂的需求的挑战,传统实体化仪器显得力不从心。
于是,将计算机与仪器结合成为了今后许多仪器开发者的一个重要研究方向。
计算机在演算能力上有着巨大的优势,而随着技术发展,这一优势会变得越来越明显,足以支持一些精密实验的模拟,通过在计算机中构建虚拟的仪器,除了可以对传统仪器进行仿真外,一些因硬件困难而无法进行的实验也可以实现了。
区别于嵌入式系统这类将微型计算机装载在仪器上的技术,通过充分利用计算机的资源,虚拟仪器可以实现一些在传统仪器上无法实现的功能[3]。
虚拟仪器VI(即virtualinstrumentation)的概念最早由美国国家仪器公司(NationalInstruments)定义,作为一种在软件上利用模拟的各种高性能模块化的硬件[4],结合高效而灵活的计算机运算与处理能力的技术,它可以帮助开发者完成各种测试,测量以及自动化工作。
用户界面可以通过软件达到真正意义上的完全自定义化,系统集成也通过各式各样的模块化硬件的模拟得已实现。
通过利用高效的软件,模块化的硬件设施以及可用于集成的连接软硬件的平台,虚拟仪器技术的优良性能,高速的开发过程,强大的拓展能力以及出色的集成性等优势得已展现[5]。
2.2虚拟仪器开发平台(LabVIEW)
LabVIEW,即英文laboratoryvirtualinstrumentationengineeringworkbench的缩写,中文译名为实验室虚拟仪器工程平台,由美国国家仪器公司开发,是一款图形化程序编译平台[6]。
早期的LabVIEW是为了对仪器进行自动控制而设计的,如今它已经转变成一种逐渐成熟的高级编程语言[7]。
不同于传统的编程语言,图形化程序使用了一种全新的概念即“数据流”,它打破了传统的软件开发模式以及方法,在对程序进行流程图构思的同时,开发者就可以对程序进行“撰写”。
LabVIEW支持目前大部分的数据类型,数值型、字符型、布尔型等等,许多常用的程序结构也可以通过简单的图形化结构框架来实现,顺序结构,条件结构,选择结构等等,所有通过LabVIEW实现的程序都有着显而易见的优势,直观简洁,浅显易懂,可读性极高。
LabVIEW编程语言,也被称为G语言,由于LabVIEW采用数据流编程的性质,G语言成为了一种专为数据流编程而生的语言[8]。
程序员通过绘制导线,连接不同的功能触发节点,通过图形化而展现出来的程序框图结构会决定程序如何执行,这些程序框图,即传统意义上被称为源代码的部分。
所有的变量和数据都由导线来传递,当所有的输入数据都准备完毕,节点便会触发执行程序。
作为天生就具有并行执行能力的编程语言,G语言在面对同时使用多个节点,完成多种功能实现的情况显得游刃有余,它内置的调度算法不仅可以自动使用多处理器和多线程硬件,只要节点可用,跨平台复用线程也不再话下。
LabVIEW的程序/子程序一般被称为虚拟仪器(VI),每个VI都具有几个重要的组成部分,程序框图,前面板,以及图标/连接器[9]。
程序框图在之前已经简单介绍过,即传统意义上源代码的存放处,开发者通过编写程序框图来设计和开发程序。
前面板即传统程序开发中所谓的用户界面,在LabVIEW程序的开发过程中前面板一般作为数据获取的用户界面,开发者通过LabVIEW自带的控件来方便地获取各种程序所需的数据,可以简单的将其理解为程序的接口。
每个功能完整可编译的虚拟仪器(VI)可以通过图标/连接器作为一个节点放到另外一个VI程序框图中进行调用[10],这也意味着,任何大型系统或程序的每个完备的功能模块都可以进行单独的测试。
图形化的编程方法允许除程序员以外的程序使用者,或程序管理者通过调用,放置已经过一定虚拟化处理的VI的方法来生成自己所需要的程序,进而来控制他们相对更为熟悉的实验室仪器和设备。
在LabVIEW提供的编程平台和环境中,通过借助软件提供的大量例程和文档,开发者创建小型应用程序所需要的工作量得已削减,过程也得以简化。
虽然这是此软件在程序编程上可提供的好的一方面,但在另一方面,由于低估编写高质量的“G”语言所需的专业技能知识而带来的一定的危险性会让编写程序所需要注意的细节被忽略。
任何复杂算法或大规模程序的开发中都要注意的一点是,程序员需要对使用LabVIEW开发软件时运用的特殊的语法具有广泛的了解,虽在理解深度上门槛较低,但一定要通晓LabVIEW内存管理的拓扑结构。
为此,最新的LabVIEW开发平台不仅提供了创建独立应用程序的可能性,用户还可以创建分布式应用,除此之外,用户还可以通过客户机/服务器模式进行通信。
G语言天生具有并行性特性,因此,这些功能很容易实现[11]。
3系统总体设计
3.1设计思路
经过前期的实地调查,发现目前市面上正在使用的自动取款机系统一般包括了密码验证,取款,现金存款以及查询卡上余额等基本的功能。
于是在设计初期主要考虑了上述几个功能的实现,用户插卡后输入密码通过密码验证进入主界面,在主界面上进行存取款,退卡等功能的选择。
此系统同样需要连接数据库以取得相应的数据支持,本系统的数据库软件初步选定为MySQL。
图3-1为完成初步功能设计后所得出的系统流程图。
图3-1初步设计系统流程图
在完成基本功能的设计之后,通过对更多的自动取款机样本收集并进行了分析研究,发现目前多数的多功能自动取款机在完成其基本功能(存取款,查询余额)的同时还搭载了许多附加的自助服务系统,以方便人们的日常生活需要,如支票存款,更改密码,缴纳生活费用(公交充值,手机充值等),转账汇款等功能。
在此之后,本人意识到当前设计中所涵盖的功能过于简陋,不能满足当前人们生活的实际需要。
通过和老师沟通,决定再添加打印凭条,外汇转换,公交充值,转账汇款,修改密码和公交充值等功能,进一步完善和提升系统的完整性和便利性。
3.2功能模块设计
3.2.1存取款功能设计
存取款功能为自动取款机最基本的功能之一,实现起来较为简单,本人在设计此功能时考虑到存款,取款二者操作需要相应的数据交换,于是便考虑将此功能的核心数据“余额”设置为了一个全局变量,并从数据库的相应表中调取对应的用户余额数据。
在存款功能中需要实现对“余额”数据的更新操作,同时,在取款功能中除了需要对其更新,还需要在相应的判断结构里将其作为判断条件来调用,也是该设计的难点。
3.2.2密码验证功能设计
本设计中的密码验证在初期设计时就将其设置为没有单独的功能选项,即不作为一个单独的功能来实现,它基本上是作为一个过渡模块使用的。
考虑到某些功能(比如取款)进行实现前需要对用户的财产安全进行保护以保证其安全性,二次甚至三次密码验证就显得尤为重要。
此功能设计的难点在于如何被验证的密码的实时有效性,并且在验证时还需要对密码格式,出错次数等作要求,进一步提升系统的总体安全系数。
3.2.3密码修改功能设计
在如今的高新技术盛行的时代,财产安全如何保护成为了公众的关注焦点,为了防止个人私密信息在泄露后对自身的财产安全产生威胁,本系统在针对“密码”数据的有效性,实时性,以及可修改性,设计了该功能,目的是为了在密码泄漏时,用户可以立即自行修改密码,保证财产安全,同样的,本功能中的密码格式也有相应的要求。
3.2.4查询余额
作为自动取款机系统的最常见的几种功能之一,查询余额在设计初期并没有作为一个单独的功能来考虑,只是通过存款,取款,转账等部分利用一个显示控件显示而已,后期考虑到本系统搭载了外汇转换等功能,便将其单独作为一个功能模块来设计,调取各种外汇储备数据和余额数据并加以显示,使系统更为完整。
3.2.5转账汇款
考虑到现有的自动取款机系统一般都搭载了转账功能,为此本系统中不仅设计了一个转账汇款的功能,还设计了一个异行用户的界面以及相应系统,并且会搭载查询余额,外汇汇率查询等简单功能,通过转账功能,本行用户可以像其他用户进行汇款,考虑到用户的财产安全需要保护,在进入转账功能界面前,设置了二次密码验证,并对转账上限做了要求,默认额度为一万元,可通过修改相应变量来调整额度。
本功能的难点是如何在多种条件限制下,如转账额度,余额量,实时输入的密码正确与否,如何合理的安排判断顺序,并设计好所有正确操作与错误操作的系统反馈,是重中之重。
3.2.6外汇转换
考虑到现在,人们出国旅游的成本越来越低以及旅游娱乐越来越普及,外汇转换功能可以更方便人们做好旅游准备,于是在取款机系统里添加了外汇转换功能的设计,通过实时汇率的转换来讲卡内人民币转换为不同的外汇储备,方便人们使用。
为了安全,此功能同样有额度上限控制(5000元),可通过全局变量“兑换额度”来对当前已兑换的金额进行控制,目前已经搭载了日元,美元,韩元以及澳元四种外汇兑换窗口。
3.2.7公交充值
为了方便用户生活需要,本系统中还设计了对公交卡的便捷充值功能,能直接利用银行卡的余额来对绑定的公交卡进行充值,并且能对用户所持有的公交卡余额进行查询。
3.2.8数据库支持
本系统在设计时准备使用MySql软件作为数据支持,存储用户的账号密码以及余额,外汇储备数据,系统理论上可以支持多个用户使用,通过硬件识别匹配不同的账号并匹配不同的密码即可,但由于时间问题,本设计没有硬件识别模块的设计与实现,所以预计只是实现单个用户的界面设计及演示。
4软件设计原理
4.1vi层次结构
图4-1为程序总体vi层次结构,主要展示各个模块之间的联系与数据流传递方向等信息。
图4-1程序vi层次结构
4.2主菜单模块
主菜单是用户进行功能选择的界面,在使用本系统时,用户通过插卡,输入账户密码通过认证后即可进入主菜单界面,此功能由密码验证功能模块实现。
用户在主菜单界面可以通过点击不同的按钮选择系统功能,此部分较为简单,通过循环结构和条件结构的嵌套,对相应的布尔控件的开关状态进行判断即可进入不同的功能子vi。
图4-2为“主菜单”vi的程序框图。
图4-2主菜单程序框图
由于某些模块的安全性要求,在进入这些模块的界面前需要再次进行密码验证,如“转账”子vi和“取款”子vi,他们在调用前需要对实时密码进行再次验证,并伴随着相应的对话框提示,故在主菜单界面点击取款和转账按钮进入的是相应的密码验证界面而不是直接进入相应的用户操作界面。
打印凭条功能和退卡功能由于实现起来较为简单,前者只需要调用相应的全局变量数据并通过连接字符串控件进行字符连接并通过对话框模拟打印凭条将统计的相应数据操作显示出来即可,而后者只需合理设置程序执行的顺序,最后跳转至退卡界面即可,所以系统在设计时便不将二者作为两个单独的子vi来设计和调用,而是直接将其功能模块放置在主菜单程序里实现。
4.3存款功能模块
存款是自动取款机系统的基本功能之一,本系统在存款前首先会将从数据库中调用的余额数据传输到一个全局变量“余额”中暂存,然后在存款模块中调用相应的全局变量并将它的数据放入一个命名为“余额”的局部变量中,方便取用和更新操作,存款模块中还设置了一个“存款量”的全局变量和局部变量,方便之后在打印凭条功能中调用。
全局变量和局部变量主要是作为传递数据的工具存在于labview中,由于labview本身的特质,作为一种使用数据流编程的的软件,多会使用连线来传递数据。
但在设计较为复杂的程序时,往往连线会很困难,这时就需要用到局部变量,除此之外,有些程序的实现既要对同一种数据写入,又需要对他读出,在数据流编程这近乎不可能,所以才会需要全局变量和局部变量,全局变量主要针对不同vi程序之间的通信。
在主菜单界面上点击“存款”的按钮即可进入“存款”的子vi,用户通过在存款界面的“请输入存款金额”处输入存款额,点击确定后,系统便会将其输入的数值加上“余额”变量的数值(数值由数据库中的相应数据给定或由“输入金额”子vi设置)并将所得出的结果数据传递到“余额”变量中,同时将所存金额的数值传递给一开始设置的“存款量”的全局变量中,接着主界面会跳出“存款成功”的对话框予用户以提示。
此模块通过设置相应的全局变量来传递从数据库中取出的数据,再将余额数据传递至一个局部变量“余额”中,这样在进行余额是否充足的判断时,可以保证数据的准确性,同时不会立即对数据库中数据进行更改,缩短了系统运行时间,在之后再将更改后的数据传递至全局变量,在之后再进行数据库的更新操作。
图4-3为“存款”vi的程序框图
图4-3存款模块程序框图
4.4取款功能模块
取款功能同样是自动取款机系统的基本功能之一,本系统的取款功能在调用相应的主体程序之前,考虑到用户的财产安全需要保护,首先需要进入二次密码验证模块来保证系统整体的安全性。
只有用户在第二次输入正确的实时密码并通过验证后方能进入取款界面。
在用户进入取款界面后,系统首先会将存储着实时余额数据的全局变量的数值传递给局部变量“余额”,方便进行接下来的条件判断以及相应的数据更新等操作,在此功能模块中系统还设置了一个“取款量”的全局变量,方便之后系统的打印凭条功能对其进行调用。
在“取款”子vi的用户界面上,有数个显示着不同数值的布尔控件,用户可以通过点击标记有取款数值的不同按钮来取用相应数值的金额,也可以通过输入自定义金额来控制自己的取款金额,目前取款界面上标记有100,300,500,800,以及1000的固定取款金额的按钮,在点击相应按钮后,系统首先会进行用户当前余额是否足够的判断,若用户账户内的余额充足,系统便会从“余额”变量里减去相应数值,同时“取款量”会增加同样大小的数值,并在用户界面弹出“取款成功”的对话框予以提示。
若余额不足则会弹出“余额不足”的对话框。
图4-4为取款子vi的部分程序框图。
图4-4取款子vi部分程序框图
4.5密码验证模块
作为整个系统的安全性保障,密码验证模块显得十分重要,系统在进入用户操作界面前会先进行数据库的连接并从相应的表中取出系统所需的用户数据即用户密码,再经由系统处理。
本模块需要使用的数据是登陆的用户账号所对应的密码,首先系统会在用户输入密码,点击确定按钮后对密码格式进行判断(6位数字密码),然后再将用户输入的密码与数据库中所对应的密码进行字符比对,在这需要注意的是,从数据库中调用的用户密码数据是暂存在一个全局变量“密码”中的,所以在本模块进行字符串比对时调用的是一个全局变量的子vi,本模块还会通过一个局部变量“密码出错次数”来对密码出错次数进行统计,若密码出错次数超过三次,则终止系统运行并弹出“对不起,您的银行卡被没收,不能再进行以下操作”的对话框,若输入错误密码后错误次数未超过三次,则会弹出“您的密码错误,请重新输入”的对话框提示,而密码格式错误也会有相应的对话框提示,正常操作的情况下用户在输入正确密码后即可进入主菜单界面,这里通过四个条件结构的嵌套来实现。
图4-5为密码验证模块的程序框图。
图4-5密码验证子vi程序框图
4.6密码修改模
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 LabVIEW 自动 取款 模拟 系统