郭健,段罡,鄭欣,焦帥,康武,李德軍
(陜西重型汽車有限公司,陜西 西安 710200)
截止目前,軟件測試一直是汽車產(chǎn)品V流程開發(fā)過程中的重要環(huán)節(jié)。其意義在于能夠在前期設(shè)計過程中發(fā)現(xiàn)邏輯問題,并加以糾正。從而降低后期修改帶來的成本增加問題。而且按照以往的軟件測試流程,通常只是某個控制邏輯模塊進行單獨仿真測試,分別進行信號的輸入搭建及輸出顯示。而進行系統(tǒng)聯(lián)合測試的條件過于復雜,需要設(shè)置大量的模塊工作量大且繁瑣,而且往往因為單個數(shù)據(jù)輸入問題導致測試失敗。為此文章介紹的基于 CANoe系統(tǒng)搭建的人機交互界面可以充分利用模型化界面的優(yōu)勢,從輸入?yún)?shù)到輸出參數(shù)及中間變量都可以在界面中加以同步顯示。不僅可以實時觀測當前測試模塊系統(tǒng)的變化,而且可以觀測到整車所有輸出信號的變化。并找出其中的關(guān)聯(lián)屬性,為完善邏輯設(shè)計提供更有力的測試環(huán)境。
軟件測試包含:
(1)輸入接口測試
(2)輸出接口測試
(3)數(shù)據(jù)處理測試
(4)單一模塊控制邏輯測試
(5)子系統(tǒng)多模塊測試
軟件測試是基于simulink進行的模型級設(shè)計邏輯驗證,通常使用simulink內(nèi)部模塊搭建即可完成。包括人工可改寫的輸入?yún)?shù)模塊,需要驗證的邏輯模型及用于觀測的輸出模塊。測試方法相對簡單,通過改變輸入量的值來觀測邏輯模塊中的運行邏輯是否正確,同時觀測輸出量是否滿足設(shè)計要求。此種測試方法需要測試人員對測試對象有很明確的認識,需要了解所有的輸入數(shù)據(jù)范圍及邏輯對應(yīng)輸出值大小。如圖1所示,其中左側(cè)Constant模塊為數(shù)值變量輸入,右側(cè)Display為數(shù)顯模塊,Scope為變化波形顯示模塊。
圖1 軟件測試模型
文章所設(shè)計的交互界面,是利用CANoe軟件模擬了一種便于進行數(shù)據(jù)輸入及輸出數(shù)據(jù)觀測的交互界面。界面設(shè)計分為三個部分:數(shù)據(jù)交互、窗口搭建及參數(shù)匹配。
圖2 聯(lián)合仿真測試模型
數(shù)據(jù)交互作為聯(lián)合仿真的基礎(chǔ)需要利用 CANoe自帶底層數(shù)據(jù)驅(qū)動包作為傳輸核心,通過模塊與simulink模型建立數(shù)據(jù)傳輸路徑。數(shù)據(jù)通過模塊傳遞至 CANoe處理中心并進行上傳打包傳遞至 CANoe模塊。其中需要通過數(shù)據(jù)庫文件配置相關(guān)輸入輸出數(shù)據(jù)類型(系統(tǒng)變量,環(huán)境變量,總線數(shù)據(jù)等)。圖中所示,Input為數(shù)據(jù)輸入模塊,可以從導入的數(shù)據(jù)庫中選擇相對應(yīng)的輸入數(shù)據(jù),Output為輸出模塊對應(yīng)相關(guān)數(shù)據(jù)庫中的數(shù)據(jù)輸出類型,Simulation Step為基礎(chǔ)工程模塊用以在CNAoe和Simulink之間傳輸實時仿真數(shù)據(jù)進行數(shù)據(jù)傳輸處理。
圖3 數(shù)據(jù)傳輸路徑
其數(shù)據(jù)交互方式圖3所示。數(shù)據(jù)從CANoe輸入經(jīng)過數(shù)據(jù)庫傳遞至 Simulink模塊參與邏輯仿真,輸出結(jié)果從Simulink傳遞至數(shù)據(jù)庫再上傳至CANoe界面進行顯示。其中底層數(shù)據(jù)交互模塊由CANoe自帶驅(qū)動模塊完成,基于CAN網(wǎng)絡(luò)數(shù)據(jù)庫 DBC文件即可定義相關(guān)數(shù)據(jù)并實現(xiàn)數(shù)據(jù)庫的同步。其中需要注意的是數(shù)據(jù)庫中的數(shù)據(jù)格式傳遞至 CANoe中只能識別double類型的數(shù)據(jù)格式。需要再Simulink模型中對其他類型的數(shù)據(jù)變量進行轉(zhuǎn)化才能轉(zhuǎn)移至數(shù)據(jù)庫中。
傳統(tǒng)的軟件仿真方式通常采用Display、Scope等觀測模塊進行數(shù)據(jù)的觀測,但模塊一般需要放置在變量輸出旁邊用以準確定位。當進行系統(tǒng)仿真時不僅數(shù)據(jù)龐大,而且無法同時觀測大量數(shù)據(jù)的變化。因此窗口界面的設(shè)計是文章的核心所在。
通過Toolbox模塊可以根據(jù)不同的需求建立相關(guān)輸入開關(guān)或者拖動條并配以數(shù)字顯示模塊同步顯示量化數(shù)值,同時輸出模塊能夠仿真實車的屏顯及燈控模塊。
也可以自行建立仿實車圖標,可以更加形象的模擬實車操作。同時面板的設(shè)計也可參照實車進行擺放。在界面搭建過程中需要設(shè)計人員對實車信號有一定程度的了解,方便定義信號的來源及形態(tài)。從而在界面設(shè)計中可以更好的接近實車情況。
圖4 界面設(shè)計
通過 Properties模塊可以將圖三中設(shè)定好的圖標內(nèi)部參數(shù)與simulink模型中的輸入輸出數(shù)據(jù)一一對應(yīng)。文本類的字體及顏色均可自由設(shè)定,其中 Symbol用以選擇數(shù)據(jù)庫中的變量名稱,Symbol Filter為此變量對應(yīng)的數(shù)據(jù)傳輸類型。設(shè)定完畢后此時該顯示模塊已經(jīng)與Simulink對應(yīng)輸入輸出值進行關(guān)聯(lián),可以同步啟動仿真進行測試。需要注意的是Symbol Filter所定義的類型分為:系統(tǒng)變量、環(huán)境變量、總線參數(shù)及診斷變量。不同的數(shù)據(jù)類型在實際應(yīng)用中有不同的選擇。需要設(shè)計人員對數(shù)據(jù)類型加以識別進行設(shè)定,才能達到最佳的使用效果。
圖5 配置界面
以某新能源商用車型測試程序為例。整個測試面板分為兩大部分。上部為數(shù)據(jù)顯示窗口,其中包含所有的硬線輸出信號狀態(tài)燈,CAN線輸出信號狀態(tài)燈,故障指示燈以及相關(guān)重點觀測參數(shù)。下部為輸入操作界面,包含所有的各類開關(guān),數(shù)字輸入,模擬信號輸入及部分零部件重要參數(shù)輸入(注:圖中所示參數(shù)變量均為初始化狀態(tài),不具有指導意義不涉及商業(yè)機密)。
當仿真運行時不需要在關(guān)注Simulink中的模型,僅從此頁面即可觀測被測系統(tǒng)的各項指標狀態(tài),同時任何異常變化都能在測試過程中及時發(fā)現(xiàn)。大大降低了測試難度,其中觀測狀態(tài)燈或數(shù)值可以定義異常數(shù)據(jù)范圍,對數(shù)顯或燈的顏色進行變化,從視覺上加強了對反饋信號的關(guān)注度。
圖6 人機交互仿真界面
為保證測試的準確性,在交互界面配置時可對部分參數(shù)進行初始化設(shè)置,將其初始值定義為所測系統(tǒng)或模塊所需要的值,在進行測試時不需要進行重復設(shè)置工作,從而提高了測試效率。同時也可以利用不同的初始值定義不同的測試用例,滿足模型的測試范圍。
該測試面板不僅可以應(yīng)用于仿真測試,在實車測試時也可以使用,但是無法實現(xiàn)系統(tǒng)變量及環(huán)境變量的觀測,僅可用于觀測 CAN網(wǎng)絡(luò)數(shù)據(jù)狀態(tài),具有同樣的測試效果??梢耘c實車狀態(tài)進行對比,用以發(fā)現(xiàn)不同點或異常點,進而協(xié)助排查整車線束故障、整車供電故障、繼電器故障等一些不容易發(fā)現(xiàn)的問題。
根據(jù)文章所描述的測試方法對試制樣車程序進行軟件測試,完成了相關(guān)控制邏輯模塊的測試及子系統(tǒng)模塊輸入輸出測試??梢杂行Оl(fā)現(xiàn)問題點并及時解決,保證了任務(wù)節(jié)點,進行實車測試時相關(guān)系統(tǒng)設(shè)計均可滿足功能要求。同時為系統(tǒng)軟件測試流程優(yōu)化提供幫助,更好的服務(wù)于整車控制系統(tǒng)軟件開發(fā)環(huán)節(jié)。