首页 理论教育 计数器指令与定时器指令

计数器指令与定时器指令

时间:2022-02-14 理论教育 版权反馈
【摘要】:正如前面所述,PLC内部元件沿用传统继电器控制电路中“继电器”概念,它利用内部电路的通断状态模拟对应物理继电器实际的接通与断开,因此,在PLC内部把它叫做“软继电器”。图7-3表示上述3条基本指令的用法。高速计数器主要用于对外部高速脉冲输入信号进行计数,例如在定位控制系统中,编码器的位置反馈脉冲信号一般高达几千赫兹,有时甚至达几十千赫兹,远远高于PLC程序扫描频率,这时一般的内部计数器已经无能为力。

PLC有3种最基本的编程语言:梯形图语言、语句表、逻辑功能图,其中梯形图语言直接来源于传统的继电器控制系统,其符号及规则充分体现了电气技术人员的读图及思维习惯,简洁直观,即使没有学过计算机技术的人也很容易接受。因此,本节重点说明梯形图的编制方法。

正如前面所述,PLC内部元件沿用传统继电器控制电路中“继电器”概念,它利用内部电路的通断状态模拟对应物理继电器实际的接通与断开,因此,在PLC内部把它叫做“软继电器”。一个软继电器实际上是一个内部存储单元,存储“0”或“1”两个数据,与物理继电器的线圈对应,称之为“得电”或“失电”状态。一个软继电器的线圈与常开触点及常闭触点的状态的关系完全等同于物理继电器。

梯形图程序中常用的符号如下。

1)左母线

在梯形图程序的左边,有一条从上到下的竖线,称为左母线。所有的程序支路都连接在左母线上,并起始于左母线。

左母线上有一个始终存在,由上而下从左到右的电流(能流),称为假象电流。今后将利用能流概念进行梯形图程序的分析。

2)触点

触点符号代表输入条件,如外部开关、按钮及内部条件等。位bit对应PLC内部的各个编程元件,该位数据(状态)为1时,表示“能流”能通过,即该点接通。由于计算机读操作的次数不受限制,用户程序中,常开触点、常闭触点可以使用无数次。

3)线圈

线圈表示输出结果,通过输出接口电路来控制外部的指示灯、接触器等。线圈左侧接点组成的逻辑运算结果为“1”时,能流可以达到线圈,使线圈得电动作,PLC将bit位地址指定的编程元件置位为“1”;逻辑运算结果为“0”,线圈不通电,编程元件的位置为0。即线圈代表PLC对编程元件的写操作。PLC采用循环扫描的工作方式,所以在用户程序中,每个线圈只允许使用一次。

4)指令盒

指令盒代表一些较复杂的功能,如定时器、计数器或数据传输指令等。当能流通过指令盒时,执行指令盒的功能。

7.2.1 常用逻辑指令

1.逻辑取及线圈驱动

图7-3 逻辑取及线圈驱动

常开触点与左母线相连,即常开触点逻辑运算起始。

常闭触点与左母线相连,即常闭触点逻辑运算起始。

线圈驱动指令功能是将运算结果输出到位地址指定的继电器,使其线圈状态发生变化,从而改变其常开触点与常闭触点的状态。线圈驱动不能操作输入继电器I。图7-3表示上述3条基本指令的用法。

2.触点串联与并联

图7-4表示触点的串联与并联。

3.串联电路块并联

图7-5表示串联电路块的并联。

图7-4 触点的串联与并联

图7-5 串联电路块的并联

4.并联电路块串联

图7-6表示并联电路块的串联。

图7-6 并联电路块的串联

5.置位、复位指令

S为置位指令,接通并保持;R为复位指令,使操作断开。置位(S)和复位(R)指令将从指定地址开始的N个点置位或者复位,可以一次置位或者复位N=1~255个点。

如果复位指令指定的是一个定时器位(T)或计数器位(C),指令不但复位定时器或计数器位,而且清除定时器或计数器的当前值。

S/R操作数:Q、M、SM、V、S。

置位、复位指令应用如图7-7所示。

6.正、负跳变指令

