紧急求助!PLC中子程序执行是一个扫描周期后退出,还是所有子程序功能执行完后退出?

比如在子程序中有定时器,那子程序是等定时器响应后退出,还是在子程序执行完一个扫描周期后就马上退出了?

子程序是:需要时才调用。系统程序控制OB1不断的循环扫描,当子程序中被激活执行定时器计时后,子程序激活状态是一直被保持的。每当扫描到此子程序时都会检测该定时器是否计时完成。如计时时间未到,激活此子程序的条件不存在了,OB1会则不会扫描此子程序。以上是子程序的条件调用状态。如果此子程序是无条件调用状态,则是每个周期都会扫描此子程序,其中的定时器是否激活,则取决于这定时器的激活条件是否满足。我想你应该明白了。追问

那我可不可以这样认为:假设定时器设置为5s,5s后触发M0.0。那么要使M0.0成功触发,子程序的调用条件必须保持5s以上,若不到5s而子程序调用条件消失,则此时定时器无效?

追答

一般来说,定时器的触发都是有触发条件的,没有触发条件的定时器没有意义。既然是这样,我们用延时接通的定时器举例。假如定时器T0的触发条件是M1.0,定时时间5s。根据定时器的工作要求,在这定时器延时的5S期间,触发条件M1.0不能为0,否则定时器复位。可见,要使定时器完成定时的时间,触发条件必须不能在定时未完成前失效。而这个触发条件要持续,离不开主程序的扫描支持;或者说,因为有激活的地址在子程序中,主程序的扫描必须调用该子程序。(每个周期都调用)。一旦这主程序中的定时时间完成,定时器置位,M0.0置1。如果定时器没有复位条件,或者触发条件依然保持,那么这子程序将持续被扫描调用,(事实上是把输出状态写入输出映像区)直到触发条件消失。(前提是该子程序是条件调用的)主程序就不在调用这子程序了。这只是大体的工作过程,具体的要比这复杂的多。结构化编程的方式要同步更新变化条件,这样就引入了输入输出映像区的概念,这不是几句话能说明白的了。
结束语:结构化编程的要求就是需要才调用,没有被激活的子程序不被调用。
我想你该明白了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-10
你讲得不大清楚,我自认为:例如 :在子程序中有定时器,如果定时器T0是用(LD T0)来控制下一条程序的通断,程序完后+SRET. 这样的话它就是(你说的“在子程序中有定时器,那子程序是等定时器响应后退出”)
第2个回答  2011-05-10
只要子程序被调用如计时器无触发条件就开始计时,5s后触发M0.0和循环扫描周期没关系。
相似回答