孟麗莎
(上海汽車變速器有限公司 201807)
隨著汽車行業(yè)的創(chuàng)新發(fā)展和變革,汽車電控系統(tǒng)日臻完善,現(xiàn)代汽車處在智能化發(fā)展階段,最終向著全智能駕駛即無人駕駛發(fā)展[1]。據(jù)統(tǒng)計,汽車電子系統(tǒng)的技術(shù)創(chuàng)新在現(xiàn)代汽車技術(shù)創(chuàng)新中占90%以上[2],各整車廠和零部件廠商都在加大汽車控制器策略的研究和開發(fā),使得汽車駕駛更舒適、智能和安全。整車電子電氣控制系統(tǒng)中,動力控制系統(tǒng)的發(fā)動機和變速器控制單元占據(jù)了重要地位,是汽車動力系統(tǒng)的靈魂。而電控單元的開發(fā)離不開測試系統(tǒng),測試工作做得越全面,系統(tǒng)電控單元控制策略就越安全可靠。
在電控單元控制策略日新月異的今天,測試工作也愈加繁重和復(fù)雜。而采用自動測試系統(tǒng),不僅能夠節(jié)省大量人力和設(shè)備資源投入,還能夠減少人工測試的失誤,提高控制系統(tǒng)的質(zhì)量。當新開發(fā)項目發(fā)展到平臺化的成熟度以后,采用自動化測試系統(tǒng),對于項目擴展十分便利,可以用較少的人力設(shè)備資源,做較多的平臺項目,同時保證拓展項目質(zhì)量。
電控單元測試分為模型測試、代碼測試和硬件在環(huán)測試,硬件在環(huán)測試屬于半實物仿真測試,采用實際控制單元,把控制軟件和硬件單元集成到一起。在仿真環(huán)境中測試,屬于實車驗證之前的最后測試環(huán)節(jié),能夠充分驗證軟件和硬件。
本文介紹的硬件在環(huán)測試系統(tǒng),采用市場上成熟的dSPACE設(shè)備,包括硬件設(shè)備和軟件系統(tǒng)2大部分。其中硬件設(shè)備的主要特點就是具有較高的運算能力,靈活性強。而軟件系統(tǒng)則是可以方便地實現(xiàn)代碼生成、下載、調(diào)試和實驗等工作。硬件設(shè)備下位機采用mid-size的SCALEXIO機柜,包括CAN總線通訊通道,提供模擬輸入、模擬輸出、數(shù)字輸入、數(shù)字輸出、負載模擬、電源控制、電源開關(guān)、電阻仿真通道及故障注入仿真模塊。軟件系統(tǒng)上位機軟件采用實驗管理軟件ControlDesk以及自動化測試管理軟件AutomationDesk,使用MATLAB Simulink搭建整車仿真環(huán)境,通過RTI編譯成SDF文件,下載到機柜中,通過上位機控制軟件ControlDesk進行人機交互,操作和監(jiān)控換擋桿、加速踏板和制動踏板等控制信號。電控單元采用實體控制器,將控制軟件下載到控制器中,進行測試工作。數(shù)據(jù)的采集采用Vector公司的CANape軟件,可以實時標定和采集數(shù)據(jù)。
Python是一種解釋型、交互式、面向?qū)ο?、動態(tài)語義和語法優(yōu)美的腳本語言[3],其語法更貼近自然語言,可以用較少的代碼實現(xiàn)同樣功能,具有易學(xué)習(xí)、易開發(fā)和易維護的特點。自動化測試管理軟件AutomationDesk本身是用Python實現(xiàn)的,因此可以和Python有非常好的兼容性,同時Python作為高級程序設(shè)計語言,可以與C/C++實現(xiàn)相互調(diào)用。用Python開發(fā)自動化測試系統(tǒng),應(yīng)用在其他系統(tǒng)管理軟件時,如果沒有Python的API,也可以使用C/C++語言實現(xiàn)兼容,通用性是很好的。使用Python開發(fā)基于dSPACE平臺的自動化測試系統(tǒng),可以縮短開發(fā)周期,并且通用性強。
使用Python實現(xiàn)硬件在環(huán)的自動化測試系統(tǒng),實際上是把打開上位機軟件ControlDesk、執(zhí)行AutomationDesk自動程序、打開采集界面開始采集、停止采集數(shù)據(jù)、關(guān)閉AutomationDesk和ControlDesk全部用Python腳本實現(xiàn),只要執(zhí)行.py的腳本文件,整個測試過程全部可以完成。執(zhí)行.py文件,可以用專業(yè)的PythonWin等安裝程序直接運行,也可以用Linux、Windows及Mac OS的命令窗口或Shell窗口執(zhí)行python命令。啟動Python交互式解釋器,運行.py文件,還可以通過C/C++等編程語言直接調(diào)用,或者是嵌入到一些平臺管理軟件,使得執(zhí)行Python程序可以在事先設(shè)置好的工作任務(wù)中自動運行。
當同一個項目選擇特定測試流程或者不同項目在同一個硬件在環(huán)測試設(shè)備上做交替測試時,對自動測試流程工程文件和測試環(huán)境工程的選擇都可以用Python腳本實現(xiàn)。這只需要打開PythonWin軟件運行Python腳本,就可實現(xiàn)測試過程全自動化。
打開關(guān)閉ControlDesk界面Python語句如下。
# The class Dispatch is used to create objects.
from win32com.client import Dispatch
# Start ControlDesk.
ControlDeskApplication = Dispatch("ControlDeskNG.Application")
# Close ControlDesk.
ControlDeskApplication.Quit()
打開測試實驗工程并激活實驗的Python語句如下。
# Activate the project root.
ProjectRoot = ControlDeskApplication.ProjectRoots.Item(ProjectRootPath)
ProjectRoot.Activate()
# Activate the experiment.
E x p er i m e n t = Ac t i ve P ro j e c t.E x p er i m e n t s.Item(ExperimentName)
Experiment.Activate()
# Start online calibration.
ControlDeskApplication.CalibrationManagement.StartOnlineCalibration()
# Stop online calibration.
ControlDeskApplication.CalibrationManagement.StopOnlineCalibration()
打開AutomationDesk的語句如下。
import win32com.client
TAMObj = win32com.client.Dispatch("AutomationDesk.TAM")
打開采集界面CANape,用AutomationDesk自帶的Remote Calibration(COM)庫實現(xiàn)。通過Python腳本,把打開關(guān)閉實驗環(huán)境,運行自動測試流程和開始停止采集全部實現(xiàn),不需要人工操作,完成自動化測試。
完成硬件在環(huán)自動化測試,需要打開實驗環(huán)境工程文件,選擇執(zhí)行測試流程,采集數(shù)據(jù),形成數(shù)據(jù)分析報告。Python語言可以實現(xiàn)上述功能,執(zhí)行Python腳本,自動產(chǎn)生測試報告。
Python語言作為開放源代碼的編程語言,可移植性和可擴展性是不言而喻的,可以與C/C++互相調(diào)用,因此通用性很強。目前很多公司都引入了平臺化的管理軟件,把分配工作任務(wù)和上傳工作產(chǎn)物等工作維護在系統(tǒng)中。同時執(zhí)行測試工作和上傳測試報告也可以做在系統(tǒng)中,只要系統(tǒng)分配測試任務(wù),就可以調(diào)用Python腳本自動完成測試任務(wù),不再需要人工干預(yù),自動完成測試工作。
本文討論的硬件在環(huán)自動化測試系統(tǒng),可以作為一個子系統(tǒng)植入到其他平臺管理軟件中,很多重復(fù)性的測試和回歸測試都可以自動完成,節(jié)省了大量人工資源。電控單元的硬件在環(huán)測試受制于硬件資源設(shè)備,很多功能開發(fā)需要占用臺架資源進行調(diào)試。而把一些通用測試和回歸測試放在晚上或者周末的時間自動執(zhí)行,可以節(jié)省資源設(shè)備,減少公司的設(shè)備投入,提高產(chǎn)品競爭力。同時,機器執(zhí)行自動化測試,會減少人工失誤,提高產(chǎn)品質(zhì)量。因此,形成自動化測試系統(tǒng),對于高效、高質(zhì)量完成測試任務(wù)有深遠意義。
本文介紹了基于Python語言的電控單元硬件在環(huán)自動化測試系統(tǒng)的設(shè)計和實現(xiàn),使用Python腳本把打開和關(guān)閉硬件在環(huán)測試系統(tǒng)上位機界面、激活測試環(huán)境工程、執(zhí)行自動測試流程和開始停止數(shù)據(jù)采集等功能串聯(lián)在一起,只要運行.py文件,硬件在環(huán)測試過程全部完成,不需要人工干預(yù),自動產(chǎn)生測試報告。該自動化測試系統(tǒng),可擴展性、可維護性和兼容性強,能夠應(yīng)用到其他項目管理平臺,可以提高測試效率和測試質(zhì)量,節(jié)省人力資源,提高設(shè)備使用率,增加產(chǎn)品的競爭力。