对于正跳变指令,一旦检测到前端有正跳变(由“0”到“1”),让能流接通一个扫描周期,用于驱动其后面的输出线圈等。

对于负跳变指令,一旦检测到前端有负跳变(由“1”到“0”),让能流接通一个扫描周期,用于驱动后面的线圈等。

正负跳变指令应用如图7-8所示。

图7-7 置位、复位指令应用

图7-8 正负跳变指令应用

7.RS/SR触发器指令

置位优先触发器是一个置位优先的锁存器。当置位信号(S1)和复位信号(R)都为真时,输出为真。

复位优先触发器是一个复位优先的锁存器。当置位信号(S)和复位信号(R1)都为真时,输出为假。

Bit参数用于指定被置位或者复位的布尔参数,可选的输出反映Bit参数的信号状态。

7.2.2 定时器指令

S7-200 PLC有3类定时器:延时接通定时器(TON)、有记忆的延时接通定时器(TONR)、延时断开定时器(TOF)。

TON和TONR在使能输入接通时开始计时,TOF用于在输入断开后延时一段时间断开输出。定时器的分辨率也称为时基,有3种:1ms、10ms、100ms。在选用定时器时,先选择定时器号(Txx),定时器号决定了定时器的分辨率,并且分辨率已经在指令盒上标出了。定时器总的定时时间=预设值(PT) ×时基。定时器的有效操作数见表7-3,定时器号和分辨率见表7-4。

表7-3 定时器的有效操作数

表7-4 定时器号和分辨率

1.延时接通定时器(TON)

每个定时器都有一个16位有符号的当前值寄存器及一个1bit的状态位。在图7-9所示的例子中,当I0.0接通并保持时,T37即开始计数;计时到设定值PT时,T37状态位置1,其对应的常开触点闭合,驱动Q0.0有输出;其后当前值仍增加,但不影响状态位。当I0.0断开时,T37复位,当前值清零,状态位清零,即回复到初始状态。若I0.0接通后未达到设定值时就断开,则T37跟随复位,即状态位为0,当前值也清零,Q0.0也不会有输出。对于16位的当前值寄存器,最大值是215-1,也即预设值最大为32767。

2.有记忆的延时接通定时器(TONR)

对于图7-10中定时器T1,当输入I0.0为1时,定时器开始计时;当I0.0为0时,当前值保持(不像TON一样清零);当下次I0.0再为1时,T1的当前值从上次保持值开始往上加,当达到预定值时,T1状态位置1,对应的常开触点闭合,驱动Q0.0有输出。以后即使I0.0再为0也不会使T1复位,要使T1复位必须用复位指令。I0.1闭合,T1及Q0.0都复位。

3.延时断开定时器(TOF)

延时断开定时器(TOF)用于在输入断开后,延时一段时间后断开输出。在图7-11中,当I0.0断开后,使定时器T33开始计时,当T33计时100ms后,Q0.0才有输出。

7.2.3 计数器指令

S7-200PLC的计数器分为内部计数器和高速计数器两大类。内部计数器用来累计输入脉冲的个数,其计数速度较慢,其输入脉冲频率必须小于PLC程序扫描频率,一般最高为几百赫兹,所以在实际应用中主要用来对产品进行计数等控制任务。高速计数器主要用于对外部高速脉冲输入信号进行计数,例如在定位控制系统中,编码器的位置反馈脉冲信号一般高达几千赫兹,有时甚至达几十千赫兹,远远高于PLC程序扫描频率,这时一般的内部计数器已经无能为力。本节只介绍内部计数器,高速计数器在后面章节有介绍。

图7-9 延时接通定时器应用

图7-10 有记忆的延时接通定时器应用

S7-200PLC提供了256个内部计数器(C0~C255),共分为3种类型:增计数器(CTU)、减计数器(CTD)和增/减计数器(CTUD)。每个计数器都有一个16位有符号的当前值寄存器和计数器状态位,最大计数值为32767。

计数器用来累计输入脉冲的个数,与定时器的使用类似。编程时先设定计数器的预设值,计数器累计脉冲输入端上升沿的个数。当计数器的当前值达到预设值时,状态位被置位为“1”,完成计数器控制的任务。计数器的设定值输入数据类型为INT型。寻址范围为VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、* VD、* AC、* LD和常数。一般情况下使用常数作为计数器的设定值。

