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