您现在所在的是:

PLC论坛

回帖:15个,阅读:6077 [上一页] [1] [2] [下一页]
3947
18540531
文章数:502
年度积分:175
历史总积分:3947
注册时间:2017/3/18
发站内信
发表于:2018/3/26 15:45:31
#0楼
在自学的PLC编程的过程中,虽然也理解中断是怎么回事。但就是不太理解PLC在执行中断程序中,与主程序的关联。

例如:当PLC正在正常执行主程序时,某一个中断事件,触发了相应的中断程序。

想问的是:
1:在此中情况下,PLC是否会把主程序搁置,仅仅执行中断程序,还是中断程序与主程序各执行个的,并行处理???

2:如果此中断事件一直存在,是否中断程序一直执行,直到中断事件消失?还是说,中断事件满足后,中断程序仅执行一个扫描周期呢???
[此贴子已经被jint于2018/3/26 16:16:02编辑过]
江楓渔
21891
yejingmao
文章数:12575
年度积分:50
历史总积分:21891
注册时间:2007/5/3
发站内信
2017春节活动(三)
发表于:2018/3/26 16:10:01
#1楼
中断条件满足马上执行中断程序,执行任务完成后返回原中断处继续执行主程序,按说明书个人是这样认为的
3947
18540531
文章数:502
年度积分:175
历史总积分:3947
注册时间:2017/3/18
发站内信
发表于:2018/3/26 16:18:21
#2楼
回复 #1楼 yejingmao
     意思是,只要某一个中断事件一直存在,PLC就会一直不停的执行相应的中断程序,直到中断事件消失。
那主程序就会被长时间搁置了,

   看来中断程序还是慎用的好,
37949
cvlsam 版主
文章数:12474
年度积分:560
历史总积分:37949
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2018/3/26 17:00:36
#3楼
以下是引用185405312018/3/26 15:45:31的发言:
在自学的PLC编程的过程中,虽然也理解中断是怎么回事。但就是不太理解PLC在执行中断程序中,与主程序的关联。

例如:当PLC正在正常执行主程序时,某一个中断事件,触发了相应的中断程序。

想问的是:
1:在此中情况下,PLC是否会把主程序搁置,仅仅执行中断程序,还是中断程序与主程序各执行个的,并行处理???

2:如果此中断事件一直存在,是否中断程序一直执行,直到中断事件消失?还是说,中断事件满足后,中断程序仅执行一个扫描周期呢???
[此贴子已经被jint于2018/3/26 16:16:02编辑过]

1、执行中断程序,主程序挂起等待中断返回。
2、不存在一直执行中断的可能,因为受看门狗的影响,中断程序也不能长于看门狗定时时间,中断执行期间,它只能被中断等级更高的中断打断,且中断嵌套有限制,因此不存在一直中断的状况。当中断程序执行完后,势必要返回,不要以为中断程序里面放个定时器就能延长中断程序,因为普通定时器在中断中不能正常使用,原因就是中断执行完毕就返回了,管你定时器到没有到时间。

Good Luck~
5746
121111115
文章数:1421
年度积分:190
历史总积分:5746
注册时间:2015/3/16
发站内信
2018论坛分享达人
发表于:2018/3/26 18:02:11
#4楼
中断服务程序末尾需要中断返回的</br>中断发生时,CPU将主程序中所有寄存器值压栈存储,然后直接去执行中断,中断子程序中第一件事是关闭中断使能,(防止执行中断的时候再来中断)然后执行中断服务子程序,执行完后放开中断使能(便于再次接收中断),然后返回中断,去断点处进行出栈,将原来的寄存器状态恢复,继续执行主程序。</br>举个例子就是穿越剧,女主角在雨天玩耍(执行主程序),玩太猛头撞树上了(中断发生),然后消失了,然后穿越到了某个朝代,在那里玩耍了几天(执行中断子程序),然后睡了一觉回到了现实(中断返回),醒来发现刚才在雨中玩耍的太猛头撞树上了(出栈),继续雨中玩耍(继续执行主程序),等待再次头撞树(等待中断发生)。
3947
18540531
文章数:502
年度积分:175
历史总积分:3947
注册时间:2017/3/18
发站内信
发表于:2018/3/26 18:30:03
#5楼
回复 #3楼 cvlsam
说的太精辟了
正好解答我的疑惑啊


