步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào)時(shí)就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度(稱(chēng)為“步距角”),其旋轉(zhuǎn)以固定的角度運(yùn)行??梢酝ㄟ^(guò)控制脈沖個(gè)數(shù)來(lái)控制角位移量以達(dá)到準(zhǔn)確定位的目的;同時(shí)也可以通過(guò)控制脈沖頻率來(lái)控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度而達(dá)到調(diào)速的目的。步進(jìn)電機(jī)作為一種控制用的特種電機(jī),因其沒(méi)有積累誤差(精度為100%)而廣泛應(yīng)用于各種開(kāi)環(huán)控制。
1 定位原理及方案
1.1 步進(jìn)電機(jī)加減速控制原理
步進(jìn)電機(jī)驅(qū)動(dòng)執(zhí)行機(jī)構(gòu)從一個(gè)位置向另一個(gè)位置移動(dòng)時(shí),要經(jīng)歷升速、恒速和減速過(guò)程。當(dāng)步進(jìn)電機(jī)的運(yùn)行頻率低于其本身起動(dòng)頻率時(shí),可以用運(yùn)行頻率直接起動(dòng)并以此頻率運(yùn)行,需要停止時(shí),可從運(yùn)行頻率直接降到零速。當(dāng)步進(jìn)電機(jī)運(yùn)行頻率fb>fa(有載起動(dòng)時(shí)的起動(dòng)頻率)時(shí),若直接用fb頻率起動(dòng)會(huì)造成步進(jìn)電機(jī)失步甚至堵轉(zhuǎn)。同樣在fb頻率下突然停止時(shí),由于慣性作用,步進(jìn)電機(jī)會(huì)發(fā)生過(guò)沖,影響定位精度。如果非常緩慢的升降速,步進(jìn)電機(jī)雖然不會(huì)產(chǎn)生失步和過(guò)沖現(xiàn)象,但影響了執(zhí)行機(jī)構(gòu)的工作效率。所以對(duì)步進(jìn)電機(jī)加減速要保證在不失步和過(guò)沖前提下,用最快的速度(或最短的時(shí)間)移動(dòng)到指定位置。
步進(jìn)電機(jī)常用的升降頻控制方法有2種:直線(xiàn)升降頻和指數(shù)曲線(xiàn)升降頻。指數(shù)曲線(xiàn)法具有較強(qiáng)的跟蹤能力,但當(dāng)速度變化較大時(shí)平衡性差。直線(xiàn)法平穩(wěn)性好,適用于速度變化較大的快速定位方式。以恒定的加速度升降,規(guī)律簡(jiǎn)練,用軟件實(shí)現(xiàn)比較簡(jiǎn)單,本文即采用此方法。
1.2 定位方案
要保證系統(tǒng)的定位精度,脈沖當(dāng)量即步進(jìn)電機(jī)轉(zhuǎn)一個(gè)步距角所移動(dòng)的距離不能太大,而且步進(jìn)電機(jī)的升降速要緩慢,以防止產(chǎn)生失步或過(guò)沖現(xiàn)象。但這兩個(gè)因素合在一起帶來(lái)了一個(gè)突出問(wèn)題:定位時(shí)間太長(zhǎng),影響執(zhí)行機(jī)構(gòu)的工作效率。因此要獲得高的定位速度,同時(shí)又要保證定位精度,可以把整個(gè)定位過(guò)程劃分為兩個(gè)階段:粗定位階段和精定位階段。粗定位階段,采用較大的脈沖當(dāng)量,如0.1mm/步或1mm/步,甚至更高。精定位階段,為了保證定位精度,換用較小的脈沖當(dāng)量,如0.01mm/步。雖然脈沖當(dāng)量變小,但由于精定位行程很短(可定為全行程的五十分之一左右),并不會(huì)影響到定位速度。為了實(shí)現(xiàn)此目的,機(jī)械方面可通過(guò)采用不同變速機(jī)構(gòu)實(shí)現(xiàn)。
工業(yè)機(jī)床控制在工業(yè)自動(dòng)化控制中占有重要位置,定位鉆孔是常用工步。設(shè)刀具或工作臺(tái)欲從a點(diǎn)移至c點(diǎn),已知ac=200mm,把a(bǔ)c劃分為ab與bc兩段,ab=196mm,bc=4mm,ab段為粗定位行程,采用0.1mm/步的脈沖當(dāng)量依據(jù)直線(xiàn)升降頻規(guī)律快速移動(dòng),bc段為精定位行程,采用0.01mm/步的脈沖當(dāng)量,以b點(diǎn)的低頻恒速運(yùn)動(dòng)完成精確定位。在粗定位結(jié)束進(jìn)入精定位的同時(shí),plc自動(dòng)實(shí)現(xiàn)變速機(jī)構(gòu)的更換。
2 定位程序設(shè)計(jì)
2.1 plc脈沖輸出指令
目前較為先進(jìn)的plc不僅具有滿(mǎn)足順序控制要求的基本邏輯指令,而且還提供了豐富的功能指令。siemens s7-200系列plc的plus指令在q0.0和q0.1輸出pto或pwm高速脈沖,最大輸出頻率為20khz。脈沖串(pto)提供方波輸出(50%占空比),用戶(hù)控制周期和脈沖數(shù)。脈沖寬度可調(diào)制(pwm)能提供連續(xù)、變占空比輸出,用戶(hù)控制周期和脈沖寬度。本文采用pto的多段管線(xiàn)工作方式實(shí)現(xiàn)粗定位,pto的單段管線(xiàn)方式實(shí)現(xiàn)精定位。
上述例子中,假定電機(jī)的起動(dòng)和結(jié)束頻率是2khz,最大脈沖頻率是10khz。在粗定位過(guò)程中,用200個(gè)脈沖完成升頻加速,400個(gè)脈沖完成降頻減速。使用plc的pto多段管線(xiàn)脈沖輸出時(shí),用下面的公式計(jì)算升降頻過(guò)程中的脈沖增量值。
給定段的周期增量=(ect—ict)/q
式中:ect=該段結(jié)束周期時(shí)間
ict=該段初始周期時(shí)間
利用這個(gè)公式,加速部分(第1段)周期增量為2,減速部分(第3段)周期增量為1。因第2段是恒速部分,故周期增量為0。如果pto的包絡(luò)表從vb500開(kāi)始存放,則表1為上例的包絡(luò)表值。
附:2.2 源程序
//主程序
ld sm0.1 //首次掃描為1
r q0.0,1 //復(fù)位映像寄存器位
call 0 //調(diào)用子程序0,初始化粗定位相關(guān)參數(shù)
ld m0.0 //粗定位完成
r q0.0,1
call 1 //調(diào)用子程序1,初始化精定位相關(guān)參數(shù)
//子程序0,粗定位
ld sm0.0
movb 16#a0,smb67 //設(shè)定控制字:允許pto操作,選擇ms增量,選擇多段操作
movw 500,smw168 //指定包絡(luò)表起始地址為v500
movb 3,vb500 //設(shè)定包絡(luò)表段數(shù)是3
movw 500,vw501 //設(shè)定第一段初始周期為500ms
movw -2,vd503 //設(shè)定第一段周期增量為-2ms
movd 200,vd505 //設(shè)定第一段脈沖個(gè)數(shù)為200#p#分頁(yè)標(biāo)題#e#
movw 100,vw509 //設(shè)定第二段初始周期為100ms
movw 0,vd511 //設(shè)定第二段周期增量為0ms
movd 1360,vd513 //設(shè)定第二段脈沖個(gè)數(shù)為1360
movw 100,vw517 //設(shè)定第三段初始周期為100ms
movw 1,vd519 //設(shè)定第三段周期增量為1ms
movd 400,vd521 //設(shè)定第三段脈沖個(gè)數(shù)為400
atch 2,19 //定義中斷程序2處理pto完成中斷
eni //允許中斷
pls 0 //啟動(dòng)pto操作
//子程序1,精定位
ld sm0.0 //首次掃描為1
movb 16#8d,smb67 //允許pto功能,選擇ms增量,設(shè)定脈沖數(shù)和周期
movw 500,smw68 //設(shè)定精定位周期為500ms
movd 400,smd72 //設(shè)定脈沖個(gè)數(shù)為400
atch 3,19 //定義中斷程序3處理pto完成中斷
eni //允許中斷
pls 0 //啟動(dòng)pto操作
//中斷程序2
ld sm0.0 //一直為1
= m0.0 //啟動(dòng)精定位
//中斷程序3
ld sm0.0 //一直為1
= m0.1 //實(shí)現(xiàn)其他功能