可编程序控制器应用实训(三菱机型)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

项目2 基本逻辑指令及定时器、计数器基础

任务1 基本指令的使用

知识链接1 FX2N系列可编程控制器主要编程元件

PLC是按照电气继电控制线路设计思想,借助于大规模集成电路和计算机技术开发的一种新型工业控制器。使用者可以不必考虑PLC内部元器件的具体组成线路,而将PLC看成由各种功能元器件组成的工业控制器,利用编程语言对这些元器件线圈、触点进行编程以达到控制要求,为此使用者必须熟悉和掌握这些元器件的功能、编号及其使用方法。每种元器件都用特定的字母来表示,如X表示输入继电器、Y表示输出继电器、M表示辅助继电器、T表示定时器、C表示计数器、S表示状态元件等,并对这些元器件给予规定的编号。下面对主要元器件做一下说明。

FX2N系列PLC具有数十种编程元件,其编号分为两个部分。第一部分是代表功能的字母,如输入继电器用“X”表示,输出继电器用“Y”表示;第二部分为数字,数字为该类器件的序号。FX2N系列PLC中输入继电器及输出继电器的序号为八进制数,其余器件的序号为十进制数。

(1)输入继电器(X)。FX2N 系列可编程控制器输入继电器编号范围为X000~X267(184点)。

输入继电器与PLC的输入端相连,用于PLC接收外部开关信号,如开关、传感器等输入信号。输入继电器必须由外部信号来驱动,不能用程序驱动。它可提供无数对常开触点和常闭触点,这些接点在PLC内可以自由使用。

(2)输出继电器(Y)。输出继电器编号范围为Y000~Y267(184点)。

输出继电器是PLC用来输送信号到外部负载的元件,输出继电器只能用程序指令驱动,每一个输出继电器有一个外部输出的常开触点。而内部的软触点,不管是常开还是常闭,都可以无限次地自由使用。

(3)辅助继电器(M)。PLC内部有很多辅助继电器,辅助继电器与输出继电器一样只能用程序指令驱动,外部信号无法驱动它的常开、常闭触点,在PLC内部编程时可以无限次地自由使用。但是,这些触点不能直接驱动外部负载,外部负载必须由输出继电器的外部触点来驱动。

在逻辑运算中经常需要一些中间继电器进行辅助运算,这些器件往往用做状态暂存或移位等运算。另外,辅助继电器还具有一些特殊功能。下面是几种常见的辅助继电器。

① 通用辅助继电器M0~M499。通用辅助继电器按十进制地址编号M0~M499,共500点。

② 断电保持辅助继电器M500~M1023(524点)。PLC在运行过程中若发生停电,输出继电器和通用辅助继电器全部成为断开状态。上电后,除了PLC运行时被外部输入信号接通的以外,其他仍断开。不少控制系统要求保持断电瞬间状态。断电保持辅助继电器就是用于此场合,断电保持是由PLC内装锂电池支持的。

③ 特殊辅助继电器M8000~M8255(256点)。PLC内有256个特殊辅助继电器,这些特殊辅助继电器各自具有特定的功能。通常分为两大类。

● 只能利用其触点的特殊辅助继电器。线圈由PLC自动驱动,用户只可以利用其触点。例如:M8000为运行监控用,PLC运行时M8000接通;M8002为仅在运行开始瞬间接通的初始脉冲特殊辅助继电器;M8012为产生100ms时钟脉冲的特殊辅助继电器。

● 可驱动线圈型特殊辅助继电器,用户激励线圈后,PLC做特定动作,例如:M8030为锂电池电压指示灯特殊辅助继电器,当锂电池电压跌落时,M8030动作,指示灯亮,提醒PLC维修人员需要赶快调换锂电池了;M8033为PLC停止时输出保持辅助继电器;M8034为禁止全部输出特殊辅助继电器;M8039为定时扫描特殊辅助继电器。

需要说明的是,未定义的特殊辅助继电器不可在用户程序中使用。

辅助继电器的常开常闭触点在PLC内可无限次地使用。

(4)状态器(S)。状态器是构成状态转移图的重要器件,它与后述的步进顺控指令配合使用。通常状态器软件有下面五种类型。

● 初始状态器S0~S9共10点。

