應(yīng)用領(lǐng)域:現(xiàn)場測試
挑戰(zhàn):利用LabVIEW 開發(fā)功能完善的鋼軌頂面短波不平順自動(dòng)檢測
系統(tǒng),填補(bǔ)中國該技術(shù)領(lǐng)域的空白。
應(yīng)用方案:用NI 公司的多功能數(shù)據(jù)采集卡和LabVIEW 平臺(tái)開發(fā)一個(gè)功能完善的、先進(jìn)的檢測系統(tǒng)。
使用的產(chǎn)品:LabVIEW;PCI-6035E、6711E、PCI-MIO-16E-
4 等數(shù)據(jù)采集卡
介紹
鋼軌頂面短波不平順是產(chǎn)生噪音和引起火車輪軌相互作用力變化的主要原因之一。隨著鐵路運(yùn)輸不斷向高速、重載方向發(fā)展,鋼軌頂面短波不平順程度日益嚴(yán)重,這不僅加劇了軌道結(jié)構(gòu)部件的傷損和幾何尺寸的超限,而且影響了鋼軌的使用壽命,甚至危及行車安全。目前,中國檢測鋼軌頂面短波不平順的現(xiàn)有方法僅是靜態(tài)逐點(diǎn)手工測量,費(fèi)時(shí)、費(fèi)力、效率很低。研制和開發(fā)新型鋼軌頂面短波不平順檢測系統(tǒng),能夠?yàn)殇撥壌蚰ビ?jì)劃的制定提供科學(xué)依據(jù), 從而指導(dǎo)對(duì)鋼軌的打磨以延長其使用壽命,提高旅客乘車舒適度,保障行車安全,可見其經(jīng)濟(jì)和社會(huì)效益都十分可觀。
本文介紹了基于LabVIEW 的鋼軌頂面短波不平順檢測系統(tǒng)(以下簡稱“檢測系統(tǒng)”)的開發(fā),并就開發(fā)過程中的一些問題進(jìn)行討論。
檢測系統(tǒng)的功能及特點(diǎn)
檢測系統(tǒng)分為:在線檢測子系統(tǒng)與事后回放子系統(tǒng)兩部分。用LabVIEW 開發(fā)的兩個(gè)子系統(tǒng)的前面板分別如圖1 和圖2 所示。
[align=center]

圖1 在線檢測子系統(tǒng)前面板

