|
應用領域: 現場測試
挑戰: 利用LabVIEW 開發功能完善的鋼軌頂麵短波不平順自動檢測係統,填補中國該技術領域的空白。
應用方案: 用NI 公司的多功能數據采集卡和LabVIEW 平台開發一個功能完善的、先進的檢測係統。
使用的產品: LabVIEW;PCI-6035E、6711E、PCI-MIO-16E-4 等數據采集卡
介紹 鋼軌頂麵短波不平順是產生噪音和引起火車輪軌相互作用力變化的主要原因之一。隨著鐵路運輸不斷向高速、重(zhong)載(zai)方(fang)向(xiang)發(fa)展(zhan),鋼(gang)軌(gui)頂(ding)麵(mian)短(duan)波(bo)不(bu)平(ping)順(shun)程(cheng)度(du)日(ri)益(yi)嚴(yan)重(zhong),這(zhe)不(bu)僅(jin)加(jia)劇(ju)了(le)軌(gui)道(dao)結(jie)構(gou)部(bu)件(jian)的(de)傷(shang)損(sun)和(he)幾(ji)何(he)尺(chi)寸(cun)的(de)超(chao)限(xian),而(er)且(qie)影(ying)響(xiang)了(le)鋼(gang)軌(gui)的(de)使(shi)用(yong)壽(shou)命(ming),甚(shen)至(zhi)危(wei)及(ji)行(xing)車(che)安(an)全(quan)。目(mu)前(qian),中(zhong)國(guo)檢(jian)測(ce)鋼(gang)軌(gui)頂(ding)麵(mian)短(duan)波(bo)不(bu)平(ping)順(shun)的(de)現(xian)有(you)方(fang)法(fa)僅(jin)是(shi)靜(jing)態(tai)逐(zhu)點(dian)手(shou)工(gong)測(ce)量(liang),費(fei)時(shi)、費力、效率很低。研製和開發新型鋼軌頂麵短波不平順檢測係統,能夠為鋼軌打磨計劃的製定提供科學依據, 從而指導對鋼軌的打磨以延長其使用壽命,提高旅客乘車適度,保障行車安全,可見其經濟和社會效益都十分可觀。 本文介紹了基於LabVIEW 的鋼軌頂麵短波不平順檢測係統(以下簡稱"檢測係統")的開發,並就開發過程中的一些問題進行討論。
檢測係統的功能及特點 檢測係統分為:在線檢測子係統與事後回放子係統兩部分。用LabVIEW 開發的兩個子係統的前麵板分別如圖1 和圖2 所示。
 圖1 在線檢測子係統前麵板
 圖2 事後回放子係統前麵板
在zai線xian檢jian測ce子zi係xi統tong通tong過guo外wai脈mai衝chong觸chu發fa采cai樣yang,同tong時shi測ce量liang外wai脈mai衝chong時shi間jian間jian隔ge,由you時shi間jian間jian隔ge計ji算suan出chu對dui應ying的de火huo車che速su度du。在zai連lian續xu采cai集ji數shu據ju的de同tong時shi,係xi統tong還hai將jiang對dui采cai集ji到dao的de數shu據ju進jin行xing必bi要yao的de分fen析xi處chu理li、按一定格式存儲並動態地顯示原始數據和處理結果的波形;處理完的數據及驅動走紙儀的信號經輸出卡輸送給走紙儀,這樣可以在現場得到所需要的大部分檢測結果。 shihouhuifangzixitongzetongguoduixianchangjiancededaodeyuanshishujuwenjianjinxingshujusuoyinhetiaoyong,shixianyuzaixianjiancezixitongxiangfangdechuligongneng,jinxingzaixianjianceguochengdexinxihuifang。ciwai,gaizixitonghaikeyiduijiancejieguozuochupinggu,bingyibaobiaodexingshixianshihedayinjieguo,shifenbianyujiancerenyuanduigeduangangguidingmianbupingshunchengdujutiqingkuangdelejie。 本係統最明顯的先進技術特點是集成化,數據的采集、分析處理、保存、顯示、輸出及畫圖均在一個係統中實現完成,克服了老式檢測係統的數據采集和分析處理不同步等弱點,基本實現了實時在線檢測。 利用NI 公司的LabVIEW開發此係統,不僅可以很方便地實現複雜的數據處理功能,而且用戶界麵也可以做得十分美觀、友好和具有個性化特點,其模塊化的設計,又大大方便了程序的修改和維護。
檢測係統的實現 作為一種圖形化程序設計語言,NI 公司的LabVIEW 帶有豐富的VI 庫,並且調用也十分方便;此外,其豐富的應用舉例子程序和完善的在線幫助功能,也會給程序設計者帶來極大的方便。 1.多任務間的配合 本檢測係統設計的難點在於:由於裝設在列車上,在線檢測子係統要在列車行駛過程中保持長時間穩定運行,並且在連續采集數據的同時還要對各項數據進行處理、顯示並驅動走紙儀完成畫圖。在整個在線檢測過程中,要保證數據不會丟失,就要做到數據的采集、處理、顯示和輸出各個環節的緊密配合,如果其中的處理或輸出功能模塊占用時間太多,采集的數據將來不及被有序、完全地讀取,從而造成緩衝區溢出致使有用數據丟失。基於以上考慮,我們在程序設計中充分利用了LabVIEW 的多任務運行機製,把數據的采集、處理及輸出分別作為獨立的子任務,調用函數庫中的事件(occurrence)函數和時間等待(wait on occurrence)函數來實現多任務之間合理的配合。我們研製出的檢測係統的在線檢測子係統主程序的流程圖如圖3 所示。
 圖3 在線檢測子係統主程序流程圖
