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