此段程序执行后,脉冲输出不停止,监控A278、A279的数值后发现A279的值与D104的值一样等于200,这可能就是脉冲输出不停止的原因,但为什么在A279上会有值呢?
用户需要把当前脉冲数MOV到另外的寄存器中再中断即可停止。 欧姆龙PLC脉冲输出模式有两种模式,分别是连续模式和独立模式
有连续模式由SPED指令设置输出脉冲频率为0,停止脉冲输出或由动作模式控制INI指令控制脉冲输出停止。
独立模式输出脉冲数目达到设定的脉冲数目时脉冲输出停止,输出脉冲的数目及脉冲频率分别由设置脉冲指令(PULS)及速度输出指令(SPED)设置。
扩展资料:
注意事项:
1、继电器开关动作频率确保低于1800 次/ 小时。
2、保证继电器输出负载电流在规定范围内。 最大开关能力AC250V/2A(Cosφ=1),DC24V/2A(4A 公共)。 最小开关能力DC5V/10mA。
3、继电器输出连接感性负载时,请与负载并联连接浪涌抑制器或二极管。
4、输出接头严禁虚焊和接触不良。往往因接触不良产生的电火花干扰会影响整个电路的正常工作。
5、单机输出公共线只能提供单机使用,多机使用输出部分应单机接,且不可相互连接。
参考资料来源:百度百科-欧姆龙系列PLC原理及应用
参考资料来源:百度百科-脉冲输出
参考资料来源:百度百科-寄存器
INI给脉冲当前值置零的时候是不是默认传8位的,也就是说在我的这个程序里他是把D1、D2的分别传到了A278、A279,所以A279才会是200的,还有就是原来是因为我置零的时候直接用的 INI #1 #2 0 ,但是他没有置零我才用了一个寄存器,我现在想问下, INI #1 #2 0 这条为什么不能置零啊~
追答我不是很明白你的意思,你程序改了吗?能停止了吗?你这是另外一个问题还是说之前那个问题还没解决,还是停止不了?
INI #1 #2 0是变更当前值,就算你置0了,它也不会停止啊。变更当前值成为0,并不是停止脉冲输出啊。所以说我不是很明白你的意思,但是如果说你是想用INI #1 #2 0来停止是停止不了的,而且它有没有置0,你也看不到啊。
我把plc内存清空,那个movl换成mov就可以停下来了,但是我看你说的那个意思是D105的值传给了A279吗?A278、A279不是只有INI的命令才能改变他们的值吗,另外那个“INI #1 #2 0 这条为什么不能置零啊”是另外一个问题~
追答D105的值是不会传给A279的,欧姆龙的A辅助继电器一般都是只读的,你是没法去改变它的……你可能理解错了,A279它是用来显示的,不是用来存你的数据的……
INI #1 #2 0是变更当前值,就算你置0了,脉冲也不会停止,而且它有没有置0,你也看不到。
看来INI #1 #2 0这个指令你可能也是理解错了……
记住,A278、A279你只能看,你不能直接去改它们的,它们就像是一个“显示窗口”,给你看而已
这是个很笼统的提问,可能有多种原因。
指令里有脉冲输出装置,目标脉冲数,,起始速度,目标速度,,加速度,减速度,绝对位置,还是相对位置。
可能是目标脉冲数设置过大,这个值脉冲要发很长时间,还没来得及停下来,可以监控一下值。
可能是脉冲的方向信号错了(脉冲输出点断线),你给的指令没错, 但实际脉冲向相反的方向计数了, 永远达不到你的目标值。
可能是发脉冲前没有回零, PLC寄存器的当前值和你设定的目标值差的多, 当然要发很长时间脉冲,停不下来。
总之,实时监控一下, 问题就能发现。