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