閆金陽,方素平
(合肥工業大學航空結構件成形制造與裝備安徽省重點實驗室,安徽 合肥 230009)
列車輪對作為列車行走的重要部件,是列車行車安全的重要保證,對列車輪對踏面故障進行檢測,及時排除由車輪踏面故障引起的行車安全隱患是極其必要的[1-2]。傳統的依賴人工測量的手段存在著效率低和實時性差的問題,對車輪踏面進行實時測量的需求日益提高。本文設計的基于STM32F03VET6和UC/OS-Ⅲ實時操作系統的列車輪對踏面故障檢測系統,具有強實時性、高效率和低成本等特點,在我國輪對踏面故障檢測方面有著巨大的發展潛力。
當車輪輪對踏面產生擦傷、磨損(以下簡稱故障)后,故障處的車輪踏面圓周半徑較無故障時變小,從而車輪故障處輪緣頂點位置低于無故障時車輪輪緣頂點的位置,通過測得這兩個位置的相對位移量h即可得到車輪的踏面擦傷、磨損值[3],檢測原理圖如圖1。

圖1 檢測原理圖
本設計的測量機構是一套利用位移法進行檢測的平行四桿機構,由測量尺桿、擺桿、支撐彈簧、限位調整裝置和位移傳感器等部分組成。其流程為:列車未到達檢測機構時,測量尺桿6在支撐彈簧1和11以及限位調整裝置4和8的共同作用下保持一定的初始高度;當列車駛過該檢測機構時,車輪輪緣會將測量尺板6壓下,通過測量尺桿下方的非接觸式位移傳感器6和10測得輪緣頂點位移變化量,并送入STM32微控制器內,最終獲得車輪的踏面擦傷、磨損量。測量機構如圖2。

1-支撐彈簧; 2-擺桿; 3-非接觸式位移傳感器; 4-限位調整裝置; 5-底板; 6-測量尺桿; 7-底板;8-限位調整裝置; 9-擺桿; 10-非接觸式位移傳感器; 11-支撐彈簧。
本系統主要由軌邊采集層、控制傳輸層和應用管理層組成,系統整體架構如圖3所示。其中,軌邊數據采集層作為整個系統架構的基礎,該層由多套平行四桿機構組成,將踏面故障信息通過傳感器送入控制傳輸層;控制傳輸層由移植了UC/OS-Ⅲ 實時操作系統的 STM32 為主控制器及其外圍功能模塊組成,對上一層的初始數據進行處理得到車輪踏面擦傷、磨損值,通過RS485通信傳入應用管理層;應用管理層為由C#語言開發的控制管理軟件。該層接收來自控制傳輸層的踏面擦傷、磨損值,通過將車輪踏面擦傷值與已設置好的踏面磨損超限值進行比較,將磨損超限的車輪進行報警處理,并對其他未超限的車輪做出科學預測分析,為整個系統的在線測量和科學管理提供準確和全面的依據。

圖3 系統整體架構
本系統的主控板卡在硬件設計上選擇意法半導體公司的STM32F103VET6芯片作為控制器主控芯片,外擴傳感器模塊、存儲模塊、觸摸屏模塊、通信模塊和電源模塊等。系統硬件結構如圖4。

圖4 系統硬件結構
本設計擬選用型號為ML33-12.5-V1的電渦流位移傳感器。其利用電渦流效應感應,能精確地探測出被測金屬物體與探頭相對位置關系的變化,并以0~5 V的電壓信號輸出,對于這種連續變化的模擬信號量,通常使用ADC將其轉變為離散的數字信號量來進一步處理,考慮到STM32微控制器的工作電壓僅在2.0~3.6 V之間,本設計傳感器的接口電路采用了經典的電阻分壓電路,接口電路如圖5。本接口設計中,為了最大限度地利用ADC的測量精度,需合理設計兩個分壓電阻的比例并選用精度較高的分壓電阻,使ADC恰好用到滿量程。同時,兩個分壓電阻的值應設計合理,電阻太小會導致功耗過大,電阻太大則會導致ADC測量不夠穩定。

圖5 ML33-12.5-V1接口電路
因為RS485通信具有接口電平低、傳輸速率高、抗干擾能力強和傳輸距離遠等諸多優點,本設計選擇控制器通過RS485串口與遠程監控端的PC機實現通信。RS485接口電路如圖6所示。

圖6 RS485接口電路
系統軟件的設計分為MCU內程序設計和遠程監控端的控制管理軟件設計兩大部分。
在STM32硬件平臺上移植UC/OS-Ⅲ嵌入式實時操作系統,并引入STemWin圖形界面。UC/OS-Ⅲ是一個實時的、可裁剪的、搶占式、多任務內核,在實時性要求很高的工業控制領域有著廣泛的應用[4]。

圖7 主程序流程
系統主程序流程如圖7所示,在主程序開始前,需要將板上的硬件資源初始化,并調用OSInit()函數初始化中斷嵌套計數器、任務間通信模塊和優先級位圖表等各個內核模塊。隨后進入臨界區,調用OSTaskCreate()函數創建初始任務,再由初始任務創建其他實時任務,任務及其參數如表1。最后調用OSStart()函數,由內核進行任務調度。本設計按照優先級調度法和時間片輪轉調度法相結合的調度策略,對不同優先級任務按照任務優先級高低進行調度,相同優先級任務則為其分配時間片進行輪轉調度。

表1 系統任務及其參數
其中state_task通過監控車輪的到來或離開而打開或關閉定時器,從而達到控制ADC采集的目的;pre_task用于對數據進行預處理;calc_task利用最小二乘法處理數據,并計算結果保存到結構體鏈表中;uart_task通過RS485通信將結果送到遠程監控端的PC機上;show_task和touch_task優先級較低,用于在觸摸屏上顯示一些參數信息,提高測量現場的人機互動。任務間通過信號量來解決對共享資源的互斥訪問和任務同步問題。以pre_task為例,該任務先請求來自DMA中斷服務程序發送的信號量,將電壓信號轉化為位移量并分組歸類后,釋放該信號量,然后重新請求,以此循環,從而實現中斷和任務間的同步。直到一組車輪完全離開后退出此循環,再向calc_task發送任務內嵌信號量,以此來保證不同任務對共享資源的互斥訪問,其程序流程如圖8所示。

圖8 pre_task程序流程
在微軟.NET Framework開發環境下,采用 C#語言完成控制管理軟件的開發[5]。遠程監控端是具有發送命令、數據顯示、系統設置等功能的信息化管理系統。用戶通過主界面上的按鈕選擇進入其他子界面,進而向下位機發送控制命令或查看過往列車車輪狀態信息,其功能模塊設計如圖9所示。

圖9 控制管理軟件結構和功能圖
本文根據列車輪對踏面故障檢測的功能需求,對其進行了軟硬件設計,為列車車輪踏面磨損在線測量提供了一種有效的解決方案。通過在STM32微控制器上移植UC/OS-Ⅲ實時操作系統,并結合控制器外圍設備,使整個嵌入式測控系統具備了良好的實時性和高度的可擴展性,使其在列車輪對踏面故障檢測方面具有巨大的發展空間和實用價值。