- PLC编程及案例手册
- 刘振全 王汉芝编著
- 2670字
- 2021-12-24 18:21:22
4.4 计数器指令
4.4.1 计数器
(1)计数器指令格式及功能
计数器指令格式及功能如表4-20所示。
表4-20 计数器指令格式及功能
(2)计数器相关参数
① CTU、CTD、CTUD CT指计数器,U(UP)是增加的意思,D(DOWN)是减少的意思,UD则指增减。故CTU、CTD、CTUD分别为增计数器、减计数器和增减计数器标志。
② 计数器编号Cn Cn为计数器编号,取值范围为C0~C255。
③ CU、CD CU为增计数脉冲输入端,CD为减计数脉冲输入端,数据类型都为BOOL型。
④ 脉冲设定值PV PV为脉冲设定值输入端,数据类型为INT型。
⑤ R、LD R为复位信号输入端,LD为装载输入端,数据类型都为BOOL型。
⑥ 计数器位和计数器当前值Cn Cn不仅仅是计数器的编号,它还包含两方面的变量信息:计数器位和计数器当前值。
计数器位:存储计数器的状态,当计数器的当前值大于等于预设值PV时,该位发生动作,其数据类型为BOOL型,取值为0或1。
计数器当前值:其数据类型为16位有符号整数。
4.4.2 计数器指令编程案例
(1)例说增计数器(CTU)
从梯形图4-32(a)来看,当I0.1断开时,复位端(R)的状态为0,此时,当脉冲输入端CU持续有上升沿脉冲输入时,计数器的当前值加1,当前值增加到等于预设值(PV)时,计数器位被置1,其常开触点C2闭合,使Q0.0得电。
图4-32 梯形图和时序图
若此时脉冲输入依然有上升沿脉冲输入,计数器的当前值将继续增加,直到达到32767为止。在此期间计数器位保持1,其常开触点C2保持闭合,使Q0.0保持得电。
当I0.1闭合时,计数器被复位,其当前值被清0,计数器位变0,使Q0.0失电,此时,即使脉冲输入端有上升沿脉冲输入,计数器不再计数,直到I0.1断开,计数器才会重新工作。
从时序图4-32(b)来看,I0.1共有三次断开。
① 第一次 当I0.1第一次断开期间,I0.0有两个脉冲上升沿,计数器的当前值有两次递增,此时当前值为2,还没有达到预设值3,计数器位保持0。随后,I0.1闭合时,计数器被复位,其当前值被清0。
② 第二次 当I0.1第二次断开期间,I0.0有三个脉冲上升沿,每来一个上升沿,计数器加一。计数器的当前值加到3时,正好等于预设值,计数器位变为1,其常开触点C2闭合,使Q0.0得电;随后,I0.1闭合时,计数器被复位,其当前值被清0,计数器位变为0,其常开触点C2断开,使Q0.0失电。
③ 第三次 当I0.1第三次断开期间,计数器开始工作,但因为脉冲输入没有上升沿脉冲输入,计数器当前值和计数器位没有改变。
(2)例说减计数器(CTD)
从梯形图4-33(a)来看,当I0.1闭合时,计数器被复位,计数器位清零,预设值3装载入计数器的当前值中。
图4-33 梯形图和时序图
当I0.1断开时,装载端LD的状态变为0,计数器开始接受脉冲输入,当脉冲输入端(CD)每来一个上升沿,计数器的当前值就减1,当前值减为0时,计数器停止计数,当前值不再改变,其计数器位C1变为1,线圈Q0.0得电。
从时序图4-33(b)来看,I0.1共闭合两次:
① 第一次 当I0.1第一次闭合时,计数器被复位,计数器位清零,计数器的当前值等于预设值3;
I0.1断开以后,计数器开始接受脉冲输入,当脉冲输入端(CD)来第三个上升沿时,计数器的当前值减为0,计数器停止计数,其计数器位C1变为1,线圈Q0.0得电。此后即使再来上升沿,当前值不再改变。
② 第二次 当I0.1第二次闭合时,计数器位C1清零,计数器的当前值又等于预设值3,重复第一次的过程。
(3)例说增减计数器(CTUD)
从梯形图4-34(a)来看:
图4-34 梯形图和时序图
① 当I0.2断开时,复位端(R)状态为0,计数脉冲输入有效,当增计数输入端(CU)有上升沿脉冲输入时,计数器的当前值加1,当减计数输入端(CD)有上升沿脉冲输入时,计数器的当前值减1。
② 当计数器的当前值大于等于预设值时,计数器位被置1,其常开触点C48闭合,线圈Q0.0得电。此时,如果脉冲输入端CU或CD继续有脉冲上升沿输入时,则当前值将继续增加或减小。
③ 计数器的当前值达到最大值32767后,下一个CU脉冲上升沿将使计数器当前值跳变为最小值-32768。计数器的当前值达到最小值-32768后,下一个CD脉冲上升沿使计数器的当前值跳变为最大值32767。
④ 当I0.2闭合时,复位端(R)状态为1,计数器位置0,当前值变零。
从时序图4-34(b)来看:
① 当I0.2断开期间,计数脉冲输入有效,当增计数输入端(CU)有上升沿脉冲输入时,计数器的当前值加1,到第4个上升沿,计数器的当前值达到预设值4,计数器位被置1,其常开触点C48闭合,线圈Q0.0得电。
②接着脉冲输入端CU又来一个上升沿,使当前值加到5,随后,CD端又来两个下降沿,使当前值减到3,此时当前值小于预设值,计数器位变为0。
③当I0.2闭合时,计数器位置0,当前值变0。
④当计数器的当前值大于等于预设值时,计数器位为1,当计数器的当前值小于预设值时,计数器位为0。
4.4.3 综合实例
综合实例1——倍数计时
范例示意如图4-35所示。
图4-35 范例示意
日常生活中经常需要各种定时器以满足不同方面的需求,这里我们利用PLC控制的倍数计时程序来完成成倍形式的计时功能。
元件说明见表4-21。
表4-21 元件说明
控制程序如图4-36所示。
图4-36 控制程序
① 接通启动开关I0.0,定时器T37开始定时,10s后,定时时间到,T37常开触点闭合一次,其常闭触点T37断开,使T37复位。复位后,T37常闭触点又闭合使T37重新定时,这样便可实现每隔10s,T37的常开触点闭合一次。
② T37常开触点每闭合一次,计数器的当前值就加1。当计数器的当前值累计到5时,C0=ON,Q0.0=ON,提醒装置启动。同时,梯形图第1行的C0常闭触点断开,使T37复位,停止计时。
③ 按下I0.1时,I0.1=ON,C0复位。
综合实例2——产品批量包装与产量统计
范例示意如图4-37所示。
图4-37 范例示意
在产品包装线上,光电传感器每检测到6个产品,机械手动作1次,将6个产品转移到包装箱中,机械手复位;当24个产品装满后,进行打包,打印生产日期,统计日产量,最后下线。图4-37为产品的批量包装与产量统计示意图,光电传感器A用于检测产品,6个产品通过后,向机械手发出动作信号,机械手将这6个产品转移至包装箱内,转移4次后,开始打包,打包完成后,打印生产日期;传感器B用于检测包装箱,统计产量,下线。
元件说明见表4-22。
表4-22 元件说明
控制程序如图4-38所示。
图4-38 控制程序
① 光电传感器每检测到1个产品时,I0.0就触发1次(OFF→ON),C0计数1次。
② 当C0计数达到6次时,C0的常开触点闭合,Q0.0=ON,机械手执行移动动作,同时C1计数1次。
③ 当机械手移动动作完成后,机械手完成传感器接通,I0.1由OFF→ON变化1次,复原指令被执行,Q0.0和C0均被复位,等待下次移动。
④ 当C1计数达4次时,C1的常开触点闭合,Q0.1=ON,打包机将纸箱折叠并封口,完成打包后,I0.2由OFF→ON变化1次,复原指令被执行,Q0.1和C1均被复位,同时Q0.2为ON,打号机将生产日期打印在包装箱表面。
⑤ 光电传感器检测到包装箱时,I0.3就触发1次(OFF→ON),C112计数1次。按下清零按钮I0.4可将产品产量记录清零,又可对产品数从0开始进行计数。