運用MCGS組態(tài)軟件和數(shù)據(jù)采集卡對汽車燃油噴射系統(tǒng)的運行狀態(tài)進行實時監(jiān)控,為研究和分析ECU提供大量有價值的數(shù)據(jù),具有調控容易、重復性好、測試范圍可以無限擴展等優(yōu)點,為汽車燃油噴射系統(tǒng)的教學研究提供了很好的手段,在汽車教學中使用,收到較好教學效果。
1 引言
電子控制技術在汽車上的廣泛應用給汽車維修人員帶來了學習的困難和掌握的難度,特別是汽車燃油噴射系統(tǒng),結構密閉、組成復雜,是整個汽車的核心,也是學員學習的難點,利用MCGS組態(tài)軟件和數(shù)據(jù)采集卡構成的硬件系統(tǒng),通過MCGS接口參數(shù)設置,實現(xiàn)在脫機狀態(tài)下對發(fā)動機ECU的動態(tài)測試,實時故障檢測、故障診斷、故障模擬,為研究和分析ECU提供大量有價值的數(shù)據(jù),具有調控容易、重復性好、測試范圍可以無限擴展等優(yōu)點,從而為汽車燃油噴射系統(tǒng)的教學研究提供了很好的手段。

2 系統(tǒng)硬件組成
汽車燃油噴射實時監(jiān)控與仿真教學系統(tǒng)由北京昆侖通態(tài)MCGS組態(tài)軟件和臺灣研華PCL系列數(shù)據(jù)采集卡,豐田4缸電噴發(fā)動機、豐田汽車電腦(ECU)等汽車燃油噴射系統(tǒng)示教板組成。系統(tǒng)組成如圖2所示。

MCGS是一套基于Windows 95/98/ME/NT/2000等操作系統(tǒng)的平臺,用于快速生成上位機監(jiān)控系統(tǒng)組態(tài)軟件,支持各類采集板卡等硬件設備,具有數(shù)據(jù)采集、實時和歷史數(shù)據(jù)處理、報警、動畫圖形顯示及報表輸出等功能。采用臺灣研華公司推出的用于PC的高性能、高速度多功能數(shù)據(jù)采集卡:1個4路8位模擬量輸入模塊,實現(xiàn)對發(fā)動機噴油嘴噴油量、廢氣含氧量、冷卻液溫度、進氣溫度、進氣壓力、空氣流量傳感器模擬數(shù)據(jù)采集;兩個8路開關量輸入模塊,用以對點火閥、怠速穩(wěn)定閥、節(jié)氣門位置和曲軸位置傳感器等開關量的數(shù)據(jù)采集;通過ISA總線可使采集系統(tǒng)與上位監(jiān)控主機互聯(lián),實現(xiàn)由上位監(jiān)控采集板卡的運行,檢測采集板卡的參數(shù)并控制采集卡的運行。
3 系統(tǒng)結構設計
采用MCGS組態(tài)軟件進行系統(tǒng)開發(fā),實現(xiàn)用戶圖形顯示,數(shù)據(jù)存盤,報表、曲線形成,通過MCGS組態(tài)軟件接口參數(shù)設置,實現(xiàn)VB環(huán)境和MCGS軟件之間的實時數(shù)據(jù)交換,利用數(shù)據(jù)采集卡的驅動程序,直接采集現(xiàn)場信號,并在組態(tài)圖窗口中顯示,實現(xiàn)在線實時檢測,系統(tǒng)接口框圖如圖3所示。

根據(jù)測量的要求,調用組態(tài)軟件設備窗口中的子窗口—設備管理,調用研華采集板卡驅動程序,完成模擬量的輸入及輸入通道的信號聯(lián)系。通過用VB語言編制的 Drivers程序進行驅動,實現(xiàn)數(shù)據(jù)采集,完成畫面編輯、數(shù)據(jù)處理等。在MCGS運行環(huán)境中,根據(jù)指定的采集周期,調用接口,接口程序編制如下:
alngDat aFLag-Long型數(shù)組,設備對應通道的數(shù)據(jù)是否要處理,一般不用。
alngDataVaLue-Single型數(shù)組,設備對應的數(shù)值型通道的數(shù)值,當通道為字符型時,表示通道值在astrDataString數(shù)組中的位置。
astrDatsString-String型數(shù)組,設備對應字符型通道的值;
CollectDevDat=0-采集數(shù)據(jù)有效,但只對返回的輸入數(shù)據(jù)進行處理。
CollectDevDat=1-采集數(shù)據(jù)有效,但對返回的輸入數(shù)據(jù)都進行處理。
CollectDevDat=2-采集數(shù)據(jù)無效,不須進行處理。
CollectDevDa t = -1-設備故障。
CollectDevDat=-100-設備故障,但把第0通道的值返回,使用0通道來表示故障的具體信息。
Dim strlommOrder As String
Dim strReturn DAs String
Dim IngReturn As Long
Dim Inglndex As Long
Dim IngDoAs Long
Strcomm Order=“$”+Right(“00”+Hex) (g_lngDevice Address),2)+“6”
IngReturn=FetchDataFormComm[m_IngCheckFlag,m_objCommParent,strCommOrder,strReturnData]
If lngReturn <>o Then GoTo PROC_EXIT
