劉正宇
(安徽理工大學(xué)機(jī)械工程學(xué)院,安徽 淮南 232001)
步進(jìn)電機(jī)是一種把脈沖信號(hào)轉(zhuǎn)變成直線位移或角位移的機(jī)械設(shè)備[1],具有定位精確、響應(yīng)快等優(yōu)點(diǎn)。面對各行業(yè)對步進(jìn)電機(jī)控制越來越高的要求,提高其控制精度已刻不容緩。在步進(jìn)電機(jī)控制方面的研究論述有很多,例如,文獻(xiàn)[2]設(shè)計(jì)了一種采用單片機(jī)控制步進(jìn)電機(jī)的控制系統(tǒng);文獻(xiàn)[3]提出了一種利用協(xié)調(diào)控制系統(tǒng)(Coordinated Control System,CCS) 開發(fā)環(huán)境,運(yùn)用自動(dòng)化理論,采用數(shù)字信號(hào)處理(Digital Signal Processing,DSP) 的控制方法。
為了改進(jìn)原有的步進(jìn)電機(jī)控制技術(shù),本文以三菱可編程邏輯控制器(Programmable Logic Controller,PLC) 為控制核心,通過具體的實(shí)例,應(yīng)用編碼器的檢測效果,設(shè)計(jì)實(shí)現(xiàn)了完整的步進(jìn)電機(jī)運(yùn)動(dòng)的閉環(huán)控制系統(tǒng)。
該系統(tǒng)主要實(shí)現(xiàn)滑臺(tái)定時(shí)、定長、定速的水平往復(fù)移動(dòng)的目標(biāo),從而要求滑臺(tái)水平往復(fù)移動(dòng)距離l=60 mm,移動(dòng)速度v=1 mm/s。它主要由步進(jìn)電機(jī)、減速器、滑臺(tái)模組、編碼器、聯(lián)軸器、穩(wěn)定軸承等部分組成,運(yùn)動(dòng)系統(tǒng)總體結(jié)構(gòu)見圖1。經(jīng)過對參數(shù)的比較以及對成本的考慮,選擇了性價(jià)比最高的硬件設(shè)備,步進(jìn)電機(jī)選擇為86 步進(jìn)電機(jī),減速器減速比i=100∶1,滑臺(tái)模組導(dǎo)程P=10 mm/r,編碼器為歐姆龍旋轉(zhuǎn)增量編碼器E6B2-CWZ6C,線數(shù)為2000P/R,控制器為三菱FX-3U 系列PLC。
圖1 運(yùn)動(dòng)系統(tǒng)總體結(jié)構(gòu)圖
控制系統(tǒng)主要由PLC 控制模塊、步進(jìn)驅(qū)動(dòng)模塊、編碼器反饋模塊、電源模塊以及相關(guān)電路組成,總體控制系統(tǒng)結(jié)構(gòu)見圖2。其中編碼器反饋模塊的應(yīng)用是實(shí)現(xiàn)反饋控制系統(tǒng)的關(guān)鍵。
圖2 控制系統(tǒng)總體結(jié)構(gòu)框圖
步進(jìn)電機(jī)是通過步進(jìn)驅(qū)動(dòng)器來驅(qū)動(dòng)的,它的控制方式分為閉環(huán)控制和開環(huán)控制[4]。開環(huán)控制是由步進(jìn)驅(qū)動(dòng)器直接發(fā)出脈沖方向和使能給步進(jìn)電機(jī),讓轉(zhuǎn)子按照接收的脈沖信號(hào)實(shí)現(xiàn)相應(yīng)規(guī)律的轉(zhuǎn)動(dòng),其間并無反饋存在。這種控制系統(tǒng)并不能保證步進(jìn)電機(jī)運(yùn)動(dòng)的精確性,對提高步進(jìn)電機(jī)的控制存在缺陷。閉環(huán)控制是在驅(qū)動(dòng)電機(jī)的同時(shí),加上檢測裝置進(jìn)行直接跟蹤或間接跟蹤,把檢測信號(hào)發(fā)送給“中央處理器”——PLC,通過PLC 內(nèi)部數(shù)據(jù)計(jì)算反饋處理后,可以確定步進(jìn)電機(jī)的位置及轉(zhuǎn)速,若有出入,可以及時(shí)糾正,從而達(dá)到反饋效果。這種控制系統(tǒng)對提高步進(jìn)電機(jī)的控制有很大的應(yīng)用意義[5]。
步進(jìn)電機(jī)控制原理:PLC 發(fā)出脈沖及方向(信號(hào)通斷) 控制步進(jìn)驅(qū)動(dòng)器,步進(jìn)驅(qū)動(dòng)器通過A、B兩相信號(hào)控制步進(jìn)電機(jī)正反轉(zhuǎn)及定位。一般來說,步進(jìn)驅(qū)動(dòng)器給步進(jìn)電機(jī)的步距角為1.8°,其中步距角指的是驅(qū)動(dòng)器給步進(jìn)電機(jī)一個(gè)脈沖信號(hào),步進(jìn)電機(jī)走一步的距離所對應(yīng)的角度,因此步進(jìn)電機(jī)轉(zhuǎn)一圈360°需要的脈沖信號(hào)數(shù)量m 為200 個(gè)。步進(jìn)電機(jī)控制使用的是脈沖輸出PLSY 指令,見圖3。圖3中,S1-中的內(nèi)容是指定頻率,可以更改字軟元件的內(nèi)容,輸出頻率也會(huì)隨之改變;S2-中的內(nèi)容是指定產(chǎn)生脈沖量,若該值為0 時(shí),則對此產(chǎn)生的脈沖不做限制;D-中的內(nèi)容是脈沖輸出點(diǎn)。設(shè)定脈沖發(fā)完以后,執(zhí)行結(jié)束標(biāo)志M8029 動(dòng)作,接通一個(gè)上升沿,完成周期控制。
圖3 脈沖輸出PLSY 指令梯形圖
編碼器是一種將信號(hào)或數(shù)據(jù)轉(zhuǎn)化為可以用來識(shí)別、便于傳輸和存儲(chǔ)的信號(hào)形式的裝置[6]。作為檢測機(jī)械運(yùn)動(dòng)的一種特殊傳感器,它不僅有著精確度高、工作可靠性強(qiáng)等優(yōu)點(diǎn),還有著廣泛的應(yīng)用,比如檢測方向、距離、角度等。
編碼器作為一種檢測傳感器,它一般通過聯(lián)軸器連接在電機(jī)軸上,通過電機(jī)軸帶動(dòng)它轉(zhuǎn)動(dòng),電機(jī)軸轉(zhuǎn)動(dòng)一圈,編碼器就轉(zhuǎn)動(dòng)一圈。編碼器原理見圖4,編碼器內(nèi)部有一個(gè)固定在軸上的旋轉(zhuǎn)盤,盤上有許多小孔,內(nèi)部光源通過透鏡穩(wěn)定透過旋轉(zhuǎn)盤上的小孔,抵達(dá)固定光柵上面。固定光柵下方有受光元件,受光元件產(chǎn)生電信號(hào),經(jīng)過波形整形電路后的輸出信號(hào)有A、B 兩相,相位差為90°,輸出信號(hào)傳輸給PLC,通過高速計(jì)數(shù)器記錄單位時(shí)間內(nèi)光透過小孔的個(gè)數(shù),完成計(jì)數(shù)工作。
圖4 編碼器原理示意圖
圖5 為編碼器實(shí)物圖。需注意的是,由圖5 可見,編碼器有6 根線,其中A 相線和B 相線在實(shí)物接線時(shí)需要謹(jǐn)慎,如果只接A、B 中任何一根線,高速計(jì)數(shù)器只能記錄光透過小孔的個(gè)數(shù);如果A、B 兩根線都接,不僅可以記錄個(gè)數(shù),還可以判斷電機(jī)動(dòng)作方向,但是要求A 相線接X0,B 相線接X1;如果接反了,就會(huì)和電機(jī)動(dòng)作方向剛好相反,這是由三菱FX-3U 系列PLC 的特殊性所決定的。
圖5 編碼器實(shí)物圖
本文采用負(fù)反饋機(jī)制的閉環(huán)控制思想,在整個(gè)反饋系統(tǒng)中,由編碼器對步進(jìn)電機(jī)運(yùn)動(dòng)狀態(tài)進(jìn)行跟蹤檢測,檢測到的信號(hào)輸出給PLC,通過PLC 對信號(hào)的分析計(jì)算并即時(shí)調(diào)整控制信號(hào)反饋給步進(jìn)電機(jī),從而實(shí)現(xiàn)對步進(jìn)電機(jī)轉(zhuǎn)動(dòng)方向、轉(zhuǎn)速及位移的準(zhǔn)確控制。
高速計(jì)數(shù)器在計(jì)數(shù)時(shí),采用的是2 相2 計(jì)數(shù),即C251 對應(yīng)的高速計(jì)數(shù)點(diǎn)為X0 和X1,其中A 相對應(yīng)X0,B 相對應(yīng)X1。計(jì)數(shù)值的加減需要加入特殊中間輔助繼電器, 計(jì)數(shù)方向是根據(jù)M8235~M8245 的啟動(dòng)與否,對應(yīng)的C235~C245 做相應(yīng)的增減計(jì)數(shù)。其中A、B 相之間存在90°相位差,根據(jù)信號(hào)的先后通斷,來判斷順時(shí)針轉(zhuǎn)動(dòng)是加計(jì)數(shù)還是減計(jì)數(shù)。
編碼器在檢測速度信號(hào)時(shí),使用的是脈沖密度SPD 指令,見圖6。脈沖密度SPD 指令指的是高速計(jì)數(shù)器在單位時(shí)間內(nèi)計(jì)數(shù)的個(gè)數(shù),把S1-中的設(shè)定輸入脈沖在S2-中的設(shè)定單位時(shí)間(單位為ms) 內(nèi)計(jì)數(shù),把記錄結(jié)果存儲(chǔ)在D-中。例如X0 為高速計(jì)數(shù)點(diǎn),K100 為計(jì)數(shù)時(shí)間100 ms,D0 為寄存器,用來存儲(chǔ)記錄的數(shù)據(jù)。
圖6 脈沖密度SPD 指令梯形圖
在實(shí)際檢測過程中,計(jì)算編碼器轉(zhuǎn)動(dòng)圈數(shù)時(shí),期望圈數(shù)值為小數(shù),為了保持?jǐn)?shù)據(jù)類型統(tǒng)一,需要對C235 進(jìn)行整數(shù)向浮點(diǎn)數(shù)的轉(zhuǎn)換,需要浮點(diǎn)化,即采用FLT 指令。考慮到儲(chǔ)存值會(huì)大,可以采用32 位寄存器,占用兩個(gè)寄存器,即采用DFLT 指令。當(dāng)然最后的計(jì)算結(jié)果有時(shí)候需要整數(shù)化,即采用INT 指令或DINT 指令,同時(shí)也會(huì)用到四則運(yùn)算,比如浮點(diǎn)數(shù)乘法指令EMUL 或DEMUL、除法指令EDIV 或DEDIV 等簡單基礎(chǔ)指令。在確定步進(jìn)電機(jī)的位移時(shí),編碼器線數(shù)為2000P/R,電機(jī)軸半徑R=25 mm,減速器減速比i=100∶1,計(jì)算可得到編碼器轉(zhuǎn)動(dòng)圈數(shù)n1為
式中:C251 為高速計(jì)數(shù)器計(jì)數(shù)個(gè)數(shù)。
電機(jī)轉(zhuǎn)動(dòng)圈數(shù)n2為
電機(jī)轉(zhuǎn)動(dòng)的周長L 為
電機(jī)位移X 為
檢測步進(jìn)電機(jī)位移的控制程序,即編碼器測位移控制程序見圖7。其中C251 的記錄值存放在D0寄存器中,DO 中的數(shù)值擴(kuò)大100 倍后存放在D2中,再進(jìn)行浮點(diǎn)化給D4,進(jìn)行除法運(yùn)算后得到的結(jié)果存放在D6 中,D6 就是電機(jī)轉(zhuǎn)動(dòng)的圈數(shù)n2。計(jì)算電機(jī)轉(zhuǎn)動(dòng)的周長L 值時(shí)使用乘法運(yùn)算,計(jì)算結(jié)果存放在D10 中。計(jì)算電機(jī)位移X 時(shí),需要用到前一步的D6 的值,利用乘法指令,得到D14 的值,即位移X,還需要整數(shù)化,D18 就是最后的結(jié)果。
圖7 編碼器測位移控制程序梯形圖
本次研究中對步進(jìn)電機(jī)的控制進(jìn)行了優(yōu)化,應(yīng)用了編碼器的檢測功能,設(shè)計(jì)出一個(gè)負(fù)反饋閉環(huán)控制系統(tǒng),大大提升了對步進(jìn)電機(jī)的控制性能,實(shí)現(xiàn)了對步進(jìn)電機(jī)的精確定位,對生產(chǎn)中步進(jìn)電機(jī)的使用具有重大意義。利用負(fù)反饋閉環(huán)控制系統(tǒng)進(jìn)行試驗(yàn)發(fā)現(xiàn),雖然此控制系統(tǒng)可以對步進(jìn)電機(jī)的速度、位移進(jìn)行精確的控制,但是硬件反應(yīng)滯后的現(xiàn)象還是在所難免。因此,為了讓步進(jìn)電機(jī)更好地滿足未來發(fā)展的需求,仍需不斷地對其控制進(jìn)行優(yōu)化設(shè)計(jì),探尋更佳優(yōu)化方案。