基于LabVIEW虛擬儀器技術(shù)的分布式速度檢測系統(tǒng)
0 引 言
在實(shí)際生產(chǎn)生活中,經(jīng)常需要檢測物體的運(yùn)動速度。目前對一般常速運(yùn)動物體的測速方式主要有2種:一種是測平均速度,如公路交通系統(tǒng)中通過相鄰站點(diǎn)IC卡確定兩個(gè)站點(diǎn)之間所用時(shí)間求得平均速度;一種是測即時(shí)速度,所用方法一般為多普勒雷達(dá)測速,即利用移動物體的多普勒效應(yīng)實(shí)現(xiàn)測速。這些測速方法都有比較廣泛的應(yīng)用,但也有一些缺點(diǎn),例如造價(jià)較高,或檢測精度較低,尤其是不便于遠(yuǎn)程分布式監(jiān)控。在此設(shè)計(jì)的以單片機(jī)和LabVIEW虛擬儀器技術(shù)為基礎(chǔ)的分布式檢測系統(tǒng)較好地解決了這些問題。
1 分布式速度檢測系統(tǒng)的總體構(gòu)成
在此設(shè)計(jì)并實(shí)現(xiàn)的基于分布式汽車速度檢測系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示。即以單片機(jī)作為測速數(shù)據(jù)采集電路的核心部件,通過RS 485總線接口把各測試點(diǎn)速度數(shù)據(jù)發(fā)送給計(jì)算機(jī),利用LabVIEW軟件編程實(shí)現(xiàn)各監(jiān)控點(diǎn)車速數(shù)據(jù)的處理存儲顯示等功能。并以該計(jì)算機(jī)為服務(wù)器,利用LabVIEw中的Datasocket技術(shù)實(shí)現(xiàn)網(wǎng)絡(luò)化的遠(yuǎn)程控制。計(jì)算機(jī)的串行口采用的是RS 232標(biāo)準(zhǔn),若采用RS 485標(biāo)準(zhǔn)必須進(jìn)行電平轉(zhuǎn)換,該設(shè)計(jì)使用RS 232一RS 485轉(zhuǎn)換器完成從RS 232到RS 485的電平轉(zhuǎn)換。系統(tǒng)中51單片機(jī)芯片發(fā)出的串行數(shù)據(jù)為TTL電平,同時(shí)也只能接收TTL電平。在采用RS 485標(biāo)準(zhǔn)時(shí),也必須進(jìn)行電平轉(zhuǎn)換。該設(shè)計(jì)中使用MAX485實(shí)現(xiàn)TTL與RS 485標(biāo)準(zhǔn)之間的相互轉(zhuǎn)換。
2 上位機(jī)編程實(shí)現(xiàn)
系統(tǒng)上位機(jī)程序均采用LabVIEW 7.1編程實(shí)現(xiàn)。LabVIEW是美國NI公司利用虛擬儀器技術(shù)開發(fā)的32位面向計(jì)算機(jī)測控領(lǐng)域的軟件開發(fā)平臺,具有直觀易學(xué),編程效率高的特點(diǎn),且可以在多操作系統(tǒng)下運(yùn)行。LabVIEW功能強(qiáng)大,日益被測控技術(shù)領(lǐng)域人員所關(guān)注。
從功能上講,上位機(jī)程序主要分為串口通信模塊和網(wǎng)絡(luò)通信模塊。串口通信很簡單,即在程序運(yùn)行后按照既定通信協(xié)議判斷接收到的信息屬于哪個(gè)測試點(diǎn),并將其存儲到相應(yīng)文本文件中,程序流程如圖2所示。為提高系統(tǒng)速度,數(shù)據(jù)直接存儲,不做實(shí)時(shí)顯示。若要查看各檢測點(diǎn)數(shù)據(jù),可在菜單中選擇觸發(fā)速度數(shù)據(jù)顯示。
另外,為了方便對各點(diǎn)數(shù)據(jù)的遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控,將負(fù)責(zé)接收速度數(shù)據(jù)的上位機(jī)作為服務(wù)器,使網(wǎng)絡(luò)上的客戶機(jī)可以遠(yuǎn)程查看測速數(shù)據(jù)。此即網(wǎng)絡(luò)通信模塊,通過使用LabVIEW 7.1中的Datasocket技術(shù)實(shí)現(xiàn)。遠(yuǎn)程監(jiān)控的基本工作過程是:首先客戶端選擇要查看的測試點(diǎn)并發(fā)送給服務(wù)器端,服務(wù)器在接收到客戶端準(zhǔn)備查看的測試點(diǎn)代碼信息后打開相應(yīng)文件并將數(shù)據(jù)顯示在一個(gè)waveform Graph控件中。由于在創(chuàng)建服務(wù)器端軟件時(shí),已對Waveform Graph控件的Datasocket connec-tion屬性配置對話框做了設(shè)置,因此創(chuàng)建客戶端軟件不需要復(fù)雜的編程,只需要將服務(wù)器端waveform Graph控件復(fù)制到客戶端程序中即可??紤]到該系統(tǒng)只是對速度數(shù)據(jù)的遠(yuǎn)程分享,所以在客戶機(jī)程序中沒做額外的編程。Datasocket:通信服務(wù)器端框圖程序和客戶機(jī)框圖程序分別如圖3,圖4所示。
3 各測試點(diǎn)的速度檢測
多普勒方式測速應(yīng)用廣泛,但技術(shù)較復(fù)雜,成本較高。而遠(yuǎn)距離測平均速度又使得所測速度過于模糊,限制了它的應(yīng)用。因此在設(shè)計(jì)中另辟蹊徑,以短距離內(nèi)的平均速度近似作單點(diǎn)速度。即利用間隔一定距離s的2套紅外線激光發(fā)射接收模塊分別給單片機(jī)產(chǎn)生中斷信號,由單片機(jī)對2次中斷的時(shí)間差t進(jìn)行計(jì)時(shí),根據(jù)公式v=s/t即可獲取速度值。距離s可以提前準(zhǔn)確測量,而目前單片機(jī)的計(jì)時(shí)精度相當(dāng)高,足以保證速度數(shù)據(jù)有很高的精確度。速度檢測硬件電路主要包括電源、晶振、復(fù)位、顯示、485收發(fā)電路及激光發(fā)射接收模塊。其中485收發(fā)電路及激光發(fā)射接收模塊是測速和通信的主要電路,下面分別做簡要介紹。
激光發(fā)射接收模塊由紅外激光發(fā)射器件和探測器組成,它們分別被安放在待測物體兩側(cè)。當(dāng)沒有物體經(jīng)過時(shí)探測器中有恒定的信號,不觸發(fā)單片機(jī)中斷。當(dāng)有物體阻斷其光路時(shí)產(chǎn)生有效信號進(jìn)入單片機(jī)觸發(fā)中斷。設(shè)計(jì)中為了有效濾除雜散光影響,選用980 nm紅外半導(dǎo)體激光器作為發(fā)光器件,并以單片機(jī)產(chǎn)生38 kHz的方波信號對其進(jìn)行調(diào)制,接收電路則采用紅外敏感的38 kHz專用光電探測器HS0038B。圖5顯示其中一路紅外激光發(fā)射、接收信號處理電路原理圖。
485收發(fā)電路模塊的作用是實(shí)現(xiàn)單片機(jī)的TTL電平與RS 485標(biāo)準(zhǔn)之間的相互轉(zhuǎn)換,采用MAX485芯片實(shí)現(xiàn)。MAX485芯片內(nèi)部分別有收發(fā)兩部分。圖6為RS 485中A,B線與單片機(jī)連接的硬件電路原理圖。
速度檢測部分單片機(jī)程序主要有計(jì)時(shí)處理模塊、測速處理模塊和串行通信模塊。模塊化的編程方式使整個(gè)設(shè)計(jì)、調(diào)試非常簡單。值得一提的是,考慮到具體的測試物體形狀不一,還在程序中加了中斷延時(shí)去抖程序,防止中斷瞬間的多個(gè)尖峰波刺不斷產(chǎn)生中斷信號使單片機(jī)發(fā)生誤觸發(fā)操作。
4 實(shí)驗(yàn)結(jié)果
這里來用一輛速度可控的遙控模型車對該系統(tǒng)進(jìn)行了測試,使其在一個(gè)封閉的跑道上變速行進(jìn),跑道中設(shè)置了5個(gè)觀測點(diǎn)。圖7為客戶端采集到的第二個(gè)測試點(diǎn)的速度波形。試驗(yàn)顯示,整個(gè)系統(tǒng)工作正常。
該系統(tǒng)采用LabVIEW軟件平臺配合簡單外圍硬件電路實(shí)現(xiàn)了分布式的速度采集、存儲及遠(yuǎn)程監(jiān)控顯示等功能。系統(tǒng)充分借鑒虛擬儀器思想,采用常見器件,使系統(tǒng)整體造價(jià)低、測速精度較高、升級維護(hù)方便,具有良好的實(shí)用性。