PTO指令及其步進電機控制系統(tǒng)中應(yīng)用
引言
步進電機用于控制機電設(shè)備上平動體或轉(zhuǎn)動體的位移、速度和方向。s7-200PLC的高速脈沖輸出指令PTO可產(chǎn)生占空比為50%、周期和個數(shù)可控的脈沖信號,進而控制步進電機的速度和位移。本文結(jié)合實例,介紹PTO指令在步進電機控制系統(tǒng)中的實際應(yīng)用。
1系統(tǒng)組成
步進電機控制系統(tǒng)由CPU224、步進電機驅(qū)動器、步進電機、電源等組成,如圖1所示。
其中,CPU224PLC是步進電機控制系統(tǒng)的控制器,通過執(zhí)行PTO指令控制輸出脈沖的周期和個數(shù):步進電機驅(qū)動器接受來自PLC的脈沖信號,進行功率放大和分配,用以驅(qū)動步進電機,步進電機的方向由PLC的方向信號控制,通過改變分配給步進電機繞組的脈沖相序來改變轉(zhuǎn)向:步進電機接受一個脈沖信號會產(chǎn)生一個步距角的位移。
2PTO指令介紹
2.1功能
PTO(PulseTrain0utput)是脈沖串輸出的簡稱。PTO指令可以控制00.0或00.l端輸出占空比為50%、周期和脈沖數(shù)可以指定的脈沖串,用以控制步進電機的速度和位移。
2.2特殊存儲區(qū)
CPU224中有兩個高速脈沖發(fā)生器,每個高速脈沖發(fā)生器都有一個8位控制字、一個32位脈沖計數(shù)值、一個16位的周期值和一個l6位的脈寬值,這些值都放在特定的特殊存儲區(qū)中。例如,00.l端對應(yīng)的控制字存在sMB67中,脈沖周期值存在sMw68中,脈沖計數(shù)值存在sMD72中。
在程序中設(shè)置好這些存儲區(qū)值,執(zhí)行脈沖輸出指令PLs,CPU就會讀取這些值,并執(zhí)行特殊存儲區(qū)所定義的操作,輸出相應(yīng)的高速脈沖。
2.3包絡(luò)表
如果需要輸出多個脈沖串,可以在存儲區(qū)中建立包絡(luò)表,包絡(luò)表中存放多個脈沖串的參數(shù)。建立包絡(luò)表后,執(zhí)行PLs指令,PLC就會從包絡(luò)表中讀取參數(shù)值,按照參數(shù)定義控制脈沖串的輸出。包絡(luò)表中每段脈沖串的參數(shù)需用8個字節(jié),其中包含2個字節(jié)的周期值、2個字節(jié)的周期增量值、4個字節(jié)的脈沖計數(shù)值。
3PTO指令在程序中的應(yīng)用
3.1控制要求
步進電機控制要求如圖2所示,從A到B為加速過程,從B到C為恒速運行,從C到D為減速過程。
根據(jù)控制要求,PLC需要輸出3段脈沖,這3段脈沖的參數(shù)分別為A一B段:200個脈沖,頻率從2kHz到l0kHz均勻增加,周期從500μs到l00μs均勻減小,周期增量為-2μs:B一C段:3600個脈沖,脈沖頻率和周期不變化:C一D段:頻率從l0kHz到2kHz均勻減小,周期從l00μs增加到500μs,周期增量為2μs。
包絡(luò)表的起始字節(jié)存放段數(shù)范圍為(1~255),本例中脈沖串為3段,包絡(luò)表初始字節(jié)設(shè)為VB200。
3.2程序編制
3.2.1編程思路
本例程序由主程序、子程序和中斷程序組成。其中,主程序中調(diào)用初始化子程序,復(fù)位00.0:在子程序中完成控制字設(shè)置及包絡(luò)表的建立,并啟動脈沖串的輸出,建立中斷程序的連接:當(dāng)脈沖串完成時,執(zhí)行中斷程序,這里用00.0輸出作為完成標(biāo)志。
3.2.2程序及說明
3.2.2.1主程序
LDsM0.l//sM0.l的常開觸點在首次掃描時接通一個掃描周期:
R00.0,l//首次掃描時復(fù)位00.0:
CALLsBR0:sBR0//首次掃描時調(diào)用子程序sBR0,設(shè)置PTO控制字和中斷。
3.2.2.2子程序
LDsM0.0//sM0.0常開觸點在PLC運行期間接通:
M0VB3,VB200//VB200中存放的是脈沖串包絡(luò)表的段數(shù),這里設(shè)為3:
M0Vw+500,Vw20l//第l段的初始周期設(shè)為500μs:M0Vw2,Vw203//第l段的脈沖周期增量為-2μs:
MoVD200,VD205DD第1段的脈沖個數(shù)設(shè)為200:MoVw+100,Vw209DD第2段的初始周期設(shè)為100μs:MoVw+0,Vw211DD第2段的脈沖周期增量為0:MoVD+3600,VD213DD第2段的脈沖個數(shù)設(shè)為3600:MoVw+100,Vw217DD第3段的初始周期設(shè)為100μs:MoVw+2,Vw219DD第3段的脈沖周期增量為2μs:MoVD+200,VD221DD第3段的脈沖個數(shù)設(shè)為200:LDsM0.0DDPLC運行期間接通:
MoVB16/A5,sMB67DDPTo的控制字設(shè)為A5:其含義為允許PTo操作,多段操作,時基為微秒,脈沖周期和計數(shù)值刷新:
MoVw+200,sMw168DD包絡(luò)表的起始地址設(shè)為200:
ATCHINT0:INT0,19DD將中斷INT0和PTo0脈沖串輸出完成事件的聯(lián)系:
∶NIDD允許中斷:
PLs0DD按上述PTo控制字設(shè)置啟動內(nèi)部脈沖發(fā)生器工作并輸出脈沖。
3.2.2.3中斷程序
LDsM0.0DDPLC運行期間接通:
=o1.0DD當(dāng)中斷發(fā)生時,o1.0有輸出,表示3段脈沖串輸出完成。
4結(jié)語
s7#200PLC的高速脈沖輸出指令PTo,通過設(shè)置控制字和包絡(luò)表,可以方便地實現(xiàn)多段脈沖串的周期和脈沖個數(shù)的控制,從而實現(xiàn)對步進電機的速度和位移的多段控制。