● 回零状态器S10~S19共10点。

● 通用状态器S20~S499共480点。

● 保持状态器S500~S899共400点。

● 报警用状态器S900~S999共100点。这100个状态器器件可用做外部故障诊断输出。

S0~S499没有断电保持功能,但是用程序可以将它们设定为有断点保持功能的状态。状态器的常开、常闭触点在PLC内可以使用,且使用次数不限。不用步进顺控指令时,状态器S可以作为辅助继电器M在程序中使用。此外,每一个状态继电器还提供一个步进触点,称为STL触点。在步进控制的梯形图中使用。

(5)定时器(T)。PLC中定时器T相当于继电器控制系统中的延时继电器,它可提供无限对常开延时触点、常闭延时触点供编程使用。定时器元件号按十进制编号,设定时间由编程时设定系数K决定。T0~T199 为0.1s定时器,设定值范围为0.1~3276.7s,最小单位为0.1s。T200~T245为0.01s定时器,设定值范围为0.01~327.67s。其他还有积算型定时器。

(6)计数器(C)。计数器元件号按十进制编号,计数器计数次数由编程时设定系数K决定。它可提供无限对常开触点、常闭触点供编程使用。C0~C99为通用加计数器,计数范围为1~32767。C100~C199为停电保持加计数器,计数范围为1~32767。其他还有可逆加减计数器等。

知识链接2 基本指令

FX系列PLC有基本指令20条,步进指令2条,功能指令近百条。本节主要介绍基本指令。

1.逻辑取及线圈驱动指令LD、LDI、OUT

LD取指令:表示读入一个与母线相连的常开触点指令,即常开触点逻辑运算起始。

LDI取反指令:表示读入一个与母线相连的常闭触点指令,即常闭触点逻辑运算起始。

OUT线圈驱动指令,也叫输出指令。

如图2.1所示是上述三条基本指令的使用说明。

图2.1 LD、LDI、OUT指令的使用说明

LD、LDI两条指令的目标元件是X、Y、M、S、T、C,用于将触点接到母线上。也可以与后述的ANB、ORB指令配合使用,在分支起点也可使用。

OUT是驱动线圈的输出指令,它的目标元件是Y、M、S、T、C。对输入继电器X不能使用。OUT指令可以连续使用多次。

对定时器的定时线圈使用OUT指令后,必须设定常数K,图中K为10,对应于延时时间为1s。对计数器的计数线圈,使用OUT指令后,也必须设定常数K,K表示计数器设定次数。

2.触点串联指令AND、ANI

AND与指令:用于单个常开触点的串联。

ANI与非指令:用于单个常闭触点的串联。

AND与ANI都是一个程序步指令,它们串联触点的个数没有限制,也就是说这两条指令可以多次重复使用。AND、ANI指令的使用说明如图2.2所示。目标元件为X、Y、M、S、T、C。

图2.2 AND、ANI指令的使用说明

3.触点并联指令OR、ORI

OR或指令:用于单个常开触点的并联。

ORI或非指令:用于单个常闭触点的并联。

OR与ORI指令都是一个程序步指令,它们的目标元件是X、Y、M、S、T、C。对这两种指令的使用做如下说明。

(1)OR和ORI指令用于单个触点的并联连接。

(2)需要两个以上触点串联连接电路块的并联连接时,要用后述的ORB指令。

OR、ORI是从该指令的当前步开始,对前面的LD、LDI指令并联连接。并联的次数无限制。OR、ORI指令的使用说明如图2.3所示。

图2.3 OR、ORI指令的使用说明

4.串联电路块的并联连接指令ORB

两个或两个以上的触点串联连接的电路叫串联电路块。对串联电路块并联连接时,有如下的说明。

(1)分支开始用LD、LDI指令,分支结果用ORB指令。

(2)ORB指令为无目标元件指令,而且为一个程序步。ORB有时也简称或块指令。ORB指令的使用说明如图2.4所示。

图2.4 ORB指令的使用说明

ORB指令的使用方法有两种:一种是在并联的每个串联电路块后加ORB指令,如图2.4所示的语句表;另一种是集中使用ORB指令,两种指令的使用对比如图2.5所示。对于前者分散使用ORB指令时,并联电路的个数没有限制,但对于后者集中使用ORB指令时,这种电路块并联的个数不能超过8个(即重复使用LD、LDI指令的次数限制在8次以下),所以不推荐用后者编程。

