Access数据库在故障诊断软件中的应用
2016-10-18汪荣会
汪荣会
(上海柴油机股份有限公司,上海200438)
Access数据库在故障诊断软件中的应用
汪荣会
(上海柴油机股份有限公司,上海200438)
在故障诊断软件中应用Access数据库技术,可以灵活地配置诊断软件支持的ECU型号、诊断协议和诊断功能,使诊断软件具备良好的扩展性,提高了软件升级的便利性。以功能较为复杂的柴油机电控单元诊断软件为例,介绍Access数据库在故障诊断软件中的应用。
电控柴油机故障诊断Access数据库
1 前言
为了降低汽车的尾气排放和燃油耗,满足日益严格的法规要求,满足国Ⅲ及以上排放标准的发动机基本都采取了电控技术方案。发动机喷油过程由电控单元控制,并引入了车载诊断系统(On Board Diagnosis,OBD),利用电控单元对电控系统各零部件进行连续检测和诊断,自动识别并记录故障及发生故障时的系统信息[1]。借助故障诊断工具,维修人员除了可以读取和清除故障码,对故障发生的部件及可能发生的原因可以做准确的判断,还可以进行参数读取、执行器测试、功能配置和数据刷写等复杂操作。因此,诊断工具已成为现代电控发动机维修和测试中一种不可或缺的工具。
随着排放法规的升级和电控技术的发展,发动机控制器功能和控制器数量也迅速增加,发动机厂家一般存在多平台多系列多机型,不同型号的发动机可能使用不同类型的电控系统和诊断协议。为了满足发动机电控单元的诊断需求,诊断软件的功能越来越多,诊断软件的升级也日趋频繁。
某公司的发动机具有多平台、多机型、多控制器和多诊断协议的特点,传统的诊断软件在机型识别和增减匹配方面变得很异常繁琐,为了解决这一难题,开发人员在进行新一代诊断工具研发时,创造性地在上位机软件中引入了微软公司的Access数据库,可以很方便地进行协议、机型、功能和参数的配置,使得机型在诊断软件中的配置变得高效便捷。
2 诊断工具的一般结构和功能
诊断工具一般有两种型式,一种是便携式诊断工具,采用嵌入式操作系统,诊断工具的软硬件集成在一起,携带方便,但存在数据采集速度慢、诊断结果分发不方便等弊端。本文中讨论的是另外一种型式,诊断软件安装在通用PC机上,PC机则通过协议转换器连接待诊断的电控单元。这种形式的诊断软件具有数据分发和数据共享更为方便,软件升级可以通过现有网络进行,也更具通用性,故障诊断工具结构如图1所示[2]。
图1 故障诊断工具结构示意图
故障诊断软件一般具备基本诊断、动态测试、EOL刷写等功能。由于CAN总线在汽车上的广泛应用,在诊断软件中加入CAN报文的相关功能,使得维修、测试更加方便。故障诊断软件的一般功能结构展开如图2所示。
图2 故障诊断软件的一般功能结构
在故障诊断软件中,基本诊断功能是指故障信息的读取与清除,喷油器补偿信息的读取与写入,发动机运行参数的读取与显示;动态测试功能包括执行器测试和功能测试,以判断发动机零部件功能或性能是否正常;EOL功能则用于功能和配置与标定数据的刷写;CAN总线功能可以读取总线报文,并根据特定的规则解析为物理参数,还可以向电控单元主动发送CAN报文,以进行特性的功能测试。
故障诊断软件的各项功能因电控单元不同而实现方式不同,需要在诊断软件中灵活配置,以便正确识别并采用相应的诊断协议与电控单元进行通讯。
3 Access数据库
MS Access是由微软发布的关系数据库管理系统,通过Access将数据以其自定义的格式存储在基于Access Jet的数据库引擎文件里,并被其他应用程序引用,文件格式一般为*.mdb或*.accdb。
Access具有强大的数据处理、统计分析能力,能以较小的存储空间保存大量的字段信息。利用Access的查询功能,可灵活设置统计的条件,方便地进行各类统计,在处理大量记录的数据时速度快且操作方便。Access用来开发的软件简单易学,非计算机专业的人员也很容易上手,降低了软件开发难度和使用成本,因此在很多领域得到广泛使用[3]。
4 Access数据库的应用
在故障诊断软件上位机软件开发中,可以通过Access软件建立数据库文件,数据库文件里创建各种表,不同的表中存储独立的诊断信息。诊断软件上位机软件运行时,通过特定的程序接口(DLL动态链接库文件),访问数据库文件表中字段,通过机型识别后,在数据库中查询当前电控单元所支持的功能及子功能的具体参数,诊断软件中数据库的访问方法如图3所示。
图3 诊断软件中数据库的访问方法
在实际应用中,可以通过DLL文件和数据库文件来实现诊断协议的分发,这样既可以支持客户工具的开发,又能实现企业技术信息的保密。
理论上说,所有机型诊断相关的可变参数都可以在数据库中配置,开发人员可以根据实际项目应用灵活选择,以下详述主要诊断参数在数据库中的配置方法。
在诊断软件中,数据库中的表包括了ECU基本信息、指令负响应代码表、数据库修订记录表,以及每个机型的各种诊断功能表。其中,前三个表为系统公用,各机型的诊断功能表为机型、功能和协议的组合,功能表的数量取决于所支持的协议种类和每种协议的功能数量。
ECU基本信息表是诊断软件所支持的ECU的信息汇总表,其具体字段如图4所示。发动机ECU所支持的诊断协议物理层一般为CAN线和K线,因此ECU基本信息表中的字段除了ECU型号,机型等信息外,主要是K线和CAN线的通讯速率以及各种诊断功能的指令信息。数据库的这些字段信息可以描述一种ECU所支持的诊断协议的全部内容。
图4 ECU基本信息表中的字段
诊断方式物理线路上可分为K线和CAN线,其中CAN线的通讯速率有250 kbps,500 kbps和1 Mbps三种。常用的应用层协议有ISO 14229、ISO 14230、ISO 15031、ISO 15765和SAE J1939等几种[4],这些信息都可以配置在ECU基本信息表中的相应字段中。一种机型可以配置支持多种诊断协议,在诊断软件中,每种机型最多可以配置一种K线协议和三种CAN线协议。
负响应(Negative Response)是指当ECU不支持某种指令,或者当前无法执行支持的某种指令时,对指令发出者的回复,ECU通过特定的代码说明无法响应的原因,以便诊断程序参考。负响应代码表用于解析ECU回复的负响应代码,并通过程序接口传递给用户界面,用于提示用户操作,表1中罗列了部分常用的负响应代码。
表1 部分常用的负响应代码
数据库修订记录表利用了数据库可以大量存储信息的特性,保存数据库的修订过程,便于追溯和版本管理。如果数据库文件根据需要发布多个不同版本时,该表就十分必要了。
诊断功能表是一类表,由机型、功能和协议共同决定,主要用于指令格式定义、参数或代码解析。常用的诊断功能表如表2所示,诊断功能表在数据库中命名方式为机型_功能_协议,如SC9DF_CAN1_DTC表示SC9DF机型在CAN1诊断协议下的读取故障码功能。用户在使用该功能时,DLL文件访问数据库中的故障信息表,将从ECU读取的故障信息与表中的信息进行比对,查找到匹配记录后,就会按照表中定义内容进行解析,显示在用户界面上。常用的诊断功能列表和各功能列表的部分字段分别见表2和表3。
在诊断工具开发过程中,由于引入了Access数据库技术,诊断软件实现了对BOSCH、DENSO、UAES、DIAS等公司的燃油系统电控单元,以及凯龙、力达等公司的后处理系统电控单元的支持。这些电控单元合计支持7种诊断协议,22种机型,4000余条J1939信号,2 000余种故障代码,50余种测试功能,Access数据库在诊断软件中有效地组织和存储量大量的诊断信息[5~10]。
表2 常用诊断功能表
表3 各诊断功能表的部分字段汇总
在诊断软件中使用Access数据库后,诊断功能相关的大部分变更都可以由应用工程师通过更改数据库来实现,无需软件开发工程师更改程序本身。平均更改时间由此前的一周缩短为一天,有效地提高了工作效率和响应速度。
为了保护企业技术信息,数据库还设置了访问密码,诊断软件在获取数据库信息时,首先要通过密码验证,否则无法读取数据库中的信息[11]。
5 数据库维护与升级
在诊断软件中引入Access数据库是为了方便进行诊断信息的增减和修改,对数据库的修改有两种方式,一种是使用Access软件直接打开数据库文件,在相应的表中直接修改;另外一种是使用企业自己开发的专用配置软件,在相应的功能界面上进行增减和修改操作。
相比第一种方式,使用专业软件操作界面直观,使用者无需了解数据库中定义的各字段的具体含义,更容易上手,但数据库结构发生变化后,配置软件也需同步升级。
Access数据库升级也有两种方式,第一种是通过电子邮件或移动存储设备交换数据库文件,使用新的数据库文件在软件安装目录替换原数据库文件即可完成升级。第二种方式是通过诊断软件集成的数据库升级功能,在网络可用的情况下,诊断软件可以自动检测本地数据库版本与网络数据库版本。如果服务器有新版本可用,则提示用户选择是否升级,服务器上的数据库由专人负责维护。
6 结束语
在故障诊断软件中引入通用的Access数据库,可以很方便地对诊断软件支持的电控单元故障诊断信息进行配置,从而实现了无需软件代码层的修改编译即可进行诊断功能的有效扩展,提高了软件更新发布效率,从而能够更快地影响市场服务需求。
[1]环境保护部.HJ 437-2008车用压燃式、气体燃料点燃式发动机与汽车车载诊断(OBD)系统技术要求[S].北京:中国环境科学出版社,2008.
[2]康拉德?赖夫著.汽车电子学[M].李裕华,李航,马慧敏,译.西安:西安交通大学出版社,2011.
[3]庄丽君.基于Access数据库的应用与效果[J].电子技术与软件工程,2014(4).
[4]张大庆,张凤登,张晓霞等.基于SAE J1939协议的发动机通信控制器仿真与设计[J].工业控制计算机,2013(12)
[5]ISO 14229 Road vehicles-Unified diagnostic services(UDS)-Specification and requirements[S]. 2006
[6]ISO 14230 Road Vehicles-Diagnostic Systems Keyword Protocol 2000[S].1999
[7]ISO 15031-4 Diagnostic connector and related electrical circuits,specification and use[S].2004
[8]ISO 15765-4 Requirements for emissions-related systems[S].2005
[9]SAE J1939/71 Issued.Vehicle Application Layer[S].2008
[10]SAE J1939/71 Issued.Application Layer-Diagnostics SAE J1939/73 Issued[S].2006
[11]刘珊.Access应用系统开发研究[J].软件开发与设计,2010(8).
Access Database Application in Fault Diagnostic Software
Wang Ronghui
(Shanghai Diesel Engine Co.,Ltd.Shanghai 200438,China)
Access database technology application in fault diagnostic sofeware,which can configures flexible engine control unit(ECU)diagnosis information,such as ECU type,protocol type,diagnostic trouble codes,etc.Diagnostic software will be have good scalability,improve up software update convenient. Function more complex diesel engine electric control unit as example,introduce Access database application in fault diagnostic software.
diesel engine,fault diagnostic,Access database
10.3969/j.issn.1671-0614.2016.03.004
来稿日期:2016-06-02
汪荣会(1982),男,工程师,主要研究方向为柴油机性能及故障诊断。