回复:关于PTO脉冲串输出的问题

willenlee

  • 帖子

    4
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2009-11-20

普通 普通 如何晋级?

发布于 2011-04-07 11:52:04

2楼

用的是Q0.0接步进驱动器的脉冲输入信号,Q0.2接步进驱动器的方向控制信号,当按下启动按钮后,Q0.0发送40000个脉冲,步进电机转动正传40转,然后停在该处不动,反转按钮不能随意按下,当需要停止系统的时候,按下停止按钮,接到停止信号后,Q0.0又发送40000个脉冲同时Q0.2置位,步进电机开始反转40转,到原位停止。现在正反转没有问题,脉冲也能发送,但是下载到PLC后,第一次正反转都能按设定的脉冲数发,计时了一下都是40s。但多试几次起停以后,正反转发完脉冲,有的是80s,有的是40s,就乱了。

程序如下:
NETWORK1
LD First_Scan_On:SM0.1 // 仅首次扫描周期SM0.1置位(SM0.1=1)
R Q0.0, 1 //首次扫描复位输出为0
MOVW 1000, PLS0_Cycle:SMW68 // 输出脉冲周期为1000微秒
MOVD 40000, PTO0_PC:SMD72 // 输出40000个脉冲
MOVW +0, PWM0_PW:SMW70 // 脉宽为0(脉宽调制)
ATCH INT_0:INT0, 19 // 把中断程序0分配给中断事件19
PLS0 // 脉冲输出结束
ENI // 允许中断
NETWORK2
LD 电机启动按钮:I0.2 // 若按"START"(起动)按钮
EU // 上升沿
MOVB 16#85, PLS0_Ctrl:SMB67 // 置脉冲输出功能的控制位
PLS 0 //起动脉冲输出(Q0.0)
R Q0.2,1 // 正转
NETWORK3
LD 电机停止按钮:I0.3 // 若按"STOP"(停止)按钮,
EU // 上升沿
MOVD 40000, PTO0_PC:SMD72 // 输出40000个脉冲
MOVB 16#85, PLS0_Ctrl:SMB67 // 置脉冲输出功能的控制位
ATCH INT_1:INT1, 19 // 把中断程序1分配给中断事件19
PLS 0 // 起动脉冲输出(Q0.0)

S Q0.2, 1 //反转


INT 0
Network 1
LD SM0.0
MOVD 0, SMD72


INT 1
Network 1
LD SM0.0
MOVD 0, SMD72

MOVD 40000, SMD72
我的思路:启动时,电机正转一次完成后,把脉冲个数清零,停止时,把40000赋给脉冲个数,完成后再清零,再把40000赋给脉冲个数,等待下次启动。如此往复循环。
本人第一次用步进电机,望高手指点,不胜感激。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33257条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。