編碼器及其應用概述
編碼器是一種機電裝備,可以用來測量機械運動或者目標位置。大多數編碼器都使用光學傳感器來提供脈沖序列形式的電信號,這些信號可以依次轉換成運動、方向或位置信息。
旋轉編碼器可以用來測量軸的旋轉運動。圖1顯示了旋轉編碼器的基本組成部分,包括一個發(fā)光二極管(LED)、一個碼盤,以及碼盤背面的一個光傳感器。這個碼盤安置在旋轉軸上,上面按一定編碼形式排列著不透光和透光的扇形區(qū)域。當碼盤轉動時,不透光扇區(qū)能夠遮擋光線,而透光扇區(qū)則允許光線透過。這樣就產生了方波脈沖,可以編譯成相應的位置或運動信息。編碼器每轉通常分為100到6000個扇區(qū)。這就表明,100個扇區(qū)的編碼器可以提供3.6度的精度,而6000個扇區(qū)的編碼器則可以提供0.06度的精度。
線性編碼器與旋轉編碼器的工作原理類似。它采用了一條固定的不透光帶取代了旋轉碼盤,在不透光帶表面上有一些透光縫隙,而LED探測器組件則被附在運動體上。
ni.com/video/popup/?url=rtmp://cosine.ni.com/flvplayback/us/2008/quadrature_encoder.flv" target="_blank">
圖1. 光電編碼器的組件
僅有一路脈沖輸出的編碼器不能確定旋轉的角度,所以用處不大。如果使用兩路碼道,其扇區(qū)之間的相位差為90度(如圖2所示),那么通過該正交編碼器的兩路輸出通道就可以確定位置和旋轉的方向兩個信息。例如,如果通道A相位超前,碼盤就以順時針旋轉。如果通道B相位超前,那么碼盤就是以逆時針旋轉。因此,通過監(jiān)控脈沖的數目和信號A、B之間的相對相位信息,就可以同時獲得旋轉的位置和方向信息。
圖2. 正交編碼器A和B的輸出信號
除此之外,有些正交編碼器還包含被稱為零信號或者參考信號的第三個輸出通道。這個通道每旋轉一圈輸出一個單脈沖。你可以使用這個單脈沖來精確計算某個參考位置。在絕大多數編碼器中,這個信號稱為Z軸或者索引。
為止,本文之前介紹了單端增量式正交編碼器。由于A和B信號都以地作為參考信號,所以被稱作為單端,并且每個信號只有一根線(或者說只有一端)。而另外一種常用的編碼器為差分編碼器,它的A和B信號都有兩根線。A信號的兩根線分別是A’和A,B信號的兩根線分別是B’和B。因為這四根線總是輸出某個已知電平(0V或者Vcc),所以這種結構也被稱為推挽結構。當A是Vcc時A’就是0V,反之,當A是0V時A’就是Vcc。而在單端編碼器的情況下,A或者是Vcc或者懸空。采用差分檢測可以保證信號的準確性,所以差分編碼器通??梢杂迷陔娫肼曒^大的環(huán)境中。
采用增量式編碼器僅能測量出位置的變化信息(從中可以計算出運動速度和加速度),但卻無法確定目標的絕對位置。在這里,我們將介紹第三種編碼器:絕對式編碼器,該類編碼器能夠獲得目標的絕對位置。這種編碼器同增量式編碼器一樣,具有交替變化的不透光扇區(qū)和透光扇區(qū)。但是絕對式編碼器在編碼器的碼盤上,采用了多組分區(qū)形成同心碼道,如同靶環(huán)一樣。同心碼道從編碼器碼盤的中心出發(fā),向外擴展直到碼盤外部,每一層碼道都比其內層多了一倍的分區(qū)。第一層,即最內層的碼道,只有一個透光扇區(qū)和一個不透光扇區(qū);位于中心的第二層就具有兩個透光扇區(qū)和兩個不透光扇區(qū);而第三層碼道的透光扇區(qū)和不透光扇區(qū)就各有四個。如果編碼器有10層碼道,那么最外圍的碼道就有512個扇區(qū);如果有16層碼道,那么最外圍的碼道就有32,767個扇區(qū)。
因為絕對式編碼器的每層碼道都比它里面一層的碼道多了一倍數目的扇區(qū),所以扇區(qū)的數目就形成了二進制計數系統(tǒng)。在這種編碼器中,碼盤上的每個碼道都對應一個光源和一個接收器。這意味著10層碼道的編碼器就需要10組光源和接收器,而16層碼道的編碼器就需要16組光源和接收器。
絕對式編碼器的優(yōu)勢在于您可以降低編碼器的轉速,可以使編碼器的碼盤在整個機器運動周期中只轉一圈。如果機器運動距離為10英寸,而編碼器具有16位精度,那么機器位置的精度就是10/65,536,即0.00015英寸。如果機器的行程更長譬如6英尺,那么粗旋轉編碼器可以保證跟蹤每一英尺距離;第二級稱為細旋轉編碼器可以跟蹤1英尺以內的距離。這就意味著,你可以調整粗編碼器,使其在整個6英尺距離內旋轉一圈;也可以調整細編碼器,使其能夠分辨的范圍為1英尺(即12英寸)。
怎樣使用編碼器進行測量
要使用編碼器進行測量,必需有一個基本的電子設備即計數器?;镜挠嫈灯魇峭ㄟ^其幾個輸入通道,產生一個數值,來表示檢測到的邊沿(即波形中從低到高或高到低的變化)數目。大多數計數器都有三個相互關聯的輸入——門限、源和升/降選擇。計數器記錄源輸入中的事件數目,并且根據升/降選擇線的狀態(tài)進行加計數或者減計數。例如:如果升/降狀態(tài)位”高”,那么計數器加計數;如果升/降狀態(tài)位”低”,那么計數器就減計數。圖3顯示了一個簡化的計數器框圖。
圖3. 計數器的簡化模型
編碼器通常有5根線需要連接。不同的編碼器,這些線的顏色是不一樣的。你可以使用這些線來給編碼器提供電源,并且讀入A、B和Z信號。圖4顯示了一個增量式編碼器的典型接口定義。
圖4. 增量式編碼器接口
接下來一步就要決定這些線應該接到什么位置。如上文所述,將信號A接到源接線端上,對其信號中的脈沖進行計數。信號B連接到升/降選擇端口上。將任意+5V的直流電源接到電源和地接線端口上——大多情況下,一個數據采集設備只需一根數字線就足夠了。
既然對信號邊沿計數了,接下來你需要考慮的就是這些數值應如何轉換成位置信息。這個由邊沿數值轉換為位置信息的過程,取決于所采用的編碼類型??偣灿腥N基本的編碼類型:X1、X2和X4。
X1編碼
圖5顯示了一個正交周期和其相應的X1編碼類型下的計數值的加減數目。當通道A引導通道B時,增量發(fā)生在通道A的上升沿。當通道B引導通道A時,減量發(fā)生在通道A的下降沿。
圖5. X1編碼
X2編碼
X2編碼與上述過程類似,只是計數器A通道的每個邊沿計數是增加還是減少,取決于由哪個通道引導哪個通道。計數器的數值每個周期都會增加2個或減少2個,如圖6所示。
圖6. X2編碼
X4編碼
X4編碼模式下,計數器同樣也在通道A和B的每個沿上發(fā)生增加或者減少。計數器的數目是增加還是減少,取決于哪個通道引導哪個通道。計數器的數目每個周期都會增加4個或減少4個,如圖7所示。
圖7. X4編碼
一旦你設置了編碼類型以及脈沖計數類型,就可以使用下列公式把數值信息轉換為位置信息了:
對于轉動位置
旋轉量
其中 N=軸每旋轉一周過程中,編碼器所生成的脈沖數目
x = 編碼類型
對于線性位置
位移量
其中 PPI=脈沖每英寸(這個參數與所選的編碼器有關)
將編碼器連接到儀器上
在這部分中,以NI cDAQ-9172機箱和NI 9401 C系列的數字I/O模塊為例。使用不同的測量儀器和設備,都與該過程類似。
圖8. NI CompactDAQ系統(tǒng)
使用的設備:
cDAQ-9172 : NI CompactDAQ 8插槽高速USB機箱
NI 9401:8-通道、5 V/TTL高速雙向數字I/O模塊
24脈沖/轉的旋轉正交編碼器
NI 9401有一個 D-Sub連接器,可以為8個數字通道提供連接。每個通道都有一個數字I/O端口,可以連接到一個數字輸入或輸出設備。只有通過機箱上的第5和第6個插槽,才可以連接到cDAQ-9172中的兩個計數器上;所以,將9401插入到第5插槽上。圖8顯示了這種結構的端口,圖9顯示了默認的計數器接線端。
圖9. NI9401的端口(插槽5)
表1. 默認的計數器接線端
根據這些規(guī)范,編碼器上的連線A連接到14腳上,連線B連接到17腳上,“5 VDC Power”連接到任何一個設置為“高”的尚未使用的的數字線上,“Ground”連接到任何COM端口上。
開始測量
前面已經將編碼器連接到測量設備上了,接下來就可以使用NI LabVIEW圖形化編程軟件,將這些數據傳到計算機中進行觀察和分析了。
圖10顯示了一個例子,在LabVIEW編程環(huán)境中顯示邊沿數目和相應的位置增量。
圖10. LabVIEW前端面板顯示測量