馬新榮
[摘 要]本文介紹了PWM向導控制的設定方法,并闡述了利用PWM實現(xiàn)步進電機控制的系統(tǒng)設計。
[關鍵詞]PWM;控制;步進電機
[DOI]10.13939/j.cnki.zgsc.2015.02.031
1 控制要求
步進電機選用Kinko公司的2S86Q-03080 兩相雙極微步型電機,驅動器選用KINCO-2M530。設置驅動器細分為10,輸出相電流為3.0A。
按下正轉啟動按鈕,步進電機順時針旋轉,轉一圈用時5秒,按下反轉啟動按鈕,步進電機逆時針旋轉,轉一圈用時10秒,并且步進電機在任何時刻都能夠從正轉變?yōu)榉崔D或從反轉變?yōu)檎D,按下停止按鈕,步進電機停止。
2 控制方案
步進電機是一種將電脈沖轉化為角位移或線位移的執(zhí)行機構。當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(即步進角)。通過控制脈沖個數(shù)來控制角位移量或線位移量,從而達到準確定位的目的;通過控制脈沖頻率來控制電機轉動的速度,從而達到調(diào)速的目的。
驅動器細分為10,則設定DIP1=OFF、DIP2=OFF、DIP3=OFF、DIP4=ON,輸出相電流為3.0A,則設定DIP6=OFF、DIP7=OFF、DIP8=ON。
2S86Q-03080型步進電機的步進角是1.8°,而驅動器細分為10,于是每來一個脈沖,步進電機旋轉的角度為0.18°,旋轉一圈就需要2000個脈沖。
旋轉角=步進角/細分數(shù)=1.8°/10=0.18°
旋轉一圈脈沖數(shù)=2π旋轉角=360°0.18°=2000
PWM輸出周期=轉一圈所需時間/轉一圈所需脈沖數(shù)
所以本步進電機正轉時的PWM輸出周期=2500us/脈沖,反轉時的PWM輸出周期=5000us/脈沖。
使用PWM控制步進電機時必須使用晶體管輸出型CPU,于是控制器選用S7-200 Smart,采用開關量控制,輸入量有正轉啟動(I0.0)、反轉啟動(I0.3)和停止(I0.1),共3個輸入點;輸出量包括脈沖輸出端(Q0.0)、方向控制端(Q0.4),共2個輸出點??刂圃砣鐖D1所示,圖中2k電阻是限流電阻,S7-200 Smart PLC的工作電源是直流24V。
圖1 步進電機控制原理
3 PWM向導控制的設定
S7-200 Smart每個向導均顯示一個樹結構,對于每個向導,都必須完成全部所需組態(tài)并生成代碼,成功生成代碼后,向導將程序塊存儲在項目樹中“程序塊”(Program Blocks)文件夾內(nèi)的“向導”(Wizards)文件夾下。同樣,向導將數(shù)據(jù)塊存儲在項目樹中“數(shù)據(jù)塊”(Data Block)文件夾內(nèi)的“向導”(Wizards)文件夾下,將符號存儲在“符號表”(Symbol Table)文件夾內(nèi)的“向導”(Wizards)文件夾下。
打開PWM向導有兩種方法:①在“工具”(Tools)菜單功能區(qū)的“向導”(Wizards)區(qū)域單擊“PWM” 按鈕;②在項目樹中打開“向導”(Wizards)文件夾,然后雙擊“PWM”或選中“PWM”并按 Enter 鍵。
PWM向導根據(jù)輸入生成一個指令,然后可將該指令放置到程序中以控制脈寬調(diào)制(PWM)輸出的占空比,PWM向導的脈沖輸出端是固定的也是可選的,脈沖輸出端可以選用Q0.0、Q0.1和Q0.3,本控制選用Q0.0作為脈沖輸出端,所以選擇要組態(tài)的脈沖“PWM0”。為了計算出的輸出周期和占空比都為整數(shù),輸出時基選擇“微秒”,設定完成后會自動生成PWMx_RUN 子例程。
3.1 PWMx_RUN 子例程介紹
PWMx_RUN 子例程PWM提供了占空比可變的連續(xù)輸出,允許用戶通過改變脈沖寬度(從0到周期時間的脈沖寬度)來控制輸出占空比。PWMx_RUN指令的框圖如圖2所示。
圖2 PWMx_RUN指令框
EN使能端,一般直接接SM0.0。RUN運行端,使輸出產(chǎn)生開和關的作用。若RUN的觸發(fā)端接通,則PWMx_RUN指令有輸出。注意:不等于不管就是關。 Cycle 輸入是一個字值,定義脈寬調(diào)制(PWM)輸出的周期。如果時基為毫秒,則允許的范圍為2~65535;如果時基為微秒,則允許的范圍為10~65535。
Pulse 輸入是一個字值,用于定義 PWM 輸出的脈寬(占空比)。允許的取值范圍為 0~65535 個時基單元,時基是在向導中指定的,單位為微秒或毫秒。
Error 是 PWMx_RUN 子例程返回的字節(jié)值,用于指示執(zhí)行結果?!?”代表無錯誤,正常完成;“131”代表脈沖發(fā)生器已由另一個 PWM 或運動軸使用,或者時基變化非法。
3.2 使用PWMx_RUN 子例程注意事項
(1)為了便于程序編寫EN使能端最好接SM0.0,當PWMx_RUN 正在輸出的時候斷開EN就沒法停下來了,EN是產(chǎn)生控制的作用。
(2)Cycle、Pulse的數(shù)據(jù)類型是字,操作數(shù)只能使用IW、QW、VW、MW、SMW、SW、T、C、LW、AC、AIW、*VD、*AC、*LD、常數(shù)。
(3)PWM支持的最大脈沖速率為 100kHz。
(4)要改變步進電機的轉速只需改變輸出周期和占空比,占空比一般都設為50%,使發(fā)出的脈沖為方波。
(5)要使步進電機停止就需要斷開RUN運行端。
(6)PWM控制步進電機按照預設要求自行停止比較困難和麻煩。
4 控制程序
Q0.4控制步進電機的方向(DIR端口),Q0.4沒有輸出和有輸出分別代表兩種方向。參考程序如圖3所示。
Always_On代表SM0.0,它始終為常閉觸點。當V0.0有輸出時,步進電機以400個脈沖/s的速度旋轉;當V0.1有輸出時,步進電機以200個脈沖/s的速度旋轉。
圖3 步進電機控制程序
參考文獻:
[1]陳瑞陽,席巍,宋柏青.西門子工業(yè)自動化項目設計實踐[M].北京:機械工業(yè)出版社,2009.
[2]張揚.S7-200PLC原理與應用系統(tǒng)設計[M].北京:機械工業(yè)出版社,2007.