为什么欧姆龙plc脉冲输出不停止

此段程序执行后,脉冲输出不停止,监控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原理及应用

参考资料来源:百度百科-脉冲输出

参考资料来源:百度百科-寄存器

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-08
其实不是不会停止,而是还没走完。
你说的没错,就是因为A279里面有值了,所以还在走,因为A279是高位,你是要走200的,本来高位应该是0的,结果高位多了200,那这个值就要比200大很多很多很多了……

为什么A279会有值?会不会是你一开始调试的时候没注意,把值移进D105了呢?这个还真不好说是到底为什么会,最有可能就是你自己移进去的。而且,从你的梯形图来看,如果D105里面是200,那就一直是200了,因为你都没去清空它,你没有清空它或者说你没有移其它数据进去,那它就一直是200了。

你移200进D2用了MOVL是对了,但是你把D2移进D104的时候是用MOV,你没有用MOVL,也就是说你只是把数据移进了D104,而D105你是没有去动它的,所以说你的D105如果是200的话,那你这些指令都没有去改变它。

所以,你可以试一下,把0移进D105去清空它,或者把MOV D2 D104这条指令改成MOVL D2 D104(顺便问一下,为什么有两个MOV D2 D104?是误写的吗?你要么删掉一个,要么改的时候你两个都要改),我想这样应该就没问题了,应该可以停止了。

顺便提一下,你后面那个MOVL &0 D1和MOVL &200 D2,(如果是高手故意这样使用的话,请无视后文)这样是有点问题的,MOV加了个L,变成MOVL,就是长传送了,MOVL &0 D1会用到D1和D2,而MOVL &200 D2会用到D2和D3,你这两个指令会共用一个D2的,数据会乱的,一般我们都不这样用,除非你是故意要这样用的。追问

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你只能看,你不能直接去改它们的,它们就像是一个“显示窗口”,给你看而已

本回答被提问者采纳
第2个回答  2015-08-19
那就是PLC没有完成发送脉冲数量是不会停的 你可以尝试先给少一点脉冲 然后脉冲发完有个标志位 要用这个标志位复位使能端
第3个回答  2015-07-27
欧姆龙PLC本身有脉冲信号指令,只要前面的条件一直为1,脉冲就会一直输出。如果只要发一次脉冲,在前面的条件后,加一个上升沿触发指令。
第4个回答  推荐于2017-09-01

这是个很笼统的提问,可能有多种原因。

    指令里有脉冲输出装置,目标脉冲数,,起始速度,目标速度,,加速度,减速度,绝对位置,还是相对位置。

    可能是目标脉冲数设置过大,这个值脉冲要发很长时间,还没来得及停下来,可以监控一下值。

    可能是脉冲的方向信号错了(脉冲输出点断线),你给的指令没错, 但实际脉冲向相反的方向计数了,  永远达不到你的目标值。

    可能是发脉冲前没有回零, PLC寄存器的当前值和你设定的目标值差的多, 当然要发很长时间脉冲,停不下来。

    总之,实时监控一下, 问题就能发现。

相似回答