張巧娟,張瑞峰,張吉斌,路 瑤,楊高興,柴璐軍
(西安中車永電電氣有限公司,陜西 西安 710016)
隨著綠色低碳發(fā)展成為各國發(fā)展的趨勢,清潔能源成為各行業(yè)大力開發(fā)的方向。車載儲能式導(dǎo)軌電車使用超大電容為整車提供能量,既實現(xiàn)了能量的高效循環(huán)利用,同時也達到了綠色環(huán)保的目的。在整個項目進行中,根據(jù)試驗項點的不同,需要測試的參數(shù)發(fā)生變化,收發(fā)地址可能會不同,對接收數(shù)據(jù)的實時性要求也不同。一款監(jiān)控軟件也不可能一直隨之改動,而使用多個軟件成本又會增加。為驗證程序的可靠性、有用性、穩(wěn)定性和安全性,設(shè)計了一款實用的監(jiān)控軟件。該軟件能在很大幅度上減少調(diào)試人員工作時間,提高工作效率,降低成本。
車載儲能式導(dǎo)軌電車的牽引系統(tǒng)由高壓箱、牽引逆變器1、牽引逆變器2、DC/DC電路、超級電容等組成。牽引系統(tǒng)結(jié)構(gòu)如圖1所示。電車運行過程中超級電容放電,通過DC/DC電路變換為牽引逆變器1和牽引逆變器2供電。電車到站后,750 V直流電通過高壓箱變電為超級電容充電。
圖1 牽引系統(tǒng)結(jié)構(gòu)圖
在牽引系統(tǒng)的各個部位,安裝了多個電壓、電流傳感器來檢測各個位置的參數(shù),A/D板卡定時采集數(shù)據(jù)給數(shù)字信號處理化(digital signal processing,DSP)。DSP定時(30 ms)將所需數(shù)據(jù)發(fā)送給監(jiān)控軟件用于調(diào)試。在調(diào)試過程中,若不能及時接收數(shù)據(jù),則會出現(xiàn)數(shù)據(jù)覆蓋或溢出,使得用戶不能及時掌握系統(tǒng)變化,從而出現(xiàn)不可預(yù)知的結(jié)果。因此,牽引系統(tǒng)監(jiān)控軟件的設(shè)計對數(shù)據(jù)的實時性要求較高。
監(jiān)控軟件通過CAN卡與TCU上的DSP芯片進行通信、DSP根據(jù)用戶指令產(chǎn)生信號傳送給現(xiàn)場可編程門陣列(field programmable gate array,FPGA)。FPGA發(fā)送脈沖給絕緣雙核型晶體管(insnlated gate bipolar transistor,IGBT)模塊來控制電機動作。這個過程中:牽引逆變器和電機中的參數(shù)通過傳感器將數(shù)據(jù)反饋給FPGA,F(xiàn)PGA與DSP之間進行數(shù)據(jù)傳輸,DSP將即時數(shù)據(jù)通過CAN卡實時發(fā)送給監(jiān)控軟件,形成閉環(huán)回路達到實時監(jiān)控的目的,便于調(diào)試人員根據(jù)數(shù)據(jù)及時作出判斷。數(shù)據(jù)交互如圖2所示。
圖2 數(shù)據(jù)交互圖
車載儲能式導(dǎo)軌電車牽引系統(tǒng)監(jiān)控軟件采用Visual Basic語言[1-8]開發(fā)軟件。該語言開發(fā)周期短,易入手。而牽引系統(tǒng)對實時性要求較高,使用VB.Net[3],可有效解決VB不支持繼承、無原生支持多線程、異常處理不完善等缺點[4]。
由于CAN總線[5]具有實時性強、傳輸距離遠、抗電磁干擾能力強等優(yōu)點,采用雙線串行通信方式,檢錯能力強,可在高噪聲干擾環(huán)境中工作[4],非常適用于牽引系統(tǒng)調(diào)試現(xiàn)場。本文使用Visual Basic 2013作為開發(fā)軟件,通過選擇運行CPU,可解決在不同系統(tǒng)上安裝的兼容性問題;選用周立功的USB-CAN2A型號實現(xiàn)CAN卡與DSP之間的通信。
牽引系統(tǒng)對監(jiān)控軟件[6-7]的功能要求主要分為以下幾個方面:通信、根據(jù)調(diào)試環(huán)境來修改顯示參數(shù)、下發(fā)指令、顯示故障信息、顯示曲線、存儲數(shù)據(jù)。監(jiān)控軟件功能要求結(jié)構(gòu)如圖3所示。
圖3 監(jiān)控軟件功能要求結(jié)構(gòu)圖
根據(jù)軟件的功能要求,對軟件界面布局,模塊大致可分為通信模塊、修改參數(shù)模塊(包括修改地址、修改顯示參數(shù)和修改故障信息參數(shù))、數(shù)據(jù)顯示模塊、曲線顯示模塊和數(shù)據(jù)存儲模塊。監(jiān)控軟件設(shè)計界面結(jié)構(gòu)如圖4所示。
圖4 監(jiān)控軟件設(shè)計界面結(jié)構(gòu)圖
通信模塊使用ZLG CAN卡實現(xiàn)軟件與DSP之間的通信;修改參數(shù)模塊包括修改接收地址,修改顯示數(shù)據(jù)參數(shù),修改故障信息參數(shù);數(shù)據(jù)顯示模塊數(shù)據(jù)顯示和故障燈顯示;曲線顯示模塊可根據(jù)需要選擇顯示的曲線; 發(fā)送數(shù)據(jù)模塊將指令發(fā)送給DSP;數(shù)據(jù)存儲模塊用來保存接收到的數(shù)據(jù)。
軟件啟動后,程序首先初始化,賦初值;通過相應(yīng)按鈕來觸發(fā)事件,依次點擊“修改接收地址”按鈕、“修改參數(shù)名稱”按鈕和“修改故障名稱”按鈕,分別執(zhí)行讀取接收地址、修改參數(shù)名稱、修改故障名稱等修改參數(shù)子模塊;調(diào)用通信子模塊后,判斷軟件是否處于通信狀態(tài),正常通信后,根據(jù)實際操作,自動建立子線程1進行數(shù)據(jù)接收子模塊程序,將接收到的數(shù)據(jù)存儲到緩存區(qū)中后,判斷是否停止接收。若是,則子線程1結(jié)束;否則循環(huán)進行該流程。在接收數(shù)據(jù)的過程中,可觸發(fā)事件按鈕用于判斷是否有其他操作,如發(fā)送數(shù)據(jù)、存儲數(shù)據(jù)、操作曲線顯示界面等。若有,則執(zhí)行相應(yīng)事件;若無,則結(jié)束。系統(tǒng)流程如圖5所示。
圖5 系統(tǒng)流程圖
軟件通信時,使用CAN卡連接DSP和牽引系統(tǒng)監(jiān)控軟件。打開監(jiān)控軟件后,需要先選好設(shè)備類型、設(shè)備索引號、所使用的CAN卡通道等參數(shù)。使用ZLG的二次開發(fā)接口函數(shù)庫中的OpenDevice函數(shù)連接CAN卡,傳輸波特率設(shè)為250 KB,無屏蔽碼,數(shù)據(jù)全部接收,實現(xiàn)對CAN卡的初始化。打開設(shè)備,啟動CAN卡后,若通信正常,則接收數(shù)據(jù)。接收數(shù)據(jù)設(shè)為一次接收1 600幀數(shù)據(jù)來保證數(shù)據(jù)能夠及時讀取,數(shù)據(jù)不會丟失和溢出。
在監(jiān)控軟件中,根據(jù)項目的進度,每個階段調(diào)試的項目不同、收發(fā)數(shù)據(jù)的地址不同、需要顯示的參數(shù)也不同,界面顯示參數(shù)能隨之變化。而程序不可能一直改動,故需借助Excel來實現(xiàn)此功能。
首先,實現(xiàn)與Excel的連接[9]。在項目中先對Excel進行引用。其次,對Excel進行操作,主要是讀取Excel表信息。選用OpenFileDialog控件使用戶能自由選擇讀取文檔,窗口正常顯示后,打開選擇的Excel文檔,設(shè)置Excel表不可見,將表中單元格的值賦值給相應(yīng)變量或控件來顯示。操作完成后,將當(dāng)前活動表格關(guān)閉,釋放資源。為了調(diào)試便于查找故障源,加入Try…Catch ex as Exception…End Try語句來捕捉調(diào)試過程中出現(xiàn)的異常情況。
數(shù)據(jù)存儲功能使用FileStream操作I/O口進行讀寫文檔,頭文件中導(dǎo)入 System.I/O,定義文件名的格式,設(shè)置存儲數(shù)據(jù)標(biāo)志位為布爾型變量。若為False,則存儲數(shù)據(jù)計數(shù)值為0,先寫入標(biāo)題,后存入數(shù)據(jù)。若存儲數(shù)據(jù)計數(shù)值超過50 000,則將存儲數(shù)據(jù)標(biāo)志位設(shè)為True,否則False;儲存數(shù)據(jù)標(biāo)志位為True,則重復(fù)上述過程。在接收數(shù)據(jù)時,可點擊“開始存儲”按鈕來保存數(shù)據(jù),點擊“停止存儲”則結(jié)束。
曲線顯示功能要求在同一界面上顯示多條曲線[10],曲線可以根據(jù)需要選擇是否顯示。該軟件使用第三方插件RTTrend控件來繪制曲線,使用CheckBox控件實現(xiàn)可選曲線。通過ComboBox控件實現(xiàn)對數(shù)據(jù)的縮放。
所設(shè)計的車載儲能式導(dǎo)軌電車牽引系統(tǒng)監(jiān)控軟件從用戶的角度思考問題,完全能夠滿足用戶的現(xiàn)場需求,為調(diào)試提供便利,最大限度地減少后期工作。目前,該軟件已應(yīng)用于車載儲能式導(dǎo)軌電車牽引系統(tǒng)現(xiàn)場調(diào)試中,獲得了良好的反饋。