一、基本指令
1、输入输出指令LD、LDI、OUT
LD、LDI、OUT三条指令的功能、梯形图表示形式、操作元件见表1。
表1 LD、LDI、OUT指令的功能、梯形图表示形式、操作元件
LD与LDI指令用于与母线相连的触点,此外还可用于分支电路的起点。OUT 指令是线圈的驱动指令,可用于输出继电器、辅助继电器、定时器、计数器、状态寄存器等,但不能用于输入继电器。输出指令用于并行输出,能连续使用多次。图1是LD、OUT指令的示例。
图1 LD、OUT指令
2、触点串联指令AND、ANDI和并联指令OR、ORI
AND、ANDI指令用于一个触点的串联,OR、ORI指令用于一个触点的并联。其功能、梯形图表示形式、操作元件见表2。
表2 AND、ANDI和OR、ORI指令的功能、梯形图表示形式、操作元件
3、电路块的并联指令ORB和串联指令ANB
含有两个以上触点串联连接的电路称为“串联连接块”,串联电路块并联连接时,支路的起点使用LD或LDI指令,而支路的终点要用ORB指令。ORB指令是一种独立指令,其后不带操作元件号,因此,ORB指令不表示触点,可以看成电路块之间的一段连接线。如需要将多个电路块并联连接,应在每个并联电路块之后使用一个ORB指令,用这种方法编程时并联电路块的个数没有限制;也可将所有要并联的电路块依次写出,然后在这些电路块的末尾集中写出ORB的指令,但这时ORB指令最多使用7次。
将分支电路(并联电路块)与前面的电路串联连接时使用ANB指令,各并联电路块的起点使用LD或LDI指令;与ORB指令一样,ANB指令也不带操作元件,如需要将多个电路块串联连接,应在每个串联电路块之后使用一个ANB指令,用这种方法编程时串联电路块的个数没有限制,若集中使用ANB指令,最多使用7次。图2是ANB、ORB指令的示例。
图2 ANB、ORB指令
4、多重输出指令MPS、MRD、MPP
MPS为进栈指令,MRD为读栈指令,MPP为出栈指令。
FX2N系列plc中有11个存储运算中间结果的存储器,称之为栈存储器。进栈MPS指令是将运算中间结果存入栈存储器,使用一次MPS指令,该时刻的运算结果就压入栈存储器第一级,再使用一次MPS指令时,当时的运算结果压入栈的第一级,先压入的数据依次向栈的下一级推移。出栈MPP指令是将存入栈存储器的各数据依次上移,最上级数据读出后就从栈内消失。读栈MRD指令是存入栈存储器的最上级的最新数据的读出专用指令,栈内的数据不发生上、下移。
图3 MPS、MRD、MPP指令
使用MPS、MRD、MPP指令时应注意以下几点:
(1)MPS、MRD、MPP指令用于多重输出电路。
(2)MPS与MPP必须配对使用。
(3)MPS与MPP连续使用必须少于11次。
5、主控指令MC和主控复位指令MCR
MC为主控指令,用于公共串联触点的连接。MCR叫主控复位指令,即MC的复位指令。在编程时,经常遇到多个线圈同时受一个或一组触点控制的情况。如果在每个线圈的控制电路中都串入同样的触点,则将多占用存储单元,应用主控指令可以解决这一问题。
使用主控指令的触点称为主控触点,它在梯形图中与一般的触点垂直。它们是与母线相连的常开触点,是控制一组电路的总开关。MC、MCR指令的使用说明如图4所示。
MC指令是3程序步,MCR指令是2程序步,两条指令的操作目标元件是Y、M,但不允许使用特殊辅助继电器M。
当图4中的X000接通时,执行MC与MCR之间的指令;当输入条件断开时,不执行MC与 MCR之间的指令。此时,非积算定时器和用OUT指令驱动的元件复位,积算定时器、计数器、用SET/RST指令驱动的元件保持当前的状态。使用MC指令后,母线移到主控触点的后面,与主控触点相连的触点必须用LD或LDI指令。MCR使母线返回到原来的位置。(http://www.ippipp.com/版权所有)在MC指令区内使用MC指令称为嵌套,嵌套级N的编号(0~7)顺次增大,返回时用MCR指令,从大的嵌套级开始解除。通过更改软元件号Y、M,可多次使用主控指令MC。但如果使用同一软元件号,就同OUT指令一样,会出现双线圈输出。
图4 MC、MCR指令
6、置位指令SET与复位指令RST
SET为置位指令,其功能是使元件置位,并保持直至复位为止。RST为复位指令,其功能是使元件复位并保持,直至置位为止。SET、RST指令的使用说明如图5所示。由波形图可见,X000接通后,即使再变成断开,Y000也保持接通。X001接通后,即使再变成断开,Y0也将保持断开。SET指令的操作目标元件为Y、M、S,而RST指令的操作元件为Y、M、S、D、V、Z、T、C。对同一编程元件,如例中Y000、M000、S000等,SET、RST指令可以多次使用,且不限制使用顺序,以最后执行者有效。
RST指令可以对定时器、计数器、数据寄存器、变址寄存器的内容清零。还可以用来复位积算定时器(T246~T255)和计数器。
图5 SET、RST指令
7、脉冲输出指令PLS、PLY
PLS指令在输入信号上升沿产生脉冲输出,而PLF在输入信号下降沿产生脉冲输出,这两条指令都是2程序步,它们的目标元件是Y和M,但特殊辅助继电器不能作目标元件。
PLS、PLF指令的使用说明如图6所示。使用PLS指令,元件Y、M仅在驱动输入接通后的一个扫描周期内动作(置1),即PLS指令使M0产生一个扫描周期脉冲,而使用PLF指令,元件Y、M仅在驱动输入断开后的一个扫描周期内动作;PLF指令使元件M1产生一个扫描周期脉冲。
图6 PLS、PLY指令
8、空操作指令NOP
NOP指令是一条无动作、无目标的程序步指令。可编程序控制器的编程器一般都有指令的插入和删除功能,在程序中一般很少使用NOP指令。执行完清除用户存储器的操作后,用户存储器的内容全部变为空操作指令。
9、程序结束指令END
END是一条无目标元件的程序步指令。PLC反复进行输入处理、程序运算、输出处理,若在程序最后写入END指令,则END以后的程序不再执行,直接进行输出处理。在程序调试过程中,按段插入END指令,可以顺序扩大对各程序段动作的检查。采用END指令将程序划分为若干段,在确认处于前面电路块的动作正确无误之后,依次删去END指令。要注意的是,在执行END指令时,也刷新监视时钟。
二、编程规则及注意事项
三菱plc的梯形图编程规则与OMRON PLC的编程规则基本相同。下列各图(图7~图10)中左边的均是错误或不当的写法,右边才是正确的写法。
(1)每个继电器的线圈和它的触点均用同一编号,每个元件的触点使用时没有数量限制。
(2)梯形图每一行都是从左逻辑母线开始,线圈接在最右边,即线圈右边不允许再有触点,如图7所示。
图7 输出线圈的位置
(3)线圈不能直接接在左边母线上,如有需要可在线圈之前加一常闭触点。
(4)为简化程序并节省程序步数,应将串联触点多的回路写在上方,并联触点多的回路写在左方,如图8所示。
图8 节省指令的写法
在一个程序中,同一编号的线圈如果使用两次,称为双线圈输出,这很容易引起误操作,应尽量避免,如图9所示。
图9 双线圈的处理
在梯形图中并没有真实的电流流动,为了便于分析PLC的周期扫描原理和逻辑上的因果关系,假定在梯形图中有“电流”流动,这个“电流”只能在梯形图中从左向右单方向流动,不能双向流动,层次的改变只能从上向下,如图10所示。
图10 桥式电路的处理