今天奥越信技术工程师主要来给大家讲解一下
兼容西门子程序的调用,在中断OB37中执行调用大量FC程序,是否影响OB1中正常程序的处理速度和其它中断程序的速度?对CPU的运行有何影响?
答:1、在中断OB37中执行调用大量FC程序,是否影响OB1中正常程序的处理速度和其它中断程序的速度?
a、组织块是按系统已分配的中断优先级来执行,数字越大优先级越高,优先级高的可以中断优先级低的。
b、一般OB1的默认为1级,OB30-OB38默认为7-15级,OB37为14级。数字越大优先级越高。
c、OB37中执行调用大量FC程序,则其就占用CPU时间长,肯定会响应对OB1中或其他中断的程序的扫描(执行)。
2、对CPU的运行有何影响?
对CPU本身的运行没有任何影响,即CPU运行哪个程序是有系统操作系统来分配的。CPU只是一个执行“机构”而已。这个问题提得不专业,在此不要纠缠这个问题了。望注重下述问题的讨论,即这个问题应这样提出:“对于你的控制系统的实时性是否有影响?”。
3、对于控制系统的实时性是否有影响?
在此要强调是要合理应用OB循环中断:
按楼主的设计意图,是由两个OB循环中断来调度楼主的控制程序,即OB37(循环时间短,优先级高)与OB1(循环时间长,优先级低)。
合理的设计是将实时性要求高、数据更新要求快的任务(程序)均安排在OB37中来执行。而将上述要相对低一些的的任务(程序)均安排在OB1中来执行。这样可以轻重缓急地实现任务(程序)的调度。
一个有经验的程序(软件)设计者会合理地安排自己的控制系统中任务(程序)的中断优先级。也会通过实践不断修正所分配的优先级,使得自己的控制系统的实时性更高。
4、而对于“中断OB37中执行调用大量FC程序”并不是不可取的,如果控制系统就这有这样的需求,即只有这样才可满足实时性的要求,就可这样做!
一个合格的程序设计者的基本条件就是能够熟练地、合理地应用中断、编制中断程序,使得自己的控制系统结构严谨、灵巧、科学,满足控制实时性的要求。