技術(shù)文章
嚴格來(lái)講,編碼器只會(huì )告訴你改如何定位,要如何執行,是需要靠數控系統(或者PLC之類(lèi)控制器)控制伺服或者步進(jìn)電機來(lái)實(shí)現定位的,編碼器好比人的眼睛,知道電機軸或者負載處于當前某個(gè)位置,工業(yè)上用的一般是光電類(lèi)型編碼器,下邊簡(jiǎn)單說(shuō)明一下:
光電編碼器是在一個(gè)很薄很輕的圓盤(pán)子上,通過(guò)緊密儀器來(lái)腐蝕雕刻了很多條細小的縫,相當于把一個(gè)360度,細分成很多等分,比如成1024組,這樣每組之間的角度差是360/1024度=0.3515625度。
然后有個(gè)精密的發(fā)光源,安裝在碼盤(pán)的一面,碼盤(pán)的另外一面,會(huì )有個(gè)接收器之類(lèi)的,使用了光敏電阻這些元件加放大和整形電路組成,這樣碼盤(pán)轉動(dòng)時(shí)候,有縫隙的地方會(huì )透光過(guò)去,接收器會(huì )瞬間收到光脈沖,經(jīng)過(guò)電路處理后,輸出一個(gè)電脈沖信號,這樣碼盤(pán)旋轉了一周,會(huì )對應輸出1024個(gè)脈沖,第一個(gè)脈沖位置如果是0,第二個(gè)脈沖位置就是0.3515625°,第三個(gè)脈沖位置是0.3515625°*2,以此類(lèi)推,這樣只要有儀器能讀到脈沖個(gè)數,就可以知道碼盤(pán)對應在什么位置了。
如果把編碼器安裝到電機的軸上,電機軸和碼盤(pán)是剛性連接,兩者的位置關(guān)系會(huì )一一對應,通過(guò)讀編碼器脈沖,就可以知道電機的軸位置。
而電機軸,比如會(huì )通過(guò)同步帶,齒輪,鏈條等帶動(dòng)一些負載,比如控制絲桿,這樣會(huì )有個(gè)所謂電子齒輪比的關(guān)系,電機轉一圈,絲桿會(huì )前進(jìn)多少毫米,這樣讀到了對應編碼器上輸出多少給脈沖,通過(guò)脈沖數就可以反推出當前絲桿的位置。
但是編碼器是圓的,如果無(wú)限制旋轉下去,角度會(huì )無(wú)窮大,所以設計了一種增量型的編碼器,轉一圈,會(huì )輸出三組信號ABZ,其中AB是一樣的脈沖,比如上邊說(shuō)的一圈有1024個(gè)脈沖,AB相脈沖對應一圈內的圓周角度,而且兩種脈沖是處于正交狀態(tài)的,如果是正反轉,通過(guò)判斷AB相脈沖的上升沿和下降沿的先后順序,就可以知道編碼器當前是順時(shí)針還是逆時(shí)針?lè )较蛐D的,
另外有個(gè)Z相脈沖,是因為圓周雖然會(huì )不停轉下去,角度會(huì ),但是都是一周一周的重復而已,零相脈沖固定在圓周某個(gè)位置,編碼器每轉一圈,只輸出一個(gè)零相脈沖,這樣如果以Z相脈沖為基準點(diǎn),這樣每次讀到這個(gè)脈沖時(shí)候,系統就清零一次,就可以讓角度最大值控制在360°以?xún)?,相當于一個(gè)零基準點(diǎn)了。這樣即使系統斷掉了,重新上電,只要能找到這個(gè)基準點(diǎn),就可以知道絲桿的初始位置在什么地方了。
以上這種定位叫增量坐標系,所以編碼器就是增量型編碼器,應用比較廣泛,因為靈活而且價(jià)格便宜。
如果只設備只需要轉一圈的,也就是角度在360°內的,編碼器可以細分精密一點(diǎn),比如有13位,相當于2^13次方個(gè)脈沖一圈,對應著(zhù)360°,這種脈沖數和角度一一對應,不怕系統斷電需要重新調整零位,這種編碼器叫單圈絕對值編碼器。如果負載需要轉多圈的,但是這個(gè)圈數也不能非常多,比如5圈,相當于5*360°=1800°,這樣脈沖和1800°一一對應,這些在一些高檔的數控機床上應用比較多,可以知道絲桿或者一些旋轉工作的當前精密位置,而且不用擔心系統斷電歸零問(wèn)題。
此外,編碼器還有磁電方式的,比如在碼盤(pán)上加工了很多個(gè)南北間隔的小磁鐵,通過(guò)霍爾去讀小磁鐵信號,輸出信號,同樣經(jīng)過(guò)放大和整形變成了電脈沖,這點(diǎn)和光電編碼器是類(lèi)似的,而且價(jià)格會(huì )便宜點(diǎn),可靠性會(huì )高,但是精度就比光電要差點(diǎn)。
PLC能輸入開(kāi)關(guān)量,也就是一高一低的電平電壓,而編碼器脈沖信號,可以理解一定時(shí)間內,用極快的速度完成的一組開(kāi)關(guān)量。但是因為這種開(kāi)關(guān)量的頻率太高了,所以PLC的普通I/O口是無(wú)法準確讀到這些脈沖的個(gè)數的,因為PLC工作過(guò)程中存在掃描周期,需要每個(gè)一段時(shí)間才去刷新一下普通I/O口的數據,而編碼器的精度太高了,單位時(shí)間內輸出的脈沖個(gè)數太多,普通I/O是無(wú)法勝任的。
一般PLC會(huì )設計有高速計數端口,本質(zhì)是利用了底層單片機的硬件邏輯來(lái)完成這些編碼器計數的,避開(kāi)了掃描周期問(wèn)題,PLC都設計有專(zhuān)門(mén)的高速計數指令,使用的時(shí)候,直接調用這些指令就可以讀到當前的脈沖值了。
但是脈沖的計算和輸出上,由于掃描周期存在,往往也會(huì )存在著(zhù)滯后影響,如果用來(lái)控制一些執行機構,比如氣缸來(lái)動(dòng)作裁切動(dòng)作,這樣要考慮提前量的補償問(wèn)題。
提醒一下,如果想用PLC來(lái)控制伺服或者步進(jìn)系統,往往并不需要通過(guò)編碼器反饋來(lái)判斷位置,通過(guò)一些PLS指令之類(lèi)的來(lái)發(fā)出位置脈沖給伺服驅動(dòng)器,位置環(huán)在伺服驅動(dòng)器內部構成就好,而PLC這邊只是一個(gè)指令機構,并沒(méi)有構成位置閉環(huán),當然如果是專(zhuān)門(mén)定位模塊控制,使用了NC之類(lèi)的控制方式,是可以在里邊構建位置閉環(huán)的。