图2.5 两种ORB指令的使用对比

5.并联电路块的串联连接指令ANB

两个或两个以上接点并联的电路称为并联电路块,分支电路并联电路块与前面电路串联连接时,使用ANB指令。在使用时应注意以下几点。

(1)分支的起点用LD、LDI指令,并联电路块结束后,使用ANB指令与前面电路串联。

(2)ANB指令简称与块指令,ANB也是无操作目标元件,是一个程序步指令。ANB指令的使用说明如图2.6和图2.7所示。

图2.6 ANB指令使用说明之一

图2.7 ANB指令使用说明之二

(3)当并联的串联电路块≥3时,有两种编程方法,但最好采用如图2.6所示的编程方法。串联电路块逐块连接,对每一电路块使用ANB指令,ANB使用次数无限制。采用如图2.7所示的编程方法时,ANB指令虽然也可连续使用,但重复使用LD、LDI指令的次数限制在8次以下,这点请注意。

6.多重输出指令MPS、MRD、MPP

MPS为进栈指令。

MRD为读栈指令。

MPP为出栈指令。

PLC中有11个存储中间运算结果的存储器,称为栈存储器。进栈MPS指令就是将运算中间的结果存入栈存储器,使用一次MPS指令,该时刻的运算结果就压入栈存储器第一级,再使用一次MPS指令,当前的运算结果压入栈存储器的第一级,先压入的数据依次向栈的下一级推移。

使用出栈MPP指令就是将存入栈存储器的各数据依次上移,最上级数据读出后就从栈内消失。

读栈MRD指令是存入栈存储器的最上级的最新数据的读出专用指令,栈内的数据不发生上移和下移。

这组指令都是没有数据(操作元件号)的指令,可将触点先存储,因此可用于多重输出电路。MPS、MRD、MPP指令的使用说明如图2.8、图2.9、图2.10和图2.11所示。如图2.8所示给出了栈存储器与多重输出的指令。

图2.8 栈存储器与多重输出指令

图2.9 一层栈电路

图2.10 二层栈电路

图2.11 四层栈电路

如图2.9所示是一层栈电路,并且与ANB、ORB指令配合。

如图2.10所示是二层栈电路。如图2.11所示是一个四层栈电路。

MPS、MRD、MPP指令在使用中应注意:

(1)MPS、MRD、MPP指令用于多重输出电路。

(2)MPS与MPP指令必须配对使用。

(3)MPS与MPP连续使用必须少于11次。

7.主控及主控复位指令MC、MCR

MC为主控指令,用于公共串联触点的连接;MCR叫主控复位指令,即MC的复位指令。在编程时,经常遇到多个线圈同时受一个或一组触点控制。如果在每个线圈的控制电路中都串入同样的触点,将多占用存储单元,应用主控指令可以解决这一问题。使用主控指令的接点称为主控触点,它在梯形图中与一般的触点垂直。它们是与母线相连的常开触点,是控制一组电路的总开关。MC、MCR指令的使用说明如图2.12所示。

图2.12 MC、MCR指令的使用说明

MC指令是3步指令,MCR指令是2步指令,两条指令的操作目标元件是Y和M,但不允许使用特殊辅助继电器M。

当如图2.12所示的X0接通时,执行MC与MCR之间的指令;当输入条件断开时,不执行MC与MCR之间的指令。非积算定时器和用OUT指令驱动的元件复位,积算定时器、计数器、用SET/RST指令驱动的元件保持当前的状态。使用MC指令后,母线移到主控触点的后面,与主控触点相连的触点必须用LD或LDI指令。MCR使母线回到原来的位置。在MC指令区内使用MC指令称为嵌套,嵌套级N的编号(0~7)顺次增大,返回时用MCR指令,从大的嵌套级开始解除,如图2.13所示。

图2.13 多重嵌套主控指令

8.置位与复位指令SET、RST

SET为置位指令,其功能是使元件置位并保持,直至复位为止。RST为复位指令,使元件复位并保持,直至置位为止。SET、RST指令的使用说明如图2.14所示。

图2.14 SET、RST指令的使用说明

