首页 百科知识 计数器和比较指令

计数器和比较指令

时间:2022-10-21 百科知识 版权反馈
【摘要】:TON指令用于单一间隔的定时。当定时器动作后,必须用复位指令R使定时器复位。计数器用来累计输入脉冲的次数。S7-200计数器指令有三种类型:递增计数器指令CTU、增减计数器指令CTUD和递减计数器指令CTD,共计256个,可以根据实际情况和编程需要,对某个计数器的类型进行定义,编号为C0~C255。

4.3.2 定时器、计数器和比较指令

1)定时器指令

S7-200的CPU22X系列的PLC系统提供三种类型的定时器:通电延时定时器TON、有记忆通电延时定时器TONR和断电延时定时器TOF,总共提供256个定时器T0~T255,其中TONR为64个,其余192个可定义为TON或TOF。定时精度(时间增量/时间单位/分辨率)可分为三个等级:1ms、10ms、100ms。定时器的定时精度及编号见表4-10。

表4-10 CPU22X系列定时器的定时精度及编号

img279

定时器的定时时间为T=PT×S。式中,T为定时器的定时时间;PT是定时器的设定值,数据类型为整数型;S是定时器的精度。

定时器指令需要三个操作数:编号、设定值和使能输入端。

(1)接通延时定时器指令TON(On Delay Timer)。

TON指令用于单一间隔的定时。在梯形图中,TON指令是以功能框的形式编程,它有两个输入端:IN为启动定时器输入端,PT为定时器的设定值输入端。上电周期或首次扫描,定时器状态位OFF,当前值为0。当定时器的输入端IN接通时,定时器状态位为OFF,定时器当前值从0开始工作计时,定时器当前值等于或大于设定值时,定时器状态位ON,常闭触点断开,常开触点闭合,当前值继续计数到32 767。无论何时,只要IN为OFF,TON的当前值被复位到0。

在语句表中,接通延时定时器的指令格式为:TON TXXX(定时器编号),PT。

例:   TON T33,100

img280

图4-15 TON指令的梯形图和语句表

TON指令的梯形图和语句表如图4-15所示。当定时器T33的使能输入端I0.0为ON时,T33开始工作计时,定时器T33的当前寄存器从0开始增加。当T33的当前值达到设定值PT(图例为1s)时,T33的定时器状态位(bit)为ON,T33的常开触点闭合,使得Q0.3为ON。此时T33的当前值继续累加到最大值。在程序中也可以用复位指令R使定时器复位。

(2)有记忆接通延时定时器指令TONR(Retentive On Delay Timer)。

TONR指令用于多个时间间隔的累计定时。上电周期或首次扫描,定时器状态位OFF,当前值保持。使能输入接通时,定时器状态位为OFF,当前值从0开始计数时间。使能输入断开,定时器状态位和当前值保持最后状态。使能输入再次接通时,当前值从上次的保持值继续计数,当累计当前值达到预设值时,定时器状态位为ON,当前值连续计数到32 767。在梯形图中,TONR指令是以功能框的形式编程,指令名称为TONR,它有两个输入端:IN为启动定时器输入端,PT为定时器的设定值输入端。当定时器的输入端IN为ON时,定时器开始工作计时;当定时器的当前值大于等于设定值时,定时器被置位,其常开触点接通,常闭触点断开,定时器继续计时,一直计时到最大值32 767。如果在定时器的当前值小于设定值时,IN变成OFF,TONR的值保持不变,当IN为ON时,TONR在当前值基础上继续计时,直至当前值大于等于设定值。

在语句表中,保持型接通延时定时器的指令格式为:TONR TXXX(定时器编号),PT。

img281

图4-16 TONR指令的梯形图和语句表

例:  TONR T0,1000

TONR指令的梯形图和语句表如图4-16所示。

当定时器T0的使能输入端I0.0为ON时,T0开始工作计时,定时器T0的当前寄存器从0开始增加。当I0.0为OFF时,T0的当前值保持。当I0.0再次为ON时,T0在当前值基础上继续计时,直至T0当前值大于等于设定值PT(图例为1s)时,T0的定时器状态位(bit)为ON,T0的常开触点闭合,使得Q0.3为ON。此时T0的当前值继续累加到最大值或T0复位。当定时器动作后,必须用复位指令R使定时器复位。即使I0.0为OFF时,T0也不会复位。

(3)断开延时定时器指令TOF(Off-Delay Timer)。

TOF指令用于输入断开后单一间隔的定时。系统上电或首次扫描时,定时器状态位(bit)为OFF,当前值为0。使能输入接通时,定时器状态位为ON,当前值为0。当使能输入由接通到断开时,定时器开始计数,当前值达到预设值时,定时器状态位OFF,当前值等于预设值,停止计数。TOF复位后,如果使能输入再有从ON到OFF的负跳变,则可实现再次启动。在梯形图中,TOF指令是以功能框的形式编程,指令名称为TOF,它有两个输入端:IN为启动定时器输入端,PT为定时器的设定值输入端。当定时器的输入端IN为ON时,定时器状态位为ON,但是定时器当前值为“0”。只有当I0.0为OFF时,定时器才开始计时,当定时器的当前值大于等于设定值时,定时器被复位,常开触点断开,常闭触点接通,定时器停止计时。

