一、前言
在上一篇中詳細(xì)講到了三菱PLC的上機(jī)流程,本篇進(jìn)入正題,講解如何使用三菱PLC進(jìn)行步進(jìn)電機(jī)的控制,主要分為步進(jìn)電機(jī)基礎(chǔ)知識(shí)、三菱PLC步進(jìn)電機(jī)控制基礎(chǔ)、項(xiàng)目實(shí)戰(zhàn)三部分。
二、步進(jìn)電機(jī)基礎(chǔ)知識(shí)
-
基本定義 步進(jìn)電機(jī)是一種將電脈沖信號(hào)轉(zhuǎn)換為精確角位移或線位移的開環(huán)控制電機(jī)。每輸入一個(gè)脈沖,電機(jī)按固定步距角轉(zhuǎn)動(dòng),其轉(zhuǎn)速和停止位置僅由脈沖頻率和數(shù)量決定,與負(fù)載無(wú)關(guān)。
-
工作原理
- 電磁驅(qū)動(dòng):定子繞組通電后產(chǎn)生磁場(chǎng),吸引或排斥轉(zhuǎn)子(永磁體或?qū)Т挪牧希┬D(zhuǎn)特定角度。例如,兩相混合式電機(jī)通過(guò)交替改變定子線圈電流方向?qū)崿F(xiàn)步進(jìn)。
- 微步驅(qū)動(dòng):通過(guò)正弦波電流控制,將單一步距細(xì)分為更小角度(如1/32步),提升精度并減少振動(dòng)。
- 就目前的使用場(chǎng)景來(lái)看我們?cè)谝话愎こ讨惺褂玫亩际俏⒉津?qū)動(dòng)的步進(jìn)電機(jī),至于電磁驅(qū)動(dòng)的步進(jìn)電機(jī)用在比較大型的場(chǎng)景例如磁懸浮。
-
步進(jìn)電機(jī)運(yùn)動(dòng)原理
步進(jìn)電機(jī)的控制精度依賴于繞組電流的相位與幅值精確調(diào)制。盡管微步驅(qū)動(dòng)(Microstepping)理論上需要兩相正弦波電流的矢量合成,但主流控制器(如PLC、MCU、FPGA)的通用I/O端口僅支持PWM方波信號(hào)輸出(固定占空比或頻率可調(diào))。因此,需通過(guò)步進(jìn)電機(jī)驅(qū)動(dòng)器實(shí)現(xiàn)以下關(guān)鍵信號(hào)轉(zhuǎn)換與增強(qiáng)功能:
-
方波-正弦波調(diào)制技術(shù)
驅(qū)動(dòng)器內(nèi)置細(xì)分控制模塊,將PLC輸出的方波脈沖序列轉(zhuǎn)化為正弦/余弦相位差電流。例如,16細(xì)分模式下,驅(qū)動(dòng)器通過(guò)查表法生成兩相階梯狀正弦波電流,實(shí)現(xiàn)步距角從1.8°降至0.1125°的平滑運(yùn)動(dòng)。 -
電流矢量合成與功率放大
驅(qū)動(dòng)器采用H橋電路對(duì)控制信號(hào)進(jìn)行功率放大,并通過(guò)電流閉環(huán)反饋(如斬波限流技術(shù))確保繞組電流與目標(biāo)波形一致。此過(guò)程可抑制因電機(jī)反電動(dòng)勢(shì)引起的力矩波動(dòng)。 -
脈沖-相位同步機(jī)制
PLC輸出的脈沖頻率(PPS)與方向信號(hào)(DIR)通過(guò)驅(qū)動(dòng)器轉(zhuǎn)換為相位切換時(shí)序。例如,在雙極四線制電機(jī)中,驅(qū)動(dòng)器根據(jù)DIR信號(hào)調(diào)整A+/A-與B+/B-繞組的通電順序,實(shí)現(xiàn)正反轉(zhuǎn)控制。 -
細(xì)分驅(qū)動(dòng)的硬件實(shí)現(xiàn)
高端驅(qū)動(dòng)器集成數(shù)字信號(hào)處理器(DSP),通過(guò)預(yù)設(shè)細(xì)分參數(shù)(如1/32步)對(duì)輸入方波進(jìn)行插值運(yùn)算,生成高分辨率相位電流。此技術(shù)可消除傳統(tǒng)全步/半步驅(qū)動(dòng)的共振問(wèn)題,降低運(yùn)動(dòng)噪聲。
說(shuō)人話就是:步進(jìn)電機(jī)的控制需要正弦波但是一般來(lái)說(shuō)無(wú)論P(yáng)LC還是MCU亦或是FPGA等器件,不做特殊處理從IO口輸出的都是方波,當(dāng)然這里主要討論P(yáng)LC,PLC只能輸出不同頻率不同占空比的方波,因此需要對(duì)應(yīng)的步進(jìn)電機(jī)驅(qū)動(dòng)板將PLC輸出的時(shí)鐘信號(hào)(控制信號(hào))和方向信號(hào)轉(zhuǎn)化為供步進(jìn)電機(jī)工作的電流信號(hào)。
三、三菱PLC步進(jìn)電機(jī)控制基礎(chǔ)
根據(jù)前文所說(shuō),我們知道輸入到電機(jī)的信號(hào)不是直接從PLC輸出的信號(hào)要經(jīng)過(guò)步進(jìn)電機(jī)驅(qū)動(dòng)板轉(zhuǎn)化,那么我們?cè)趺礃涌刂齐姍C(jī)轉(zhuǎn)速呢?
首先確定電機(jī)的步進(jìn)角(由電機(jī)決定)
再確定電機(jī)驅(qū)動(dòng)板的細(xì)分?jǐn)?shù)(由電機(jī)驅(qū)動(dòng)板卡決定)
步進(jìn)電機(jī)轉(zhuǎn)一圈需要的脈沖數(shù)
步進(jìn)電機(jī)每轉(zhuǎn)一圈所需的脈沖數(shù)取決于電機(jī)的基本步距角和細(xì)分?jǐn)?shù)。具體來(lái)說(shuō),如果知道步進(jìn)電機(jī)的一個(gè)基本步距角(即電機(jī)接收一個(gè)脈沖所轉(zhuǎn)動(dòng)的角度),并且知道驅(qū)動(dòng)器設(shè)置的細(xì)分程度,那么就可以計(jì)算出電機(jī)轉(zhuǎn)一圈需要多少個(gè)脈沖。
度量單位,也就是如何衡量步進(jìn)馬達(dá)行走的距離---步進(jìn)角,就是一個(gè)脈沖馬達(dá)轉(zhuǎn)動(dòng)的角度。步進(jìn)馬達(dá)的步進(jìn)角一般為1.8°。0.9°,0.72°,0.36°,0.0288°,等等。步進(jìn)角越小,則步進(jìn)馬達(dá)的控制精度越高。我們根據(jù)步進(jìn)角可以控制馬達(dá)行走的精確距離。比如說(shuō),步進(jìn)角0.72°,馬達(dá)旋轉(zhuǎn)一周需要的脈沖數(shù)為360/0.72=500脈沖,也就是對(duì)步進(jìn)馬達(dá)驅(qū)動(dòng)器發(fā)出500個(gè)脈沖信號(hào),馬達(dá)才旋轉(zhuǎn)一周。
- 首先,確定步進(jìn)電機(jī)的基本步距角,比如1.8度。
- 然后,根據(jù)驅(qū)動(dòng)器上的細(xì)分設(shè)置,例如32細(xì)分,這意味著每個(gè)基本步距角被分成了32份,每一脈沖會(huì)讓電機(jī)轉(zhuǎn)動(dòng)更小的角度。
- 計(jì)算一圈(360度)需要的脈沖數(shù),就是用360度除以經(jīng)過(guò)細(xì)分后的每步角度。在這個(gè)例子中,一圈需要的脈沖數(shù)等于360度除以細(xì)分后的每步角度(1.8度除以細(xì)分系數(shù))。
每秒鐘產(chǎn)生的脈沖數(shù)(PPS)
每秒鐘能產(chǎn)生的脈沖數(shù)取決于系統(tǒng)的時(shí)鐘頻率以及生成每個(gè)PWM脈沖所需的時(shí)間(或者說(shuō)是系統(tǒng)時(shí)鐘周期數(shù))。這個(gè)值反映了控制器能夠向步進(jìn)電機(jī)發(fā)送脈沖的速度。
- 如果知道系統(tǒng)的時(shí)鐘頻率,并且知道為了產(chǎn)生一個(gè)PWM脈沖需要多少個(gè)系統(tǒng)時(shí)鐘周期,就可以計(jì)算出每秒鐘可以產(chǎn)生的脈沖數(shù)量。
- 例如,如果系統(tǒng)時(shí)鐘頻率很高,并且設(shè)定每個(gè)PWM脈沖由一定數(shù)量的系統(tǒng)時(shí)鐘周期組成,那么可以通過(guò)系統(tǒng)時(shí)鐘頻率除以每個(gè)PWM脈沖所需的系統(tǒng)時(shí)鐘周期數(shù)來(lái)得到每秒能產(chǎn)生的脈沖數(shù)。
步進(jìn)電機(jī)的轉(zhuǎn)速(RPM)
步進(jìn)電機(jī)的轉(zhuǎn)速可以用每分鐘轉(zhuǎn)過(guò)的圈數(shù)來(lái)表示。這取決于每秒鐘產(chǎn)生的脈沖數(shù)和轉(zhuǎn)一圈所需的脈沖數(shù)。
- 轉(zhuǎn)速計(jì)算基于每秒鐘產(chǎn)生的脈沖數(shù)(PPS)除以轉(zhuǎn)一圈所需的脈沖數(shù),然后乘以60轉(zhuǎn)換成每分鐘的轉(zhuǎn)速。
- 這意味著,通過(guò)調(diào)整細(xì)分設(shè)置或改變每秒鐘發(fā)送的脈沖頻率,可以控制步進(jìn)電機(jī)的轉(zhuǎn)速。增加細(xì)分級(jí)別會(huì)減少每次脈沖讓電機(jī)轉(zhuǎn)動(dòng)的角度,而增加脈沖頻率則會(huì)加快電機(jī)的轉(zhuǎn)速。
綜上所述,步進(jìn)電機(jī)轉(zhuǎn)動(dòng)的圈數(shù)直接與接收到的PWM脈沖數(shù)量相關(guān),而PWM脈沖的數(shù)量又受到系統(tǒng)時(shí)鐘頻率、細(xì)分設(shè)置以及每個(gè)PWM脈沖持續(xù)時(shí)間的影響。通過(guò)調(diào)節(jié)這些參數(shù),可以精確地控制步進(jìn)電機(jī)的位置和速度。
上面可能有點(diǎn)復(fù)雜,簡(jiǎn)單點(diǎn)來(lái)說(shuō)就是知道電機(jī)的步進(jìn)角,然后知道電機(jī)驅(qū)動(dòng)板的細(xì)分?jǐn)?shù),對(duì)應(yīng)PLC來(lái)說(shuō),PLC的一個(gè)脈沖(50占空比)電機(jī)就走步進(jìn)角/細(xì)分?jǐn)?shù)這么多度,知道這個(gè)現(xiàn)在你想算轉(zhuǎn)速圈數(shù)需要的PWM頻率和時(shí)間,不用我多說(shuō)了吧。
四、項(xiàng)目實(shí)戰(zhàn)
目的實(shí)現(xiàn)步進(jìn)電機(jī)的運(yùn)動(dòng)并控制其按照不同的頻率進(jìn)行運(yùn)動(dòng)。首先利用MOV命令為不同寄存器存不同的頻率(根據(jù)電機(jī)類型和電機(jī)驅(qū)動(dòng)板計(jì)算,計(jì)算方法前文有)。
PLSY可以讓PLC內(nèi)部的輸出器件在繼電器有效時(shí)間內(nèi)輸出預(yù)定數(shù)量個(gè)頻率的PWM波。
電機(jī)頻率自動(dòng)化程序,每跑固定數(shù)量的脈沖后自動(dòng)更新(按前面寄存器設(shè)置順序進(jìn)行更新),在更新到最后一個(gè)寄存器值以后以該頻率一直運(yùn)行。
注:Z0是變址,為區(qū)間復(fù)位,運(yùn)行該指令后,T0-T196所有的定時(shí)器,全部復(fù)位。
Z0=1,Y0Z0=Y1,此時(shí)Y1點(diǎn)的動(dòng)狀態(tài)要看有沒(méi)有驅(qū)動(dòng)。Z0為寄存器,不存在點(diǎn)不點(diǎn)亮。當(dāng)輸入MOV K1 Z0時(shí),即可讓Z0等于1,當(dāng)Z0=2時(shí),Y0Z0=Y2,程序?yàn)閘d m8000、mov d0z0 d20v10。說(shuō)明:若Z0=2,v10=5,運(yùn)行指令后,即將D2內(nèi)面的數(shù)據(jù)傳送到D30。