M2是置位按钮(即M2按下松开后,M2一直ON),当M2按下去后伺服电机发送999999个脉冲,,,要求:当感应到传感器X3后,,脉冲被中断,,,进入下一个状态,然后发送指定的脉冲,,,发完以后是气缸Y6动作
我这个程序有问题吗??因为我在调试的时候感应到X3后电机就不转了
还有如果脉冲个数和脉冲频率都是16位数据,那我用32位的指令DDRVI可以吗??
图中有一个Y3要改成Y4。。。我写错了
脉冲控制几点说明:
1、M8340 :该元件在发出脉冲时被驱动,且有脉冲输出时是动作的。
2、16位与32位指令在使用常数K时没什么影响,但在用到寄存器D上时,区别在于占用寄存器的数量上,16位用一个(D0),32位用2个(D1,D2)。
3、SET指令用在步进STL S? 时,SET置位到下一步时(如SET S21),同时会复位本步(如RST S20)
程序分析:
从20步开始时M50驱动(建议你直接用S20常开代替M50);
M50(NO)→X003(NC)→M2(NO)→M51(NC)→ 输出脉冲 本段看起来好像没问题,但是如果X003动作后,脉冲输出的条件没有了,M8340(你用了下延)导通一个扫描周期(你可以看一下扫描周期)来驱动M52;
问题来了,导通时间不足置位S21(这个你可以在监控S21状态看到),另外一个是和niu9807讲的一样,脉冲停止需要时间,(建议加入脉冲停止指令,这个是立即停止的)同一个指令多次使用(多线圈)就会有多种多样的问题。
如果没有到21状态,那我断开x3 ,电机应该还是继续发送999999脉冲,可是断开x3,也不转
追答你把M52线圈改成SET M52,再在后面加个复位,看看行不行。
脉冲输出停止信号味是什么?
追答fx3U,Y0输出中信号位是M8348,Y1输出中信号是M8358
该位为1说明脉冲正在输出,将该B接点串入指令条件就可避免上一条指令未执行完毕就执行下一条脉冲指令,结果造成输出停止
追问可是M8340置1的时候也是脉冲正在输出,OFF的时候也是脉冲输出停止,,,你是说吧M8348串入到图片中的倒数第二行程序中?是吗??
本回答被提问者采纳