欧姆龙CP1系列PLC原理与应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.4 时序控制指令

3.4.1 结束指令END和空指令NOP

1.结束指令END(001)

程序的结尾处一定要安排END指令,因为CPU扫描到END指令时即认为程序到此结束,END后面的程序一概不执行,并马上返回到程序的起始处再次扫描程序。若程序结束时没写END指令,将出现程序错误。在调试程序时可以将END指令插在各段程序之后,对程序进行分段调试,调试结束时再删除插在中间各段程序之后的END指令。

图3.24中使用了END指令,请注意END指令的梯形图画法和语句的写法。图中,常闭触点0.03与上一行并联后再与常开触点0.02串联而形成一个触点组,0.04与上面的触点组再并联。0.04与上面的触点组两者中有一个为ON,100.02即为ON。

图3.24 使用END指令的例子

本书在以后的梯形图程序中通常省略END指令,不再另行说明。

2.空指令NOP(000)

不具备任何功能(不进行程序处理)的指令。在梯形图中无表示。NOP指令常用来修改程序。当修改程序删去一条指令时,后面语句的地址发生变化。而用NOP指令代替所删指令的位置,后面语句的地址保持不变。

例如,用NOP代替AND N语句,可把AND语句中的触点N短接,用NOP代替OR N语句,可把OR语句中的触点N断掉等,而其他语句的地址保持不变。

图3.25是使用NOP指令的例子。欲将图3.25(a)变成图3.25(b)的梯形图,将图3.25(a)语句表中的AND 0.01改写成NOP(000)即可。若欲去掉LD 0.00,不仅把第一条语句处改写成NOP(000),还有要将下一条语句AND 0.01改写成LD 0.01,否则会出现语法错误。

图3.25 使用NOP指令的例子

3.4.2 互锁 IL/互锁解除ILC指令

IL/ILC指令常用于控制程序的流向。表3.10是指令的格式/名称、梯形图符号、操作数的范围及含义、指令功能及执行指令对标志位的影响。

表3.10 IL/ILC指令

使用IL/ILC指令时应注意:

①不论IL的输入条件是ON还是OFF,CPU都要对IL/ILC之间的程序段进行扫描。

②如果IL的执行条件为OFF,则位于IL和ILC之间的程序段不执行,此时IL和ILC之间各内部器件的状态如下。

所有OUT和OUT NOT指令的输出位为OFF,所有定时器都复位,KEEP指令的操作位、计数器、移位寄存器及SET和RSET指令的操作位都保持IL为OFF以前的状态。

③IL和ILC指令可以成对使用,也可以多个IL指令配一个ILC指令,但不准嵌套使用,如IL—IL—ILC—ILC。

图3.26(a)中A为分支点,A右侧有2个分支,且每个分支都有触点控制。这时要使用互锁指令编程。图3.26(a)也可以画成图3.26(b)的结构,两图的功能一样。

图3.26 使用IL/ILC指令的例子

图3.26中,当0.00为OFF时,IL和ILC之间的程序不执行,100.00、100.01都处于OFF状态。当0.00为ON时,IL和ILC之间的程序执行,100.00、100.01的状态取决于各自分支上的控制触点的状态。

在图3.26中,若A右侧的第一分支中没有控制触点0.01,就不必用互锁指令编程了。但如果把没有触点控制的分支放在下面,那也必须用互锁指令编程。

图3.27(a)的程序有两次分支,图3.27(a)也可以画成图3.27(b)的结构,两图的功能是一样的。图3.27(c)是它们的语句表。

图3.27 IL/ILC指令使用方法举例

到此为止已经介绍了多种输出方式,归纳起来可以分为并联输出、连续输出和复合输出三种结构。三种输出方式的梯形图结构和语句表如图3.28所示,请注意各种输出方式语句表的写法。

图3.28 并联输出、连续输出和复合输出的程序结构

3.4.3 暂存继电器TR

暂存继电器(TR)是继电器,而不是指令。暂存继电器可用来暂时存储当前指令执行的结果,所以处理梯形图的分支还有另外一种方法,即使用暂存继电器。

CP1H系列PLC有编号为TR0~TR15的16个暂存继电器。如果某个TR位被设置在一个分支点处,则分支前面的执行结果就会存储在这个TR位中。对暂存继电器做如下说明:

①在同一指令块中,同一TR位不能重复使用;

②TR不是编程指令,而是继电器,只能配合LD或OUT指令一起使用。

图3.29为使用暂存继电器(TR)处理分支的例子。从语句表可以看出两种处理分支方法的区别:用TR时,是用AND指令连接下一个分支的触点;用IL/ILC时,是用LD指令连接下一个分支的触点。在分支多时,用TR处理分支程序比使用IL/ILC指令时语句表要烦琐一些。

图3.29 用TR与用IL/ILC处理分支程序的区别

图3.27程序有两次分支,用TR指令改写,如图3.30(a)所示,图3.30(b)为语句表程序。

图3.30 IL/ILC指令使用方法举例

注意:采用计算机编程时,可直接用CX-P软件将梯形图转换为语句表,梯形图中的分支自动采用TR处理。

3.4.4 跳转JMP/跳转结束JME指令

JMP/JME是跳转和跳转结束指令,常用于控制程序的流向。表3.11是这对指令的格式/名称、梯形图符号、操作数的范围及含义、指令功能及执行指令对标志位的影响。

表3.11 JMP和JME指令

使用JMP N和JME N指令时注意:

①发生转移时,JMP N和JME N之间的程序不执行,且不占用扫描时间;

②发生跳转时,所有继电器、定时器、计数器均保持跳转前的状态不变,定时器定时继续;

③不允许出现相同编号的两个以上的JMP指令或JME指令;

④跳转指令可以嵌套使用,但必须是不同跳转号的嵌套,如JMP & 0—JMP & 1—JME & 1—JME& 0等。

图3.31为使用JMP/JME的例子,0.00是JMP & 0的执行条件,当0.00为OFF 时,JMP & 0到JME& 0之间的程序不执行,而转去执行JME & 0之后的程序,这时100.00和101.00保持转移前的状态。例如,若转移前100.00为OFF,则转移期间也为OFF,即使0.01为ON;当0.00变为ON时,JMP & 0到JME & 0之间的程序才被执行。

在两段程序切换时,常用到转移指令。如图3.32所示,当输入0.00为ON时,执行手动程序而不执行自动程序;当0.00为OFF时,跳过手动程序转去执行自动程序,请注意JMP/JME的这种用法。

图3.31 使用JMP/JME的例子

图3.32 转移指令的用法

3.4.5 其他顺序控制指令

表3.12是其他顺序控制类指令的格式/名称、梯形图符号、操作数的范围及含义、指令功能及执行指令对标志位的影响。

表3.12 其他顺序控制类指令