img282

图4-17 TOF指令的梯形图和语句表

TOF指令的梯形图和语句表如图4-17所示。

在语句表中,接通延时定时器的指令格式为:TOF TXXX(定时器编号),PT。

例:   TOF T2,100

当定时器T2的使能输入端I0.0为ON时,T2的状态为ON,当I0.0为OFF时,T2开始工作计时,定时器T2的当前寄存器从0开始增加,直至当前值达到设定值PT,T2的状态位(bit)为OFF,当前值等于设定值,停止累加计数。在程序中也可以用复位指令R使定时器复位。

img283

图4-18 定时器应用示例

对于S7-200系列PLC的定时器,必须注意的是:1ms、10ms、100ms定时器的刷新方式是不同的。1ms定时器由系统每隔1ms刷新一次,与扫描周期及程序处理无关,因而当扫描周期较长时,在一个周期内可能被多次刷新,其当前值在一个周期内不一定保持一致;10ms定时器则由系统在每个扫描周期开始时自动刷新,由于是每个扫描周期只刷新一次,故在每次程序处理期间,其当前值为常数;100ms定时器则在该定时器指令执行时才被刷新。

由于定时器内部刷新机制的原因,图4-18(a)所示定时器循环计时(自复位)电路若选用1ms或10ms精度的定时器,运行时会出现错误,而图4-18(b)所示电路可保证1ms、10ms、100ms三种定时器均运行正常。只有了解了三种定时器不同的刷新方式,才能编写出可靠的程序。

另外,1ms、10ms、100ms定时器的定时精度不同,其预设值必须大于最小需要的时间间隔。使用1ms定时器要确保至少56ms的时间间隔,预设值应大于57;使用10ms定时器要确保至少140ms的时间间隔,预设值应大于15;使用100ms定时器要确保至少2 100ms的时间间隔,预设值应大于22。

2)计数器指令

计数器用来累计输入脉冲的次数。计数器也是由集成电路构成,是应用非常广泛的编程元件,经常用来对产品进行计数。

S7-200计数器指令有三种类型:递增计数器指令CTU、增减计数器指令CTUD和递减计数器指令CTD,共计256个,可以根据实际情况和编程需要,对某个计数器的类型进行定义,编号为C0~C255。指令操作数有四个方面:编号、预设值、脉冲输入和复位输入。每个计数器只能使用一次,不能重复使用同一计数器的线圈编号。每个计数器有一个16位的当前值寄存器及一个状态位,最大计数值PV的数据类型为整数型INT,寻址范围为:VW、IW、QW、NW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD及常数。

(1)递增计数器指令CTU(Couter Up)

首次扫描CTU时,定时器状态位为OFF,当前值为0。脉冲输入的每个上升沿,计数器计数1次,当前值增加1个单位,当前值达到预设值时,计数器位ON,当前值继续计数到32 767停止计数。复位输入有效或执行复位指令,计数器自动复位,即计数器位OFF,当前值为0。在梯形图中,递增计数器以功能框的形式编程,指令名称CTU,它有CU、R和PV共三个输入端。PV为设定值输入,CU为计数脉冲的启动输入端,CU为ON时,在脉冲输入的每个上升沿,计数器计数1次,当前值寄存器增加1个单位,如果当前值达到预设值PV时,计数器状态位为ON,计数器动作,当前值继续递增计数,最大可达到32 767。CU由ON变为OFF时,计数器的当前值停止计数,并保持当前值不变;当CU又变为ON时,计数器在当前值基础上继续递增计数。R为复位输入有效或执行复位指令,当R端为ON时,计数器复位,即计数器状态位为OFF,当前值为0。也可以通过复位指令R使CTU计数器复位。

在语句表中,递增计数器的指令格式:CTU CXXX,PV

例:   CTU C20,3

递增计数器的梯形图、语句表和时序图如图4-19所示。

(2)递减计数器指令CTD(Couter Down)

首次扫描CTD时,定时器状态位为OFF,其当前值为设定值。在梯形图中,递减计数器以功能框的形式编程,指令名称CTD,它有CD、LD和PV共三个输入端。PV为设定值输入,CD为计数脉冲的启动输入端,CD为ON时,在脉冲输入的每个上升沿,计数器计数1次,当前值寄存器减1个单位,如果当前值减到预0时,计数器状态位为ON,计数器动作。计数器当前的值为0。R为复位输入有效或执行复位指令,当R端为ON,计数器复位,即计数器状态位为OFF,当前值为设定值。也可以通过复位指令R使CTD计数器复位。

在语句表中,递减计数器的指令格式:CTD CXXX,PV

例:   CTD C40,4

