醉湮邃虞
醉湮邃虞話老黑
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 229 個(gè)
工控威望: 409 點(diǎn)
下載積分: 1577 分
在線時(shí)間: 209(小時(shí))
注冊(cè)時(shí)間: 2009-01-16
最后登錄: 2015-03-18
查看醉湮邃虞的 主題 / 回貼
樓主  發(fā)表于: 2009-04-30 23:02
第二節(jié)   讓PLC控制步進(jìn)電機(jī)
上次是閑的無(wú)聊,今天是酒醉方歸,打了會(huì)兒游戲,暈暈乎乎,實(shí)在無(wú)聊,想起了我曾寫(xiě)過(guò)一篇--脈沖,還沒(méi)進(jìn)行第二節(jié),歪歪扭扭做在電腦前,這回應(yīng)該是【醉言醉語(yǔ)話--步進(jìn)】了。

書(shū)接上回  http://bbs.ymmfa.com/read-gktid-34771.htm,,上次已經(jīng)利用PLC的Q0.1發(fā)出了脈沖,這個(gè)脈沖已經(jīng)可以使步進(jìn)電機(jī)轉(zhuǎn)動(dòng)了,只是需要方向信號(hào),我們隨便使用個(gè)其他Q點(diǎn)來(lái)改變方向,例如Q0.3,其1為正向,0為反向運(yùn)轉(zhuǎn)。只需在上貼主程序的網(wǎng)絡(luò)3中加入方向即可,
如果讓步進(jìn)電機(jī)以200速度正向行走2000脈沖,在M11.1的上升沿后加入,S Q0.3
如果讓步進(jìn)電機(jī)以200速度反向行走2000脈沖,在M11.1的上升沿后加入,R Q0.3

可見(jiàn)改變方向還是比較簡(jiǎn)單的,不再論述。

在步進(jìn)電機(jī)應(yīng)用中,大都是旋轉(zhuǎn)變直(弧)線運(yùn)動(dòng),而且需要在某些位置進(jìn)行一些動(dòng)作,比如200脈沖打開(kāi)閥1,到300脈沖時(shí),關(guān)閉閥1,500脈沖時(shí)回返,回返100脈沖時(shí),打開(kāi)閥2,回返到100脈沖時(shí),關(guān)閉所有閥,然后重新開(kāi)始,基于這樣的假定,比較好理解的編程方法是,先發(fā)送200脈沖,完成后開(kāi)閥1,再繼續(xù)行走100脈沖,關(guān)閉閥1,以此類(lèi)推其他的控制。這種編程方法雖然好理解和編程,但若中間動(dòng)作很多,則編出的程序會(huì)非常龐大。
如果電機(jī)在運(yùn)轉(zhuǎn)過(guò)程中一直是恒速運(yùn)轉(zhuǎn),若能掌握當(dāng)前電機(jī)的運(yùn)動(dòng)位置,情況就變的簡(jiǎn)單了,在PLS指令中,不能回返當(dāng)前位置,但PLC提供了一個(gè)高速計(jì)數(shù)器可以記錄當(dāng)前發(fā)出了多少脈沖,如果能充分利用,情況就變得的簡(jiǎn)單多了。PLC的高速計(jì)數(shù)器HSC0,和HSC3可以分別記錄PLS0和PLS1發(fā)出的脈沖,只需要在SM0.1控制下初始化一次:

LD SM0.1
HDEF 3, 12
這段程序定義了,HSC3工作在模式12,用來(lái)記錄Q0.1發(fā)出的脈沖,我們就可以利用計(jì)數(shù)器來(lái)數(shù)數(shù)共發(fā)出了多少脈沖了。


if HSC3>=200 and HSC3<=300 than SET Q1.0
情況就變的非常簡(jiǎn)單了,需要做的就是在適當(dāng)?shù)臅r(shí)候?qū)SC3進(jìn)行清零、正向計(jì)數(shù)、反向計(jì)數(shù)的控制了

計(jì)數(shù)器清零
MOVB 16#D0, SMB137
MOVD 0, SMD138
HSC 3

正向計(jì)數(shù)控制
MOVB 16#98, SMB137
HSC 3

反向計(jì)數(shù)控制
MOVB 16#90, SMB137
HSC 3


所有這些我們可以加在前貼的主程序?qū)ψ映绦虻恼{(diào)用中
比如正向行走,需要在M11.1上升沿后加入
SET Q0.3
MOVB 16#98, SMB137
HSC 3
此時(shí)電機(jī)以200速度,正向行走2000脈沖,同時(shí)計(jì)數(shù)器進(jìn)行計(jì)數(shù)

當(dāng)然需要把所有這些都放在子程序中,這樣使用太不方便了,可一般電機(jī)運(yùn)轉(zhuǎn)的長(zhǎng)度單位是毫米,如果在屏幕上用脈沖來(lái)表示長(zhǎng)度,將給客戶帶來(lái)極大的不便,因此還需要換算,另外一個(gè)直線運(yùn)動(dòng)還需要一個(gè)基點(diǎn),所有這些我們都可以做在子程序中,待下回再無(wú)聊時(shí)一并論述。

酒勁上來(lái)了,暈暈乎乎寫(xiě)了這些,希望沒(méi)誤導(dǎo)朋友。
本帖最近評(píng)分記錄:
  • 下載積分:+5(sjm213) 支持原創(chuàng)!
  • 棋牌比賽免費(fèi)得實(shí)物,閑暇好去處
    http://www.jj.cn/indexTG.html?promoterid=108502812
    8861661
    級(jí)別: *
    精華主題: * 篇
    發(fā)帖數(shù)量: * 個(gè)
    工控威望: * 點(diǎn)
    下載積分: * 分
    在線時(shí)間: (小時(shí))
    注冊(cè)時(shí)間: *
    最后登錄: *
    查看8861661的 主題 / 回貼
    1樓  發(fā)表于: 2009-05-01 00:09
    看貼就要回帖,