趙志春,孫華勇,殷樹松
(1 北京交通大學(xué) 電氣工程學(xué)院,北京100044;2 濟(jì)南鐵路局 車輛處,山東濟(jì)南250001;3 濟(jì)南鐵路局 科學(xué)技術(shù)研究所,山東濟(jì)南250001)
空調(diào)發(fā)電車是空調(diào)列車的重要組成部分,其工作狀況直接影響到列車能否正常運(yùn)行。實(shí)際工作中,對(duì)發(fā)電機(jī)組的運(yùn)行狀況進(jìn)行實(shí)時(shí)監(jiān)測記錄是保證機(jī)組正常運(yùn)行的重要措施。技術(shù)人員通過運(yùn)行數(shù)據(jù)了解機(jī)組全過程的運(yùn)行狀況,有針對(duì)性對(duì)機(jī)組進(jìn)行檢修維護(hù),目前這項(xiàng)工作是依靠乘務(wù)員每小時(shí)查看一次顯示儀表并記錄數(shù)據(jù)來完成的。技術(shù)人員反映采用人工方式取得運(yùn)行數(shù)據(jù)有很大的缺點(diǎn),獲得的數(shù)據(jù)基本上無法作為判斷發(fā)電車運(yùn)行狀況好壞的依據(jù),也無法為檢修提供有用的信息。經(jīng)分析造成這種狀況的原因主要有以下兩個(gè):(1)記錄間隔時(shí)間過長,數(shù)據(jù)不連續(xù),無法獲知記錄間隔之間的運(yùn)行狀況。(2)沒有客觀監(jiān)督措施,數(shù)據(jù)受人工的影響較大。人工疏忽及觀察角度的不同容易造成誤讀,不能保證數(shù)據(jù)的有效性和真實(shí)性。由于技術(shù)人無法獲得準(zhǔn)確連續(xù)的運(yùn)行數(shù)據(jù),致使不能及時(shí)發(fā)現(xiàn)機(jī)組運(yùn)行中的異常,隨著異常運(yùn)轉(zhuǎn)時(shí)間的延長使隱患擴(kuò)展成了故障,造成嚴(yán)重后果。鑒于這種情況,我們認(rèn)為有必要針對(duì)發(fā)電車的特點(diǎn)研制一套專用的運(yùn)行數(shù)據(jù)記錄裝置,以便為技術(shù)人員提供全過程的運(yùn)行數(shù)據(jù),及時(shí)發(fā)現(xiàn)運(yùn)行隱患,預(yù)防發(fā)生故障。
針對(duì)現(xiàn)場的實(shí)際需求,我們研制了“空調(diào)發(fā)電車運(yùn)行狀態(tài)記錄儀”。通過該記錄儀不但實(shí)現(xiàn)了對(duì)設(shè)備運(yùn)行狀況的連續(xù)監(jiān)測記錄,而且客觀上也起到了對(duì)乘務(wù)員的監(jiān)督作用,有利于提高乘務(wù)員的操作水平。通過對(duì)運(yùn)行數(shù)據(jù)進(jìn)行觀察分析可以提前發(fā)現(xiàn)運(yùn)行中的不穩(wěn)定因素和故障隱患,做到提前發(fā)現(xiàn)、提前預(yù)防,從而改變目前發(fā)電車檢修維護(hù)的被動(dòng)局面,保障行車安全。
系統(tǒng)總體組成如圖1所示。記錄儀車載部分包括記錄儀主機(jī)、數(shù)據(jù)采集子機(jī)及專用軟件,它負(fù)責(zé)實(shí)時(shí)檢測記錄3個(gè)發(fā)電機(jī)組的運(yùn)行參數(shù),如每個(gè)機(jī)組的各相供電電壓、電流、頻率、功率以及柴油機(jī)的油溫、油壓、水溫等。本裝置利用CF卡作為數(shù)據(jù)存儲(chǔ)介質(zhì),可以把數(shù)據(jù)轉(zhuǎn)存到微機(jī)中供分析使用。地面分析系統(tǒng)可對(duì)記錄的數(shù)據(jù)進(jìn)行處理,以圖表的形式向技術(shù)人員提供設(shè)備全過程的運(yùn)行狀況。
圖1 運(yùn)行狀況圖
硬件設(shè)計(jì)中遵循了COTS(Commercial Off-The-Shelf)思想,即設(shè)計(jì)中盡量選用成熟的、現(xiàn)有的模塊,不自行開發(fā)硬件,以降低成本,提高開發(fā)效率。車載部分的硬件結(jié)構(gòu)如圖2所示。
該裝置采用了模塊化設(shè)計(jì),以M2020-FNU20工控模塊為核心,通過RS485總線把各個(gè)采集模塊連接起來組成一個(gè)主從式監(jiān)測網(wǎng)絡(luò)。這種結(jié)構(gòu)方式具有硬件結(jié)構(gòu)簡單、擴(kuò)展靈活的優(yōu)點(diǎn),可以根據(jù)需要接入其他測控模塊,從而構(gòu)成一個(gè)更復(fù)雜的綜合測控系統(tǒng)。
圖2 車載部分硬件結(jié)構(gòu)圖
車載主機(jī)是記錄儀的核心,負(fù)責(zé)控制各部分協(xié)同工作,完成顯示驅(qū)動(dòng),人機(jī)交互,通信驅(qū)動(dòng),CF卡讀寫驅(qū)動(dòng)以及數(shù)據(jù)存儲(chǔ)等任務(wù)。采用了以MiniARM工控模塊M2020-FNU20為核心進(jìn)行記錄儀車載主機(jī)設(shè)計(jì)的方案。M2020-FNU20模塊的CPU采用了ARM芯片LPC2200,主頻可達(dá)75 MHz。模塊上的軟硬件資源非常豐富,集成了ARM 最小系統(tǒng)、以太網(wǎng)控制器、USB控制器、大容量電子盤以及實(shí)時(shí)時(shí)鐘,模塊的體積只有名片大小,可以方便的集成到系統(tǒng)中。設(shè)計(jì)中只根據(jù)需要設(shè)計(jì)了相應(yīng)的接口電路,大大簡化了硬件設(shè)計(jì)工作,縮短了設(shè)計(jì)周期。
車載主機(jī)的人機(jī)界面采用了帶觸摸屏的串口液晶顯示終端,該液晶終端內(nèi)部集成了電源、觸摸屏及液晶驅(qū)動(dòng)電路。采用該液晶終端無需再設(shè)計(jì)外部驅(qū)動(dòng)電路,只需編寫串口通信程序即可完成文字及圖形顯示、觸摸屏控制等功能,大大簡化了軟硬件設(shè)計(jì),也便于以后的維護(hù)升級(jí)。
車載數(shù)據(jù)采集子機(jī)主要完成各機(jī)組運(yùn)行參數(shù)的采集,并把數(shù)據(jù)發(fā)送給車載主機(jī)。采集子機(jī)需采集的參數(shù)都是模擬量,數(shù)量較多,如果采用傳統(tǒng)的采集方法需要安裝電壓、電流、功率、頻率、功率因數(shù)等一系列變送器以及設(shè)計(jì)相應(yīng)的模數(shù)轉(zhuǎn)換電路,安裝布線和電路設(shè)計(jì)都比較復(fù)雜。為簡化設(shè)計(jì)我們采用了智能電量采集模塊9033E實(shí)現(xiàn)發(fā)電機(jī)電量參數(shù)的采集,采用了模擬量采集模塊9015A實(shí)現(xiàn)柴油機(jī)運(yùn)行參數(shù)的采集。
9033E是一款智能電量采集模塊,模塊內(nèi)部以32位ARM處理器為核心,采用16位A/D以4 kHz的頻率進(jìn)行采樣,能夠綜合采集電壓、電流、功率、頻率等電參數(shù)。每臺(tái)機(jī)組設(shè)置了一個(gè)模塊完成本機(jī)組所有電參數(shù)的采集處理,各模塊通過RS485總線與CPU主控板連接,根據(jù)主控板發(fā)出的命令采集數(shù)據(jù)并把數(shù)據(jù)傳送給主控板。使用該模塊不但簡化了設(shè)計(jì),降低了成本,同時(shí)也使得現(xiàn)場布線較為簡單。為了方便安裝定制了專用的開合式互感器,和普通的穿心式互感器相比,這種傳感器在安裝時(shí)不需要對(duì)線路進(jìn)行改動(dòng),固定在銅排上即可。
在采集柴油機(jī)的運(yùn)行數(shù)據(jù)時(shí)發(fā)現(xiàn)安裝新的水溫、油溫、油壓傳感器比較困難,為了獲取相關(guān)數(shù)據(jù),采用了直接采集相應(yīng)儀表信號(hào)線數(shù)據(jù)的方法。傳感器的輸出信號(hào)直接和儀表的S端子連接,且均為直流電壓信號(hào),因此采集儀表S端子的電壓,然后經(jīng)過一系列運(yùn)算即可獲取相關(guān)的參數(shù)。經(jīng)試驗(yàn)發(fā)現(xiàn)傳感器的輸出電壓不但和溫度及壓力值有關(guān),而且和24 V供電電壓有關(guān),因此計(jì)算時(shí)還需考慮電源的影響。經(jīng)多次試驗(yàn)確定了電源電壓和傳感器輸出信號(hào)之間的關(guān)系。經(jīng)過測試,采集的溫度及壓力的精度達(dá)到了設(shè)計(jì)要求。對(duì)儀表S端子電壓、24 V及48 V電壓的采集是用9015A模擬量采集模塊實(shí)現(xiàn)的。該模塊廣泛應(yīng)用于各種工業(yè)控制與測量系統(tǒng)中,它能測量12路直流0~60 V電壓信號(hào)。通訊接口為RS485,支持MODBUS-RTU、ASCII碼等多種通信協(xié)議,可以方便的和其他模塊組成RS485測控網(wǎng)絡(luò)。
設(shè)計(jì)中采用了ADS1.2作為開發(fā)工具設(shè)計(jì)車載主機(jī)軟件,使用ARM C語言編寫程序。M2020-FNU20工控模塊具有豐富軟件資源,內(nèi)部以固件的方式固化了uC/OS-II實(shí)時(shí)多任務(wù)操作系統(tǒng)、文件管理系統(tǒng)、USB通信協(xié)議、MODBUS通信協(xié)議以及CAN通信協(xié)議等,用戶無需再編寫相應(yīng)的底層驅(qū)動(dòng)程序,只需調(diào)用相應(yīng)的API函數(shù)即可完成U盤讀寫、串行通信、文件管理等一些復(fù)雜的功能,大大簡化了設(shè)計(jì)。由于優(yōu)先級(jí)0~15的任務(wù)被系統(tǒng)占用,在程序設(shè)計(jì)中使用的任務(wù)優(yōu)先級(jí)為16~20。系統(tǒng)初始化部分通過調(diào)用API函數(shù)加載U盤、串口及其他的驅(qū)動(dòng)程序。各個(gè)任務(wù)建立后即在操作系統(tǒng)的調(diào)度下運(yùn)行,各任務(wù)既相互獨(dú)立又互相配合共同完成系統(tǒng)功能,任務(wù)之間通過郵箱進(jìn)行數(shù)據(jù)交換。車載主機(jī)軟件的總體結(jié)構(gòu)如圖3所示。
圖3 車載主機(jī)軟件的總體結(jié)構(gòu)圖
uC/OS-II是一個(gè)實(shí)時(shí)多任務(wù)操作系統(tǒng),可以同時(shí)運(yùn)行多個(gè)任務(wù)。每個(gè)任務(wù)都是應(yīng)用程序的一部分,完成特定的功能,獨(dú)立于其他任務(wù)運(yùn)行,運(yùn)行時(shí)該任務(wù)認(rèn)為CPU完全屬于自己,可以使用或等待CPU、I/O設(shè)備及內(nèi)存空間等系統(tǒng)資源。通過調(diào)用uC/OS-II提供的系統(tǒng)服務(wù)函數(shù)來建立、刪除、或者進(jìn)行任務(wù)切換。
設(shè)計(jì)時(shí)首要的工作是合理劃分任務(wù),在對(duì)一個(gè)具體應(yīng)用進(jìn)行任務(wù)劃分時(shí)存在以下的矛盾:如果劃分的任務(wù)過多會(huì)造成任務(wù)頻繁切換的開銷增加;相反,如果過少則會(huì)造成系統(tǒng)的并行度降低,使原本可以并行的操作只能按順序串行執(zhí)行,實(shí)時(shí)性就比較差。在劃分任務(wù)時(shí)遵循了以下原則:具有相同時(shí)間間隔的工作歸到一個(gè)任務(wù)中,盡量減少各個(gè)任務(wù)之間的通信量,不同的優(yōu)先級(jí)處理不同的任務(wù)。對(duì)實(shí)時(shí)性要求比較高的任務(wù)以高優(yōu)先級(jí)運(yùn)行,以保證系統(tǒng)的實(shí)時(shí)性。根據(jù)以上原則,把采集任務(wù)設(shè)置為最高優(yōu)先級(jí)任務(wù),鍵盤掃描及采集任務(wù)次之,把寫入任務(wù)設(shè)置為最低優(yōu)先級(jí)。經(jīng)過試驗(yàn)驗(yàn)證以上設(shè)置可以保證系統(tǒng)的實(shí)時(shí)性。
(1)RTC中斷服務(wù)程序
工控模塊的RTC實(shí)時(shí)時(shí)鐘設(shè)置為定時(shí)中斷的模式,中斷時(shí)系統(tǒng)調(diào)用本程序。在程序中調(diào)用OSSem-Post()函數(shù)向數(shù)據(jù)采集任務(wù)發(fā)信號(hào),由于數(shù)據(jù)采集任務(wù)的優(yōu)先級(jí)最高,因此立即被激活進(jìn)行一次數(shù)據(jù)采集。
(2)數(shù)據(jù)采集任務(wù)
負(fù)責(zé)和各模塊進(jìn)行通信,完成數(shù)據(jù)采集任務(wù)。任務(wù)的優(yōu)先級(jí)設(shè)置為系統(tǒng)的最高優(yōu)先級(jí)16。該任務(wù)調(diào)用OSSemPend()函數(shù)等待RTC中斷服務(wù)程序的信號(hào),沒有接收到信號(hào)時(shí)處于休眠狀態(tài),一旦接收到信號(hào)立即被激活進(jìn)行數(shù)據(jù)采集。采集到的數(shù)據(jù)首先寫入緩沖區(qū)中,然后向?qū)懭肴蝿?wù)發(fā)信號(hào),寫入任務(wù)收到信號(hào)后從緩沖區(qū)中取出數(shù)據(jù)寫入文件中。采集到的數(shù)據(jù)通過郵箱發(fā)送給顯示任務(wù),顯示任務(wù)從郵箱中取出數(shù)據(jù)進(jìn)行顯示處理。
(3)顯示及觸摸屏掃描任務(wù)
主要負(fù)責(zé)數(shù)據(jù)顯示和接受用戶的輸入信息并進(jìn)行處理,任務(wù)的優(yōu)先級(jí)設(shè)為17。任務(wù)首先進(jìn)行整個(gè)系統(tǒng)的初始化及其他任務(wù)的創(chuàng)建工作,然后進(jìn)入任務(wù)循環(huán)。在任務(wù)循環(huán)中調(diào)用OSMboxPend()函數(shù)查詢郵箱,從郵箱中取出數(shù)據(jù)進(jìn)行顯示。調(diào)用API函數(shù)查詢用戶是否點(diǎn)擊觸摸屏,根據(jù)用戶點(diǎn)擊的按鈕進(jìn)行相應(yīng)的處理。
(4)數(shù)據(jù)寫入任務(wù)
主要負(fù)責(zé)把采集到的數(shù)據(jù)寫入文件中,任務(wù)的優(yōu)先級(jí)設(shè)置為最低18。該任務(wù)收到數(shù)據(jù)采集任務(wù)發(fā)送的信號(hào)后,從緩沖區(qū)中取出數(shù)據(jù)寫入文件中。由于寫入占用的時(shí)間較長,設(shè)置成較低的優(yōu)先級(jí)可以保證采集任務(wù)及時(shí)運(yùn)行,避免丟失數(shù)據(jù)。
以M2020-FNU20工控模塊為核心設(shè)計(jì)的空調(diào)發(fā)電車運(yùn)行狀態(tài)記錄儀結(jié)構(gòu)簡單、安裝方便、擴(kuò)展靈活。設(shè)計(jì)中吸收了COTS的設(shè)計(jì)思想,充分利用了現(xiàn)有的模塊及組件,降低了開發(fā)成本,提高了開發(fā)效率。記錄儀經(jīng)實(shí)際裝車運(yùn)行考驗(yàn),各項(xiàng)性能指標(biāo)及可靠性、安全性達(dá)到了設(shè)計(jì)要求。
[1] M2020-FNU20_產(chǎn)品用戶手冊(cè)[Z].廣州致遠(yuǎn)電子有限公司,2007.
[2] 邵貝貝 等譯.嵌入式實(shí)時(shí)操作系統(tǒng)uC/OS-II[M].北京:北京航空航天大學(xué)出版社,2003.