那要是中断事件一直存在呢?会不会返回主程序后立马又再次跳动中断程序呢?
还是说 中断事件,的触发本身就是个脉冲信号呢?(上升沿 活者下降沿触发呢???)
3947
18540531
文章数:502
年度积分:175
历史总积分:3947
注册时间:2017/3/18
发站内信
发表于:2018/3/26 18:32:18
#6楼
回复 #4楼 121111115
你讲这些 ,书上还很不容易看到,
太感谢了 ,
37949
cvlsam 版主
文章数:12474
年度积分:560
历史总积分:37949
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2018/3/27 8:43:35
#7楼
以下是引用1211111152018/3/26 18:02:11的发言:
中断服务程序末尾需要中断返回的</br>中断发生时,CPU将主程序中所有寄存器值压栈存储,然后直接去执行中断,中断子程序中第一件事是关闭中断使能,(防止执行中断的时候再来中断)然后执行中断服务子程序,执行完后放开中断使能(便于再次接收中断),然后返回中断,去断点处进行出栈,将原来的寄存器状态恢复,继续执行主程序。</br>举个例子就是穿越剧,女主角在雨天玩耍(执行主程序),玩太猛头撞树上了(中断发生),然后消失了,然后穿越到了某个朝代,在那里玩耍了几天(执行中断子程序),然后睡了一觉回到了现实(中断返回),醒来发现刚才在雨中玩耍的太猛头撞树上了(出栈),继续雨中玩耍(继续执行主程序),等待再次头撞树(等待中断发生)。

No,Sir。

在中断中并不会去中断使能,因为当中断执行时,需要考虑中断优先级的问题,中断等级高的中断当然应该可以中断中断等级低的中断,例如当执行循环中断时,来了机架故障中断,那显然应该先处理更高优先级的中断。

Good Luck~
5746
121111115
文章数:1421
年度积分:190
历史总积分:5746
注册时间:2015/3/16
发站内信
2018论坛分享达人
发表于:2018/3/27 9:19:14
#8楼
以下是引用cvlsam2018/3/27 8:43:35的发言:
以下是引用1211111152018/3/26 18:02:11的发言:
中断服务程序末尾需要中断返回的</br>中断发生时,CPU将主程序中所有寄存器值压栈存储,然后直接去执行中断,中断子程序中第一件事是关闭中断使能,(防止执行中断的时候再来中断)然后执行中断服务子程序,执行完后放开中断使能(便于再次接收中断),然后返回中断,去断点处进行出栈,将原来的寄存器状态恢复,继续执行主程序。</br>举个例子就是穿越剧,女主角在雨天玩耍(执行主程序),玩太猛头撞树上了(中断发生),然后消失了,然后穿越到了某个朝代,在那里玩耍了几天(执行中断子程序),然后睡了一觉回到了现实(中断返回),醒来发现刚才在雨中玩耍的太猛头撞树上了(出栈),继续雨中玩耍(继续执行主程序),等待再次头撞树(等待中断发生)。

No,Sir。

在中断中并不会去中断使能,因为当中断执行时,需要考虑中断优先级的问题,中断等级高的中断当然应该可以中断中断等级低的中断,例如当执行循环中断时,来了机架故障中断,那显然应该先处理更高优先级的中断。

Good Luck~
嗯,我说的有问题,应该是屏蔽当前中断的允许标志,中断使能容易被理解成中断总开关。
3947
18540531
文章数:502
年度积分:175
历史总积分:3947
注册时间:2017/3/18
发站内信
发表于:2018/3/27 13:54:50
#9楼
理解了,谢谢

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

62.4004