正在学习高速计数,写了段实验程序,想实现的功能是旋转编码器每产生1024个脉冲就调用1次中断,中断程序里使M20.0中间继电器ON一次。程序段如下,产生的问题是自第1个中断产生后M20.0就一直处于ON状态,请各位分析一下,问题在哪儿?
==============
主程序
LD SM0.1
CALL SBR_0:SBR0
==============
子程序SBR0
LD SM0.0
MOVB 16#F8, SMB47
HDEF 1, 1
MOVD 0, SMD48
MOVD 1024, SMD52
ATCH INT_0:INT0, 13
ENI
HSC 1
==================
中断子程序INT_0
LD SM0.0
INCD VD100
MOVD 0, SMD48
MOVB 16#C0, SMB47
HSC 1
= M20.0
==========================
最佳答案
中断程序只有在“一瞬间”是被扫描的,而您在这段时间里将m2.0点亮,其余时间不被扫描,于是没有将其熄灭的条件啊。
您可以在主程序中的第一行做复位m0.0,这样m0.0就只能亮1个周期
提问者对于答案的评价:
谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc317847.html