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

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

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

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