献给刚学脉冲指令的工控朋友:用PLSY指令控制步进电机 点击:23420 | 回复:137



永无止境

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 51回
  • 年度积分:0
  • 历史总积分:99
  • 注册:2005年8月23日
发表于:2006-07-21 17:11:00
楼主
经常看到有的工控朋友问起用PLC控制步进马达的问题,在这里我举个最简单的例子,只能提供思路,更深入的研究就靠大家自己了。

 如图所示:1、2为步进电机驱动器的电源  3为控制电源正极  4为脉冲输入  5为方向控制
步进电机的步距角为1.8度,驱动器有细分的功能,考虑到精度和速度的问题,我们选用了半步运行的方式。丝杆的螺距为5mm,即步进电机旋转一周,它所拖动的工件移动5个mm,PLC则输出400个脉冲,即每毫米需要输出80个脉冲。5号脚高电平则电机正转,反之亦反。
设计的要求是这样的:在人机界面上输入工件要到的位置(以mm为单位),输入完成后工件自动运行到指定位置停下。如果设定的位置大于实际的位置,则工件正向运转到位,反之亦反。
D200:人机界面输入的工件要求位置
D202:工件的实际位置
D204:实际位置与设定位置之差值
程序如下:
LDD> D200 D202    
DSUBP D200 D202 D204            ;将差值送到D204
SET Y2                        ;如果设定值大于实际值则正转
LDD<= D200 D202
DSUBP D202 D200 D204            ;将差值送到D204
RST Y2                        ;如果设定值小于实际值则反转
LDD<> D200 D202                ;设定值与实际值不等
PLS M0
ANI M0
DPLSY K1000 K206 Y0        ;以1000赫兹的频率输出脉冲所需的脉冲数
LD M0
DMUL D204 K80 D206    ;所需输出的脉冲数
LD M8029
DADDP D202 D204 D202        ;脉冲输出完成后实际位置与设定位置一样
END
这是最简单的控制了,希望对大家有一定的启发,没有上机调试,应该是没什么问题了。看在同行的份上,大家不要扔臭鸡蛋哦。
另求好的PLCQQ群。



0763

  • 精华:1帖
  • 求助:0帖
  • 帖子:29帖 | 462回
  • 年度积分:0
  • 历史总积分:949
  • 注册:2005年12月10日
发表于:2008-05-19 19:55:54
101楼

不错!有收获!            

赶路的鸡蛋

  • 精华:0帖
  • 求助:0帖
  • 帖子:44帖 | 737回
  • 年度积分:0
  • 历史总积分:1914
  • 注册:2005年12月30日
发表于:2008-05-19 23:26:27
102楼

学习了,真的很好,希望这样的贴子多一点

andylee_2000

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 31回
  • 年度积分:0
  • 历史总积分:73
  • 注册:2008年5月26日
发表于:2008-05-26 14:25:03
103楼

步进电机产生丢步的原因不是因为PLC的PLSY指令或DDIVR等脉冲指令本身所引起的,其实PLC都有把脉冲发完,只是因为步进电机采用的是开环控制,当马达在运转过程中遇到阻挡的时候,步进马达会出现“打滑”的现象,也就是所谓的“丢步”,大家用同样的指令去驱动伺服电机就可以看出,如果马达运转过程中有阻挡,伺服还会一直的往前冲,甚至会出现异常的响声,直到达到所设定位置才肯真正的停止下来,如果伺服所带负载的弹性过高的话,甚至都有可能出现“共振”的现象,这也是所有初学伺服时容易产生的“盲区”,建议大家初学时一定要注意,如果是步进的话就无所谓了,顶多走不到位罢了,不至于出现什么事故!

sqailn

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2008-09-17 19:56:02
104楼

楚留香

  • 精华:0帖
  • 求助:0帖
  • 帖子:43帖 | 980回
  • 年度积分:0
  • 历史总积分:1556
  • 注册:2003年3月21日
发表于:2008-09-18 11:23:58
105楼
真是受益匪浅,学习学习再学习

168888

  • 精华:1帖
  • 求助:0帖
  • 帖子:13帖 | 2103回
  • 年度积分:0
  • 历史总积分:4601
  • 注册:2005年3月23日
发表于:2008-09-18 12:40:25
106楼
希望多发这样的帖子,感谢楼主!!!

c小侠

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 24回
  • 年度积分:0
  • 历史总积分:80
  • 注册:2007年9月11日
发表于:2008-09-27 21:06:35
107楼

c小侠

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 24回
  • 年度积分:0
  • 历史总积分:80
  • 注册:2007年9月11日
发表于:2008-09-27 22:29:56
108楼

启发很大,谢谢。

曾勇

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 90回
  • 年度积分:0
  • 历史总积分:235
  • 注册:2006年11月16日
