中断程序是如何执行的,是先让定时器停止还是先输出再让定时器停止。INT0中Q0。0能否输出一秒,我理解是用Q0。0的闭点做Q0。0线圈输出的条件,当Q0。0接通时闭点就变成开点了也亮不到一秒钟。如果把程序里的时间T32改成5秒,那么Q0。0能亮5秒再灭5秒吗?我理解应该是很快速的闪。请各位结合这个例题讲解下这个中断程序每一步执行哪条指令,也就是它的执行过程。谢谢!
图片说明:
最佳答案
呃,还是你问的哈
先看看S7-200 可编程序控制器 系统手册
https://support.industry.siemens.com/cs/cn/zh/view/1109582
168页
中断事件21: 定时器T32 CT=PT中断 ,就是当T32定时器时间计到pt设定值一致时,执行一次中断程序,然后中断程序就不执行了
你给的程序是,当T32主程序里面是做1秒的闪烁
T32 第一次计时到,执行中断程序,Q0.0=1 M0.0通,把自己断开重新计时
T32 第二次计时到,执行中断程序,Q0.0=0 M0.0通,把自己断开重新计时
.....
把T32改成5秒,那就是5秒的闪断,就是亮5秒 灭5秒
提问者对于答案的评价:
谢谢您记住我。大概明白了。1)就是条件满足就执行一次中断程序,而且中断程序只执行一个扫描周期,不去管它有多少条指令结果如何。直接把扫描后的结果输出或把它输出的开闭点变化先记起来存上放在一边。返回主程序继续向下执行扫描。当主程序扫描到第二个周期时,促发中断的发生就来执行中断,用刚才存上的结果来比较程序执行一个扫描周期,再返回主程序。这样循环。2)调用子程序也是这样吗?3)我理解的主程序也是第一个扫描周期把变化的结果存上,第二个扫描周期才用第一个扫描周期变化后的结果来比较执行和输出。1秒定时器是扫描到后,下面的程序就直接用变化后的结果。不知道我的理解对不对。谢谢您的帮助和指导。谢谢!
专家置评
已阅,最佳答案正确。关于中断也可参考WWCWWC工程师的回复。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc149124.html