wuzhitang
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 21 個(gè)
工控威望: 166 點(diǎn)
下載積分: 400 分
在線時(shí)間: 32(小時(shí))
注冊(cè)時(shí)間: 2009-02-22
最后登錄: 2022-10-20
查看wuzhitang的 主題 / 回貼
樓主  發(fā)表于: 2010-03-05 09:28
用PLSY指令控制步進(jìn)電機(jī)
作者:ALLEN.WU     電話:15962598389      E:wuzhitang@sina.com

   經(jīng)?吹接械墓た嘏笥褑柶鹩肞LC控制步進(jìn)馬達(dá)的問題,在這里我舉個(gè)最簡(jiǎn)單的例子,只能提供思路,更深入的研究就靠大家自己了。


如圖所示:1、2為步進(jìn)電機(jī)驅(qū)動(dòng)器的電源  3為控制電源正極  4為脈沖輸入  5為方向控制
步進(jìn)電機(jī)的步距角為1.8度,驅(qū)動(dòng)器有細(xì)分的功能,考慮到精度和速度的問題,我們選用了半步運(yùn)行的方式。絲桿的螺距為5mm,即步進(jìn)電機(jī)旋轉(zhuǎn)一周,它所拖動(dòng)的工件移動(dòng)5個(gè)mm,PLC則輸出400個(gè)脈沖,即每毫米需要輸出80個(gè)脈沖。5號(hào)腳高電平則電機(jī)正轉(zhuǎn),反之亦反。
設(shè)計(jì)的要求是這樣的:在人機(jī)界面上輸入工件要到的位置(以mm為單位),輸入完成后工件自動(dòng)運(yùn)行到指定位置停下。如果設(shè)定的位置大于實(shí)際的位置,則工件正向運(yùn)轉(zhuǎn)到位,反之亦反。
D200:人機(jī)界面輸入的工件要求位置
D202:工件的實(shí)際位置
D204:實(shí)際位置與設(shè)定位置之差值
程序如下:
LDD> D200 D202    
DSUBP D200 D202 D204            ;將差值送到D204
SET Y2                        ;如果設(shè)定值大于實(shí)際值則正轉(zhuǎn)
LDD<= D200 D202
DSUBP D202 D200 D204            ;將差值送到D204
RST Y2                        ;如果設(shè)定值小于實(shí)際值則反轉(zhuǎn)
LDD<> D200 D202                ;設(shè)定值與實(shí)際值不等
PLS M0
ANI M0
DPLSY K1000 K206 Y0        ;以1000赫茲的頻率輸出脈沖所需的脈沖數(shù)
LD M0
DMUL D204 K80 D206    ;所需輸出的脈沖數(shù)
LD M8029
DADDP D202 D204 D202        ;脈沖輸出完成后實(shí)際位置與設(shè)定位置一樣
END
這是最簡(jiǎn)單的控制了,希望對(duì)大家有一定的啟發(fā),沒有上機(jī)調(diào)試,應(yīng)該是沒什么問題了?丛谕械姆萆希蠹也灰映綦u蛋哦。
由PLC直接產(chǎn)生脈沖來控制步進(jìn)電機(jī)可以有效地簡(jiǎn)化系統(tǒng)的硬件電路,進(jìn)一步提高可靠性。由于PLC是以循環(huán)掃描方式工作,其掃描周期一般在幾毫秒至幾十毫秒之間,因此受到PLC工作方式的限制以及掃描周期的影響,步進(jìn)電機(jī)不能在高頻下工作。例如,若控制步進(jìn)電機(jī)的脈沖頻率為4000HZ,則脈沖周期為0.25毫秒,這樣脈沖周期的數(shù)量級(jí)就比掃描周期小很多,如采用此頻率來控制步進(jìn)電機(jī)。則PLC在還未完成輸出刷新任務(wù)時(shí)就已經(jīng)發(fā)出許多個(gè)控制脈沖,但步進(jìn)電機(jī)仍一動(dòng)不動(dòng),出現(xiàn)了嚴(yán)重的失步現(xiàn)象。若控制步進(jìn)電機(jī)的脈沖頻率為100HZ,則脈沖周期為10毫秒,與PLC的掃描周期約處于同一數(shù)量級(jí),步進(jìn)電機(jī)運(yùn)行時(shí)亦可能會(huì)產(chǎn)生較大的誤差。因此用PLC驅(qū)動(dòng)步進(jìn)電機(jī)時(shí),為防止步進(jìn)電機(jī)運(yùn)行時(shí)出現(xiàn)失步與誤差,步進(jìn)電機(jī)應(yīng)在低頻下運(yùn)行,脈沖信號(hào)頻率選為十至幾十赫茲左右,這可以利用程序設(shè)計(jì)加以實(shí)現(xiàn)。

這段程序其實(shí)有個(gè)缺點(diǎn):當(dāng)工作臺(tái)移動(dòng)的時(shí)候,屏幕上的工作實(shí)際位置值(D202)并沒有隨著工作臺(tái)的移動(dòng)而改變,它只是在工作臺(tái)移動(dòng)完成后才變?yōu)閷?shí)際位置值。好比現(xiàn)在工作臺(tái)的實(shí)際位置為200,要求位置是300,當(dāng)工作臺(tái)移動(dòng)的時(shí)候,實(shí)際值(200)并沒有隨著工作臺(tái)的移動(dòng)而201,202……的增加,而是工作臺(tái)移動(dòng)到300的位置后直接變?yōu)?00,因此這段程序不能實(shí)時(shí)的反映工作臺(tái)的移動(dòng)情況。
為了克服這種情況,我將程序做了部分的修改,更新如下:
D200:人機(jī)界面輸入的工件要求位置
D202:工件的實(shí)際位置
D204:工件的實(shí)際位置(做轉(zhuǎn)換用)
D206:實(shí)際位置變化值
程序如下:
LDD> D200 D202    
OUT M10
DSUBP D200 D202 D204             ;將差值送到D204
SET Y2                          ;如果設(shè)定值大于實(shí)際值則正轉(zhuǎn)
LDD<= D200 D202
OUT M11
DSUBP D202 D200 D204            ;將差值送到D204
RST Y2                                 ;如果設(shè)定值小于實(shí)際值則反轉(zhuǎn)
LD M10
OR M11                             ;設(shè)定值與實(shí)際值不等
PLS M0
ANI M0
DPLSY K1000 K0 Y0              ;以1000赫茲的頻率不間斷輸出脈沖
DDIV D8140 K80 D206         ;脈沖數(shù)折算成毫米
LD M0
MOV D202 D204                ;實(shí)際位置值送到D204
LD M10
ADD D204 D206 D202          ;增加的毫米數(shù)實(shí)時(shí)傳到D202(工作臺(tái)實(shí)際位置)
LD M11
SUB D204 D206 D202          ;減少的毫米數(shù)實(shí)時(shí)傳到D202(工作臺(tái)實(shí)際位置)
LD M8029
DMOV K0 D8140           ;脈沖輸出完成后給脈沖計(jì)數(shù)器清零
END


pretco123
不為失敗找理由,只為成功找方法
級(jí)別: 論壇先鋒

精華主題: 0
發(fā)帖數(shù)量: 2467 個(gè)
工控威望: 1754 點(diǎn)
下載積分: 82223 分
在線時(shí)間: 1505(小時(shí))
注冊(cè)時(shí)間: 2008-04-15
最后登錄: 2024-11-05
查看pretco123的 主題 / 回貼
1樓  發(fā)表于: 2010-03-05 11:29
不錯(cuò),謝謝!