基本逻辑指令(简称基本指令)主要用于实现顺序逻辑控制。无论哪个公司生产的可编程控制器均有基本逻辑编辑指令,但是所使用的指令条数及指令的表示符号一般不完全相同,但是其内容及功能却十分相似。日本OMRON公司生产的C系列P型机有12条基本指令,这12条基本指令在其简易编程器上均有相应的按键,可以直观、方便地将基本逻辑指令通过编程器传送到主机。
1、LD指令和LD NOT指令
LD指令是逻辑条件类指令,其作用是把由操作数指定的触点状态(ON或OFF)送到存储器的一个工作单元(此单元为一位的寄存器,称为结果寄存器)中。
指令格式:LD XXXX
操作数XXXX为继电器号。
LD NOT指令也是逻辑条件类指令,其作用是把由操作数指定的触点状态(ON或OFF)取反后送到结果寄存器。
指令格式:LD NOT XXXX
图1 LD和LD NOT指令在梯形图中的符号
由此可见,LD指令的功能是将动合(常开)触点接到逻辑母线上,LD NOT指令的功能是将动断(常闭)触点接到逻辑母线上。
LD指令及其他基本逻辑指令可使用的继电器见表1。
表1 基本逻辑指令可使用的继电器
2、AND指令和AND NOT指令
AND指令也是逻辑条件类指令。其作用是把由操作数指定的触点状态与结果寄存器的状态进行逻辑与,其结果再送结果寄存器。
指令格式:AND XXXX
操作数XXXX为继电器号。
AND NOT指令也是逻辑条件类指令。它的作用是把由操作数指定的触点状态取反后与结果寄存器的状态进行逻辑与,其结果再送结果寄存器。
指令格式:AND NOT XXXX
AND和AND NOT指令在梯形图中的符号如图2所示。
图2 AND和AND NOT指令在梯形图中的符号
由此可见,AND指令的功能是串联一个动合触点,AND NOT指令的功能是串联一个动断触点。
3、OR指令和OR NOT指令
OR指令也是逻辑条件类指令。其作用是把由操作数指定的触点状态与结果寄存器的状态进行逻辑或,其结果再送结果寄存器。
指令格式:OR XXXX
操作数XXXX为继电器号。
OR NOT指令也是逻辑条件类指令。其作用是把由操作数指定的触点状态取反后与结果寄存器的状态进行逻辑或,其结果再送入结果寄存器。
指令格式:OR NOT XXXX
OR和OR NOT指令在梯形图中的符号如图3所示。
图3 OR和OR NOT指令在梯形图中的符号
由此可见,OR指令的功能是并联一个动合触点,OR NOT指令的功能是并联一个动断触点。
4、OUT指令
OUT指令是输出指令,其作用是把结果寄存器的内容写到由操作数指定的继电器中。
指令格式:OUT XXXX
操作数XXXX为继电器号。
OUT指令在梯形图中的符号如图4所示。
图4 OUT指令在梯形图中的符号
由此可见,OUT指令的功能就是接一个继电器的线圈。
一般OUT指令出现在每个梯级的最右端,该指令将结果寄存器中的内容写到指定的继电器。如输出给输出继电器,则可驱动相应的外部负载。OUT指令后的继电器号,一般不能重复使用,否则可能引起逻辑上的混乱。
编程举例:
当输入0002和0003同时为ON时或输入0004为ON,且0001为OFF时,输出0500为ON。完成该功能的梯形图程序及指令语句表程序如图5所示。
图5 LD、AND、OR、OUT指令
5、AND LD指令和OR LD指令
AND LD指令是逻辑条件类指令,无操作数,其作用是把结果寄存器中的内容与堆栈的内容进行逻辑与,其结果再送结果寄存器。
OR LD指令也是逻辑条件类指令,无操作数,其作用是把结果寄存器中的内容与堆栈的内容进行逻辑或,其结果再送结果寄存器。
简单地说,AND LD指令是将两触点块串联起来,OR LD指令是将两触点块并联起来。
AND LD指令和OR LD指令的示例分别见图6和图7。
图6 AND LD指令
图7 OR LD指令
在图6中,在动断触点0003后又形成了一条新的逻辑母线,而动合触点0004是接在该逻辑母线上的,故应用LD指令。
例 试编写图8(a)所示梯形图程序所对应的指令语句表程序。其指令语句表见图8(b)。
图8 逻辑指令的综合应用
6、TIM定时器指令和TIMH高速定时器指令
TIM定时器指令用于对时间的控制。所完成的操作功能:满足执行条件时,控制plc内部的一个时钟脉冲,根据程序中所设定的时间常数,定时器的当前值每隔0.1 s减1,减到0000时,完成延时时间的控制,此时定时器的触点产生相应的动作(动合闭合、 动断断开),实现延时控制作用。如果定时器的当前值尚未减至0000,由于某种原因不满足工作条件时,则定时器复位,当前值变为设定值。
TIMH指令和TIM指令所完成的操作功能是一样的,它们的不同点是时间的度量单位不同,TIM指令的度量单位是0.1 s,计时范围为0~999.9 s。TIMH指令的度量单位是0.01 s(即当前值每隔0.01 s减1),计时范围为0~99.99 s,因此,如果扫描周期超过10 ms,则TIMH指令不能执行,定时操作可能不准确。另外,TIMH是功能指令(FUN 15),在编程器上没有与其对应的专用键,输入TIMH指令时,要先按FUN键,然后输入功能代码。但在输入触点时仍按TIM键。
TIM指令的格式:TIM、XX
#XXXX
TIMH指令的格式与此类似。
定时器指令要求两个操作数:第一个操作数XX为定时器号,范围为00~47。第二个操作数是#后XXXX,为定时器的设定值,其范围为0000~9999(十进制,单位为0.1 s(TIM指令)或0.01 s(TIMH指令))。第二个操作数除常数外,还可以是通道号,以通道内容(4位BCD码)为设定值。
TIM和TIMH指令在梯形图中的符号如图9所示。
图9 TIM和TIMH指令在梯形图中的符号
由此可见,定时器指令就是接一个时间继电器的线圈。
图10中,输入继电器0002得电10s后,输出继电器0500得电。注意:在此期间0002不能失电,否则定时器复位,0500将不能得电。图10 TIM指令
图11说明了TIMH的工作情况:0002得电1 s后,0500得电;0002失电,0500同时失电。图11中部的图形称为波形图(或时序图)。
图11 TIMH指令
C系列P型机中,定时器与计数器总共有48个(00~47),一旦用TIM指令指定某一个作为定时器,就不能再将其作为计数器使用;同样,如果用CNT指令指定某一个作为计数器,就不能再将其作为定时器使用。另外,定时器不能直接对外输出,需要时可借助输出继电器。
7、CNT计数器指令和CNTR可逆计数器指令
CNT指令格式:CNT XX
#XXXX
CNTR的指令格式与此类似。
CNT和CNTR指令在梯形图中的符号如图11所示。
图11 CNT和CNTR指令在梯形图中的符号
CNT指令和CNTR指令都要求两个操作数:第一个操作数XX为定时器号,范围为00~47(不能与已使用的定时器或计数器号相同),第二个操作数是#后XXXX,为计数设定值,设定值为0~9999,计数范围为0~9999次。
由此可见,CNT指令和CNTR指令都是接入一个计数器的线圈。
在CNT计数器中,CP端为计数输入端。CP端每次由OFF到ON时,该计数器的当前值减1,当计数器的当前值减到0000时,计数器动作。R端为复位输入端,当R端由OFF到ON时,计数器的当前值复位为设定值。若CP与R信号同时出现,复位优先。计数器动作后如果没有复位信号,则其触点状态不变。
图12中0002由OFF到ON 10次后,CNT01的触点动作,使0500得电。在任何时刻如0003由OFF到ON,CNT01的计数值由当前值复位为设定值10。
图12 CNT指令
CNTR是环形可逆计数器指令,ACP是加1计数输入端,SCP是减1计数输入端,R为复位输入端(置“0”输入)。其编程顺序是:ACP、SCP、R、CNTR、计数器号、设定值。ACP端每次由OFF到ON时,CNTR的当前值加1;SCP端每次由OFF到ON时,CNTR的当前值减1;若ACP和SCP信号同时到来时,当前计数值不变。当复位输入信号R为ON时,CNTR的当前计数值被复位到0000,此时ACP和SCP信号均不起作用。
CNTR采用环形计数方式,在计数器的当前值达到设定值时,若加1计数ACP再来一个信号,则计数器的当前值变为0000,产生进位,使计数器产生输出(ON),继续计入新数,当前值增加,而计数器的输出又为OFF。在计数器的当前值为0000时,若减1计数SCP再来一个信号,则计数器的当前值变为设定值,产生借位,使计数器产生输出,继续计入新数,计数器的当前值减少,而计数器的输出又为OFF。在程序输入时,对CNTR的触点的输入,仍按CNT键。
图13 CNTR指令
图13 中0002/0003波形上方的数字式计数器当前值。
CNTR和CNT的设定值也可由某个通道的内容或外部部件(用户通过4位BCD码拨码开关,按照从低位到高位的顺序分别接到主机的16个输入端子上,这种做法对于在现场需要经常改变计数器的设定值时很方便)来提供。(http://www.ippipp.com/版权所有)如用某个通道的内容作为计数器的设定值,可使用的通道为00~17通道、 HR0~HR9通道,通道的内容均以4位BCD码作为计数器的设定值。在图7中如欲用10通道的内容作为CNTR 02的设定值,将其梯形图和指令语句表中的“# 0006”改为“10”即可(注意:不是改为“# 10”)。
定时器和计数器所使用的继电器号都是00~47,可任意使用,但不能重复使用。定时器在电源掉电后被复位,计数器当电源掉电时能保持当前数值不变,电源恢复时可继续计数。
8、TR暂存继电器指令
暂存继电器只能作LD、LD NOT、 OUT指令的操作数,用于处理梯形图中的分支程序。
指令格式:OUT TR X
LD TR X
OUT的作用是暂存,LD的作用是取出。
在分支程序较多时,可使用暂存继电器,在同一程序段中最多可用8个暂存继电器TR0TR7,在不同的程序段中可再次使用。
图14中第0002句是将触点0002和触点0007并联的结果送到暂存继电器TR0存储起来,第0012句是将TR0里的值取出来,相当于执行0000~0001语句。
图14 TR指令
上面分别介绍了OMRON公司的C系列P型机的一些基本逻辑指令的功能以及这些基本逻辑指令在梯形图程序和指令语句表中的表达式。把梯形图程序转换成指令语句表,这是为了适应用简易程序器输入用户程序的需要。一般在设计用户程序时,总是先采用梯形图的方式去设计,使程序直观、易读。在程序编好后,如果有图形编程器,则可直接输入梯形图语言;如果只有简易编程器,这时就需要将梯形图程序转换成指令语句表,一条一条的输入。另外,在分析、编辑及调试程序时,需要将已输入或存储在存储器中的程序一条一条的读出,再转换成梯形图。所以,将梯形图转换成指令语句表,或将指令语句表转换成梯形图,是用简易编程器写程序、读程序时应具备的基本能力。