1、用什么方法可以判断我的中断程序的执行时间?
2、用什么方法判断我的中断程序是否在一个循环内执行完了?
3、如果我的中断程序过长,在一次循环时间内未执行完,下一次循环开始时间又到了,那么程序是重新开始执行?还是接着执行?还是报错?
最佳答案
1、用什么方法可以判断我的中断程序的执行时间?
根据下述资料给出的指令执行时间来计算你的程序中指令执行时间的总和:
http://www.doc88.com/p-64859492738.html
2、用什么方法判断我的中断程序是否在一个循环内执行完了?
这个问题应该是这个概念,所谓的中断是要打断循环扫描。处理中断时循环扫描不执行,如果该诊断处理完成且无其他中断,则循环扫描恢复执行。如果还其他中断还要处理其他中断。所以,当在一个循环扫描发生的中断不可能不在该循环扫描内执行完。换言之,CPU只能执行一个任务,当有中断时执行中断处理程序,无中断时才执行该循环扫描。
3、如果我的中断程序过长,在一次循环时间内未执行完,下一次循环开始时间又到了,那么程序是重新开始执行?
不是这个概念。当发生中断时,系统会“保护现场”,从中断程序返回时,仍然恢复当时的程序执行状态 。中断事件各有不同的优先级别 。循环扫描OB1的中断级别最低,其他中断均可中断其运行。所以不存在你所担心的现象。
提问者对于答案的评价:
你说的这个我知道,是我没说清楚,我的意思是,比如ob35定义为10ms的定时中断的时候,我怎么判断ob35中的程序被全部执行完了,还有就是ob35第一次执行时候,由于程序太长10ms没有执行完,下一个10ms又要来执行ob35时,会出现什么状况?
专家置评
必须确保每个循环中断 OB 的运行时间远远小于其时间间隔。如果因时间间隔已到期,如果在预期的再次执行前未完全执行循环中断 OB,则启动时间错误 OB (OB80)。稍后将执行导致错误的循环中断。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc233616.html