1.增计数器(CTU)

增计数器应用如图7-12所示。首次扫描时,计数器位为OFF,当前值为0。在计数脉冲CU输入端I0.0的每个上升沿,C20计数1次,当前值增加1。当前值达到预设值PV为3时,计数器状态位置1,C20常开触点闭合,线圈Q0.0有输出。当前值可继续计数到32767后停止计数。当复位(R)输入端I0.1接通或执行复位指令时,计数器C20复位,计数器状态位置0,当前值清零,C20触点复位,Q0.0复位。

2.减计数器(CTD)

减计数指令从当前计数值开始,在每一个(CD)输入状态的低到高时递减计数。当Cxx的当前值等于0时,计数器Cxx置位。当装载输入端(LD)接通时,计数器位被复位,并将计数器的当前值设为预置值PV。当计数值到0时,计数器停止计数,计数器Cxx接通。图7-13为减计数器指令的应用示例。

图7-11 延时断开定时器应用

图7-12 增计数器应用

3.增/减计数器(CTUD)

增/减计数指令在每一个计数输入(CU)的低到高时增计数,在每一个减计数输入(CD)的低到高时减计数。计数器的当前值Cxx保存当前计数值。在每一次计数器执行时,预置值PV与当前值作比较。

图7-13 减计数器应用

当达到最大值(32767)时,在增计数输入处的下一个上升沿导致当前计数值变为最小值( -32768)。当达到最小值( -32768)时,在减计数输入端的下一个上升沿导致当前计数值变为最大值(32767)。当Cxx的当前值大于等于预置值PV时,计数器Cxx置位。否则,计数器关断。当复位端(R)接通或者执行复位指令后,计数器被复位。当达到预置值PV时,CTUD计数器停止计数。增减计数器应用示例如图7-14所示。

7.2.4 长时定时器与长计数器

1.长时定时器

已经知道内部定时器都有一个16位的有符号当前值寄存器,所以其最长的定时时间是3276.7s,即不到一个小时。这样问题就产生了,如果需要定时1h以上的时间,该如何实现。

当然可以考虑将多个定时器串联起来使用,但当要求的延时时间更长的话(比如10h)这种做法就会使程序变得很冗长。因此,为了产生更长的延时时间,可以将多个定时器、计数器联合起来使用,以扩大延时时间。例如现在需要延时2h,如图7-15是一种应用方法。

结合PLC的工作原理,具体的分析如下。

第1周期:I1.0常开闭合,T37开始计时;C0复位端R有效,计数器复位,当前值为0;Q1.0无输出。

第2周期:T37继续计时,C0复位端R无效,但C0当前值仍为0;Q1.0无输出。

图7-14 增减计数器应用

(a)梯形图;(b)时序图

……

第N周期:当这个周期到来时,T37计时达到20s时,T37的常开触点闭合,产生正跳变,C0加1,当前值变为1;T37常闭触点断开,T37复位,当前值清零; Q1.0无输出。

第N+1周期:I1.0常开仍闭合,T37常闭复位,T37又从零开始计时,C0当前值为1。

……

当C0计数达到预设值后,C0常开闭合,Q1.0有输出,即定时时间为T37的定时时间× C0的计数值=(200×100ms) ×360=2h后,Q1.0有输出。

2.长计数器

同定时器一样,计数器的最大计数值为32767。为了产生更长的计数值,可以将多个计数器连接等效为更大的计数值。图7-16为长计数器的应用。具体的工作过程读者可自行分析。

图7-15 长时定时器应用

7.2.5 比较指令

比较指令用于比较两个数值IN1和IN2或字符串的大小。在梯形图中,比较符有等于( = =)、大于( >)、小于( <)、不等于( <>)、大于等于( > =)、小于等于( < =),相应的梯形图格式如图7-17所示。

比较指令的功能:当比较数IN1和比较数IN2的关系符合比较符的条件时,比较触点闭合,后面的电路被接通。否则比较触点断开,后面的电路不接通。

