您现在的位置是:首页 > PLC技术 > PLC技术
三菱FX2N系列PLC的转子与返回指令
来源:艾特贸易2017-06-05
简介PLC 中的子程序也是为一些特定的控制目的编制的相对独立的模块,供主程序调用。为了区别于主程序,将主程序排在前边,子程序排在后边,并以主程序结束指令 FEND(FNC06) 给以分隔。
PLC中的子程序也是为一些特定的控制目的编制的相对独立的模块,供主程序调用。为了区别于主程序,将主程序排在前边,子程序排在后边,并以主程序结束指令FEND(FNC06)给以分隔。 1.指令用法说明 转子CALL( Sub Routine Call)与返回(Sub Routine Return)指令的助记符、功能号、操作数和程序步等指令概要如表5.3所示。由表5.3可见,能够充当目的操作数的为标号P0~P127(不包括P63)。 表5.3 转子与返回指令概要 子程序调用指令为CALL或CALL(P)后跟标号,标号是被调用子程序的入口地址,也以P0~P127来表示。子程序返回用SRET指令。 子程序调用和返回的梯形图如图5. 15(a)所示。当M0接通时,调用子程序P0,程序将跳转到P0标号所指向的那条程序,同时将调用指令下一条指令的地址作为断点保存。此后从P0开始逐条顺序执行子程序,直至遇到SRET指令时,程序将返回到主程序的断点处,继续顺序执行主程序,即执行指令LD M1,OUT Y000,…。
图5.15 CALL指令的用法 (1)子程序的位置与标号使用 子程序P0安排在主程序结束指令FEND之后,标号P0和子程序返回指令SRET间的程序构成了P0子程序的内容。当主程序带有多个子程序时,子程序要依次放在主程序结束指令FEND之后,并以不同的标号相区别。FX1N、FX2N和FX2NC子程序标号范围为P0~P127(FX1S为P0~P63),这些标号与条件转移中所用的标号相同,而且在条件转移中已经使用了的标号,子程序也不能再用。同一标号只能使用一次,而不同的CALL指令可以多次调用同一标号的子程序。 (2) CALL指令的脉冲执行方式 CALL( P)指令的脉冲执行方式如图5.15 (b)所示。只有在M0产生一个上升沿时,程序才会转子,即程序将跳转至P0标号处继续执行,以后M0即使为接通状态也不会再次调用子程序了。实际上,CJ是跳转,CALL也是一种跳转,不过CJ跳转是“有去无回”,而CALL的跳转则是“有去有回”,待子程序结束后将会回到主程序的断点处继续执行原来的程序。为了区别二者,把后者称为“调用”更为适当。 2.子程序的嵌套 子程序的嵌套示意图如图5. 16(a)所示,子程序嵌套梯形图如图5.16(b)所示。 主程序调用子程序1,在执行子程序1时,如果子程序1又调用另一个子程序2,称为子程序的嵌套。在图5. 16(b)中,开始在执行主程序,若X001接通,调用子程序1,程序转其入口P11。在执行子程序1中,若X026接通,又调用子程序2,程序转其入口P12。当子程序2执行完后,遇SRET,程序将返回到子程序1中的CALL指令的下一步(断点处)。当子程序1执行完后,遇SRET,程序才返回到主程序执行。 子程序嵌套总数可有5级。 注意,在子程序和中断子程序中使用的定时器范围为:T192~T199和T246~T249。在此范围之外的定时器,虽然在子程序中或许可以使用,但不能保证其运行的正确性,所以不要使用此范围外的定时器。
图5.16 子程序嵌套
点击排行
