汪榮會
(上海柴油機股份有限公司,上海200438)
Access數(shù)據(jù)庫在故障診斷軟件中的應用
汪榮會
(上海柴油機股份有限公司,上海200438)
在故障診斷軟件中應用Access數(shù)據(jù)庫技術,可以靈活地配置診斷軟件支持的ECU型號、診斷協(xié)議和診斷功能,使診斷軟件具備良好的擴展性,提高了軟件升級的便利性。以功能較為復雜的柴油機電控單元診斷軟件為例,介紹Access數(shù)據(jù)庫在故障診斷軟件中的應用。
電控柴油機故障診斷Access數(shù)據(jù)庫
為了降低汽車的尾氣排放和燃油耗,滿足日益嚴格的法規(guī)要求,滿足國Ⅲ及以上排放標準的發(fā)動機基本都采取了電控技術方案。發(fā)動機噴油過程由電控單元控制,并引入了車載診斷系統(tǒng)(On Board Diagnosis,OBD),利用電控單元對電控系統(tǒng)各零部件進行連續(xù)檢測和診斷,自動識別并記錄故障及發(fā)生故障時的系統(tǒng)信息[1]。借助故障診斷工具,維修人員除了可以讀取和清除故障碼,對故障發(fā)生的部件及可能發(fā)生的原因可以做準確的判斷,還可以進行參數(shù)讀取、執(zhí)行器測試、功能配置和數(shù)據(jù)刷寫等復雜操作。因此,診斷工具已成為現(xiàn)代電控發(fā)動機維修和測試中一種不可或缺的工具。
隨著排放法規(guī)的升級和電控技術的發(fā)展,發(fā)動機控制器功能和控制器數(shù)量也迅速增加,發(fā)動機廠家一般存在多平臺多系列多機型,不同型號的發(fā)動機可能使用不同類型的電控系統(tǒng)和診斷協(xié)議。為了滿足發(fā)動機電控單元的診斷需求,診斷軟件的功能越來越多,診斷軟件的升級也日趨頻繁。
某公司的發(fā)動機具有多平臺、多機型、多控制器和多診斷協(xié)議的特點,傳統(tǒng)的診斷軟件在機型識別和增減匹配方面變得很異常繁瑣,為了解決這一難題,開發(fā)人員在進行新一代診斷工具研發(fā)時,創(chuàng)造性地在上位機軟件中引入了微軟公司的Access數(shù)據(jù)庫,可以很方便地進行協(xié)議、機型、功能和參數(shù)的配置,使得機型在診斷軟件中的配置變得高效便捷。
診斷工具一般有兩種型式,一種是便攜式診斷工具,采用嵌入式操作系統(tǒng),診斷工具的軟硬件集成在一起,攜帶方便,但存在數(shù)據(jù)采集速度慢、診斷結果分發(fā)不方便等弊端。本文中討論的是另外一種型式,診斷軟件安裝在通用PC機上,PC機則通過協(xié)議轉換器連接待診斷的電控單元。這種形式的診斷軟件具有數(shù)據(jù)分發(fā)和數(shù)據(jù)共享更為方便,軟件升級可以通過現(xiàn)有網絡進行,也更具通用性,故障診斷工具結構如圖1所示[2]。
圖1 故障診斷工具結構示意圖
故障診斷軟件一般具備基本診斷、動態(tài)測試、EOL刷寫等功能。由于CAN總線在汽車上的廣泛應用,在診斷軟件中加入CAN報文的相關功能,使得維修、測試更加方便。故障診斷軟件的一般功能結構展開如圖2所示。
圖2 故障診斷軟件的一般功能結構
在故障診斷軟件中,基本診斷功能是指故障信息的讀取與清除,噴油器補償信息的讀取與寫入,發(fā)動機運行參數(shù)的讀取與顯示;動態(tài)測試功能包括執(zhí)行器測試和功能測試,以判斷發(fā)動機零部件功能或性能是否正常;EOL功能則用于功能和配置與標定數(shù)據(jù)的刷寫;CAN總線功能可以讀取總線報文,并根據(jù)特定的規(guī)則解析為物理參數(shù),還可以向電控單元主動發(fā)送CAN報文,以進行特性的功能測試。
故障診斷軟件的各項功能因電控單元不同而實現(xiàn)方式不同,需要在診斷軟件中靈活配置,以便正確識別并采用相應的診斷協(xié)議與電控單元進行通訊。
MS Access是由微軟發(fā)布的關系數(shù)據(jù)庫管理系統(tǒng),通過Access將數(shù)據(jù)以其自定義的格式存儲在基于Access Jet的數(shù)據(jù)庫引擎文件里,并被其他應用程序引用,文件格式一般為*.mdb或*.accdb。
Access具有強大的數(shù)據(jù)處理、統(tǒng)計分析能力,能以較小的存儲空間保存大量的字段信息。利用Access的查詢功能,可靈活設置統(tǒng)計的條件,方便地進行各類統(tǒng)計,在處理大量記錄的數(shù)據(jù)時速度快且操作方便。Access用來開發(fā)的軟件簡單易學,非計算機專業(yè)的人員也很容易上手,降低了軟件開發(fā)難度和使用成本,因此在很多領域得到廣泛使用[3]。
在故障診斷軟件上位機軟件開發(fā)中,可以通過Access軟件建立數(shù)據(jù)庫文件,數(shù)據(jù)庫文件里創(chuàng)建各種表,不同的表中存儲獨立的診斷信息。診斷軟件上位機軟件運行時,通過特定的程序接口(DLL動態(tài)鏈接庫文件),訪問數(shù)據(jù)庫文件表中字段,通過機型識別后,在數(shù)據(jù)庫中查詢當前電控單元所支持的功能及子功能的具體參數(shù),診斷軟件中數(shù)據(jù)庫的訪問方法如圖3所示。
圖3 診斷軟件中數(shù)據(jù)庫的訪問方法
在實際應用中,可以通過DLL文件和數(shù)據(jù)庫文件來實現(xiàn)診斷協(xié)議的分發(fā),這樣既可以支持客戶工具的開發(fā),又能實現(xiàn)企業(yè)技術信息的保密。
理論上說,所有機型診斷相關的可變參數(shù)都可以在數(shù)據(jù)庫中配置,開發(fā)人員可以根據(jù)實際項目應用靈活選擇,以下詳述主要診斷參數(shù)在數(shù)據(jù)庫中的配置方法。
在診斷軟件中,數(shù)據(jù)庫中的表包括了ECU基本信息、指令負響應代碼表、數(shù)據(jù)庫修訂記錄表,以及每個機型的各種診斷功能表。其中,前三個表為系統(tǒng)公用,各機型的診斷功能表為機型、功能和協(xié)議的組合,功能表的數(shù)量取決于所支持的協(xié)議種類和每種協(xié)議的功能數(shù)量。
ECU基本信息表是診斷軟件所支持的ECU的信息匯總表,其具體字段如圖4所示。發(fā)動機ECU所支持的診斷協(xié)議物理層一般為CAN線和K線,因此ECU基本信息表中的字段除了ECU型號,機型等信息外,主要是K線和CAN線的通訊速率以及各種診斷功能的指令信息。數(shù)據(jù)庫的這些字段信息可以描述一種ECU所支持的診斷協(xié)議的全部內容。
圖4 ECU基本信息表中的字段
診斷方式物理線路上可分為K線和CAN線,其中CAN線的通訊速率有250 kbps,500 kbps和1 Mbps三種。常用的應用層協(xié)議有ISO 14229、ISO 14230、ISO 15031、ISO 15765和SAE J1939等幾種[4],這些信息都可以配置在ECU基本信息表中的相應字段中。一種機型可以配置支持多種診斷協(xié)議,在診斷軟件中,每種機型最多可以配置一種K線協(xié)議和三種CAN線協(xié)議。
負響應(Negative Response)是指當ECU不支持某種指令,或者當前無法執(zhí)行支持的某種指令時,對指令發(fā)出者的回復,ECU通過特定的代碼說明無法響應的原因,以便診斷程序參考。負響應代碼表用于解析ECU回復的負響應代碼,并通過程序接口傳遞給用戶界面,用于提示用戶操作,表1中羅列了部分常用的負響應代碼。
表1 部分常用的負響應代碼
數(shù)據(jù)庫修訂記錄表利用了數(shù)據(jù)庫可以大量存儲信息的特性,保存數(shù)據(jù)庫的修訂過程,便于追溯和版本管理。如果數(shù)據(jù)庫文件根據(jù)需要發(fā)布多個不同版本時,該表就十分必要了。
診斷功能表是一類表,由機型、功能和協(xié)議共同決定,主要用于指令格式定義、參數(shù)或代碼解析。常用的診斷功能表如表2所示,診斷功能表在數(shù)據(jù)庫中命名方式為機型_功能_協(xié)議,如SC9DF_CAN1_DTC表示SC9DF機型在CAN1診斷協(xié)議下的讀取故障碼功能。用戶在使用該功能時,DLL文件訪問數(shù)據(jù)庫中的故障信息表,將從ECU讀取的故障信息與表中的信息進行比對,查找到匹配記錄后,就會按照表中定義內容進行解析,顯示在用戶界面上。常用的診斷功能列表和各功能列表的部分字段分別見表2和表3。
在診斷工具開發(fā)過程中,由于引入了Access數(shù)據(jù)庫技術,診斷軟件實現(xiàn)了對BOSCH、DENSO、UAES、DIAS等公司的燃油系統(tǒng)電控單元,以及凱龍、力達等公司的后處理系統(tǒng)電控單元的支持。這些電控單元合計支持7種診斷協(xié)議,22種機型,4000余條J1939信號,2 000余種故障代碼,50余種測試功能,Access數(shù)據(jù)庫在診斷軟件中有效地組織和存儲量大量的診斷信息[5~10]。
表2 常用診斷功能表
表3 各診斷功能表的部分字段匯總
在診斷軟件中使用Access數(shù)據(jù)庫后,診斷功能相關的大部分變更都可以由應用工程師通過更改數(shù)據(jù)庫來實現(xiàn),無需軟件開發(fā)工程師更改程序本身。平均更改時間由此前的一周縮短為一天,有效地提高了工作效率和響應速度。
為了保護企業(yè)技術信息,數(shù)據(jù)庫還設置了訪問密碼,診斷軟件在獲取數(shù)據(jù)庫信息時,首先要通過密碼驗證,否則無法讀取數(shù)據(jù)庫中的信息[11]。
在診斷軟件中引入Access數(shù)據(jù)庫是為了方便進行診斷信息的增減和修改,對數(shù)據(jù)庫的修改有兩種方式,一種是使用Access軟件直接打開數(shù)據(jù)庫文件,在相應的表中直接修改;另外一種是使用企業(yè)自己開發(fā)的專用配置軟件,在相應的功能界面上進行增減和修改操作。
相比第一種方式,使用專業(yè)軟件操作界面直觀,使用者無需了解數(shù)據(jù)庫中定義的各字段的具體含義,更容易上手,但數(shù)據(jù)庫結構發(fā)生變化后,配置軟件也需同步升級。
Access數(shù)據(jù)庫升級也有兩種方式,第一種是通過電子郵件或移動存儲設備交換數(shù)據(jù)庫文件,使用新的數(shù)據(jù)庫文件在軟件安裝目錄替換原數(shù)據(jù)庫文件即可完成升級。第二種方式是通過診斷軟件集成的數(shù)據(jù)庫升級功能,在網絡可用的情況下,診斷軟件可以自動檢測本地數(shù)據(jù)庫版本與網絡數(shù)據(jù)庫版本。如果服務器有新版本可用,則提示用戶選擇是否升級,服務器上的數(shù)據(jù)庫由專人負責維護。
在故障診斷軟件中引入通用的Access數(shù)據(jù)庫,可以很方便地對診斷軟件支持的電控單元故障診斷信息進行配置,從而實現(xiàn)了無需軟件代碼層的修改編譯即可進行診斷功能的有效擴展,提高了軟件更新發(fā)布效率,從而能夠更快地影響市場服務需求。
[1]環(huán)境保護部.HJ 437-2008車用壓燃式、氣體燃料點燃式發(fā)動機與汽車車載診斷(OBD)系統(tǒng)技術要求[S].北京:中國環(huán)境科學出版社,2008.
[2]康拉德?賴夫著.汽車電子學[M].李裕華,李航,馬慧敏,譯.西安:西安交通大學出版社,2011.
[3]莊麗君.基于Access數(shù)據(jù)庫的應用與效果[J].電子技術與軟件工程,2014(4).
[4]張大慶,張鳳登,張曉霞等.基于SAE J1939協(xié)議的發(fā)動機通信控制器仿真與設計[J].工業(yè)控制計算機,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應用系統(tǒng)開發(fā)研究[J].軟件開發(fā)與設計,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),男,工程師,主要研究方向為柴油機性能及故障診斷。