如何更改SMB34的值啊,紧急!!!

我做了个定时中断,开始设的时间是20,直接MOVE到SMB34里面去的,但我现在想把这个时间加长,就是想更改20这个数,改变后,比如说改成40,我发现中断程序就不执行了,又改回20又可以了,这是为什么,我怎么作才可以更改这个数,说明这么说:
特殊内存字节34和35控制中断0和中断1的时间间隔。您可以指定从1毫秒至255毫秒**的时间间隔(以1毫秒为增量)。相应的定时中断事件附加在中断例行程序中时,CPU捕获时间间隔数值。欲改变时间间隔,您必须将定时中断事件重新附加在相同的或不同的中断例行程序中。用分离事件的方法终止定时中断事件。尤其是最后一句话是什么意思“欲改变时间间隔,您必须将定时中断事件重新附加在相同的或不同的中断例行程序中。用分离事件的方法终止定时中断事件。” 我尝试过用DTCH来分离,但没多大用,重新下载空程序也不行,这个要怎么弄???谢谢!!!最好能提供相应的语句!!

最佳答案

定时中断简单的应用,是在sm0.1后对中断时间SMB34和SMB35进行赋值,并在之后做事件关联,语句一般是这样的:
LD sm0.1
MOVB 20,SMB34
AENO
ATCH INT_0:INT0,10
ENI
这样的写法,在程序下载完后不对时间和关联做修改,你可以在这段程序里面改变时间,然后重新下载程序
*****************************************************************
当你有需要在程序运行过程中来修改关联时间的时候,可以做一个开关,来对中断进行控制。
LD M0.0 //用M0.0来作为中断的开关
EU
DTCH 10 //M0.0上升沿分离定时中断1与所有中断程序的关联
当M0.0为1时在状态表中修改VB0的数值
LD M0.0
ED
MOVB VB0,SMB34
AENO
ATCH INT_0:INT0,10
ENI
当M0.0下降沿到来时,重新赋予中断时间,并关联中断事件。
DTCH分离的事件中断,需要重新使能才能起作用。

提问者对于答案的评价:
OK

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc304476.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日 下午3:27
下一篇 2020年10月31日 下午3:27

相关推荐