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