3.3 顺序输入/输出指令及指令的形式
3.3.1 顺序输入/输出指令
1.位测试TST指令、位测试非TSTN指令
表3.4列出了位测试指令的格式/名称、梯形图符号、操作数的范围及含义、指令功能及执行指令对标志位的影响。
表3.4 位测试指令
位测试(非)指令使用的场合不同时,分别变成不同类型的位测试(非)指令。与左母线相连时为LD型位测试(非)指令,其功能与LD(NOT)指令相同;与其他程序段串联时为AND型位测试(非)指令,其功能与AND(NOT)指令相同;与其他程序段并联时为OR型位测试(非)指令,其功能与OR(NOT)指令相同。可见,位测试指令与相应的非位测试指令功能一样,例LD TST(350)指令与LD指令功能一样。下面分别给出指令的应用示例。
与LD指令等价的TST(350)指令的应用示例如图3.12所示。
图3.12 LD型位测试指令TST(350)应用示例
与LD NOT指令等价的TSTN(351)指令的应用示例如图3.13所示。
图3.13 LD型位测试非指令TSTN(351)应用示例
与AND指令等价的TST(350)指令的应用示例如图3.14所示。
图3.14 AND型位测试指令TST(350)应用示例
与AND NOT指令等价的TSTN(351)指令的应用示例如图3.15所示。
图3.15 AND型位测试非指令TSTN(351)应用示例
与OR指令等价的TST(350)指令的应用示例如图3.16所示。
图3.16 OR型位测试指令TST(350)应用示例
与OR NOT指令等价的TSTN(351)指令的应用示例如图3.17所示。
图3.17 OR型位测试非指令TSTN(351)应用示例
2.非指令NOT
将输入条件取反,连接到下一段,如图3.18所示。
图3.18 NOT指令示例
当0.01为OFF,经过NOT反向100.01为ON;当0.01为ON,经过NOT反向100.01为OFF。
3.置位SET和复位RSET指令
表3.5是这两个指令的格式/名称、梯形图符号、操作数的范围及含义、指令功能及执行指令对标志位的影响。
表3.5 SET和RSET指令
SET和RSET指令常成对使用,一般用SET指令将某继电器置为ON,再用RSET指令将其置为OFF。也可以单独用RSET指令将已为ON的继电器置为OFF。
SET、RSET指令的执行条件常使用短信号(脉冲信号)。这两条指令的语句之间可以插入别的指令语句。
图3.19是使用这两个指令的例子,图中,0.00是SET指令的执行条件,当0.00为ON时,W0.00被置为ON并保持,即使0.00又变为OFF;0.03是RSET指令的执行条件,当0.03为ON时,W0.00被置为OFF并保持,即使0.03又变为OFF。图3.19(b)是它们的工作波形。当SET、RSET指令的操作数是保持继电器HR时具有掉电保持功能。
图3.19 使用SET和RESET指令的例子
4.其他置位和复位指令
表3.6是其他置位/复位指令的格式/名称、梯形图符号、操作数范围及含义、指令的功能及执行指令对标志位的影响,包括多位和1位置位/复位指令。具体用法参见相关手册,本书不再赘述。
表3.6 其他置位/复位指令
5.保持指令KEEP
表3.7是KEEP指令的格式/名称、梯形图符号、操作数的范围及含义、指令功能及执行指令对标志位的影响。
表3.7 KEEP指令
图3.20是使用KEEP指令的例子,请注意用该指令编程时语句表的写法。
图3.20 使用KEEP指令的例子
在图3.20中,0.02是置位端的输入条件,0.03是复位端的输入条件。当0.02由OFF变为ON时,W0.00被置为ON并保持,即使0.02又变为OFF;当0.03由OFF变为ON时,W0.00被复位为OFF并保持,即使0.03又变为OFF。
比较图3.19(b)和图3.20(b)的波形可看出,两个程序对W0.00都具有启、保、停控制功能。图3.21也是实现启、保、停控制的程序。三个图的功能相同,但它们的区别在于,用KEEP指令编程时,要用3条语句,当使用保持继电器HR作输出时,具有掉电保持的功能;用SET和RSET指令编程时,要用4条语句,但SET和RSET指令语句之间可插入别的指令,使用比较灵活。当SET指令的操作数是保持继电器HR时具有掉电保持功能;对于图3.21,编程时需要4条语句,用OUT指令输出时无掉电保持功能。
图3.21 启、保、停控制程序
6.上升沿微分DIFU、下降沿微分DIFD、条件上升沿微分UP、条件下降沿微分DOWN指令
表3.8是微分类指令的格式/名称、梯形图符号、操作数的范围及含义、指令功能及执行指令对标志位的影响。
表3.8 微分类指令
使用DIFU和DIFD指令时要注意:
在第n次扫描时检测到输入条件为OFF、第n+1次扫描检测到输入条件为ON时,DIFU指令才会被执行。因此对于开机时就ON的执行条件,DIFU指令不执行。同样对于开机时就OFF的执行条件,DIFD指令也不执行。
图3.22使用了DIFU和DIFD指令,图中TS 是扫描周期。在图3.22中,0.00是DIFU和DIFD指令的执行条件。从0.00由OFF变为ON开始,100.00只ON一个扫描周期;从0.00由ON变为OFF开始,100.01只ON一个扫描周期。
图3.22 DIFU和DIFD指令应用示例
DIFU和DIFD指令常用在下面的几种场合:
①利用DIFU和DIFD指令的操作位作为某指令的执行条件,使某条指令只在DIFU的执行条件由OFF变为ON、或DIFD的执行条件由ON变为OFF时执行一次。
②利用DIFU和DIFD指令产生脉冲信号。
上例中,当0.00闭合时,其上升沿使100.00闭合一个扫描周期,而后断开;当0.00断开时,其下降沿使100.01闭合一个扫描周期,而后断开;DIFU和DIFD可分别由条件上升沿微分指令UP(521)和条件下降沿微分指令DOWN(522)替代,功能完全相同,见下面的例子。
UP和DOWN指令应用示例如图3.23所示。
图3.23 UP和DOWN指令应用示例
3.3.2 指令的微分/非微分形式和即时刷新形式
1.指令的微分/非微分形式
指令分为微分型和非微分型两种形式,CP1H系列PLC的应用指令多数兼有这两种形式。微分型指令要在其助记符前加标记@(上升沿微分)或%(下降沿微分)。两种指令的区别是:对非微分型指令,只要其执行条件为ON,则每个扫描周期都将执行该指令;上升沿微分型指令(指令前带“@”)仅在其执行条件由OFF变为ON时才执行一次,如果执行条件不发生变化,或者从上一个扫描周期的ON变为OFF,该指令不执行;下降沿微分型指令(指令前带“%”)仅在其执行条件由ON变为时OFF才执行一次。如果执行条件不发生变化,或者从上一个扫描周期的OFF变为ON,该指令都不执行。
CP1H系列PLC只有少数几条指令可以附加下降沿微分型(指令前带%)功能,如LD、AND、OR、SET、RSET。若其他指令需要仅在执行条件的下降沿执行时,要将执行条件与DIFD或DOWN指令组合使用。
2.指令的即时刷新形式
指令的即时刷新形式是指在指令的助记符前加标记“!”,它的含义是CPU在当前的扫描周期,执行指令的前后,分别立即刷新PLC的输入和输出,而不是周期性刷新。
指令的微分形式和即时刷新形式两种功能可以组合使用。微分型与即时刷新型指令的指令名称、助记符、功能及刷新模式见表3.9。
表3.9 微分型与即时刷新型指令
注:1.即时刷新型指令仅适应于CPU单元内置的输入/输出点,不能用于CP1W或CPM1A系列的扩展I/O单元;
2.很多指令都有上升沿微分功能,但只有表中所列的指令具有下降沿微分型功能;
3.除表中所列的即时刷新型指令,还有下列指令具有即时刷新功能:!KEEP、!DIFU、!DIFD、!CMP、!MOV、!CPS、!SETB、!RSTB、!OUTB。