img284

图4-19 递增计数器的梯形图、语句表和时序图

递减计数器的梯形图、语句表和时序图如图4-20所示。

img285

图4-20 递减计数器的梯形图、语句表和时序图

(3)增减计数器指令CTUD(Couter Up/Down)

首次扫描CTUD时,其状态位为OFF,其当前值为0。在梯形图中,递增计数器以功能框的形式编程,指令名称CTUD,它有2个脉冲输入端CU和CD,1个设定值输入端PV和1个复位输入端R。CU为递增计数脉冲的输入端,在CU的脉冲输入的每个上升沿,计数器计数1次,当前值寄存器增加1个单位,CD为递减计数脉冲的输入端,在CD的脉冲输入的每个上升沿,计数器计数1次,当前值寄存器递减1个单位。如果当前值达到预设值PV时,计数器状态位为ON,计数器CTUD动作。R为复位输入有效或执行复位指令,当R端为ON,计数器CTUD复位,即计数器CTUD状态位为OFF,当前值为0。也可以通过复位指令R使CTUD计数器复位。

增减计数器的计数范围为-32 768~32 767。当CTUD计数到最大值32 767后,如CU端又有计数脉冲输入,在这个计数脉冲的上升沿,使当前值寄存器跳变到最小值-32 768;反之,在当前值为最小值-32 768后,如CD端又有计数脉冲输入,在这个计数脉冲的上升沿,使当前值寄存器跳变到最大值32 767。

在语句表中,增减计数器的指令格式:CTUD CXXX,PV

例:   CTUD C30,5

增减计数器的梯形图、语句表和时序图如图4-21所示。

img286

图4-21 增减计数器的梯形图、语句表和时序图

3)比较指令

比较指令是将两个操作数IN1和IN2按指定的条件作比较,条件成立时触点就闭合。比较运算符有:等于(=)、大于等于(≥)、小于等于(≤)、大于(>)、小于(<)、不等于(<>)。在梯形图中,比较指令是以常开触点的形式编程的,在常开触点的中间注明比较参数和比较运算符。当比较的结果为真时,该动触点就闭合。在功能块图中,比较的结果是以功能框的形式编程的。当比较的结果为真时,输出接通。在语句表中,比较指令是与基本逻辑指令LD、A和O进行组合后编程的。当比较的结果为真时,PLC将栈顶置1。

比较指令的类型有:字节(BYTE)比较、整数(INT)比较、双字整数(DINT)比较和实数(REAL)比较。操作数IN1和IN2的寻址范围见表4-11。

表4-11 比较指令的操作数IN1和IN2的寻址范围

img287

(1)字节比较指令

字节比较用于比较两个字节型整数值IN1和IN2的大小,字节比较是无符号的。比较式可以是LDB、AB或OB后直接加比较运算符构成。

例如:LDB=、AB<>、OB≥等。

整数IN1和IN2的寻址范围:VB、IB、QB、MB、SB、SMB、LB、*VD、*AC、*LD和常数。

指令格式:

LDB=   VB10,  VB12

AB<>  MB0,  MB1

OB≤   AC1,  116

(2)整数比较指令

整数比较用于比较两个一字长整数值IN1和IN2的大小,整数比较是有符号的(整数范围为16#8000~16#7FFF之间)。比较式可以是LDW、AW或OW后直接加比较运算符构成。

如:LDW=、AW<>、OW≥等。

整数IN1和IN2的寻址范围:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常数。

指令格式:

LDW=   VW10, VW12

AW<>  MW0, MW4

OW≤   AC2, 1160

(3)双字整数比较指令

双字整数比较用于比较两个双字长整数值IN1和IN2的大小,双字整数比较是有符号的(双字整数范围为16#80000000和16#7FFFFFFF之间)。

指令格式:

LDD=  VD10, VD14

AD<> MD0,  MD8

OD≤  AC0,  1160000

LDD≥  HC0, *AC0

(4)实数比较指令

实数比较用于比较两个双字长实数值IN1和IN2的大小,实数比较是有符号的(负实数范围为-1.175-495E-38~-3.402 823E+38,正实数范围为+1.175-495E-38~+3.402 823E+38)。比较式可以是LDR、AR或OR后直接加比较运算符构成。

指令格式:

LDR=   VD10, VD18

AR<>  MD0,  MD12

OR≤   AC1,  1160.478

AR>  *AC1,  VD100

(5)数据比较指令应用实例

一自动仓库存放某种货物,最多6 000箱,需对所存的货物进出计数。货物多于1 000箱,灯L1亮;货物多于5000箱,灯L2亮。

分析:需要检测某种货物的进、出货情况,可以用增减计数器进行统计。L1和L2分别受Q0.0和Q0.1控制,数值1000和5000分别存储在VW20和VW30字存储单元中。

本控制系统比较指令应用实例的梯形图、语句表和时序图如图4-22所示。

img288

图4-22 比较指令应用实例的梯形图、语句表和时序图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