发表于:2008-09-28 21:48:35
109楼
真是受益匪浅,学习学习再学习

gaopan1985

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:53
  • 注册:2008年12月26日
发表于:2008-12-26 15:25:13
110楼

各位大侠,现在我还是有一事不明:当步进电机转动设定角度后停止,可是在按启动按钮时,就不会动作,需要关了电源步进电机才有动作。我的程序是:LD M1002          ZRST S0   S50             SET S0    STL S0     LD X0     SET S20     STL S20     OUT M0    OUD Y1(控制方向信号)     LD M1029    SET S21   STL S21     TMR T0 K5    LD T0     SET S22      STL S22    OUT M1     LD M1029    SET S23     STL S23    TMR T1 K5    RET     LD M0    OR M1    PLSY K1000 D0 Y0     END .希望大家的帮助。。。。。。。。。。。。

 

杯末停

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 364回
  • 年度积分:0
  • 历史总积分:833
  • 注册:2006年9月01日
发表于:2008-12-26 16:50:29
111楼

你这个程序现象就是再次按启动按钮时,没法动作是因为S0 没接通

我想需要明白两个问题1.后面的步序接通时自动把钱面的步序复归  2.你的单个循环完后也没有跳回去

 

所以你每次上电后,有个M1002导通一周期把其S0SET了

杯末停

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 364回
  • 年度积分:0
  • 历史总积分:833
  • 注册:2006年9月01日
发表于:2008-12-26 16:54:02
112楼

同意105楼的看法,初次之外需要一个起始跳动频率控制,步进靠的是同步转矩控制,特别是在负载打的情况下

锭子和转子间就很容易打滑的。

杯末停

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 364回
  • 年度积分:0
  • 历史总积分:833
  • 注册:2006年9月01日
发表于:2008-12-26 17:02:29
113楼

1.脉冲指令发脉冲采取的中断模式,应该是不收扫描周期的影响,真正是和PLC的工作效率有关了

2.一般的定时器是受扫描周期影响的,最大可能达到误差2个周期。有的定时像MS级别的靠的是中断方式,一般的扫描周期都几或几十MS的不可能和周期扯上关系

gaopan1985

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:53
  • 注册:2008年12月26日
发表于:2008-12-27 08:39:29
114楼
LD M1002   ZRST S0 S50       SET S0     STL S0    LD X0         ANI T1      SET S20     STL S20             OUT M0      OUD Y1(控制方向信号)    LD M1029     SET S21        STL S21     TMR T0 K5    LD T0    SET S22      STL S22    OUT M1    LD M1029    SET S23    STL S23    TMR T1 K5     RET     LD M0   OR M1    PLSY K1000 D0 Y0 END .那如果我把最后的T1定时器放到X0的 后面呢?我现在的情况是:我有一个设备是用三个步时电机控制的,我想用两个PLC来控制,一个是FX1N,一个是DVP-ES的,当FX1N的Y6输出通过一个中间继电器来导通DVP-ES的X0使其导通,也就是当Y6每导通一次DVP-ES控制的步进电机就动作一次。请指教 。。。。。。。。。。。。。。

asdfasfas

  • 精华:1帖
  • 求助:1帖
  • 帖子:29帖 | 247回
  • 年度积分:100
  • 历史总积分:1126
  • 注册:2006年4月13日
发表于:2008-12-29 14:37:39
115楼
多练习 多实验 ding

sording

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 23回
  • 年度积分:0
  • 历史总积分:81
  • 注册:2007年11月28日
发表于:2008-12-29 16:06:29
116楼
大师们好,我想问一下FX3U有没有采集编码器的指令啊,谢谢。急用

gaopan1985

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:53
  • 注册:2008年12月26日
发表于:2008-12-29 16:26:48
117楼
如果我用SET S0那步进电机不就是停不下来吗?

岚1996

  • 精华:0帖
  • 求助:1帖
  • 帖子:71帖 | 1116回
  • 年度积分:122
  • 历史总积分:7826
  • 注册:2006年1月13日
发表于:2008-12-31 11:29:32
118楼
文章写的很好,我没有这方面的经验,但很受益.谢谢
希望有个示例,更细些.

168888

  • 精华:1帖
  • 求助:0帖
  • 帖子:13帖 | 2103回
  • 年度积分:0
  • 历史总积分:4601
  • 注册:2005年3月23日
发表于:2008-12-31 12:14:29
119楼
建议像类似的帖子多发一点

bobbzp

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 1024回
  • 年度积分:0
  • 历史总积分:1720
  • 注册:2006年8月04日
发表于:2009-02-20 16:36:37
120楼
引用asdfasfas 的回复内容:多练习 多实验 ding




热门招聘
相关主题

官方公众号

智造工程师