教你玩转程序控制指令中的‘子程序’

无论各种各样的编程,都会使用到子程序,那么让我们来看看,子程序在PLC中是如何使用的呢? 

还是先举个例子:

教你玩转程序控制指令中的‘子程序’

主程序里的调用

教你玩转程序控制指令中的‘子程序’

子程序里面返回主程序

此梯形图的意义:

主程序在首次扫描时,调用子程序0,执行初始化操作;

子程序中,如果M14.3闭合,则返回主程序。

PLC什么时候需要使用子程序操作指令?

在编写程序时,有的程序段需要多次重复使用。这样的程序段可以编成一个子程序,在满足执行条件时,主程序转去执行子程序,子程序执行完毕后,再返回来继续执行主程序。另外,有的程序段不仅需多次使用,而且要求程序段的结构不变,但每次输入和输出操作数不同。对这样的程序段也可以编写成一个子程序,在满足执行条件时,主程序转去执行子程序,并且每次调用时赋予该子程序不同的输入和输出操作数,子程序执行完毕再返回去继续执行主程序。

子程序的结构:

教你玩转程序控制指令中的‘子程序’

子程序操作指令有两条:子程序调用指令和子程序返回指令,其梯形图和语句表如上图所示,n为子程序标号(0~63)。

子程序的调用由在主程序内使用的调用指令完成。当子程序调用允许时,调用指令将程序控制转移给子程序(SBR_n),程序扫描将转到子程序入口处执行。当执行子程序时,子程序将执行全部指令直至满足返回条件才返回,或者执行到子程序末尾而返回。当子程序返回时,返回到原主程序出口的下一条指令执行,继续往下扫描程序。

应用子程序操作指令注意事项:

(1)子程序由子程序标号开始,到子程序返回指令结束。S7-200PLC的STEP7-Micro/WIN编程软件为每个子程序自动加入子程序标号和无条件子程序返回指令,无需编程人员手工输入;如果需要在子程序执行过程中满足一定的条件就跳出子程序,也可以在子程序中添加子程序返回指令,从而由判断条件决定是否结束子程序调用。

(2)如果在子程序的内部又对另一个程序执行调用指令,则这种调用称为子程序的嵌套。子程序嵌套的深度最多为8级,但是不允许子程序直接递归调用。例如,不能从SBR0调用SBR0。但是,允许进行间接递归调用。

(3)对于带参数的子程序调用指令应遵守下列原则:参数必须与子程序局部变量表内定义的变量完全匹配;参数顺序应为输入参数最先,其次是输入/输出参数,最后是输出参数;各子程序调用的输入/输出参数的最大限制是16个。

(4)累加器可在调用程序和被调用子程序之间自由传递,所以累加器的值在子程序调用时既不保存也不恢复。

教你玩转程序控制指令中的‘子程序’

更多精彩内容等你去发掘……


分享到:


相關文章: