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