游標(biāo)磁尺的設(shè)計(jì)與實(shí)現(xiàn)
引 言
目前,廣泛用于位置測(cè)量的傳感器主要有旋轉(zhuǎn)編碼器、光柵光電編碼器、磁柵尺、磁致伸縮位置傳感器、靜磁柵絕對(duì)編碼器等。以物體的直線運(yùn)動(dòng)帶動(dòng)旋轉(zhuǎn)編碼器的馬盤做旋轉(zhuǎn)運(yùn)動(dòng),并轉(zhuǎn)換為連續(xù)的有方向的脈沖信號(hào),以表示物體的位置,這種形式的編碼器稱為增量型旋轉(zhuǎn)編碼器。還有一種絕對(duì)位置旋轉(zhuǎn)編碼器能將物體的位置直接用數(shù)字表達(dá),即使掉電編碼也不丟失。其量程和精度由旋轉(zhuǎn)機(jī)構(gòu)的速度比和加工精度決定。旋轉(zhuǎn)編碼器的最大缺點(diǎn)是需要一套將直線運(yùn)動(dòng)轉(zhuǎn)換成旋轉(zhuǎn)運(yùn)動(dòng)的結(jié)構(gòu),安裝成本頗高,機(jī)械傳動(dòng)帶來間隙誤差相當(dāng)程度地削減了旋轉(zhuǎn)編碼器固有的分辨度,同時(shí),長(zhǎng)期使用還容易造成碼盤破損之類的機(jī)械損傷。另外,還需要接觸測(cè)量。
光柵光電編碼器的標(biāo)尺光柵和指示光柵都是由窄的矩形不透明的線紋和其等寬的透明間隔所組成,一旦被灰塵遮蓋或油漬浸泡,就影響其使用;并且在測(cè)量中不能掉電,一旦掉電,將會(huì)丟失掉電期間位移發(fā)生改變的數(shù)值。磁柵尺是在非導(dǎo)磁材料上涂一層10~20μm的磁膠,通過交流磁頭讀取刻錄在磁帶上的位置信息,當(dāng)這種位置傳感器處在惡劣環(huán)境中,如海水,這將嚴(yán)重影響交流磁頭與磁帶間的磁場(chǎng)傳播。磁致伸縮位置傳感器不僅響應(yīng)速度低而且成本高。
靜磁柵絕對(duì)編碼器的靜磁柵源與靜磁柵尺之間非接觸工作,在安裝使用方面,有很高的相對(duì)間隙寬容度和相對(duì)姿態(tài)寬容度。無論量程多長(zhǎng),只要保證安裝精度,就能獲得非常小的示值誤差,而且不受外界溫度、濕度、雜散磁場(chǎng)、電磁干擾等因素影響,具有很強(qiáng)的防震,防撞擊,防水,抗污染,抗干擾,抗惡劣環(huán)境能力,可以在水下1 000 m范圍內(nèi)工作。但是它的位置信息是用絕對(duì)磁柵編碼來確定,因此會(huì)存在響應(yīng)速度低,測(cè)量精度差等缺點(diǎn),并且價(jià)格也偏高。在此設(shè)計(jì)一種抗惡劣環(huán)境的位置測(cè)量裝置游標(biāo)磁尺。該磁尺不僅克服了靜磁柵絕對(duì)編碼器的缺點(diǎn),而且測(cè)量精度高,響應(yīng)速度快,還具有靜磁柵絕對(duì)編碼器的優(yōu)點(diǎn)。
1 游標(biāo)磁尺的結(jié)構(gòu)
游標(biāo)磁尺結(jié)構(gòu)框圖如圖1所示。圖1中RS 485/RS 232轉(zhuǎn)換器主要是為了實(shí)現(xiàn)遠(yuǎn)距離通信而設(shè)置。它可以分為上、下位機(jī)兩個(gè)部分,上、下位機(jī)分工明確。作為下位機(jī)核心器件的PIC單片機(jī),主要負(fù)責(zé)位置信息的處理和通信,而上位機(jī)主要負(fù)責(zé)對(duì)PIC單片機(jī)處理得到位置值的實(shí)時(shí)顯示。上位機(jī)的實(shí)時(shí)顯示功能主要利用基于圖形界面的Windows系統(tǒng)下的Visual Basic制作的實(shí)時(shí)顯示操作平臺(tái)實(shí)現(xiàn)。上、下位機(jī)通過數(shù)據(jù)通信傳遞信息。單片機(jī)和PC機(jī)的通信是通過單片機(jī)的串口和PC機(jī)串口之間的硬件連接實(shí)現(xiàn)的。其實(shí)際結(jié)構(gòu)圖如圖2所示,實(shí)物圖中沒有拍下位置顯示平臺(tái)。
2 工作原理
游標(biāo)磁尺測(cè)量原理:使用開關(guān)型霍爾元件陣列作為“靜尺”;使用無源釹鐵硼磁鐵作為永磁體陣列(“動(dòng)尺”)。作為“靜尺”的霍爾元件陣列是一種磁傳感器能檢測(cè)出“動(dòng)尺”的磁場(chǎng)及其變化,當(dāng)“動(dòng)尺”沿“靜尺”軸線作無接觸相對(duì)運(yùn)動(dòng)時(shí),由“靜尺”的霍爾元件陣列記錄“動(dòng)尺”的數(shù)字化位置信息。位置的“整數(shù)部分”由最開始動(dòng)作的霍爾元件所處的位置確定,位置的“小數(shù)部分”由位置匹配序列確定。所謂位置匹配序列就是“動(dòng)尺”要滿足一定的規(guī)格和要求?!皠?dòng)尺”所在的位置值與“盯尺”的霍爾元件陣列動(dòng)作信息序列匹配,如“小數(shù)部分”的2 mm,可以用00111110001100序列對(duì)應(yīng)。因此“小數(shù)部分”的O~8需要9個(gè)相應(yīng)的序列對(duì)應(yīng),確定位置值后將其位置值傳送到PC機(jī)。一段“靜尺”中包含4組霍爾元件陣列,每組霍爾元件陣列由16個(gè)霍爾元件組成,每個(gè)霍爾元件之間的間隔為9 mm。因此一段的測(cè)量長(zhǎng)度為567 mm。若要測(cè)量更長(zhǎng)范圍可以采用多段連接進(jìn)行擴(kuò)展。
其“整數(shù)部分”計(jì)算結(jié)果D可以由式(1)求出:
式中:l表示最開始動(dòng)作的霍爾元件處在第幾段;m表示處在l段的第幾組;n表示處在m組的第幾個(gè)。
兩個(gè)霍耳元件之間的位置值相當(dāng)于“游標(biāo)磁尺”的“小數(shù)”部分,其值d可以由位置匹配序列給出。因此游標(biāo)磁尺的位置值為K可以由式(2)求出。
式中:D表示磁尺的“整數(shù)部分”;d磁尺的“小數(shù)部分”。
3 磁尺的硬件電路
用于該磁尺位置信息處理的微處理器主要是采用美國Microchip Technology Incorporated公司生產(chǎn)的PIC系列單片機(jī)。利用PIC16F884單片機(jī)對(duì)“動(dòng)尺”作用區(qū)域的霍爾元件陣列的動(dòng)作信息進(jìn)行位置匹配算法處理得到位置數(shù)據(jù);然后通過.PIC16F884的異步串口(LISART)經(jīng)過MAX3471芯片轉(zhuǎn)變成RS 485協(xié)議進(jìn)行遠(yuǎn)距離傳輸,到達(dá)目的地后在經(jīng)過RS 485/RS 232轉(zhuǎn)換器轉(zhuǎn)換成RS 232協(xié)議;在傳送到PC機(jī)上顯示其位置值。其硬件原理圖如圖3所示。
4 位置匹配算法和顯示的程序設(shè)計(jì)
4.1 PC機(jī)部分(Visual Basic)
該裝置的PC部分利用微軟公司推出的可視化、面向?qū)ο蟮慕Y(jié)構(gòu)化程序設(shè)計(jì)語言Visual Basic來制作顯示平臺(tái)。因?yàn)閂isual Basic軟件進(jìn)行界面設(shè)計(jì)不僅快捷、編程工作量??;且提供了串行通信控件MSComm,通過對(duì)此控件的屬性和事件進(jìn)行編程,就可以輕松的實(shí)現(xiàn)串口通信。
4.1.1 MSComm簡(jiǎn)介
MSComm控件(Microsoft Communications Con-trol)是Microsoft公司提供的ActiveX控件,目的是為了簡(jiǎn)化Windows下串行通信編程。它既可以用來提供簡(jiǎn)單的串行通信功能,也可以用來創(chuàng)建完備的、事件驅(qū)動(dòng)的高級(jí)通信工具。它通過串行端口傳輸和接收數(shù)據(jù),為應(yīng)用程序提供串行通信功能。它提供兩種處理通信的方式,分別是事件驅(qū)動(dòng)方式和查詢方式Ⅲ。
4.1.2 顯示平臺(tái)介紹
該平臺(tái)采用多文檔界面(MDI)制作,MDI應(yīng)用程序主要由“父窗口”及“子窗口”構(gòu)成,子窗口的活動(dòng)范圍被限定在父窗口之內(nèi)。顯示平臺(tái)界面如圖4所示。
從界面圖中可以看到“父窗口”包含參數(shù)初始化和數(shù)據(jù)顯示兩個(gè)“子窗口”。參數(shù)初始化窗口主要負(fù)責(zé)設(shè)置端口、波特率、數(shù)據(jù)格式、和數(shù)據(jù)的接收方式;數(shù)據(jù)顯示窗口負(fù)責(zé)數(shù)據(jù)的處理和顯示。顯示平臺(tái)的使用在相應(yīng)的窗口中均有說明。沒有霍爾元件動(dòng)作時(shí),顯示界面中的數(shù)據(jù)顯示區(qū)初始化顯示為…*hh<CR><LF>。有霍爾元件動(dòng)作時(shí),顯示界面實(shí)時(shí)顯示其動(dòng)作的情況。該平臺(tái)使用簡(jiǎn)單,極易操作。
4.1.3 MSComm控件的程序設(shè)計(jì)
Visual Basic設(shè)計(jì)串行通信程序時(shí)依然遵循四個(gè)主要步驟,分別是對(duì)象、屬性、事件和方法。因此,第一步是添加控件。由于Visual Basic的串行通信控件不在工具箱中,當(dāng)使用MSComm控件時(shí),首先要把它加入到工具箱中。添加步驟是:選擇“工程”菜單下的“部件…”子菜單,在彈出的“部件”對(duì)話框中,在“控件”選項(xiàng)卡屬性中選中“MicrosoftCommControl 6.0”復(fù)選框,然后單擊“確定”按鈕后,在工具箱中就出現(xiàn)了一個(gè)形似“電話”的圖標(biāo),它就是MSComm控件。在窗體中加載MSComm控件對(duì)象。第二步是為MSComm控件的屬性賦值。第三步利用OnComm事件程序來接收上位機(jī)發(fā)來的位置數(shù)據(jù)。由于篇幅限制,在此沒有給
出相關(guān)程序。
4.2 PIC單片機(jī)部分
單片機(jī)采用PIC系列單片機(jī)。該單片機(jī)具有指令集少、功耗低和驅(qū)動(dòng)能力強(qiáng)等特點(diǎn)。單片機(jī)程序使用匯編語言編程,采用其內(nèi)部的異步串口(USART)進(jìn)行串行通信。由于該系統(tǒng)用于遠(yuǎn)距離,故串口通信采用的是的RS 485串口通信標(biāo)準(zhǔn),因此在單片機(jī)的串口端加了一個(gè)半雙工通信的MAX3471芯片。單片機(jī)接收到PC機(jī)發(fā)送來的波特率標(biāo)志值和自身設(shè)定的值比較,然后校正自身的波特率以和PC機(jī)的波特率相匹配。單片機(jī)除了校正自身波特率和發(fā)送相關(guān)信息程序,還要提供獲得霍爾元件動(dòng)作情況以及位置值等重要程序。圖5是單片機(jī)匯編程序流程圖。為了提高顯示平臺(tái)接收數(shù)據(jù)的準(zhǔn)確性,單片機(jī)數(shù)據(jù)采用ASCII字符進(jìn)行傳送。
以下僅給出串行通信初始化程序代碼:
串行通信初始化程序?yàn)椋?/p>
5 實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)只是測(cè)試了一段,實(shí)驗(yàn)階段為了確定游標(biāo)磁尺
的測(cè)量精度,在圖2的結(jié)構(gòu)圖中加了一把參照鋼尺。鋼尺測(cè)量的位置讀數(shù)與游標(biāo)磁尺測(cè)量的位置讀數(shù)之間的關(guān)系如圖6所示。
橫軸為磁尺位置讀數(shù),縱軸為鋼尺位置讀數(shù)。理論情況應(yīng)該是鋼尺與游標(biāo)磁尺的測(cè)量位置值相等,即測(cè)量曲線應(yīng)該為一條理想的直線,從圖6可知游標(biāo)“磁尺”測(cè)量位置與實(shí)際值略有一點(diǎn)偏差,幾乎接近一條直線。由于霍爾元件在實(shí)際焊接時(shí)的固定位置與理論制版固定位置總有些偏差,因此總會(huì)存在一點(diǎn)誤差,但偏差很小。
6 結(jié) 語
由測(cè)試結(jié)果表明游標(biāo)磁尺在位置測(cè)量中有獨(dú)特的優(yōu)越性。在惡劣的環(huán)境下要求響應(yīng)速度快和分辨率為毫米量級(jí)的位置測(cè)量時(shí),游標(biāo)磁尺有很好的應(yīng)用前景。