2.數據傳送方式及緩衝區 一般來說,采集功能單元傳送數據所采用的方式有:定時、查詢(Polling Mode)、中斷(InterruptMode)以及直接存儲器存取(DMAMode)等。前三種方式都要占用比較多的CPU 時間,而且傳送速度也沒有DMA 方式快。由於本檢測係統采集的數據量大,持續時間長,一般可能要幾個甚至十幾個小時,並且整個檢測係統占用CPU 資源比較多,因而我們在程序設計中采用DMA 方式傳送數據。一般的數據采集卡都支持這種數據傳送方式,但不同數據采集卡支持的DMA通道數目是不同的,有的可能隻有一個DMA 通道。本係統采集數據和測量時間間隔都要用到DMA,因此至少要有兩個DMA 通道可供利用。 為了保證在長時間連續采集數據的同時進行數據的處理,並給數據處理留下一定的緩衝時間,必須開辟一塊循環緩衝區(circularbuffer)存(cun)儲(chu)采(cai)集(ji)到(dao)的(de)數(shu)據(ju)。這(zhe)樣(yang),在(zai)采(cai)集(ji)數(shu)據(ju)的(de)同(tong)時(shi)就(jiu)不(bu)會(hui)耽(dan)誤(wu)對(dui)數(shu)據(ju)的(de)及(ji)時(shi)處(chu)理(li)。當(dang)緩(huan)衝(chong)區(qu)放(fang)滿(man)數(shu)據(ju)時(shi),它(ta)會(hui)從(cong)緩(huan)衝(chong)區(qu)首(shou)端(duan)起(qi)存(cun)儲(chu)新(xin)的(de)數(shu)據(ju),因(yin)而(er)要(yao)求(qiu)讀(du)取(qu)數(shu)據(ju)的(de)速(su)度(du)要(yao)足(zu)夠(gou)快(kuai),否(fou)則(ze)也(ye)會(hui)造(zao)成(cheng)數(shu)據(ju)丟(diu)失(shi)。當(dang)讀(du)取(qu)數(shu)據(ju)時(shi),如(ru)果(guo)緩(huan)衝(chong)區(qu)中(zhong)的(de)數(shu)據(ju)還(hai)沒(mei)達(da)到(dao)所(suo)需(xu)要(yao)的(de)讀(du)取(qu)量(liang),程(cheng)序(xu)會(hui)等(deng)待(dai)其(qi)到(dao)達(da)後(hou)再(zai)讀(du)取(qu)。
3.程序的優化 為減少程序占用係統資源,提高係統執行速度,我們在程序設計中盡可能采用子VI,充分利用LabVIEW 便於構建模塊化係統的特點,實現了模塊化的程序設計。LabVIEW提供有豐富的數據結構,包括數組、字符串、數據群(cluster),yijiyoutamengouchengdegengfuzadeshujujiegou。dancongsuanfadezhixingxiaolvyijiliuchengtudekeshihuafangmiankaolv,womenzaichengxushejizhongjinliangshaocaiyongfuzadeshujujiegou。
結論及體會 目(mu)前(qian),我(wo)們(men)承(cheng)擔(dan)的(de)鋼(gang)軌(gui)頂(ding)麵(mian)短(duan)波(bo)不(bu)平(ping)順(shun)檢(jian)測(ce)係(xi)統(tong)的(de)開(kai)發(fa)已(yi)基(ji)本(ben)完(wan)成(cheng),並(bing)已(yi)到(dao)現(xian)場(chang)進(jin)行(xing)了(le)多(duo)次(ci)的(de)驗(yan)證(zheng)性(xing)測(ce)試(shi)。相(xiang)信(xin)經(jing)過(guo)進(jin)一(yi)步(bu)完(wan)善(shan),這(zhe)個(ge)用(yong)LabVIEW 研製開發的鋼軌頂麵短波不平順檢測係統將填補國內有關短波不平順自動檢測係統方麵的空白。 初學LabVIEW 時(shi),雖(sui)然(ran)比(bi)較(jiao)容(rong)易(yi)入(ru)門(men),但(dan)在(zai)具(ju)體(ti)應(ying)用(yong)中(zhong)還(hai)是(shi)會(hui)碰(peng)到(dao)程(cheng)序(xu)設(she)計(ji)上(shang)各(ge)種(zhong)各(ge)樣(yang)的(de)問(wen)題(ti)。作(zuo)為(wei)一(yi)種(zhong)圖(tu)形(xing)化(hua)的(de)快(kuai)速(su)編(bian)程(cheng)語(yu)言(yan),對(dui)許(xu)多(duo)程(cheng)序(xu)設(she)計(ji)者(zhe)來(lai)說(shuo),LabVIEW多方麵的優點還遠未得到充分利用。 以本文作者的親身體會,LabVIEW 提供了豐富的應用舉例子程序,其中許多可以直接利用或稍加修改就可以用到自己的程序中,比如DAQ 的很多應用在例子程序中都可以找到。因此建議多學習一下LabVIEW 自帶的應用舉例子程序,這對程序設計者一定會有很大的幫助。 LabVIEW 的多任務並行運行機製是一般傳統語言所不具備的,應充分利用這一優勢,方便、靈活地實現多任務調度,快速、高效地構造較為複雜的多任務檢測係統。 LabVIEW 的多任務運行機製具有協作式(cooperative)而非搶占式(preemptive)的(de)特(te)點(dian),係(xi)統(tong)不(bu)支(zhi)持(chi)中(zhong)斷(duan),因(yin)此(ci)無(wu)法(fa)實(shi)現(xian)嚴(yan)格(ge)意(yi)義(yi)上(shang)的(de)任(ren)務(wu)定(ding)時(shi),在(zai)實(shi)時(shi)性(xing)上(shang)有(you)一(yi)定(ding)的(de)局(ju)限(xian)性(xing),即(ji)它(ta)隻(zhi)適(shi)用(yong)於(yu)對(dui)實(shi)時(shi)性(xing)要(yao)求(qiu)不(bu)很(hen)高(gao)的(de)場(chang)合(he)。如(ru)果(guo)對(dui)實(shi)時(shi)性(xing)要(yao)求(qiu)很(hen)高(gao),就(jiu)要(yao)選(xuan)用(yong)其(qi)他(ta)能(neng)滿(man)足(zu)實(shi)時(shi)性(xing)要(yao)求(qiu)的(de)開(kai)發(fa)係(xi)統(tong),例(li)如(ru)實(shi)時(shi)LabVIEW 係統(LabVIEW RT 係列)。但是,實時性是一個相對的概念,對於一些實時性要求不是很高的場合, 采用LabVIEW開發平台,通過對各任務的合理調度,便可以很好地滿足要求,沒必要選用價格相對較高的實時開發係統。 從程序開發方麵考慮,如果選用LabVIEW 作為軟件開發平台,建議最好采用NI 公司的板卡,這樣可以使程序設計更簡單、更方便,從而縮短程序開發周期。
|