閆金陽,方素平
(合肥工業(yè)大學(xué)航空結(jié)構(gòu)件成形制造與裝備安徽省重點實驗室,安徽 合肥 230009)
列車輪對作為列車行走的重要部件,是列車行車安全的重要保證,對列車輪對踏面故障進行檢測,及時排除由車輪踏面故障引起的行車安全隱患是極其必要的[1-2]。傳統(tǒng)的依賴人工測量的手段存在著效率低和實時性差的問題,對車輪踏面進行實時測量的需求日益提高。本文設(shè)計的基于STM32F03VET6和UC/OS-Ⅲ實時操作系統(tǒng)的列車輪對踏面故障檢測系統(tǒng),具有強實時性、高效率和低成本等特點,在我國輪對踏面故障檢測方面有著巨大的發(fā)展?jié)摿Α?/p>
當(dāng)車輪輪對踏面產(chǎn)生擦傷、磨損(以下簡稱故障)后,故障處的車輪踏面圓周半徑較無故障時變小,從而車輪故障處輪緣頂點位置低于無故障時車輪輪緣頂點的位置,通過測得這兩個位置的相對位移量h即可得到車輪的踏面擦傷、磨損值[3],檢測原理圖如圖1。
圖1 檢測原理圖
本設(shè)計的測量機構(gòu)是一套利用位移法進行檢測的平行四桿機構(gòu),由測量尺桿、擺桿、支撐彈簧、限位調(diào)整裝置和位移傳感器等部分組成。其流程為:列車未到達檢測機構(gòu)時,測量尺桿6在支撐彈簧1和11以及限位調(diào)整裝置4和8的共同作用下保持一定的初始高度;當(dāng)列車駛過該檢測機構(gòu)時,車輪輪緣會將測量尺板6壓下,通過測量尺桿下方的非接觸式位移傳感器6和10測得輪緣頂點位移變化量,并送入STM32微控制器內(nèi),最終獲得車輪的踏面擦傷、磨損量。測量機構(gòu)如圖2。
1-支撐彈簧; 2-擺桿; 3-非接觸式位移傳感器; 4-限位調(diào)整裝置; 5-底板; 6-測量尺桿; 7-底板;8-限位調(diào)整裝置; 9-擺桿; 10-非接觸式位移傳感器; 11-支撐彈簧。
本系統(tǒng)主要由軌邊采集層、控制傳輸層和應(yīng)用管理層組成,系統(tǒng)整體架構(gòu)如圖3所示。其中,軌邊數(shù)據(jù)采集層作為整個系統(tǒng)架構(gòu)的基礎(chǔ),該層由多套平行四桿機構(gòu)組成,將踏面故障信息通過傳感器送入控制傳輸層;控制傳輸層由移植了UC/OS-Ⅲ 實時操作系統(tǒng)的 STM32 為主控制器及其外圍功能模塊組成,對上一層的初始數(shù)據(jù)進行處理得到車輪踏面擦傷、磨損值,通過RS485通信傳入應(yīng)用管理層;應(yīng)用管理層為由C#語言開發(fā)的控制管理軟件。該層接收來自控制傳輸層的踏面擦傷、磨損值,通過將車輪踏面擦傷值與已設(shè)置好的踏面磨損超限值進行比較,將磨損超限的車輪進行報警處理,并對其他未超限的車輪做出科學(xué)預(yù)測分析,為整個系統(tǒng)的在線測量和科學(xué)管理提供準(zhǔn)確和全面的依據(jù)。
圖3 系統(tǒng)整體架構(gòu)
本系統(tǒng)的主控板卡在硬件設(shè)計上選擇意法半導(dǎo)體公司的STM32F103VET6芯片作為控制器主控芯片,外擴傳感器模塊、存儲模塊、觸摸屏模塊、通信模塊和電源模塊等。系統(tǒng)硬件結(jié)構(gòu)如圖4。
圖4 系統(tǒng)硬件結(jié)構(gòu)
本設(shè)計擬選用型號為ML33-12.5-V1的電渦流位移傳感器。其利用電渦流效應(yīng)感應(yīng),能精確地探測出被測金屬物體與探頭相對位置關(guān)系的變化,并以0~5 V的電壓信號輸出,對于這種連續(xù)變化的模擬信號量,通常使用ADC將其轉(zhuǎn)變?yōu)殡x散的數(shù)字信號量來進一步處理,考慮到STM32微控制器的工作電壓僅在2.0~3.6 V之間,本設(shè)計傳感器的接口電路采用了經(jīng)典的電阻分壓電路,接口電路如圖5。本接口設(shè)計中,為了最大限度地利用ADC的測量精度,需合理設(shè)計兩個分壓電阻的比例并選用精度較高的分壓電阻,使ADC恰好用到滿量程。同時,兩個分壓電阻的值應(yīng)設(shè)計合理,電阻太小會導(dǎo)致功耗過大,電阻太大則會導(dǎo)致ADC測量不夠穩(wěn)定。
圖5 ML33-12.5-V1接口電路
因為RS485通信具有接口電平低、傳輸速率高、抗干擾能力強和傳輸距離遠等諸多優(yōu)點,本設(shè)計選擇控制器通過RS485串口與遠程監(jiān)控端的PC機實現(xiàn)通信。RS485接口電路如圖6所示。
圖6 RS485接口電路
系統(tǒng)軟件的設(shè)計分為MCU內(nèi)程序設(shè)計和遠程監(jiān)控端的控制管理軟件設(shè)計兩大部分。
在STM32硬件平臺上移植UC/OS-Ⅲ嵌入式實時操作系統(tǒng),并引入STemWin圖形界面。UC/OS-Ⅲ是一個實時的、可裁剪的、搶占式、多任務(wù)內(nèi)核,在實時性要求很高的工業(yè)控制領(lǐng)域有著廣泛的應(yīng)用[4]。
圖7 主程序流程
系統(tǒng)主程序流程如圖7所示,在主程序開始前,需要將板上的硬件資源初始化,并調(diào)用OSInit()函數(shù)初始化中斷嵌套計數(shù)器、任務(wù)間通信模塊和優(yōu)先級位圖表等各個內(nèi)核模塊。隨后進入臨界區(qū),調(diào)用OSTaskCreate()函數(shù)創(chuàng)建初始任務(wù),再由初始任務(wù)創(chuàng)建其他實時任務(wù),任務(wù)及其參數(shù)如表1。最后調(diào)用OSStart()函數(shù),由內(nèi)核進行任務(wù)調(diào)度。本設(shè)計按照優(yōu)先級調(diào)度法和時間片輪轉(zhuǎn)調(diào)度法相結(jié)合的調(diào)度策略,對不同優(yōu)先級任務(wù)按照任務(wù)優(yōu)先級高低進行調(diào)度,相同優(yōu)先級任務(wù)則為其分配時間片進行輪轉(zhuǎn)調(diào)度。
表1 系統(tǒng)任務(wù)及其參數(shù)
其中state_task通過監(jiān)控車輪的到來或離開而打開或關(guān)閉定時器,從而達到控制ADC采集的目的;pre_task用于對數(shù)據(jù)進行預(yù)處理;calc_task利用最小二乘法處理數(shù)據(jù),并計算結(jié)果保存到結(jié)構(gòu)體鏈表中;uart_task通過RS485通信將結(jié)果送到遠程監(jiān)控端的PC機上;show_task和touch_task優(yōu)先級較低,用于在觸摸屏上顯示一些參數(shù)信息,提高測量現(xiàn)場的人機互動。任務(wù)間通過信號量來解決對共享資源的互斥訪問和任務(wù)同步問題。以pre_task為例,該任務(wù)先請求來自DMA中斷服務(wù)程序發(fā)送的信號量,將電壓信號轉(zhuǎn)化為位移量并分組歸類后,釋放該信號量,然后重新請求,以此循環(huán),從而實現(xiàn)中斷和任務(wù)間的同步。直到一組車輪完全離開后退出此循環(huán),再向calc_task發(fā)送任務(wù)內(nèi)嵌信號量,以此來保證不同任務(wù)對共享資源的互斥訪問,其程序流程如圖8所示。
圖8 pre_task程序流程
在微軟.NET Framework開發(fā)環(huán)境下,采用 C#語言完成控制管理軟件的開發(fā)[5]。遠程監(jiān)控端是具有發(fā)送命令、數(shù)據(jù)顯示、系統(tǒng)設(shè)置等功能的信息化管理系統(tǒng)。用戶通過主界面上的按鈕選擇進入其他子界面,進而向下位機發(fā)送控制命令或查看過往列車車輪狀態(tài)信息,其功能模塊設(shè)計如圖9所示。
圖9 控制管理軟件結(jié)構(gòu)和功能圖
本文根據(jù)列車輪對踏面故障檢測的功能需求,對其進行了軟硬件設(shè)計,為列車車輪踏面磨損在線測量提供了一種有效的解決方案。通過在STM32微控制器上移植UC/OS-Ⅲ實時操作系統(tǒng),并結(jié)合控制器外圍設(shè)備,使整個嵌入式測控系統(tǒng)具備了良好的實時性和高度的可擴展性,使其在列車輪對踏面故障檢測方面具有巨大的發(fā)展空間和實用價值。