圖2 事后回放子系統(tǒng)前面板[/align]
在線檢測子系統(tǒng)通過外脈沖觸發(fā)采樣,同時(shí)測量外脈沖時(shí)間間隔,由時(shí)間間隔計(jì)算出對(duì)應(yīng)的火車速度。在連續(xù)采集數(shù)據(jù)的同時(shí),系統(tǒng)還將對(duì)采集到的數(shù)據(jù)進(jìn)行必要的分析處理、按一定格式存儲(chǔ)并動(dòng)態(tài)地顯示原始數(shù)據(jù)和處理結(jié)果的波形;處理完的數(shù)據(jù)及驅(qū)動(dòng)走紙儀的信號(hào)經(jīng)輸出卡輸送給走紙儀,這樣可以在現(xiàn)場得到所需要的大部分檢測結(jié)果。
事后回放子系統(tǒng)則通過對(duì)現(xiàn)場檢測得到的原始數(shù)據(jù)文件進(jìn)行數(shù)據(jù)索引和調(diào)用,實(shí)現(xiàn)與在線檢測子系統(tǒng)相仿的處理功能,進(jìn)行在線檢測過程的信息回放。此外,該子系統(tǒng)還可以對(duì)檢測結(jié)果做出評(píng)估,并以報(bào)表的形式顯示和打印結(jié)果,十分便于檢測人員對(duì)各段鋼軌頂面不平順程度具體情況的了解。
本系統(tǒng)最明顯的先進(jìn)技術(shù)特點(diǎn)是集成化,數(shù)據(jù)的采集、分析處理、保存、顯示、輸出及畫圖均在一個(gè)系統(tǒng)中實(shí)現(xiàn)完成,克服了老式檢測系統(tǒng)的數(shù)據(jù)采
集和分析處理不同步等弱點(diǎn),基本實(shí)現(xiàn)了實(shí)時(shí)在線檢測。
利用NI 公司的LabVIEW開發(fā)此系統(tǒng),不僅可以很方便地實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)處理功能,而且用戶界面也可以做得十分美觀、友好和具有個(gè)性化特點(diǎn),其模塊化的設(shè)計(jì),又大大方便了程序的修改和維護(hù)。
檢測系統(tǒng)的實(shí)現(xiàn)
作為一種圖形化程序設(shè)計(jì)語言,NI 公司的LabVIEW 帶有豐富的VI 庫,并且調(diào)用也十分方便;此外,其豐富的應(yīng)用舉例子程序和完善的在線幫助功能,也會(huì)給程序設(shè)計(jì)者帶來極大的方便。
1. 多任務(wù)間的配合
本檢測系統(tǒng)設(shè)計(jì)的難點(diǎn)在于:由于裝設(shè)在列車上,在線檢測子系統(tǒng)要在列車行駛過程中保持長時(shí)間穩(wěn)定運(yùn)行,并且在連續(xù)采集數(shù)據(jù)的同時(shí)還要對(duì)各項(xiàng)數(shù)據(jù)進(jìn)行處理、顯示并驅(qū)動(dòng)走紙儀完成畫圖。在整個(gè)在線檢測過程中,要保證數(shù)據(jù)不會(huì)丟失,就要做到數(shù)據(jù)的采集、處理、顯示和輸出各個(gè)環(huán)節(jié)的緊密配合,如果其中的處理或輸出功能模塊占用時(shí)間太多,采集的數(shù)據(jù)將來不及被有序、完全地讀取,從而造成緩沖區(qū)溢出致使有用數(shù)據(jù)丟失?;谝陨峡紤],我們?cè)诔绦蛟O(shè)計(jì)中充分利用了LabVIEW 的多任務(wù)運(yùn)行機(jī)制,把數(shù)據(jù)的采集、處理及輸出分別作為獨(dú)立的子任務(wù),調(diào)用函數(shù)庫中的事件(occurrence)函數(shù)和時(shí)間等待(wait on occurrence)函數(shù)來實(shí)現(xiàn)多任務(wù)之間合理的配合。我們研制出的檢測系統(tǒng)的在線檢測子系統(tǒng)主程序的流程圖如圖3 所示。
[align=center]