由图2.14(c)的波形图可知,当X0接通,即使再变成断开,Y0也保持接通。X1接通后,即使再变成断开,Y0也将保持断开。SET指令的操作目标元件为Y、M、S。而RST指令的操作元件为Y、M、S、D、V、Z、T、C。这两条指令是1~3程序步。用RST指令可以对定时器、计数器、数据寄存器、变址寄存器的内容清零。对同一编程元件,可多次使用SET和RST指令,还可用来复位积算定时器T246~T255和计数器。RST复位指令用于计算器、定时器的使用说明如图2.15所示。

图2.15 RST指令用于T、C的使用说明

当X0接通,输出接点T246复位,定时器的当前值也成为0。

输入X1接通期间,T246接收1ms时钟脉冲并计数,计到1234时Y0就动作。

32位计数器C200根据M8200的开、关状态进行递加或递减计数,它对X4接点的开关数计数。输出接点的置位或复位取决于计数方向及是否达到D0中所存的设定值。

输入X3接通,输出接点复位,计数器C200当前值清零。

9.脉冲输出指令PLS、PLF

PLS指令在输入信号上升沿产生脉冲输出,而PLF在输入信号下降沿产生脉冲输出,这两条指令都是2程序步,它们的目标元件是Y和M,但特殊辅助继电器不能作为目标元件。

PLS、PLF指令的使用说明如图2.16所示。使用PLS指令,元件Y、M仅在驱动输入接通后的一个扫描周期内动作(置1),即PLS指令使M0产生一个扫描周期脉冲,而使用PLF指令,元件Y、M仅在驱动输入断开后的一个扫描周期内动作,即PLF指令使元件M1产生一个扫描周期脉冲。

图2.16 PLS、PLF指令的使用说明

10.空操作指令NOP

NOP指令是一条无动作、无目标的一程序步指令。可编程控制器的编程器一般都有指令的插入和删除功能,在程序中一般很少使用NOP指令,执行完清除用户存储器的操作后,用户存储器的内容全部变为空操作指令。

11.程序结束指令END

END是一条无目标元件的一程序步指令。PLC反复进行输入处理、程序运算、输出处理,若在程序最后写入END指令,则END以后的程序不再执行,直接进行输出处理。在程序调试过程中,按段插入END指令,可以顺序扩大对各程序段动作的检查。采用END指令将程序划分为若干段,在确定处于前面电路块的动作正确无误之后,依次删去END指令。要注意的是,在执行END指令时,监视时钟也被刷新。

知识链接3 定时器与计数器

1.定时器

定时器相当于继电器电路中的时间继电器,可在程序中用做延时控制。

(1)定时器的类型。FX2N系列可编程控制器的定时器具有以下四种类型。

① 100ms定时器:T0~T199(200点),计时范围:0.1~3276.7s。

② 10ms定时器:T200~T245(46点),计时范围:0.01~327.67s。

③ 1ms积算定时器:T246~T249(4点:中断动作),计时范围:0.001~32.767s。

④ 100ms积算定时器:T250~T255(6点),计时范围:0.1~3276.7s。

(2)定时器的工作原理。可编程控制器中的定时器是对机内1ms、10ms、100ms等不同规格时钟脉冲累加计时的。定时器除了占有自己编号的存储器位外,还占有一个设定值寄存器和一个当前值寄存器。设定值寄存器存放程序赋予的定时设定值。当前值寄存器记录计时当前值。这些寄存器为16位二进制存储器。其最大值乘以定时器的计时单位值即是定时器的最大计时范围值。定时器满足计时条件时开始计时,当前值寄存器则开始记数,当它的当前值与设定值寄存器存放的设定值相等时定时器动作,其常开触点接通,常闭触点断开,并通过程序作用于控制对象,达到时间控制的目的。

(3)普通定时器与积算定时器的使用。如图2.17所示为定时器在梯形图中使用的情况。图2.17(a)所示为普通定时器。图2.17(b)所示为积算定时器。图2.17(a)中X001为计时条件,当X001接通时,定时器T10计时开始。K20为设定值。十进制数“20”为该定时器计时单位值的倍数。T10为100ms定时器,当设定值为“K20”时,其计时时间为2s。图中Y010为定时器的工作对象。当计时时间到,定时器T10的常开触点接通,Y010置1。在计时过程中,计时条件X001断开或PLC电源停电,计时过程中止且当前值寄存器复位(置0)。若X001断开或PLC电源停电发生在计时过程完成且定时器的触点已动作时,触点的动作也不能保持。