比较指令有5种类型:字节比较、整数比较、双字比较、实数比较和字符串比较,在触点中间分别用B、I、D、R、S表示。其中字符比较是无符号的,整数、双字、实数的比较是有符号的。数值比较指令的运算符有==、>、<、<>、>=和<= 6种;而字符串的比较指令只有==和<>两种。比较指令应用如图7-18所示。

7.2.6 基本指令应用举例

1.单按钮启停控制

在传统的继电器控制系统中,控制电动机的启停往往需要两只按钮,在这里利用PLC逐行扫描的特点,使用一只按钮来控制电动机的启停。

将启动/停止的输入信号I0.0接按钮的常开触点,并通过输出点Q1.0连接接触器线圈来控制电动机。操作方法是:按一下该按钮,输入的是启动信号,再按一下该按钮,输入的则是停止信号,以此形成单数次时为启动,双数次时为停止。能够实现这个控制目的的方案有很多,以下是其中3个方案。

图7-16 长计数器的应用示例

图7-17 比较操作指令(比较符为“等于”时)

方案1如图7-19所示。

当第一次按下按钮时,在当前周期内,I0.0使辅助继电器M0.0、M0.1为ON状态,Q1.0为ON;第二个周期内,辅助继电器M0.1的常闭触点为OFF状态,使得M0.0为OFF,辅助继电器M0.2仍为OFF,M0.2的常闭触点仍为ON,Q1.0的自锁起作用,Q1.0仍为ON,从此不管经过多少扫描周期,这种状态亦不会改变。第一次松开按钮后到第二次按下按钮前,读入I0.0的状态为OFF,辅助继电器M0.0、M0.1、M0.2均为OFF状态,Q1.0也继续保持ON状态,当第二次按下按钮时,在当前扫描周期时,辅助继电器M0.0、M0.1、M0.2均为ON状态,M0.2的常闭触点为OFF,使Q1.0由ON变为OFF;到下一个扫描周期假如未松开按钮, M0.1的常闭触点使M0.0为OFF,使M0.2为OFF,Q1.0不具备吸合条件,仍为OFF。第二次松开按钮后到第三次按下按钮前,M0.0、M0.1、M0.2、Q1.0均为OFF状态,控制程序恢复到原始状态。所以,当第三次按下按钮时,又开始了启动操作,由此进行启停电动机。

方案2如图7-20所示。

图7-18 比较指令应用

图7-19 单按钮启停方案1

结合PLC的扫描周期,自行分析控制方案2。

方案3如图7-21所示。在这里,利用RS触发器及上升沿触发来实现单按钮控制电动机的启停。当第一次按下按钮:在第一个扫描周期,I0.0由0变成“1”,产生正跳变,触发器置位端有效,Q1.0为ON状态,电动机启动;第二个扫描周期,由于P指令的作用,无论继续按住或松开按钮,RS触发器的置位端和复位端都为0,Q1.0继续保持ON状态。当第二次按下按钮:由于Q1.0已经是ON状态了,所以此时RS触发器的置位端和复位端会同时为“1”,由于RS触发器的复位端优先,就会使得Q1.0复位,变成OFF状态,电动机就停止运行了。以此就形成了单数次按下为启动,双数次按下为停止。

图7-20 单按钮启停控制方案2

图7-21 单按钮启停控制方案3

2.昼夜报时器控制系统

设计一个以PLC来控制的昼夜报时系统,控制要求为:24小时昼夜定时报警,早上6:30,电铃每秒响一次,6次后自动停止;9:00—17:00,启动住宅报警系统;18:00,开园内照明;22:00,关园内照明。

根据控制要求,I0.0为启停开关;I0.1为15min快速调整与试验开关;I0.2为快速试验开关,使用时,在0:00时启动定时器,应用计数器、定时器和比较指令,构成24小时可设定定时时间的控制器,每15min为一个设定单位,共96个单位。系统的I/O分配见表7-5,梯形图如图7-22所示。

表7-5 昼夜报时系统的I/O分配表

图7-22 昼夜报时器梯形图

图7-22 昼夜报时器梯形图(续)

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

我要反馈