客運索道故障診斷專家系統(tǒng)的開發(fā)
摘要: 索道故障診斷專家系統(tǒng)的建立有利于工作人員在最短的時間內(nèi)根據(jù)故障的表面現(xiàn)象確定其深層原因,從而能夠盡快排除故障。
關(guān)鍵詞: 索道;故障診斷
系統(tǒng)構(gòu)成
整個系統(tǒng)由實施故障信息采集的單片機部分和完成故障診斷的PC上位機部分組成,兩部分的通信通過芯片MAX232進行。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
在一般索道的電氣系統(tǒng)中,大都按照緊急停車、工作停車、正常停車的分類將引起停車的各類故障進行區(qū)分,并通過發(fā)光二極管顯示。在本系統(tǒng)中,索道停車故障信息就是從這里采集的,在單片機部分將故障加以編號,通過MAX232傳輸給上位機,上位機根據(jù)獲得的故障號,調(diào)用相應的診斷模塊,為操作人員的決策提供依據(jù)。
單片機設計
故障信息采集
在索道正常運行時,原索道電氣系統(tǒng)的LED故障指示燈熄滅,沒有信號輸出;一旦發(fā)生停車故障,LED指示燈點亮,有信號輸出。為了得到能夠被單片機處理的5V信號,通過光耦TLP521對索道電氣系統(tǒng)常用的24V信號進行電壓變換(如圖2),同時還能起到信號隔離的作用,一方面防止外部高壓信號侵入單片機系統(tǒng),另一方面隔斷單片機系統(tǒng)與原索道系統(tǒng)的電氣連接,保持原系統(tǒng)的獨立性。圖中二極管D1的作用是防止光耦反壓時將其擊穿。在該部分電路中,電阻R的選擇非常關(guān)鍵,既要保證PLC有輸出時LED和D1的可靠打開,又要防止電流太大,縮短器件壽命,因此要合理調(diào)整R值,使導通電流在10~20mA范圍內(nèi)。
圖2 故障信號的采集
索道的停車故障原因可能會有上百種,而單片機端口有限,我們使用芯片8255對端口進行擴展(如圖3所示),保證能對144種故障信息進行識別。對故障信息的編號采用順序編號的方式,即第1種故障(通過8255-1端口PA0采集)編號為1(二進制表示為00000001),第2種故障(通過8255-1端口PA1采集)編號為2(二進制表示為00000010),依此類推,第144種故障(通過8255-6端口PC7采集)編號為144(二進制表示為10010000)。
圖3 單片機端口的擴展
使用AT89C51單片機,P0口作為故障信號的采集通道,P2口作為芯片8255的片選信號,P1口沒有使用,作為系統(tǒng)的擴展備用端口,晶振頻率11.0592MHz,保證與PC機進行通信時波特率計算的方便。
單片機與上位PC機的通信
單片機使用的是TTL電平,單片機的串口輸出信號也是如此,但是串行通信中使用的是PC機9針串口,該串口遵循RS-232C通信協(xié)議,二者電平并不同,需要外接接口進行電平匹配。
采用MAX232芯片進行單片機和PC機的連接(如圖4所示)。通過MAX232的TTL和RS-232的輸入/輸出端口,自動調(diào)節(jié)單片機串口的TTL電平信號和RS-232的串行通信信號的電平匹配,同時完成索道停車故障信息向上位機的傳送。
圖4 89C52與PC機的電平匹配
單片機的串行端口有1個數(shù)據(jù)寄存器SBUF,該寄存器為發(fā)送和接受所共有,在一定條件下,向SBUF寫入數(shù)據(jù)就啟動發(fā)送過程,讀SBUF就啟動接收過程,本系統(tǒng)中要求單片機向外發(fā)送數(shù)據(jù),只需要對SBUF進行寫操作。單片機可以采用查詢方式或中斷方式實現(xiàn)數(shù)據(jù)的發(fā)送,本系統(tǒng)設計中采用中斷方式,并使串口工作于方式1,即10位異步通信方式,其中1個起始位,8個數(shù)據(jù)位(即故障信息代碼)和1個停止位。波特率由定時器T1的溢出率和串口控制寄存器SMOD的狀態(tài)確定,由于CPU的晶振為11.0592MHz,波特率可以很方便的取成整數(shù),這里采用了9600bps。
上位機設計
用visual basic 6.0進行串行通信的程序設計,較好的辦法是使用通信組件Microsoft Communications Control(以下簡稱MSComm)。MSComm提供了兩種處理通信問題的方法,一是事件驅(qū)動方法,一是查詢法。本程序設計采用MsComm控件的事件驅(qū)動方式。
MSComm控件初始化設置
在程序啟動加載時,首先要對MSComm控件初始化設置。
PC機讀取串口數(shù)據(jù)
PC機在檢測到串行端口有數(shù)據(jù)傳來時,則觸發(fā)MyComm控件的OnComm事件,系統(tǒng)讀取到故障代碼后,則顯示相應的故障處理解決辦法。
Private Sub MyComm1_OnComm()
;讀取串行端口傳來的數(shù)據(jù),并顯示相
應的故障處理解決辦法。
dim Buffer As Variant ;保存串口讀來
的數(shù)據(jù)
dim tmp(0) as byte ;保存串口讀取
的二進制數(shù)據(jù)
dim errnum as integer ;將二進制數(shù)據(jù)
轉(zhuǎn)換成故障代碼
If MScomm1.CommEvent = comEvReceive then
;觸發(fā)OnComm事件
Buffer=MSComm1.Input ;讀取串口數(shù)據(jù)
tmp=buffer
errnum=ascb(tmp) ;轉(zhuǎn)換成故障代碼
call(fault_manage(errnum)) ;調(diào)用其它模
塊顯示相應的
故障處理說明,
并將發(fā)生的該
故障記錄入庫
end if
end sub
故障處理說明顯示和故障記錄
系統(tǒng)從com1串行端口檢測到故障號后,顯示相應的索道故障處理說明,并同時將發(fā)生的該故障記錄入庫,以供后面的故障統(tǒng)計分析之用。在故障診斷顯示界面主要有該故障的故障說明、排除方法、電氣圖紙、應急處理方法、相關(guān)說明(操作手冊中對故障點相關(guān)器件的說明)、備注信息(故障點的實物圖片)等相關(guān)內(nèi)容。
圖5 故障診斷界面
故障統(tǒng)計分析
該模塊實現(xiàn)對故障記錄的歷史統(tǒng)計功能,以供分析某個時間段內(nèi)故障發(fā)生的頻率。
*故障類別統(tǒng)計:主要按照索道正常停車、工作停車、緊急停車等不同類別,分類統(tǒng)計某一階段各類故障發(fā)生的次數(shù)。
*故障部位統(tǒng)計:按照故障部位的分類來統(tǒng)計某一階段內(nèi)各部位發(fā)生故障的次數(shù)。
*故障類型統(tǒng)計:根據(jù)故障代碼分類,統(tǒng)計每種代碼所代表的故障某一階段內(nèi)發(fā)生的次數(shù)。
*故障明細統(tǒng)計:按照故障分類,顯示每一類型的故障某一階段發(fā)生的所有明細記錄。
根據(jù)這些統(tǒng)計結(jié)果,可以針對某些發(fā)生頻率較高的故障進行深入的研究,找出相關(guān)的對應措施,減少或避免故障的發(fā)生。
結(jié)語
一個成熟實用的索道故障診斷系統(tǒng)將會為索道運行中故障的盡快排除提供極大幫助。它不但可以省去查找可能的故障點、翻閱相關(guān)圖紙、確定排除方法等常規(guī)步驟,而且系統(tǒng)中提供的實物圖片、操作手冊中的相關(guān)信息等內(nèi)容會給工作人員帶來很大方便。同時,相關(guān)故障信息的調(diào)用都是通過程序自動進行,該過程幾乎在一瞬間就可完成,從而可以將索道運行中的停車時間縮小到最短。
評論