馬天才 鮑小春
摘 要:隨著微電子和計(jì)算機(jī)技術(shù)的發(fā)展,步進(jìn)電機(jī)的需求量與日俱增,在各個(gè)國民經(jīng)濟(jì)領(lǐng)域都有應(yīng)用,所以步進(jìn)電機(jī)的控制就顯得尤為重要。本文介紹了PWM向?qū)Э刂频脑O(shè)定方法,并闡述利用PWM實(shí)現(xiàn)步進(jìn)電機(jī)控制的系統(tǒng)設(shè)計(jì)。
關(guān)鍵詞:步進(jìn)電機(jī);PWM;控制
步進(jìn)電機(jī)作為執(zhí)行元件,是機(jī)電一體化的關(guān)鍵產(chǎn)品之一,廣泛應(yīng)用在各種自動(dòng)化控制系統(tǒng)中。隨著微電子和計(jì)算機(jī)技術(shù)的發(fā)展,步進(jìn)電機(jī)的需求量與日俱增,在各個(gè)國民經(jīng)濟(jì)領(lǐng)域都有應(yīng)用,所以步進(jìn)電機(jī)的控制就顯得尤為重要。步進(jìn)電機(jī)的控制方法有很多種,比如PLS控制、運(yùn)動(dòng)向?qū)Э刂频?,在眾多控制中,PWM控制具有它獨(dú)特的優(yōu)點(diǎn)。
一、控制要求
步進(jìn)電機(jī)選用KINCO公司的2S86Q-03080兩相雙極微步型電機(jī),驅(qū)動(dòng)器選用KINCO-2M530。設(shè)置驅(qū)動(dòng)器細(xì)分為10,輸出相電流為3.0A。
按下正轉(zhuǎn)啟動(dòng)按鈕,步進(jìn)電機(jī)順時(shí)針旋轉(zhuǎn),轉(zhuǎn)一圈用時(shí)5秒,按下反轉(zhuǎn)啟動(dòng)按鈕,步進(jìn)電機(jī)逆時(shí)針旋轉(zhuǎn),轉(zhuǎn)一圈用時(shí)10秒,并且步進(jìn)電機(jī)在任何時(shí)刻都能夠從正轉(zhuǎn)變?yōu)榉崔D(zhuǎn)或從反轉(zhuǎn)變?yōu)檎D(zhuǎn),按下停止按鈕,步進(jìn)電機(jī)停止。
二、控制方案
步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移或線位移的執(zhí)行機(jī)構(gòu)。當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度(即步進(jìn)角)。通過控制脈沖個(gè)數(shù)來控制角位移量或線位移量,從而達(dá)到準(zhǔn)確定位的目的;通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動(dòng)的速度,從而達(dá)到調(diào)速的目的。
驅(qū)動(dòng)器細(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ū)動(dòng)器細(xì)分為10,于是每來一個(gè)脈沖,步進(jìn)電機(jī)旋轉(zhuǎn)的角度為0.18°,旋轉(zhuǎn)一圈就需要2000個(gè)脈沖。
旋轉(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)一圈所需時(shí)間/轉(zhuǎn)一圈所需脈沖數(shù)
所以本步進(jìn)電機(jī)正轉(zhuǎn)時(shí)的PWM輸出周期=2500us/脈沖,反轉(zhuǎn)時(shí)的PWM輸出周期=5000us/脈沖。
使用PWM控制步進(jìn)電機(jī)時(shí)必須使用晶體管輸出型CPU,于是控制器選用S7-200 Smart,采用開關(guān)量控制,輸入量有正轉(zhuǎn)啟動(dòng)(I0.0)、反轉(zhuǎn)啟動(dòng)(I0.3)和停止(I0.1),共3個(gè)輸入點(diǎn);輸出量包括脈沖輸出端(Q0.0)、方向控制端(Q0.4),共2個(gè)輸出點(diǎn)??刂圃韴D如圖1所示,圖中2K電阻是限流電阻,S7-200 Smart PLC的工作電源是直流24V。
三、PWM向?qū)Э刂频脑O(shè)定
S7-200 Smart每個(gè)向?qū)Ь@示一個(gè)樹結(jié)構(gòu),對(duì)于每個(gè)向?qū)?,都必須完成全部所需組態(tài)并生成代碼,成功生成代碼后,向?qū)⒊绦驂K存儲(chǔ)在項(xiàng)目樹中“程序塊”(Program blocks)文件夾內(nèi)的“向?qū)А保╓izards)文件夾下。同樣,向?qū)?shù)據(jù)塊存儲(chǔ)在項(xiàng)目樹中“數(shù)據(jù)塊”(Data Block)文件夾內(nèi)的“向?qū)А保╓izards)文件夾下,將符號(hào)存儲(chǔ)在“符號(hào)表”(Symbol Table)文件夾內(nèi)的“向?qū)А保╓izards)文件夾下。成功生成程序塊后,可以再主程序或另一個(gè)子例程或中斷調(diào)用向?qū)傻淖永獭?/p>
打開PWM向?qū)в袃煞N方法:①在“工具”(Tools)菜單功能區(qū)的“向?qū)А保╓izards)區(qū)域單擊“PWM”按鈕;②在項(xiàng)目樹中打開“向?qū)А保╓izards)文件夾,然后雙擊“PWM”或選中“PWM”并按Enter鍵。
PWM向?qū)Ц鶕?jù)輸入生成一個(gè)指令,然后可將該指令放置到程序中以控制脈寬調(diào)制(PWM)輸出的占空比,PWM向?qū)У拿}沖輸出端是固定的也是可選的,脈沖輸出端可以選用Q0.0、Q0.1和Q0.3,本控制選用Q0.0作為脈沖輸出端,所以選擇要組態(tài)的脈沖“PWM0”。為了計(jì)算相出的輸出周期和占空比都為整數(shù),輸出時(shí)基選擇“微秒”,設(shè)定完成后會(huì)自動(dòng)生成PWMx_RUN子例程。
1.PWMx_RUN子例程介紹
PWMx_RUN子例程PWM提供了占空比可變的連續(xù)輸出,允許用戶通過改變脈沖寬度(從0到周期時(shí)間的脈沖寬度)來控制輸出占空比。PWMx_RUN指令的梯形圖如圖2所示:
EN使能端,一般直接接SM0.0。
RUN運(yùn)行端,使輸出產(chǎn)生開和關(guān)的作用。若RUN的觸發(fā)端接通,則PWMx_RUN指令有輸出,注意關(guān)不等于不管就是關(guān)。
Cycle輸入是一個(gè)字值,定義脈寬調(diào)制(PWM)輸出的周期。如果時(shí)基為毫秒,則允許的范圍為2~65535;如果時(shí)基為微秒,則允許的范圍為10~65535。
Pulse輸入是一個(gè)字值,用于定義PWM輸出的脈寬(占空比)。允許的取值范圍為0~65535個(gè)時(shí)基單元,時(shí)基是在向?qū)е兄付ǖ模瑔挝粸槲⒚牖蚝撩搿?/p>
Error是PWMx_RUN子例程返回的字節(jié)值,用于指示執(zhí)行結(jié)果?!?”代表無錯(cuò)誤,正常完成;“131”代表沖發(fā)生器已由另一個(gè)PWM或運(yùn)動(dòng)軸使用,或者時(shí)基變化非法。
2.使用PWMx_RUN子例程注意事項(xiàng)
(1)為了便于程序編寫EN使能端最好接SM0.0,當(dāng)PWMx_RUN正在輸出的時(shí)候斷開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支持的最大脈沖速率為100k Hz。
(4)要改變步進(jìn)電機(jī)的轉(zhuǎn)速只需改變輸出周期和占空比,占空比一般都設(shè)為50%,使發(fā)出的脈沖為方波。
(5)要使步進(jìn)電機(jī)停止就需要斷開RUN運(yùn)行端。
(6)PWM控制步進(jìn)電機(jī)按照預(yù)設(shè)要求自行停止比較空難和麻煩。比如步進(jìn)電機(jī)以60個(gè)脈沖/s的速度旋轉(zhuǎn)2圈自行停止,用定時(shí)器控制實(shí)現(xiàn)非常不精確,用高速計(jì)數(shù)器控制又比較麻煩。
四、結(jié)束語
PWM向?qū)Э刂撇竭M(jìn)電機(jī)具有思路清晰、操作簡單、初學(xué)者易學(xué)等特點(diǎn)。在實(shí)際運(yùn)行過程中,步進(jìn)電機(jī)具有良好的穩(wěn)定性,可以滿足一般工業(yè)控制要求。
作者簡介:
馬天才,男,長期從事于工業(yè)電氣控制和電機(jī)控制的研究工作。
鮑小春,男,主要從事于機(jī)械檢修與機(jī)電一體化設(shè)備控制的研究工作。