1、北华航天工业学院毕业论文I北华航天工业学院成人教育学院毕业设计(论文)题目计算机汽车故障检测系统专业电子信息工程层次学生班号学号指导教师答辩日期北华航天工业学院北华航天工业学院毕业论文II北华航天工业学院成人教育毕业设计(论文)评语姓名班号学号专业层次毕业设计(论文)题目计算机汽车故障检测系统工作起止日期_2012_年5_月_27_日起2012年_10月20_日止指导教师对毕业设计(论文)进行情况、完成质量的评价意见指导教师签字指导教师职称评阅人评阅意见评阅教师签字评阅教师职称答辩委员会评语根据毕业设计(论文)的材料和学生的答辩情况,答辩委员会作出如下评定学生毕业设计(论文)答辩成绩评定为对毕
2、业设计(论文)的特殊评语答辩委员会主任(签字)职称答辩委员会副主任(签字)答辩委员会委员(签字)年月日北华航天工业学院毕业论文III北华航天工业学院成人教育毕业设计(论文)任务书姓名班号层次学号专业任务起止日期2012年5月27日至2012年10月20日毕业设计(论文)题目计算机汽车故障检测系统立题的目的和意义现在市场上的国外诊断系统不仅价格昂贵,维修成本高不便普及,而且无法实现对厂家所有车型诊断的支持。国内有专业生产诊断仪的厂家,但是其功能有限,各数据流的读取经常有很大偏差,会对维修人员产生误导,影响车辆的维修工作。本诊断系统可靠性高、支持范围广、造价低廉。弥补了传统的汽车原厂故障检测仪器价
3、格昂贵、通用性差和不易携带的缺点,亦有助于减少我国汽车行业对国外故障诊断系统的依赖。技术要求与主要内容利用目前中高档汽车带有的汽车电脑及OBD接口将汽车故障检测代码和数据送到计算机中,并进行分析。基本要求(1)设计汽车电脑与计算机的接口电路。(2)分析OBDII标准故障码。(3)分析汽车控制系统局域网络(CAN总线)通信协议。(4)设计汽车故障检测数据界面。北华航天工业学院毕业论文IV进度安排2012年5月27日毕业设计动员会,师生见面,公布指导教师分配情况,明确写作要求5月30日6月10日确定论文题目,教师下达论文写作任务书,学生填写开题报告,提纲起草及审阅6月11日6月20日开题答辩(未通
4、过者,重新开题)6月21日7月5日撰写文献综述,提交论文写作提纲7月6日9月15日初稿提交及审阅9月16日10月15日复稿提交及审阅、外文翻译2012年10月20日前终稿提交及审阅(包括论文打印文本、任务书、开题报告、外文翻译、文献综述及周志等,同时上交相初稿提交及审阅应的电子文档)2012年10月27日毕业论文答辩2012年11月8日公布论文答辩成绩,论文资料归档同组设计者及分工指导教师签字_年月日教研室主任意见教研室主任签字_年月日北华航天工业学院毕业论文V摘要随着现代汽车电控系统越来越复杂,一旦出现故障,在修理时对故障类型的判定也越来越困难,因此汽车故障检测系统的设计已经成为汽车售后修理
5、过程中必不可少的设备。然而,传统的汽车原厂故障检测仪器存在价格昂贵、通用性差和不易携带等缺点,本文利用目前中高档汽车带有的汽车电脑及OBD接口将汽车故障检测代码和数据送到计算机中,并进行分析。特别适合于一般驾驶员或维修人员对车辆的日常监测和故障检查。关键词OBD计算机MICROSOFTVISUALBASIC汽车故障检测北华航天工业学院毕业论文VIABSTRACTWITHTHEDEVELOPMENTOFMODERNAUTOMOTIVEELECTRONICCONTROLSYSTEM,ITISMOREANDMORECOMPLICATED,ONCEAPPEARSBREAKDOWN,THEFAULTTY
6、PEPENALTYINTHEREPAIRALSOBECOMESMOREDIFFICULT,THEREFOREVEHICLEDIAGNOSTICSYSTEMDESIGNHASBECOMETHEINDISPENSABLEREPAIREQUIPMENTDURINGTHEAFTERSALESHOWEVER,THETRADITIONALVEHICLEDIAGNOSTICINSTRUMENTEXISTSSHORTCOMINGSOFEXPENSIVE,POORUNIVERSALITYANDCARRYUNEASILY,THISPAPERUSINGTHEAUTOCOMPUTERSANDOBDINTERFACEO
7、FTHECURRENTHIGHGRADECARSRELAYANDANALYZETHEFAULTDETECTIONCODEANDDATATOTHECOMPUTERPARTICULARLYSUITABLEFORGENERALDRIVERSORMAINTENANCEPERSONNELFORTHEDAILYMONITORINGANDFAULTINSPECTIONKEYWORDSOBDPCMICROSOFTVISUALBASICVEHICLEDIAGNOSTIC北华航天工业学院毕业论文VII目录第1章绪论111前言112汽车诊断的分类1121按汽车诊断方式分类213汽车诊断仪器与设备研究开发现状214本
8、文主要研究内容3第2章OBD系统简介421OBD概述4211OBD产生背景4212OBD工作原理422OBD数据通信介绍5221OBD的特点及两种故障诊断标准5222TL718解码器的介绍6第3章ACCESS系统简介931ACCESS2003简介932ACCESS的主要特点1033创建数据库10331使用ACCESS创建数据库10332输入数据11第4章VISUALBASIC60开发工具简介1141VISUALBASIC概述11411VISUALBASIC的演变进程12412VISUALBASIC的特点1242VISUALBASIC的语言特性13421VISUALBASIC术语13422VIS
9、UALBASIC的局限性14第5章VISUALBASIC60开发计算机汽车故障检测系统1451创建数据库应用程序14511创建新工程15512使用DATA控件读取数据库15513添加控件显示数据18514设计功能按钮20515保存工程和窗体文件25516程序测试26517生成可执行文件2752发布数据库系统27北华航天工业学院毕业论文VIII521数据库系统的编译27522使用打包向导28523安装发布的程序36524运行发布的程序38第6章全文总结及展望40致谢41参考文献42附录43北华航天工业学院毕业论文1计算机汽车故障检测系统第1章绪论11前言众所周知,汽车工业的迅速发展给人类带来了高
10、度的物质文明,尤其是给世界经济带来了繁荣,与此同时也带来了许多负面的影响,如因燃油的大量消耗引起的石油资源的枯竭、排气中氮化物和游离粒子引起的城市大气污染以及二氧化碳带来的越来越严重的地球温室效应等等。因此,节约能源及保护环境已成为汽车发展乃至人类发展的主题。鉴于此,世界各地或地区都制定了较为严格的法规,以降低汽车的排放,提高其燃油经济性。随着对汽车安全性、发动机油耗及排放的法规要求越来越高,现代汽车电控系统也越来越复杂,越来越多的传感器应用到车辆中,用来检测车辆的状态、发动机的运行,汽车主被动安全系统、发动机控制系统变得越来越复杂。而各种控制系统的复杂化、电子化,在提高了车辆安全性、发动机动
11、力性、燃油经济性以及低排放等性能的同时,也为汽车维修带来了新的问题。为了更快的发现汽车存在的故障,目前几乎所有的车辆控制系统,都增加了自动诊断功能。自诊断功能的原理是汽车正常运行时,电子控制单元ECU输入、输出信号的电压值都有一定的变化范围,当某一信号的电压值超出了这一范围,并且这一现象在一段时间不消失,ECU便判断为这一部分信号电路有故障。ECU把这一故障以代码的形式存入内部随机存储器,同时点亮仪表板上的故障指示灯,提醒驾驶员。使用专门的故障诊断系统,汽车维修人员可以得到存储在ECU中的故障代码,从而快速的掌握车辆的故障原因。因此,汽车故障检测系统已经成为汽车售后修理中必不可少的设备。然而,
12、传统的汽车原厂故障检测仪器存在价格昂贵、通用性差和不易携带等缺点,本文利用目前中高档汽车带有的汽车电脑及OBD接口将汽车故障检测代码和数据送到计算机中,并进行分析。特别适合于一般驾驶员或维修人员对车辆的日常监测和故障检查。12汽车诊断的分类汽车故障诊断是在不解体(或仅拆下个别小件)的条件下,确定汽车技术状况,查明故障部位及原因的检查和分析1。随着汽车技术的发展,特别是电子技术、计算机技术在汽车上的应用,汽车故障诊断从传统的看、听等凭经验的诊断方法,发展为以智能化、集成化、多样化的诊断设备为方法,以信息技术为依托的现代计算机汽车故障诊断技术。北华航天工业学院毕业论文2121按汽车诊断方式分类按汽
13、车诊断方式分类,诊断设备分为车内诊断(ONBOARDDIAGNOSTICS,简写为OBD)装置和非车载诊断(OFFBOARDDIAGNOSTICS)仪器。前者是利用所有装在车上的诊断装置进行诊断;后者是利用独立于车辆的诊断设备或仪器进行诊断2。1非车载诊断仪器1972年,德国大众汽车公司展出了其开发的使用微型计算机的诊断仪器。此仪器利用车辆上装设的诊断用的传感器和诊断用连接器与外部的微型计算机连接,能检测出88个项目并可将检测结果打印。这种检测方法的出现对汽车工业及其周边行业产生了巨大影响。1975年,美国哈米尔顿标准公司推出了AUTOSENSE诊断汽车设备。其诊断基准数据因不同厂家的和不同型
14、号的汽车而变化,且价格昂贵,因此未得到推广。1987年,日本丰田公司推出了DIAGMONITOR型诊断仪;1990年,又推出了DIAGNOSISREADER诊断仪。同年,日本三菱汽车公司推出了MUT型多用途故障诊断试验器。1989年,日本日产汽车公司推出了CONSULT型诊断仪。除上述汽车公司各自推出的汽车诊断仪之外,还有福特公司的STAR;克莱斯勒公司的DBR等各自专用的汽车诊断设备。2车内诊断装置车内诊断装置的原型可以追溯到充电指示灯一类的警报装置。20世纪70年代初,为了重视车辆行驶安全而开展多种集中报警装置的研发。1976年,美国通用汽车公司首先研制成功了计算机控制点火系统(MISAR
15、),它已具备自诊断功能。因此,美日各大汽车公司在不断扩大微型计算机应用的同时,为了诊断具有繁多的输入输出信号和复杂控制功能的电子系统都设有车内诊断装置。车内诊断装置具备故障识别、报警、存储、处理等基本功能。利用车内诊断装置可以使用户了解车辆不宜发现的问题,对人员安全和环境保护起到了很重要的作用。为维修人员的汽车检修工作起到了至关重要的作用。13汽车诊断仪器与设备研究开发现状汽车电子化使故障诊断方法发生了重大变化,传统的眼观、手摸、耳听的检查方法,变为使用各种诊断设备或仪器读取ECU的各种数据,并能判断工作是否正常。实际上,由于电子控制的实现,几乎所有的车辆都有车内诊断装置。因此,即使不使用故障
16、诊断装置,对大部分的故障,包括故障发生的部位或控制系统,都能够加以确定。但是车内诊断系统仍然存在着对某些类型的故障不能进行诊断的问题。所以,对车内诊断装置解决不了北华航天工业学院毕业论文3的问题,还得依靠非车载诊断系统装置。1994年起,在美国开始实施安装OBD的法规,即汽车必须安装能对排放系统进行车内诊断的第二代车内诊断系统。同时,还规定与排放相关的控制系统必须能与标准化的非车载诊断设备或仪器之间进行通讯。其中,在加利福尼亚大气环境资源局(CARB)的要求下,美国汽车工学会(SAE)进一步推进与故障诊断设备或一起相关的标准化工作。目前,许多国家都加快了故障诊断的标准化。原封不动的ISO或SA
17、E标准的应用,将使各公司陷入困难,并导致车辆成本的增加。因此,我们不能简单地按照ISO或SAE标准。为了协调与汽车技术,标准化是必不可少的。汽车故障电脑检测系统,是一种诊断设备(车内)或诊断设备和仪器(非车载电脑),电脑显示界面组件。汽车诊断系统的现状是上述三者处在相互独立的状态中,未形成有机的结合并能协同工作的有机的统一整体。因此,这种系统不能扩大应用范围,从而在故障诊断时遇到很多的麻烦。因此,车内诊断装置、非车载诊断设备或仪器也仅解决了状态检测或硬件直接相关的单一独立的物理故障,它们对功能性、多元性、综合性故障的诊断还存在着一些问题。随后,非车载诊断系统和车辆诊断技术相互结合,使诊断技术的
18、发展极大。这种新的诊断方法是非车载诊断装置通过车上特定接口获取车内自诊断信息和车辆状态数据,并通过车辆状态的数据显示,从通过计算机程序分析接口来处理这些信息和数据,以确定汽车故障,并进行故障排除。14本文主要研究内容本文主要研究基于SAE统一标准的部分OBD故障代码的计算机汽车故障检测系统,具有很强的实用性,有助于汽车用户和汽车维修人员更好的解决车辆故障问题,确保人身安全,并提高检测效率,节约成本。北华航天工业学院毕业论文4第2章OBD系统简介21OBD概述OBD系统十分复杂,该系统在功能上由软件和硬件共同实现。OBD的软件是由故障诊断控制策略代码,与发动机控制部分一起构成整个发动机控制系统的
19、软件包组成。OBD的硬件主要由各传感器、ECU、OBD连接器接口、故障指示灯、执行器及线路等与发动机废气控制相关的子系统组成。211OBD产生背景20世纪50年代汽车技术与电子技术开始相结合以来,电子技术在车辆上的应用日新月异,并且原来越普及。作为汽车发动机电控系统核心的ECU具有速度快、功能丰富、成本低、性能稳定的优点,因此ECU技术在汽车领域的使用提高了汽车诊断的准确性和效率,也提高了汽车的经济性、安全性。然而,随着ECU系统的越来越复杂,以及汽车发动机的快速演变,在为乘客带来舒适,修理者带来方便的同时,也是汽车产生了新的故障问题。对于此情况,从上世纪80年代起,美、日、欧等地的汽车制造企
20、业开始在其生产的电喷汽车上配备汽车自诊断模块(ONBOARDDIAGNOSTICSMODULE)3。车载自诊断模块能在车辆运行过程中自动监测ECU等电子元件的工作状态,如果有异常,根据其数据库和特定的通信协议判断出故障位置,并以故障代码(DTC,DIAGNOSTICTROUBLECODES)的形式储存在汽车电脑的存储芯片内4。系统自诊断后得到的有用信息可以为车辆的维修和保养提供帮助,维修人员可以利用汽车原厂专用仪器读取故障代码,从而可以对故障进行快速定位,故障排除后,采用专用仪器清除故障码5。由于该时期不同厂商的OBD系统之间各行其是、互不兼容,所以被称为第一代车载自诊断系统(OBDI,THE
21、FIRSTONBOARDDIAGNOSTICS)。为了统一标准,美国汽车工程师协会(SAE,SOCIETYOFAUTOMOTIVEENGINEERS)1988年制定了OBD标准6。OBD实行标准的检测程序和标准,并且具有严格的排放针对性,用于实时监测汽车尾气排放情况以及汽车故障的检测。212OBD工作原理OBD系统将根据发动机的运行状况实时监控汽车尾气是否超标,一旦超标,会马上发出警示。当系统出现故障时,故障指示灯(MIL,MALFUNCTIONINDICATORLAMP)或检北华航天工业学院毕业论文5查发动机(CHECKENGINE)警告灯将被点亮,同时动力总成控制模块(PCM,POWERT
22、RAINCONTROLMODULE)将故障信息存入存储器7。OBD汽车故障检测仪或相应软件通过一定的程序可以将DTC从PCM中读出,使维修人员可以根据故障代码的提示,迅速准确地定位故障的性质和位置。22OBD数据通信介绍从广义上来说,车载故障诊断标准包括北美标准OBD和欧洲标准EOBD2欧洲的车载故障诊断标准基本上等效使用北美的SAE相关标准,二者要完成的功能基本上是相同的,主要区别是所使用的通讯协议不同。221OBD的特点及两种故障诊断标准OBD的特点是(1)统一车种诊断座形状为16PIN。(2)上有数值分析资料传输功能(DATALINKCONNECTOR简称DLC)。(3)统一各车种相同故
23、障代码及意义。(4)具有行车记录器功能。(5)具有重新显示记忆故障码功能。(6)具有可由仪器直接清除故障码功能。北美车载故障诊断标准OBD由美国汽车工程师协会(SAE)制定,其相关标准主要包括SAEJ1930电气/电子系统诊断术语、定义和缩写;SAEJ1962诊断连接器技术要求;SAEJ1978OBD检测仪技术要求;SAEJ1979电气/电子诊断测试模式;SAEJ2190增加的电气/电子诊断测试模式;SAEJ2012推荐故障码定义;SAEJ1850B类数据通讯网络接口技术要求。欧洲车载故障诊断标准EOBD2由国际标准(ISO,INTERNATIONALORGANIZATIONFORSTANDA
24、RDIZATION)提出,其相关标准主要包括ISO15031道路车辆汽车与外部排放相关诊断设备间的通讯;ISO9141道路车辆诊断系统数字信息交换技术要求;ISO/FDIS14229道路车辆诊断系统诊断服务技术规范;ISO/DIS14230道路车辆诊断系统KWP2000;ISO7637道路车辆环境电磁干扰。222OBD诊断连接器端子位置OBD采用遵循SAEJ1962标准的16针通信接口,通信速率在516KBPS之间。OBD诊断连接器各端子的位置及功能如图21所示。北华航天工业学院毕业论文6图21诊断连接器端子位置其中,各端子的定义如下端子2SAEJ1850BUS端子4CHASSISGROUND
25、端子5SIGNALGROUND端子6CANHIGH端子7ISO91412KLINE端子10SAEJ1850BUS端子14CANLOW端子15ISO91412LLINE端子16BATTERYPOWER其他端子预留给制造商使用。(1)1,3,8,9,11,12和13未做分配,可由车辆制造厂定义。(2)2,6,7,10,14和15是用作诊断通讯的。根据实际使用的通讯协议的不同,它们往往不会都被使用,未使用的可由车辆制造厂定义。223TL718解码器的介绍TL718解码器的外部引脚图如图22所示,内部工作原理框图如图23所示。北华航天工业学院毕业论文7图22TL718外部引脚图图23TL718内部工作
26、原理框图MCLR(PIN1)输入复位信号脚,低电平有小幅微,如果不使用,用10K电阻上拉到VDD。VMEASURE(PIN2)输入05V的模拟信号输入,必须保证输入电压不能大于VDD,否则可能会造成芯片损坏。如果不使用该引脚用10K电阻上拉到VDD或接VSS。该引脚用于测量电源电压。J1850VOLTS(PIN3)输出该引脚控制J1850数据总线BUS脚的输出电压,当J1850VPW需要8V总线电压时,该脚输出逻辑高电平。如果不使用J1850VPW协议,该引脚可开路。注J1850PWM使用BUS和BUS双线,高电平为5V,低电平为0V。J1850VPW,使用单总线,高电平为8V,低电平为0V。
27、J1850BUS(PIN4)输出北华航天工业学院毕业论文8高电平输出时J1850BUS至显性状态。ISOIN(PIN5)输入该引脚为MEMORY,选择是否保存最后一次使用时的通讯协议,以便在关闭电源或器件复位后,下次使用时首先试用该协议进行通讯。如果接高电平,默认是选用该功能,如果接地默认为不选用改功能。该记意功能也可用ATM0、ATM1命令开启或关闭。TL718默认为自动保存,开始的连接协议为9号(PP07参数),可以用PP08指令修改ATM的默认值。BAUDRATE(PIN6)输入该引脚控制芯片串口的默认波特率,当为高电平时,波特率默认值为38400(PPOC设置值,可以改变),当接地时,
28、波特率默认值为9600。连接后也可用ATBRD命令改变通讯波特率。LFMODE(PIN7)输入该引脚学则开机或复位后TL718向串口输出信息的结束格式,当接高电平时,默认值信息是以一个火车(0X0D)和一个换行(0X0A)结束,当接低电平时是以一个回车(0X0D)结束。该功能还可通过ATL0或ATL1命令改变设置。VSS(PIN8ANDPIN19)电源地。(XT1PIN9ANDXT2PIN10)在两个引脚间接40MHZ晶振,并接两个电容到VSS,(通常电容容值为27PF)。VPWIN(PIN11)输入J1850VPW信号输入引脚,当总线为隐性时,该引脚输入必须为底电平。该引脚内部有斯密特整形触
29、发器。ISOIN(PIN12)输入ISO14230ISO9141KW1281K线信号输入引脚,当总线为隐性时,该引脚输入必须为逻辑高电平。该引脚内部有斯密特整形触发器。PWMIN(PIN13)输入J1850PWM信号输入引脚,当总线为隐性时,该引脚输入必须为高电平。该引脚内部有斯密特整形触发器。J1850BUS(PIN14)输出输出高电平时J1850PWM总线为显性状态,如果只使用J1850VPW协议,该引脚不使用就悬空。RTS(PIN15)输入低电平有效,当想要中断当前正在处理的OBD命令时,可在该引脚上给个低电平,同时检查BUSYPIN16引脚,直到指示TL718已经是空闲状态。如果不使用
30、,有10K电阻上拉到高电平。北华航天工业学院毕业论文9BUSY(PIN16)输出指示当前TL718的状态,如果当前状态空闲,输出为低电平。表示可接收新的命令。如果忙则输出高电平。如果不使用可悬空该引脚。注直接用PC串口连接一般不用PIN15和16引脚,可根据是否接收到“”(0X3E)来判断TL718是否已准备好接收数据。15、16引脚主要是为直接连接单片机时使用。RS232TX(PIN17)输出RS232数据输出引脚,信号电平和极大多数接口IC兼容,输出空闲时为高电平。并有足够的电流容量驱动一个PNP三极管,用三极管可直接连接PC的RS232接口。RS232RX(PIN18)输入RS232数据
31、输入引脚,信号电平和极大多数接口IC兼容,输出空闲时为高电平。该引脚内部有斯密特整形触发器。VDD(PIN20)电源5VISOKANDISOL(PIN21ANDPIN22)输出ISO9141ISO14230KW1281输出引脚,高电平时驱动总线至显性状态(ACTIVE),低电平时总线空闲。CANTXANDCANRX(PIN23ANDPIN24)CAN总线输出、输入引脚,两引脚连接到CAN收发器IC。RS232RXLED(PIN25),MRS232TXLED(PIN26)OBDRXLED(PIN27)ANDOBDTXLED(PIN28)这四个引脚的输出通常情况下处于高电平状态的,当ELM327需
32、要传送或者接受信息的时候它们会被置于低电平。这些引脚的输出可以直接来驱动LED显示,或者通过接口与其他的逻辑电路相连。第3章ACCESS系统简介31ACCESS2003简介ACCESS是OFFICE软件包的成员之一,ACCESS擅长对数据进行处理,例如建立、排序、分类及汇总数据等操作。除此之外,美化数据输入界面的窗体、数据访问页,强调所见即北华航天工业学院毕业论文10所得的报表,再加上ACCESS所擅长的宏与模块功能,奠定了ACCESS在小型数据库系统的领先地位。ACCESS2003推出后,新增并强化了许多功能,在其他OFFICE软件中能够用到的功能都出现在ACCESS2003中,不用再跨越两
33、个软件进行操作,这种整合给用户提供了极大的方便。32ACCESS的主要特点ACCESS最重要的特征是不必编写程序。对于大多数关系型数据库管理系统,如PARADOX、FOXPRO等而言,其管理者需要具有程序设计能力,才能建立和管理一个有效的应用程序,而ACCESS数据库系统把数据库应用程序的建立移进用户环境中,除非要执行复杂的操作,数据库的管理者不再必须具有程序设计能力。利用系统提供的向导或生成器,再利用几个简单的宏或VBA语句,就可以迅速建立简单的应用程序。ACCESS中数据库文件不是简单的存储数据的表,这是ACCESS与其他桌面数据库的一个重要区别。ACCESS数据库文件不仅包含传统意义上的
34、表,还包括操作或控制数据的其他对象(如查询、窗体和报表等)。33创建数据库创建VISUALBASIC数据库程序之前,要在ACCESS中建立数据库和所需要的表。331使用ACCESS创建数据库首先在ACCESS中建立“SAE统一规定的部份OBDII码内容”的数据库,操作步骤如下。在ACCESS启动窗口中选择新建一个“空数据库”,然后在弹出的“文件新建数据库”对话框中选择保存数据库文件的文件目录,例如选择“DDATABASE”目录(如果不存在这个目录,则先在D盘下新建此文件目录,也可以保存在其他目录中);“保存类型”选择“MICROSOFTACCESS数据库(MDB)”,然后在“文件名”文本框中输
35、入“SAE统一规定的部份OBD码内容”,单击“创建”按钮,这样就新建了“SAE统一规定的部份OBD码内容”数据库。ACCESS显示“SAE统一规定的部份OBD码内容”的数据库窗口。单击“SAE统一规定的部份OBD码内容”数据库窗口左边的对象类型列表中的“表”,然后双击数据库窗口的对象列表中的“使用设计器创建表”,进入“设计视图”窗口。输入各字段名称,数据类型,并设置字段的属性,表中未提到的属性值取默认值。单击菜单栏的“文件”菜单,然后单击“保存”命令,则弹出“另存为”窗口,在文本框中输入“SAE统一规定OBDII码表”,然后单击“确定”按钮,ACCESS即保存新建表“SAE统一规定OBDII码
36、表”。“SAE统一规定OBDII码表”的设计视图。北华航天工业学院毕业论文11332输入数据创建好“SAE统一规定OBDII码表”后,下面就要导入相关数据。本文使用的“SAE统一规定OBDII码”是在网络上找到的WORD格式文件。首先将WORD格式文件导入EXCEL中,之后使用ACCESS中的“导入外部数据”功能导入EXCEL中的OBDII码。具体步骤如下单击“文件”选择“获取外部数据”选项,再单击“导入”弹出“导入”对话框。选择事先保存好的EXCEL文档,之后单击“导入”。弹出“导入数据表向导”对话框如图34所示。单击“下一步”即可完成数据的导入。数据导入完毕后,单击“保存”快捷键保存新建的
37、“SAE统一规定OBDII码”数据库即可。第4章VISUALBASIC60开发工具简介41VISUALBASIC概述MICROSOFT公司推出的WINDOWS操作系统,以其新颖友好的图形用户界面、强大的多任务操作性能、高层次的软件开发平台风靡全球。在享受WINDOWS带给我们的方便与快捷的同时,一个很实际的问题摆在了广大软件开发人员的面前如何设计开发WINDOWS的图形用户界面呢如果使用传统的DOS软件开发方法来开发WINDOWS环境下运行的程序,其难度和复杂程度是非常大的。VISUALBASIC的出现使得这一问题得到了解决。1991年,MICROSOFT公司推出了WINDOWS应用程序开发工
38、具VISUALBASIC。VISUALBASIC的出现使得编程技术向前迈进了一大步。北华航天工业学院毕业论文12“VISUAL”指的是开发图形用户界面(GUI)的方法。不需编写大量代码去描述界面元素的外观和位置,而只是要把预先建立的对象添加到屏幕上的一点即可。如果已使用过诸如PAINT之类的绘图程序,则实际上已掌握了创建用户界面的必要技巧。“BASIC”指的是BASIC(BEGINNERSALLPURPOSESYMBOLITINSTRUCTIONCODE)语言,一种在计算技术发展历史上应用的最为广泛的语言。VISUALBASIC在原有BASIC语言的基础上进一步发展,至今包含了数百条语句、函数
39、及关键字,其中很多和WINDOWSGUI有直接关系。专业人员可以用VISUALBASIC实现其他任何WINDOWS编程语言的功能,而初学者只要掌握几个关键字就可以建立实用的应用程序。继MICROSOFT公司于1991年成功推出VISUALBASIC后,经过不断发展,又推出了VISUALBASIC20,VISUALBASIC30,VISUALBASIC40和VISUALBASIC50版本。在此之后,推出了可视化开发工具组件VISUALSTUDIO60。VISUALBASIC60就是VISUALSTUDIO60的组件之一。411VISUALBASIC的演变进程VISUALBASIC起源于DOS时代
40、的BASIC语言,BASIC语言曾是最流行的计算机编程入门语言及最主流的计算机教学语言,它浅显易懂的语法、远离计算机底层的特性赢得了广大师生及部分程序设计人员的欢迎。在操作系统进入图形界面时代以后,尤其是面向对象的编程思想流行以后,编程语言也开始发生翻天覆地的变化。微软公司于1991年推出了BASIC语言的第一个可视化编程版本,VISUALBASIC之后VISUALBASIC也作VB得出行产生。到1993年VB30推出时,VB已经初具规模,并已开始被大量应用于创建图形界面程序。1995年、1997年、1998年VB40、VB50、VB60相继推出,VB的开发能力不断得以增强,在某些方面还明显胜
41、过其他开发语言。时至今日,VB60依然是许多程序员及更多的非专业程序员的编程语言,在可视化编程教学领域更是独领风骚。网络上大量软件是采用VB开发而来,同时使用VB作为脚本语言编写动态网页(即ASP)的技术也成为最为流行的WEB开发技术之一。VB60一共发行了三个版本,即学习版、专业版和企业版。在功能上它们是依次增强的,对于数据库开发,建议采用企业版。412VISUALBASIC的特点设计简单,功能强大。在VISUALBASIC60中,用户在程序设计阶段只需要将所需要的各种对象,如按钮、滚动条、文本框、图片框等,逐一“画”到窗体上就行了。然后需要做的工作就是设置这些添加好的对象的属性,完成这些对
42、象的功能。因而使得编程工作变得高效、简单。所以使用VISUALBASIC60开发软件具有开发周期短、开发效率高的优点,而且VISUALBASIC60几乎可以胜任任何需要编程的工作。北华航天工业学院毕业论文13事件驱动的编程机制。传统的变成机制是面向过程的,按照程序实现设计的流程运行。VISUALBASIC60是按照事件驱动程序运行的。事件驱动非常适合图形用户界面的编程方式。用户的动作控制着程序的运行。如单击按钮,则程序执行按钮的CLICK时间;滚动条滚动,则程序执行滚动条的SCROLL事件等。每个时间都能驱动一段程序的运行,各个动作之间不一定有联系。这样的代码使得用户管理起来非常容易。支持动态
43、数据交换、动态链接库和对象的链接与嵌入技术。VISUALBASIC支持动态数据交换(DDE)编程技术,使得应用程序能够与其他的WINDOWS应用程序进行数据交换。对动态链接库的支持使得在VISUALBASIC中可以调用其他语言(C或汇编等)编写的函数,也可以调用WINDOWS应用程序接口(API)函数,大大增强了VB的功能。对象的链接与嵌入(OLE)技术是VISUALBASIC的。利用OLE技术可以将其他应用软件作为一个对象嵌入到VISUALBASIC中。支持多种数据库系统的访问。利用数据控件可访问的数据库系统有MICROSOFTACCESS、DBASE、MICROSOFTFOXPRO等。也可
44、访问MICROSOFTEXCEL等多种电子表格。VB60新增了功能强大的ADO技术。ADO占用内存少,访问速度快,将渐渐成为取代DAO和RDO的控件。完备的联机帮助功能。在VB中,利用帮助菜单和F1键,即可随时方便地得到所需的帮助信息以方便学习和使用资源。学习VB最好的帮手就是帮助功能。要想学会VB,首先要学会使用VB的帮助。421VISUALBASIC术语在讨论VISUALBASIC时,经常可以听到以下这些术语,因此对这些术语的基本理解会对VB的使用十分有帮助。1控件简单的说,控件就是构成或者说建造VISUALBASIC应用程序的图形化工具,包括窗体、按钮、复选框、列表框、数据控件、表格控件
45、和图片控件等等。2事件由用户或操作系统引发的动作。事件的示例有击键、单击鼠标CLICK、双击鼠标DBLCLICK、一段时间的限制,或从端口接收数据。3方法嵌入在对象定义中的程序代码,它定义对象怎样处理信息并响应某事件。例如,数据库对象有打开纪录集并从一个记录移动到另一个记录的方法程序的基本元素,它含有定义其特征的属性,定义其任务和识别它可以响应的事件的方法。控件和窗体是VISUALBASIC中所有对象的示例。4对象北华航天工业学院毕业论文14一个控件、窗体等都可被看作一个对象。5过程为完成某些特定的任务而编写的代码段,过程通常用于响应特定的事件,也可以当作应用程序的用户自定义函数来使用。6属性
46、属性是组成用户界面的各对象的性质的具体描述。例如上述“对象”中所提到的尺寸、位置、颜色、宽度、高度等等都称为控件的属性。属性决定对象的外观,有时也决定对象的行为。对象的属性绝大部分是VB中已经事先定义好的,但也有的属性是需要在应用过程中才去定义的。属性即可为对象提供数据,也能从对象取回信息。422VISUALBASIC的局限性1不支持继承VB5和VB6都是基于对象的编程语言,但是不包含继承特性。VB中提供了特殊的类的功能,但是还是不能满足程序员的需求。VBNET包含了所有面向对象的特性。2多线程无原生支持VISUALBASIC对于多线程无原生支持,只能通过WINDOWSAPI的调用实现。VBN
47、ET2002以及之后的版本,都支持多线程技术。3异常处理不完善VISUALBAISC中内置异常处理,即使未写异常处理代码,一旦用户出错也会弹出一个明确写出出错原因对话框,接着程序终止。VISUALBASIC中可以使用ERRRAISE抛出异常。对系统及用户抛出的异常的处理常用两种模式一是使用ONERRORRESUMENEXT处理错误;另一种是使用ONERRORGOTO将运行引入错误处理代码。但相对C等语言而言,这样的异常处理破坏了代码的结构。第5章VISUALBASIC60开发计算机汽车故障检测系统51创建数据库应用程序在上一章中介绍了VISUALBASIC60的基本内容,下面就用VISUALB
48、ASIC60来进行接下来的工作可视界面的设计。首先双击打开事先安装好的VISUALBASIC60,如图51所示。北华航天工业学院毕业论文15图51VISUALBASIC60欢迎界面511创建新工程启动VISUALBASIC60后,单击VISUALBASIC集成开发环境的“文件”菜单,然后单击“新建工程”子菜单,系统弹出“新建工程”对话框,选择“标准EXE”工程类型。然后单击“确定”按钮,结果如果52所示,VISUALBASIC产生一个缺省名为“工程1”的新工程,这个新工程自动添加一个缺省名为“FORM1”的窗体。将FORM1窗体的“CAPTION”属性设置为“计算机汽车故障检测系统”。512使
49、用DATA控件读取数据库现在添加DATA控件来连接和读取ACCESS数据库,然后添加其他控件来显示数据。添加和设置DATA控件的操作步骤如下。用鼠标单击工具箱中的DATA控件,这时鼠标变为十字形,在窗体FORM1的下方单击并拖动鼠标,当大小和形状合适时释放鼠标,则在窗体中添加了一个DATA控件,其默认名为DATA1,如图53所示。北华航天工业学院毕业论文16图52创建一个新工程图53在窗体FORM1中添加DATA控件单击选中DATA1控件,然后在DATA1的属性窗口中设定属性值。为了读取在第3章中建立并经过转换的ACCESS数据库“SAE统一规定的部份OBDII码内容MDB”,要设置3个DATA控件属性值CONNECT、DATABASENAME和RECORDSOURCE。CONNECT属性表示连接的数据库类型,这里选择“ACCESS”,如图54所示。从图54中可以看到,VISUALBASIC还可以连接DBASE、EXCEL等数据库。DATABASENAME属性要选择一个数据库实体并附带其所在的路径,这里选择DDATABASESAE统一规定的部份OBDII码内容MDB(如果把转换后的SAE统一规定的部