3.3 计数器指令及案例

计数器是一种用来累计输入脉冲个数的编程元件,其结构主要由1个16位当前值寄存器、1个16位预置值寄存器和1位状态位组成。在S7-200 SMART PLC中,按工作方式的不同,可将计数器分为加计数器、减计数器和加减计数器3大类。

3.3.1 加计数器(CTU)

(1)图说加计数器

图说加计数器,如图3-25所示。

图3-25 加计数器

(2)工作原理

复位端(R)的状态为0时,脉冲输入有效,计数器可以计时,当脉冲输入端(CU)有上升沿脉冲输入时,计数器的当前值加1,当当前值大于或等于预置值(PV)时,计数器的状态位被置1,其常开触点闭合,常闭触点断开;若当前值到达预置值后,脉冲输入依然上升沿脉冲输入,计数器的当前值继续增加,直到最大值为32767,在此期间计数器的状态位仍然处于置1状态;当复位端(R)状态为1时,计数器复位,当前值被清0,计数器的状态位置0。

(3)应用举例

如图3-26所示。

图3-26 加计数器应用举例

案例解析

当R端常开触点I0.1=1时,计数器脉冲输入无效;当R端常开触点I0.1=0时,计数器脉冲输入有效,CU端常开触点I0.0每闭合一次,计数器C1的当前值加1,当当前值到达预置值2时,计数器C1的状态位置1,其常开触点闭合,线圈Q0.1得电;当R端常开触点I0.1=1时,计时器C1被复位,其当前值清0,C1状态位清0。

3.3.2 减计数器(CTD)

(1)图说减计数器

图说减计数器,如图3-27所示。

图3-27 减计数器

(2)工作原理

当装载端LD的状态为1时,计数器被复位,计数器的状态位为0,预置值被装载到当前值寄存器中;当装载端LD的状态为0时,脉冲输入端有效,计数器可以计数,当脉冲输入端(CD)有上升沿脉冲输入时,计数器的当前值从预置值开始递减计数,当当前值减至为0时,计数器停止计数,其状态位为1。

(3)应用举例

如图3-28所示。

图3-28 减计数器应用举例

案例解析

当LD端常开触点I0.1闭合时,减计数器C2被置0,线圈Q0.1失电,其预置值被装载到C2当前值寄存器中;当LD端常开触点I0.1断开时,计数器脉冲输入有效,CD端I0.0常开触点每闭合一次,其当前值就减1,当当前值减为0时,减计数器C2的状态位被置1,其常开触点闭合,线圈Q0.1得电。

3.3.3 加减计数器(CTUD)

(1)图说加减计数器

图说加减计数器,如图3-29所示。

图3-29 加减计数器

(2)工作原理

当复位端(R)状态为0时,计数脉冲输入有效,当加计数输入端(CU)有上升沿脉冲输入时,计数器的当前值加1,当减计数输入端(CD)有上升沿脉冲输入时,计数器的当前值减1,当计数器的当前值大于或等于预置值时,计数器状态位被置1,其常开触点闭合、常闭触点断开;当复位端(R)状态为1,计数器被复位,当前值被清0;加减计数器当前值范围为-32768~32767,若加减计数器当前值为最大值32767,CU端再输入一个上升沿脉冲,其当前值立刻跳变为最小值-32768;若加减计数器当前值为最小值-32768,CD端再输入一个上升沿脉冲,其当前值立刻跳变为最大值32767。

(3)应用举例

如图3-30所示。

图3-30 加减计数器应用举例

案例解析

当与复位端(R)连接的常开触点I0.2断开时,脉冲输入有效,此时与加计数脉冲输入端连接的I0.0每闭合一次,计数器C2的当前值就会加1,与减计数脉冲输入端连接的I0.1每闭合一次,计数器C2的当前值就会减1,当当前值大于或等于预置值4时,C2的状态位置1,C2常开触点闭合,线圈Q0.1接通;当与复位端(R)连接的常开触点I0.2闭合时,C2的状态位置0,其当前值清0,线圈Q0.1断开。

3.3.4 计数器指令应用举例

(1)控制要求

用一个按钮控制一盏灯,当按钮按4次时灯点亮,再按2次时灯熄灭。

(2)解决方案

①I/O分配:控制按钮为I0.1,灯为Q0.1。

②程序编制:如图3-31所示。

图3-31 照明灯控制

案例解析

计数器C1的复位端为0可以计数,计数器C2的复位端为1不能计数;按钮按够(即I0.1=1)4次,C1接通,Q0.1得电并自锁,灯点亮,同时C1复位端接通,C2复位端断开可计数。再按(即I0.1=1)2次,C2接通,Q0.1失电,灯熄灭。