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