圖3 在線檢測子系統(tǒng)主程序流程圖[/align]
2. 數(shù)據(jù)傳送方式及緩沖區(qū)
一般來說,采集功能單元傳送數(shù)據(jù)所采用的方式有:定時(shí)、查詢(Polling Mode)、中斷(Interrupt Mode)以及直接存儲(chǔ)器存?。―MA Mode)等。前三種方式都要占用比較多的CPU 時(shí)間,而且傳送速度也沒有DMA 方式快。由于本檢測系統(tǒng)采集的數(shù)據(jù)量大,持續(xù)時(shí)間長,一般可能要幾個(gè)甚至十幾個(gè)小時(shí),并且整個(gè)檢測系統(tǒng)占用CPU 資源比較多,因而我們?cè)诔绦蛟O(shè)計(jì)中采用DMA 方式傳送數(shù)據(jù)。一般的數(shù)據(jù)采集卡都支持這種數(shù)據(jù)傳送方式,但不同數(shù)據(jù)采集卡支持的DMA通道數(shù)目是不同的,有的可能只有一個(gè)DMA 通道。本系統(tǒng)采集數(shù)據(jù)和測量時(shí)間間隔都要用到DMA,因此至少要有兩個(gè)DMA 通道可供利用。
為了保證在長時(shí)間連續(xù)采集數(shù)據(jù)的同時(shí)進(jìn)行數(shù)據(jù)的處理,并給數(shù)據(jù)處理留下一定的緩沖時(shí)間,必須開辟一塊循環(huán)緩沖區(qū)(circular
buffer)存儲(chǔ)采集到的數(shù)據(jù)。這樣,在采集數(shù)據(jù)的同時(shí)就不會(huì)耽誤對(duì)數(shù)據(jù)的及時(shí)處理。當(dāng)緩沖區(qū)放滿數(shù)據(jù)時(shí),它會(huì)從緩沖區(qū)首端起存儲(chǔ)新的數(shù)據(jù),因而要求讀取數(shù)據(jù)的速度要足夠快,否則也會(huì)造成數(shù)據(jù)丟失。當(dāng)讀取數(shù)據(jù)時(shí),如果緩沖區(qū)中的數(shù)據(jù)還沒達(dá)到所需要的讀取量,程序會(huì)等待其到達(dá)后再讀取。
3. 程序的優(yōu)化
為減少程序占用系統(tǒng)資源,提高系統(tǒng)執(zhí)行速度,我們?cè)诔绦蛟O(shè)計(jì)中盡可能采用子VI,充分利用LabVIEW 便于構(gòu)建模塊化系統(tǒng)的
特點(diǎn),實(shí)現(xiàn)了模塊化的程序設(shè)計(jì)。LabVIEW提供有豐富的數(shù)據(jù)結(jié)構(gòu),包括數(shù)組、字符串、數(shù)據(jù)群(cluster),以及由它們構(gòu)成的更復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。但從算法的執(zhí)行效率以及流程圖的可視化方面考慮,我們?cè)诔绦蛟O(shè)計(jì)中盡量少采用復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。
結(jié)論及體會(huì)
目前,我們承擔(dān)的鋼軌頂面短波不平順檢測系統(tǒng)的開發(fā)已基本完成,并已到現(xiàn)場進(jìn)行了多次的驗(yàn)證性測試。相信經(jīng)過進(jìn)一步完善,這個(gè)用LabVIEW 研制開發(fā)的鋼軌頂面短波不平順檢測系統(tǒng)將填補(bǔ)國內(nèi)有關(guān)短波不平順自動(dòng)檢測系統(tǒng)方面的空白。
初學(xué)LabVIEW 時(shí),雖然比較容易入門,但在具體應(yīng)用中還是會(huì)
碰到程序設(shè)計(jì)上各種各樣的問題。作為一種圖形化的快速編程語言,對(duì)許多程序設(shè)計(jì)者來說,LabVIEW多方面的優(yōu)點(diǎn)還遠(yuǎn)未得到充分利用。
以本文作者的親身體會(huì),LabVIEW 提供了豐富的應(yīng)用舉例子程序,其中許多可以直接利用或稍加修改就可以用到自己的程序中,比如DAQ 的很多應(yīng)用在例子程序中都可以找到。因此建議多學(xué)習(xí)一下LabVIEW 自帶的應(yīng)用舉例子程序,這對(duì)程序設(shè)計(jì)者一定會(huì)有
很大的幫助。
LabVIEW 的多任務(wù)并行運(yùn)行機(jī)制是一般傳統(tǒng)語言所不具備的,
應(yīng)充分利用這一優(yōu)勢,方便、靈活地實(shí)現(xiàn)多任務(wù)調(diào)度,快速、高效地構(gòu)造較為復(fù)雜的多任務(wù)檢測系統(tǒng)。
LabVIEW 的多任務(wù)運(yùn)行機(jī)制具有協(xié)作式(cooperative)而非搶占式(preemptive)的特點(diǎn),系統(tǒng)不支持中斷,因此無法實(shí)現(xiàn)嚴(yán)格意義上的任務(wù)定時(shí),在實(shí)時(shí)性上有一定的局限性,即它只適用于對(duì)實(shí)時(shí)性要求不很高的場合。如果對(duì)實(shí)時(shí)性要求很高,就要選用其他能滿足實(shí)時(shí)性要求的開發(fā)系統(tǒng),例如實(shí)時(shí)LabVIEW 系統(tǒng)(LabVIEW RT 系列)。但是,實(shí)時(shí)性是一個(gè)相對(duì)的概念,對(duì)于一些實(shí)時(shí)性要求不是很高的場合, 采用LabVIEW開發(fā)平臺(tái),通過對(duì)各任務(wù)的合理調(diào)度,便可以很好地滿足要求,沒必要選用價(jià)格相對(duì)較高的實(shí)時(shí)開發(fā)系統(tǒng)。
從程序開發(fā)方面考慮,如果選用LabVIEW 作為軟件開發(fā)平臺(tái),建議最好采用NI 公司的板卡,這樣可以使程序設(shè)計(jì)更簡單、更方便,從而縮短程序開發(fā)周期。