三菱PLC的指令系统和编程规则及注意事项

fn2x系列有基本顺序指令20条,步进指令2条,功能指令128条。 一、基本指令
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使母线返回到原来的位置。在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 桥式电路的处理