汪愛明,石 皓,孟 晨,黃從巍
(中國礦業(yè)大學(北京)機電學院 北京 100083)
單片機是從事機電一體化設計人才必須掌握的一門技術(shù)[1]。單片機課程實踐性強,相關(guān)理論內(nèi)容不易理解與掌握,傳統(tǒng)以實驗箱為核心的實驗課程難以滿足提高學生實踐創(chuàng)新能力的需求,本文以工業(yè)現(xiàn)場案例為基礎,采用虛實結(jié)合的思路,設計單片機實驗教學案例,為提高學生的實踐創(chuàng)新能力提供保障。
綜采刮板輸送機是煤礦工作面核心裝備,負責工作面煤炭運輸,并作為采煤機運行軌道和液壓支架前移支點[2]。鏈條是其關(guān)鍵部件,牽引刮板實現(xiàn)煤炭運輸。由于異物卡頓、過載、磨損、腐蝕等原因,鏈條會發(fā)生斷鏈、跳鏈、堵轉(zhuǎn)、斷刮板等故障[3]。目前,鏈條故障檢測主要依靠人工,無法及時發(fā)現(xiàn)故障,導致維修難度增加,使得生產(chǎn)中斷時間變長。
文獻[4]提出了一種如圖1(p110)所示的鏈條故障傳感裝置,刮板機運行時,刮板2帶動舌板5擺動,舌板上的磁鐵4時而正對、時而偏離霍爾傳感器3,導致傳感器輸出如圖2(p110)所示的脈沖信號。鏈條沒有故障時輸出正常脈沖;斷鏈時,斷鏈側(cè)的霍爾傳感器一直輸出低電平;跳鏈時,脈沖周期會變化;堵轉(zhuǎn)時,兩路同時輸出低電平,且刮板機轉(zhuǎn)速為0;斷刮板時,會丟失對應個數(shù)的脈沖。采用兩個單片機可以同時采集雙路脈沖信號,但在分析時存在時鐘同步難題,且成本高;因此需開發(fā)基于單CPU的刮板輸送機鏈條故障監(jiān)測儀。該監(jiān)測儀是一個應用單片機解決現(xiàn)場問題的典型案例,學生能夠掌握利用單片機開發(fā)測控系統(tǒng)的流程,掌握電路設計、軟件開發(fā)的基本知識以及相關(guān)工具軟件的使用方法,有助于提高學生的學習興趣和實踐創(chuàng)新能力[5-6]。
圖1 舌板接觸式鏈條故障傳感裝置
圖2 輸出脈沖信號(僅展示1路)
基于單CPU的刮板輸送機鏈條故障監(jiān)測儀需要同時采集雙路脈沖信號并進行分析,判斷是否發(fā)生鏈條故障,若發(fā)生故障,需要及時提醒現(xiàn)場人員;此外,還需讀取刮板輸送機控制器輸出鏈輪轉(zhuǎn)速信號,判斷堵轉(zhuǎn)故障。
如圖3所示,以STCSTC15F2K60S2單片機為核心開發(fā)本監(jiān)測儀,利用PCA模塊捕獲兩路脈沖,配合定時器分析脈沖信號,判斷是否發(fā)生斷刮板、跳鏈故障;為了便于程序下載,設計以Max232為核心的ISP在線編程模塊;采用Led燈報警鏈條故障;通過以Max485為核心的通信模塊與刮板輸送機控制器的通信,讀取控制器輸出鏈輪轉(zhuǎn)速信號。
圖3 二次儀表總體方案設計圖
2.2.1 在線編程電路
如圖4所示,單片機P3.0和P3.1分別與Max232芯片的12和11引腳連接;DB9插接件的2、3引腳與Max232的14和13引腳連接,實現(xiàn)單片機輸出的TTL電平與RS232電平的轉(zhuǎn)換,達到與計算機通過RS232串口下載程序的目的。
圖4 STC15F2K60S2單片機最小系統(tǒng)圖
2.2.2 電源模塊
如圖5所示,接線端子CN1接入5V電源,為本裝置供電。F1為一個500mA的自恢復保險絲,D1為二極管,led1為電源指示燈。該電路具有反接保護功能,當輸入電流過大或者電路板短路時,過大的電流將會產(chǎn)生過大的熱量,使保險絲迅速熔斷,切斷電源,保護其他元器件。此外,該電路還具有反接保護功能,若反接,輸出電流將通過二極管與自恢復保險絲構(gòu)成回路,熔斷保險絲,進而保護其他元器件。
圖5 電源電路設計圖
2.2.3 485通信模塊
如圖6所示,STC15F2K60S2單片機的P3.7、P3.6分別連接485芯片的TXD和RXD引腳,P3.5連接通信收發(fā)控制引腳,實現(xiàn)基于RS485的鏈輪速度讀取。
圖6 基于RS485的數(shù)據(jù)上傳模塊
2.2.4 報警模塊
如圖7所示,led2為綠色的led燈,代表鏈條正常;led3、led4、led5、led6、led7均為紅色的led燈,分別表示L斷鏈、R斷鏈、斷刮板、跳鏈和堵轉(zhuǎn)故障。
圖7 故障報警模塊電路設計圖
利用STC15F2K60S2的PCA模塊的脈沖捕獲功能實現(xiàn)跳鏈和斷刮板檢測,利用定時器實現(xiàn)斷鏈檢測,利用485通信讀取鏈輪轉(zhuǎn)速判斷是否發(fā)生堵轉(zhuǎn)。采用Keil C51軟件編寫程序,包括:主程序、基于PCA的跳鏈和斷刮板檢測程序、基于定時器斷鏈檢測程序和基于鏈輪轉(zhuǎn)速的堵轉(zhuǎn)檢測程序。
2.3.1 主程序
如圖8所示,首先對定時器0、定時器1、串口以及PCA模塊進行初始化,并開啟總中斷;然后,在while死循環(huán)中判斷雙側(cè)鏈條斷鏈的標志位是否同時為1,若滿足條件則向刮板輸送機控制器發(fā)送讀取鏈輪轉(zhuǎn)速信號,采用中斷方式接受數(shù)據(jù)并在中斷服務子程序中依據(jù)鏈輪轉(zhuǎn)速是否等于0判斷堵轉(zhuǎn)故障。
圖8 主程序流程圖
2.3.2 基于PCA的跳鏈和斷刮板檢測程序
STC15F2K60S2的3個PCA模塊分別是CCP0、CCP1、CCP2,對應的管腳分別為P1.1、P1.0、P3.7;本設計的雙路脈沖接入P1.0和P1.1。如圖9所示,當輸入脈沖正跳變時,進入PCA中斷服務子程序,對系統(tǒng)時鐘進行計數(shù),計算相鄰兩次發(fā)生正跳變計數(shù)值之差,即可得到脈沖寬度length1和length2,將length1-length2的值與設定閥值比較,即可判斷跳鏈和斷刮板故障。閾值1為刮板輸送機正常運行時的允許偏差最大值,理想應為0,實際會大于0,但不會太大,因此可取一個較小數(shù)值。取鏈條無故障情況下正常脈沖計數(shù)寬度平均值length,將閾值2設為0.25length,閾值3設為length。
圖9 PCA中斷函數(shù)流程圖
2.3.3 基于定時器的斷鏈檢測程序
以斷左鏈判斷為例,將定時器T0定時為50毫秒,如圖10所示;若超過1秒,即定時器進入中斷20次,系統(tǒng)未進入PCA中斷清除定時器計數(shù)值,判定為斷鏈故障。中斷子程序中通過t0判斷左鏈是否斷。右鏈斷鏈類似,利用定時器T1。
圖10 定時器0中斷函數(shù)流程圖
2.3.4 基于鏈輪轉(zhuǎn)速的堵轉(zhuǎn)檢測程序
由于定時器0和1被占用,因此選擇定時器2為波特率發(fā)生器,與刮板輸送機控制器通信,讀取鏈輪轉(zhuǎn)速。當主程序發(fā)送讀取鏈輪轉(zhuǎn)速指令后,采用中斷方式接受轉(zhuǎn)速數(shù)據(jù),并判斷是否堵轉(zhuǎn)。如圖11所示,接收到鏈輪轉(zhuǎn)速,長時間捕捉不到左鏈和右鏈的脈沖信號,即flag1和flag2為1時,表明鏈條停止運行,若鏈輪轉(zhuǎn)速為零,則發(fā)生了堵轉(zhuǎn)。
圖11 接收數(shù)據(jù)中斷函數(shù)流程圖
實驗需配備如下軟硬件:Altium Designer 6.0,繪制電路原理圖和PCB;Keil Vision 4,編寫編譯程序;STC-ISP在線編程軟件,下載程序到單片機;CH341SER,USB轉(zhuǎn)串口驅(qū)動;Proteus Pro 8.13,開展仿真實驗。
第一步,參考圖12,在Proteus中采用STC15W4K32S4代替STC15F2K60S2,U1用于模擬雙路脈沖,利用該單片機定時器對P0.0和P0.1不斷翻轉(zhuǎn)取反輸出模擬雙路脈沖;U2用于模擬本監(jiān)測儀,采集并分析雙路脈沖信號。第二步,參考2.3節(jié),利用Keil Vision編寫各軟件模塊;結(jié)合第一步設計的仿真電路進行調(diào)試,實現(xiàn)預期功能。第三步,參考2.2節(jié),利用Altium Designer繪制監(jiān)測儀電路圖及PCB。第四步,將設計的程序下載到監(jiān)測儀樣機,實驗驗證預期功能;如圖13所示,實驗時,采用STC15F2K60S2單片機輸出如圖2所示的模擬雙路脈沖,利用示波器實時測量該脈沖。
圖12 基于Proteus的案例模擬實驗電路示意圖
圖13 實驗現(xiàn)場
上述4個步驟分別對應4個任務,學時分別設置為1個、2個、2個和1個;從完成速度和效果兩方面進行打分,4個任務的完成速度總分分別為10分、10分、10分和10分,完成速度總分分別為10分、20分、20分和10分;綜合每個任務實驗過程中的各個環(huán)節(jié)進行評價與考核。總評成績由實驗環(huán)節(jié)成績和實驗報告成績兩部分組成,各100分。
基于虛實結(jié)合的單片機實驗教學案例以實際工程應用為背景,匯聚了單片機I/O、PCA、定時器、中斷等模塊知識點以及相關(guān)軟件的使用,使學生形成使用單片機開發(fā)測控系統(tǒng)的能力;與基于單片機開發(fā)板的傳統(tǒng)實驗教學方式相比,該方式能夠更好地調(diào)動學生的積極性,提高學生的參與程度,鍛煉其動手實踐能力。