三菱fx 2n 系列 plc 共有 27 条基本指令,可以完成基本的逻辑控制、顺序控制等程序的编写,同时也是编写复杂程序的基础指令,指令可驱动的软元件和指令程序步 如下表 所示,表中 a 触点指的是常开触点, b 触点指的是常闭触点。
fx 2n 系列 plc 的基本指令
助记符(操作码)
功能
操作数
程序步
ld 取
a 触点逻辑运算开始
x 、 y 、 m 、 s 、 t 、 c
1
ldi 取反
b 触点逻辑运算开始
x 、 y 、 m 、 s 、 t 、 c
1
ldp 取脉冲上升沿
上升沿检出运算开始
x 、 y 、 m 、 s 、 t 、 c
2
ldf 取脉冲下降沿
下降沿检出运算开始
x 、 y 、 m 、 s 、 t 、 c
2
and 与
串联 a 触点
x 、 y 、 m 、 s 、 t 、 c
1
ani 与非
串联 b 触点
x 、 y 、 m 、 s 、 t 、 c
1
andp 与脉冲上升沿
上升沿检出串联连接
x 、 y 、 m 、 s 、 t 、 c
2
andf 与脉冲下降沿
下降沿检出串联连接
x 、 y 、 m 、 s 、 t 、 c
2
or 或
a 触点并联连接
x 、 y 、 m 、 s 、 t 、 c
1
ori 或非
b 触点并联连接
x 、 y 、 m 、 s 、 t 、 c
1
orp 或脉冲上升沿
上升沿检出并联连接
x 、 y 、 m 、 s 、 t 、 c
2
orf 或脉冲下降沿
下降沿检出并联连接
x 、 y 、 m 、 s 、 t 、 c
2
anb 电路块与
并联电路块的串联连接
无
1
orb 电路块或
串联电路块的并联连接
无
1
out 输出
线圈驱动指令
y 、 m 、 s 、 t 、 c
y 、 m 、 s : 1
特殊 m : 2
t : 3
c : 3 ~ 5
set 置位
线圈接通保持指令
y 、 m 、 s
y , m : 1
s , t , c ,特殊 m : 2 d , v , z ,特殊 d : 3
rst 复位
线圈接通清零指令
y 、 m 、 s 、 t 、 c 、 d
y 、 m 、 s : 1
t 、 c : 2
d 、 v 、 z 、特殊 d : 3
pls 上升沿微分指令
上升沿检出指令
y 、 m
1
plf 下降沿微分指令
下降沿检出指令
y 、 m
1
mc 主控
公共串联触点的连接
y 、 m
3
mcr 主控复位
公共串联触点的清除指令
n
2
mps 进栈
运算存储
无
1
mrd 读栈
存储读出
无
1
mpp 出栈
存储读出与复位
无
1
inv 取反
运算结果的取反
无
1
nop 空操作
无动作
无
2
end 结束
程序结束
无
1
◇ ld 、ldi 、out 指令
ld 、ldi 、out 指令的功能、电路表示、操作元件、所占的程序步如下表所示。
以上ld、ldi两个指令还可与后面介绍的 anb 、 orb 指令配合用于分支回路的开头。
out :输出指令,表示对输出继电器 y 、辅助继电器 m 、状态继电器 s 、定时器 t 、计数器 c 的线圈进行驱动的指令,但不能用于输入继电器,下图是本组指令的应用实例。
需要注意的是:
out 指令可连续多次使用,相当于线圈的并联(如图 6.14 中的 out m100 和 out t0 k20 );定时器或计数器的线圈在使用 out 指令后,必须设定常数 k 或指定数据寄存器 d 的地址号。
图 ld 、 ldi 、 out 指令的使用
◇ 触点的串并联指令
( 1 ) and 、 ani 指令的功能、电路表示、操作元件、所占的程序步如下表所示。
and 和 ani 串联的触点数量无限制,并且可以多次使用。
下图所示的是使用本组指令的实例。图中 out 指令后,通过触点对其他线圈使用 out 指令(如图 中的 out y4 ),这种形式被称为纵接输出或连续输出。此种纵接输出必须将辅助继电器 m101 的线圈放在 y4 的线圈之上,否则将用到后面讲到的进栈和出栈指令。
图 and 、 ani 指令的应用
( 2 ) or 、 ori 指令的功能、电路表示、操作元件、所占的程序步如表 所示。
表 or 与 ori 指令在梯形图中的表示
or 、 ori 指令紧接在 ld 、 ldi 指令后使用,亦即对 ld 、 ldi 指令规定的触点再并联一个触点,并联的次数无限制,但限于编程器和打印机的幅面限制,应尽量做到 24 行以下。 or 、 ori 指令的使用如下图所示。
图 or 、 ori 指令的使用
◇ 电路块的串并联指令
1. 串联电路的并联( orb )指令
orb 指令的功能、电路表示、操作元件、所占的程序步如表所示。
表 orb 指令在梯形图中的表示
orb :多触点电路块的并联连接指令,其应用如下图所示。
orb 指令是不带操作元件的指令。 两个以上的触点串联连接的电路为串联电路块 ,将串联电路块并联使用时,用 ld 、 ldi 指令表示分支开始,用 orb 指令表示分支结束。图 6.17 给出了 orb 指令的使用情况。存在多条并联电路时,应在每个电路块后使用 orb 指令,对使用的并联电路数没有限制,但考虑到 ld 、 ldi 指令只能连续使用 8 次, orb 指令的使用次数也应限制在 8 次。
图 orb 指令的使用
2. 并联电路的串联( anb )指令
anb 指令的功能、电路表示、操作元件、所占的程序步如表 所示。
表 anb 指令在梯形图中的表示
anb :多触点电路块的串联连接指令,其应用如图 所示。
anb 指令是不带操作元件的指令。 两个或两个以上触点并联连接的电路称为并联电路块。 当并联电路块与前面的电路串联连接时,使用 anb 指令。即分支起点用 ld 、 ldi 指令,串联电路块结束后需使用 anb 指令,以表示与前面电路的串联。 anb 指令原则上可以无限次使用,但受 ld 、 ldi 指令只能连续使用 8 次的限制, anb 指令的使用次数也应限制在 8 次。
图 anb 指令的使用
◇ ldp/ldf 、 andp/andf 和 orp/orf 指令
ldp/ldf , andp/andf 和 orp/orf 指令的功能、电路表示、 操作元件、所占的程序步如下表所示。
表 ldp/ldf 、 andp/andf 和 orp/orf 指令在梯形图中的表示
ldp 、 andp 、 orp 指令分别为上升沿检出的取指令、与指令和或指令。触点的中间有一个向上的箭头, 对应的触点仅在指定位元件的上升沿(由 off 变为 on )时接通一个扫描周期。
ldf 、 andf 、 orf 指令分别为下降沿检出的取指令、与指令和或指令。触点的中间有一个向下的箭头, 对应的触点仅在指定位元件的下降沿(由 on 变为 off )时接通一个扫描周期。
图 ldp 、 ldf 指令的应用和时序图
◇ mc 、 mcr 指令
mc 、 mcr 指令的功能、电路表示、 操作元件、所占的程序步如下表所示。
表 mc 、 mcr 指令在梯形图中的表示
mc 为主控指令,用于公共串联接点的连接。
mcr 为主控复位指令,即 mc 的复位指令,表示公共串联接点的清除。
下图中的 x0 接通时,执行 mc 与 mcr 之间的指令。当输入条件 x0 断开时,不执行 mc 与 mcr 之间的指令,并且此时非积算定时器、计数器和用 out 指令驱动的软元件复位,而积算定时器、计数器、用 set/rst 指令驱动的元件保持当前的状态。使用 mc 指令后,母线移到主控接点的后面,与主控接点相连的接点必须用 ld 或 ldi 指令。 mcr 指令使母线回到原来的位置。在 mc/mcr 指令区内使用 mc/mcr 指令称为嵌套,嵌套级 n 的编号 (0 ~ 7) 顺次增大,返回时用 mcr 指令,并从大的嵌套级开始解除。
图 mc 、 mcr 指令的应用
◇ set 、 rst 指令
set 、 rst 指令的功能、电路表示、操作元件、所占的程序步如表 所示。
表 set 、 rst 指令在梯形图中的表示
set :置位指令,使操作保持 on 的指令。
rst :复位指令,使操作保持 off 的指令。
set 、 rst 指令的使用如图 6.21 所示。图中 x0 接通后, y0 被驱动为 on ,即使 x0 再变为 off , y0 仍保持为 on 的状态, x1 接通后 y0 才复位为 off 状态,详见图 6.21 的时序图。
对同一编程元件, set 、 rst 指令可以多次使用,不限制使用顺序,且最后执行者有效。
rst 指令可使数据寄存器 d 、变址寄存器 v 、 z 的内容清零,使积算定时器 t246 ~ t255 的当前值以及触点复位,还可使计数器 c 的输出触点复位及当前值清零。 rst 指令对计数器、定时器的应用如图 6.22 所示,当 x0 的常开触点接通时,积算定时器 t246 复位, x3 的常开触点接通时,计数器 c200 复位,此时它们的当前值被清零,常开触点断开,常闭触点闭合。
图 set 、 rst 指令的使用
图 定时器、计数器中的 rst 指令
◇ 栈存储器与多重输出电路( mps/mrd/mpp )指令
mps 、 mrd 、 mpp 指令的功能、电路表示、操作元件、所占的程序步如表 6.12 所示。
这组指令分别为进栈、读栈、出栈指令,用于多重输出电路中。
如图 6.23 所示,在 fx 系列可编程控制器中有 11 个用来存储中间运算结果的存储区域被称为栈存储器,堆栈采用先进后出的数据存取方式。使用一次 mps 指令,便将此刻的运算结果送入堆栈的第一层,以便以后处理有线圈的支路时可以调用该运算结果,此时原本存在第一层的数据将被移到堆栈的下一层。使用 mpp 指令,弹出存储在堆栈最上层的电路分支点对应的运算结果,将下一触点连接在该点,并从堆栈中去掉该点的运算结果。使用 mpp 指令时,堆栈中各层的数据顺次向上移动一层,最上层的数据被读出,同时该数据从堆栈内消失。
表 mps 、 mrd 、 mpp 指令在梯形图中的表示
图 堆栈示意图
mrd 指令用来读出最上层的最新数据,此时堆栈内的数据不移动。 mps 、 mrd 、 mpp 指令都是不带软元件的指令。 mps 、 mpp 必须成对使用,而且连续使用次数应少于 11 次。图 6.24 为一层堆栈实例,图 6.25 为二层堆栈实例。
图 一层堆栈
图 二层堆栈
◇ 脉冲输出、取反、空操作与结束指令
1. 脉冲输出指令( pls/plf )指令
pls 、 plf 指令的功能、电路表示、操作元件、所占的程序步如表 所示。
表 pls 、 plf 指令在梯形图中的表示
pls 、 plf 为脉冲输出指令。 pls 在输入信号上升沿产生一个扫描周期的脉冲输出,而 plf 在输入信号下降沿产生一个扫描周期的脉冲输出。图 是脉冲输出指令的例子。从时序图可以看出,当 x0 为 on 时, pls 指令在 x0 的上升沿使 m0 闭合一个扫描周期, m0 使 y0 置位为 on ;当 x1 为 on 时, plf 指令在 x1 的下降沿使 m1 闭合一个扫描周期, m1 使 y0 复位为 off 。也就是说, pls 、 plf 指令可将脉宽较宽的输入信号变成脉宽等于可编程控制器的扫描周期的触发脉冲信号,而信号周期不变。特殊继电器不能用作 pls 或 plf 的操作元件。
图 pls 、 plf 指令的应用及时序图
2. 取反操作( inv )指令
inv 指令的功能、电路表示、操作元件、所占的程序步如表 所示。
表 inv 指令在梯形图中的表示
inv :取反指令,表示将 inv 指令电路之前的运算结果取反。在梯形图上,用一条短斜线表示,它不带操作元件,不能直接与母线连接,也不能像 or , ori , orp , orf 一样单独使用。
在图 中,如果 x0 和 x1 同时为 on 并取反,或 x2 为 on 并取反,则 y0 为 on 。
图 inv 指令的应用
3. 空操作指令( nop )
空操作指令使该步做空操作。在程序中加入空操作指令,可在变更或增加指令时减少步序号的变化。用 nop 指令替换一些已写入的指令,可以改变电路。若将 ld 、 ldi 、 anb 、 orb 等指令换成 nop 指令,电路组成将发生很大的变化,亦可能使电路出错。当执行程序全部清零操作时,所有指令均变成 nop 。
4. 程序结束指令( end )
end 为程序结束指令。可编程控制器按照输入处理、程序执行、输出处理循环工作,若不在程序中写入 end 指令,则可编程控制器将从用户程序的第一步扫描到程序存储器的最后一步。若在程序中写入 end 指令,则 end 以后的程序步不再扫描,而是直接进行输出处理。也就是说,使用 end 指令可以缩短扫描周期。 end 指令的另一个用处是分段调试程序。调试时,可将程序分段后插入 end 指令,从而依次对各程序段的运算进行检查,在确认前面电路块动作正确无误之后依次删除 end 指令即可。