若把定时器T10换成积算定时器T250,情况就不一样了。积算定时器在计时条件失去或PLC失电时,其当前值寄存器的内容及触点状态均可保持,可在多次断续的计时过程中“累计”计时时间,所以称为“积算”。如图2.17(b)所示为积算定时器T250的工作梯形图。因积算定时器的当前值寄存器及触点都有记忆功能,必须在程序中加入专门的复位指令。图中X002即为复位条件。当X002执行“RST T250”指令时,T250的当前值寄存器及触点同时置0。

图2.17 定时器的使用

定时器可采用十进制常数(K)作为设定值,也可用后述的数据寄存器的内容做间接指定。

2.计数器

计数器在程序中用做计数控制。FX2N系列可编程控制器计数器可分为内部计数器及外部计数器。内部计数器是对机内元件(X、Y、M、S、T和C)的信号计数的计数器。由于机内信号的频率低于扫描频率,内部计数器是低速计数器,也称普通计数器。对高于机器扫描频率的信号进行计数,需用高速计数器。机内高速计数器的使用将在后续章节介绍。现将普通计数器分类介绍如下。

(1)16 位增计数器(设定值:1~32767)。有两种16 位二进制增计数器,通用的C0~C99(100点)和掉电保持用的C100~C199(100点)。

16位是指其设定值及当前值寄存器为二进制16位寄存器,其设定值在K1~K32767范围内有效。设定值K0与K1意义相同,均在第一次计数时,其触点动作。

如图2.18所示为16位增计数器的工作过程。图中计数输入X011是计数器的工作条件,X011每次接通驱动计数器C0 的线圈时,计数器的当前值加1。“K10”为计数器的设定值。当第10次执行线圈指令时,计数器的当前值和设定值相等,触点就动作。计数器C0 的工作对象Y000接通,在C0的常开触点置1后,即使计数器输入X011再动作,计数器的当前状态保持不变。

图2.18 16位增计数器的工作过程

由于计数器的工作条件X011本身就是断续工作的,外电源正常时,其当前值寄存器具有记忆功能,因而即使是非掉电保持型的计数器也需要复位指令才能复位。图中X010为复位条件。当复位输入X010接通时,执行RST指令,计数器的当前值复位为0,输出触点也复位。

计数器的设定值,除了常数设定外,也可通过数据寄存器间接设定。

使用计数器C100~C199时,即使停电,当前值和输出触点的置位/复位状态也能保持。

(2)32位增/减计数器(设定值:-2147483648~+2147483647)。有两种32位的增/减计数器,通用的C200~C219(20点)和掉电保持用的C220~C234(15点)。

32位是指其设定值寄存器为32位。由于是双向计数,32位的首位为符号位。设定值的最大绝对值为31 位二进制数所表示的十进制数,即为-2147483648~+2147483647。设定值可直接用数据或间接用数据寄存器的内容。间接设定时,要用元件号紧连在一起的两个数据寄存器。

计数的方向(增计数器或减计数器)由特殊辅助继电器M8200~M8234设定。

对于C×××,当M8×××接通(置1)时为减法计数,当M8×××断开(置0)时为加法计数。

如图2.19所示为32位增/减计数器的动作过程。图中X014作为计数输入驱动C200线圈进行加计数或减计数。X012为计数方向选择。计数器设定值为-5。当计数器的当前值由-6增加为-5时,其触点置1,由-5减小为-6时,其触点置0。

图2.19 32位增/减计数器的工作过程

32位增/减计数器为循环计数器。当前值的增减虽与输出触点的动作无关,但从+2147483647起再进行加计数,当前值就变成-2147483648。从-2147483648起再进行减计数,则当前值变为+2147483647。

当复位条件X013接通时,执行RST指令,则计数器的当前值为0,输出触点也复位;使用断电保持计数器,其当前值和输出触点状态皆能断电保持。

32位计数器可当做32位数据寄存器使用,但不能用做16位指令中的操作元件。