您现在的位置是:首页 > PLC技术 > PLC技术

CPM2AH系列PLC的子程序控制指令说明

来源:艾特贸易2017-06-05

简介子程序控制指令有子程序调用 SBS(91) 、子程序入口 SBN (92) 、子程序返回 RET(93) 和宏指令 MCRO (99) 。 子程序控制指令的功能号、操作码、名称、梯形图符号、功能、操作数如表 3-20 所示。

    子程序控制指令有子程序调用SBS(91)、子程序入口SBN (92)、子程序返回RET(93)和宏指令MCRO (99)

    子程序控制指令的功能号、操作码、名称、梯形图符号、功能、操作数如表3-20所示。

    3-20    子程序控制指令

子程序控制指令

    子程序将大的控制任务分成若干个较小的控制任务(功能模块),使用户能重复使用某一给定的指令组(功能模块)。当主程序调用子程序时,主控制被转入到子程序,执行子程序的指令。子程序中的指令代码与主程序代码的编写方式相同。当子程序中的所有指令执行完毕,控制返回到主程序刚才调用子程序的后一步(除非在子程序中有其他规定)。在使用时应注意以下事项:

   (1)若希望主程序在某个点执行子程序,则将SBS置于该点,在SBS中使用的子程序编号,表示所希望调用的子程序。当SBS有效时,则转去执行与其编号相同的SBN与其后遇到的第一个RET之间的子程序指令,如图3-31 (a)所示。

   (2) SBS在主程序中可多次重复使用,即同一的子程序可以在程序中的不同地方调用,SBS还可以置于子程序中调用另一个子程序,即实现子程序的嵌套调用,如图3-31 (b)所示。嵌套最多可以达16层。

   (3)在同一程序中每个特定的子程序号只能被使用一次,SBN用来标记子程序的起始,RET用来标记子程序的结束。对于同一编号的子程序,可由任何调用该子程序的SBS调用。

   (4)所有子程序必须在主程序的结束处编程,END必须置于最后一个子程序后面。当有一个或更多的子程序被编程时,主程序将执行到第一个SBN处,然后返回到下一个循环的起始地址,子程序只有在被调用时才会被执行。

 子程序

    3-31    子程序

   (a)子程序的调用;(b)子程序的嵌套

    子程序的应用实例如图3-32所示。

子程序的应用

    3-32    子程序的应用

   (a)触点0.00闭合时的情形;(b)触点0.01闭合时的情形

    在图3-32中,在SBNRET之间是一个定时子程序。当触点0.00闭合时,将常数80赋予D0,并调用子程序,定时8s。若此时触点0.02闭合,定时器开始减计数,8s后定时器动作;若触点0.02断开,定时器复位;若此时断开触点0.00,则不调用子程序,定时器保留在调用子程序时减计数的值。

    当触点0.01闭合时,将常数200赋予D0,并调用子程序,定时20s。这样,在调用子程序前,先对数据存储器D0赋值,对于同一个子程序,就有两种不同的定时时间值。当触点0.000.01同时闭合时,则以后一阶梯形图调用为准。

    宏指令允许用一个单一子程序代替数个具有相同结构但操作数不同的子程序。他有4个输入字(SR232SR235)4个输出字(SR236SR239)分配给MCRO,这8个字用于子程序中。当执行条件为ON时,MCRO首先将SS+3的内容复制到SR232SR235中,将DD+3的内容复制到SR236SR239中。然后调用并执行编号为“XXX”的子程序。当子程序完成时,SR236SR239的内容传送回DD+3中,然后才结束MCRO

宏指令的功能

    3-33    宏指令的功能

    在图3-33中,  当执行MCRO时,DM0010DM0013的内容复制到SR232SR235中,DM0020DM0023的内容复制到SR236SR239中,并且调用和执行子程序010。当子程序执行后,SR236SR239中的内容复制回DM0020DM0023中。

   MCRO指令的应用实例如图3-34 (a)所示。在执行第一个MCRO指令时,先进行数据复制,然后调用子程序000,过程如图3-34 (b)所示。在执行第二个MCRO指令时,也是先进行数据复制,然后调用子程序000,过程如图3-34 (c)所示,分析不难得知利用宏指令可以在调用同一子程序时给其传送不同的参数值。

MCRO指令的应用举例

    3-34    MCRO指令的应用举例

   (a)梯形图;(b)执行第一个MCRO指令时的数据复制和子程序调用等同效果;

   (c)执行第二个MCRO指令时的数据复制和子程序调用等同效果