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


返回頂部
刷新頁面
下到頁底