韓可強(qiáng),裴軍偉,黃家剛,殷振華
(中國汽車技術(shù)研究中心,天津 300300)
近幾年,隨著汽車技術(shù)不斷改進(jìn)與更新,汽車市場進(jìn)入了一個(gè)快速發(fā)展的階段,在追求價(jià)格日益下降的同時(shí),還要求汽車的性能得到提高。為了滿足客戶的需求,不同功能單元的ECU運(yùn)用在汽車上,ECU之間通過CAN線或者K線傳輸信號(hào),速度更快、信號(hào)更穩(wěn)定,卻使汽車的系統(tǒng)變得越來越復(fù)雜。汽車控制的電子化增加了汽車診斷維修工作的難度,特別是對一些故障的測試,需要對故障的策略了解得很清楚,使用一些信號(hào)模擬設(shè)備,去制造相應(yīng)的故障。由于傳統(tǒng)的測試方法已不能達(dá)到要求,為此很多主機(jī)廠迫切的需要改進(jìn)診斷測試方法,從而提高效率和測試精度,節(jié)約開支。本文主要介紹通過CAPL語言程序的編寫,CANoe控制CAPL程序,LabVIEW用來實(shí)現(xiàn)上位,控制CANoe,使CAPL程序與LabVIEW相結(jié)合,實(shí)現(xiàn)診斷自動(dòng)化。
1LabVIEW概述
LabVIEW是通用的編程系統(tǒng),有一個(gè)完成所有編程任務(wù)的龐大函數(shù)庫。LabVIEW還有傳統(tǒng)的程序調(diào)試工具,比如設(shè)置斷點(diǎn)、以動(dòng)畫方式顯示數(shù)據(jù)及其子程序 (子VI)的結(jié)果、單步執(zhí)行等,便于程序的調(diào)試。LabVIEW提供很多外觀與傳統(tǒng)儀器 (如示波器、萬用表)類似的控件,可用來方便創(chuàng)建用戶界面。
1)測試測量 LabVIEW最初就是為測試測量而設(shè)計(jì)的,因而測試測量也是現(xiàn)在LabVIEW最廣泛的應(yīng)用領(lǐng)域。
2)控制 控制與測試是兩個(gè)相關(guān)度很高的領(lǐng)域,從測試起家的LabVIEW首先拓展至控制領(lǐng)域。LabVIEW擁有專門用于控制領(lǐng)域的模塊——LabVIEWDSC。除此之外,工業(yè)控制領(lǐng)域常用的設(shè)備、數(shù)據(jù)線等也帶有相應(yīng)的Lab-VIEW驅(qū)動(dòng)程序。使用LabVIEW能很方便地編制各種控制程序。
3)仿真 LabVIEW包含了各種各樣的數(shù)學(xué)運(yùn)算函數(shù),特別適合模擬、仿真、原型設(shè)計(jì)等工作。
4)快速開發(fā) 熟練使用LabVIEW去開發(fā)新的程序或項(xiàng)目,可以縮短開發(fā)時(shí)間。
5)跨平臺(tái) LabVIEW具有良好的平臺(tái)一致性。Lab-VIEW的代碼不需做任何修改就能運(yùn)行在三大臺(tái)式機(jī)操作系統(tǒng)上:Windows、Mac OS及Linux。并且LabVIEW還支持多種實(shí)時(shí)操作系統(tǒng)和嵌入式設(shè)備,比如常見的PDA、FPGA以及運(yùn)行VxWorks和PharLap系統(tǒng)的RT設(shè)備。
本測試系統(tǒng)中,LabVIEW的應(yīng)用使測試平臺(tái)更統(tǒng)一,各程序之間可以相互聯(lián)系,又不會(huì)相互沖突。LabVIEW建立的上位界面,實(shí)現(xiàn)一鍵式的選擇測試。
由于診斷測試故障中主要測試幾大類故障,包括:①電源電壓過壓、欠壓故障;②報(bào)文丟失故障;③節(jié)點(diǎn)丟失故障;④極限電壓下ECU檢測故障的能力測試;⑤ECU診斷故障記錄能力的測試;⑥總線關(guān)閉故障;⑦Limphome故障(若節(jié)點(diǎn)有網(wǎng)絡(luò)管理)。
根據(jù)測試的故障,需要用到的硬件有程控電源 (控制15、30電,能夠控制電壓的變化,變化范圍一般在0~36 V),主要是針對電壓變化或者電源掉電下的測試,CANstress(通過干擾總線幀的傳輸,用來制造總線關(guān)閉故障),VTSystem(用來模擬負(fù)載,可以模擬電壓、電流以及許多模擬量),CANcase(信號(hào)的交互設(shè)備,用來DUT與CANoe的交互),各個(gè)硬件之間通過數(shù)據(jù)線相連接,合理布置在機(jī)柜上,而機(jī)柜通過接口與電腦結(jié)合,通過程序控制機(jī)柜里的每個(gè)硬件。圖1為診斷自動(dòng)化測試硬件圖。
圖1 診斷自動(dòng)化測試硬件圖
從圖1中可以看出:測試的時(shí)候,主要是測試機(jī)柜與臺(tái)架、電腦、DUT之間的連接,通過LabVIEW的上位程序,控制CANoe的運(yùn)行,達(dá)到測試的目的。
1)首先是通過CANdelastudio編寫診斷數(shù)據(jù)庫,可以只編寫診斷測試中與讀故障相關(guān)的服務(wù)和診斷故障,此CDD編寫好后,導(dǎo)入到CANoe中,作為一個(gè)數(shù)據(jù)庫,在編寫程序時(shí),可以調(diào)用里面的參數(shù),讀每一種故障在CDD中都有相對應(yīng)的故障碼,引用到程序中。
2)編寫好通信矩陣的數(shù)據(jù)庫DBC。需要發(fā)送和接收的信號(hào),在DBC都應(yīng)該編寫,導(dǎo)入到CANoe中,也是作為一個(gè)數(shù)據(jù)庫,可以通過建立仿真節(jié)點(diǎn),調(diào)用DBC的報(bào)文,通過功能函數(shù),直接控制報(bào)文的停止和發(fā)送。
3)程控電源的功能函數(shù)。每個(gè)程控電源都有屬于它本身的功能函數(shù),通過CAPL編程,用程序?qū)崿F(xiàn)電源的開關(guān)和調(diào)節(jié)電壓的大小,生成相應(yīng)的CIN函數(shù)庫,導(dǎo)入到相對應(yīng)的測試主程序中,就能直接控制程控電源。
4)CANstress通過與CAPL相兼容的功能函數(shù),編寫程序,控制CANstress的運(yùn)行以及其干擾的參數(shù),在哪個(gè)診斷測試用例中,需要用到,直接添加。
5)診斷配置表。需要測試哪幾類故障,通過診斷配置表,提取相對應(yīng)的CIN,導(dǎo)入主程序,測試不同的單節(jié)點(diǎn),可以使用通用的配置表。在主控界面,選擇好配置表后,就能生成相應(yīng)的CIN。在測試中,可以根據(jù)需要選擇測試用例。這些測試用例在主程序中和配置表中位置是相互對應(yīng)的,所以在測試前,先要對配置表進(jìn)行完善,需要測試哪些故障。
6)CIN函數(shù)庫,主要是針對不同的硬件,需要建立相應(yīng)的CIN,導(dǎo)入到CAPL主程序中,實(shí)現(xiàn)各硬件間的交互,以及與LabVIEW上位的交互,從而滿足要求。
在診斷測試主程序中,主要是集合每個(gè)CIN函數(shù)庫,每個(gè)故障的制造產(chǎn)生,讀取,怎樣恢復(fù),判斷的條件,生成相應(yīng)的報(bào)告,都可以通過程序控制。
總之,上位需要的函數(shù),所有硬件自控的函數(shù),都可以通過主程序結(jié)合在一起,需要什么,在相應(yīng)的位置處添加,從而實(shí)現(xiàn)不同的功能,程序可調(diào)節(jié)性比較大。
先根據(jù)要求,將各硬件連接正確,根據(jù)測試的單節(jié)點(diǎn)編制CDD和DBC,在CANoe中導(dǎo)入,根據(jù)需要測試的故障,配置好診斷的配置表。由于提取配置表的CIN,所以每一個(gè)故障都是以變量的形式在程序中定義的,只要上位提取的是什么故障,都可以測試,通用性比較強(qiáng)。當(dāng)所有需要的配置已完成,對硬件通電,打開LabVIEW的主界面,通過LabVIEW的運(yùn)行,打開上位的界面,在界面中選擇好配置表,生成CIN函數(shù),其他的配置好以后,點(diǎn)擊開始運(yùn)行按鈕,整個(gè)測試只需要十幾分鐘。測試完成后,自動(dòng)生成測試報(bào)告,報(bào)告存放的路徑前期已設(shè)定好,根據(jù)報(bào)告,分析故障是否符合主機(jī)廠的要求。圖2為診斷自動(dòng)化工作流程圖,圖3為診斷自動(dòng)化測試平臺(tái),圖4為診斷上位界面。
圖2 診斷自動(dòng)化工作流程圖
圖3 診斷自動(dòng)化測試平臺(tái)
圖4 診斷上位界面
隨著技術(shù)的不斷創(chuàng)新,越來越多的診斷測試方法應(yīng)運(yùn)而生。選擇一種方法,提高測試效率和精度是每個(gè)主機(jī)廠所要求的。此診斷測試自動(dòng)平臺(tái)的建立,是建立在以前診斷故障測試的基礎(chǔ)上,充分應(yīng)用CANoe中CAPL編程,通過程序控制各硬件的運(yùn)行,模擬不同的故障條件,運(yùn)用Lab-VIEW 來實(shí)現(xiàn)上位,通過一鍵式啟動(dòng),實(shí)現(xiàn)不同類型的故障測試。此平臺(tái)最大的優(yōu)勢就是節(jié)約成本,提高效率,對于初學(xué)者,也可以測試,不需要過多地了解協(xié)議。測試后的報(bào)告,簡單明了,易于分析。相信在不久的將來,更多合理的診斷自動(dòng)化測試方法會(huì)更好地運(yùn)用到汽車行業(yè)中。