欧姆龙PLC的定时器与计数器应用
定时器与计数器是欧姆龙PLC编程中最基础也是最常用的功能指令。它们分别用于实现延时控制和次数控制,是自动化程序不可或缺的组成部分。本文详细介绍欧姆龙PLC中定时器和计数器的类型、工作原理、编程方法及实际应用案例。
1. 定时器(Timer)详解
1.1 定时器的基本概念
定时器是一种根据设定时间进行计时的功能指令。当满足启动条件后,定时器开始累加计时,达到设定值时输出触点动作。欧姆龙PLC提供多种定时器类型,适用于不同的控制场景。
1.2 定时器的类型
欧姆龙PLC主要包含以下几种定时器:
| 定时器类型 | 指令符号 | 功能描述 |
|---|---|---|
| 延时闭合定时器 | TON | 启动后延迟设定时间闭合触点 |
| 延时断开定时器 | TOF | 输入断开后延迟设定时间断开触点 |
| 脉冲定时器 | TP | 产生指定宽度的脉冲信号 |
| 累计定时器 | TTIM | 累计多个启动时间段的总和 |
| 高速定时器 | TIMH | 用于1~999.9秒的高速计时 |
1.3 定时器指令格式
定时器指令的基本格式如下:
TON T000 #10.0
TON:定时器类型T000:定时器编号(CP1H系列为T000~T511)#10.0:设定时间(单位为0.1秒,10.0表示1秒)
1.4 定时器的工作原理
以TON(延时闭合定时器)为例,其工作过程如下:
- 启动条件满足:当定时器的输入条件为ON时,定时器开始计时
- 计时过程:定时器的当前值PV(Present Value)从0开始递增
- 达到设定值:当PV等于设定值SV时,定时器触点闭合
- 输入断开:当输入条件变为OFF时,定时器停止计时,PV复位为0,触点断开
1.5 定时器编程示例
示例:电机启动延时
当启动按钮按下后,延迟5秒自动启动电机。
// 符号定义
I0.00: 启动按钮
I0.01: 停止按钮
T000: 延时定时器
Q100.00: 电机接触器
// 梯形图逻辑
I0.00 T000.contact Q100.00
---| |-----| |-----------( )---|
I0.01 Q100.00
---| |-----|/|-----( RST )------
T000 Q100.00
---| |-----| |-----( SET )------
// 定时器指令
TON T000 #50 // 50 × 0.1秒 = 5秒
2. 计数器(Counter)详解
2.1 计数器的基本概念
计数器用于统计输入信号的变化次数,当计数达到设定值时,计数器输出触点动作。欧姆龙PLC支持多种计数器类型,可以满足不同的计数需求。
2.2 计数器的类型
| 计数器类型 | 指令符号 | 功能描述 |
|---|---|---|
| 递减计数器 | CT | 从设定值开始递减计数,减到0时触点闭合 |
| 递增计数器 | CNT | 从0开始递增计数,达到设定值时触点闭合 |
| 可逆计数器 | CNTR | 既可递增也可递减计数 |
| 高速计数器 | CNTH | 用于高速输入信号的计数 |
2.3 计数器指令格式
递减计数器的基本格式:
CT 000 #10
CT:计数器类型000:计数器编号#10:计数值(计数到10次时触点动作)
2.4 计数器的工作原理
以CT(递减计数器)为例,其工作过程如下:
- 初始化:计数器上电或复位后,当前值PV等于设定值SV
- 计数脉冲:每当计数输入从OFF变为ON时,PV减1
- 达到目标:当PV减至0时,计数器触点闭合
- 复位:使用复位指令或复位输入使PV恢复为设定值
2.5 计数器编程示例
示例:产品数量统计
每通过一个产品,计数器加1,达到100个时输出报警。
// 符号定义
I0.00: 产品检测传感器
I0.01: 复位按钮
C000: 计数器
Q100.00: 达到数量报警灯
// 梯形图逻辑
I0.00 C000
---| |-----( CNT )----
C000 #100
I0.01 C000
---| |-----( RES )----
C000 Q100.00
---| |-----( )-------
3. 定时器与计数器的组合应用
3.1 定时器与计数器联合实现长延时
当需要超过999.9秒的延时(如1小时)时,可以将定时器与计数器组合使用。
示例:2小时延时程序
// 第一段:定时器计时1小时(3600秒)
TON T000 #36000 // 36000 × 0.1 = 3600秒 = 1小时
// 第二段:计数器累计2次
T000.contact C000
---| |-----------( CNT )---
C000 #2
// 输出
C000 Q100.00
---| |---------( )--------
3.2 定时器与计数器实现循环控制
利用定时器和计数器配合,可以实现周期性循环控制。
示例:间歇喷漆控制
每喷漆10秒,停止5秒,重复进行50次。
// 喷漆定时器(10秒)
TON T001 #100 // 10秒
// 停止定时器(5秒)
TON T002 #50 // 5秒
// 循环计数器
T001.contact C001
---| |------------( CNT )---
C001 #50
// 喷漆输出控制
I0.00 T001
---| |--------( TON #100 )--
T001.contact T002
---| |--------( TON #50 )---
// 喷漆电磁阀输出
T001.contact Q100.00
---| |---------( )--------
// 停止时不输出
T002.contact Q100.00
---|/|---------( )--------
4. 高速定时器与高速计数器
4.1 高速定时器TIMH
普通定时的最小单位为0.1秒,无法满足高速响应需求。TIMH高速定时器的最小单位为0.01秒,适用于高速控制场景。
TIMH T000 #100 // 100 × 0.01秒 = 1秒
4.2 高速计数器
高速计数器用于统计高速输入脉冲,CPU单元内置高速计数器可处理最高100kHz的脉冲输入。
高速计数器设置步骤:
-
在PLC设置中启用高速计数器
- 打开
CX-Programmer软件 - 双击
PLC进入PLC设置 - 找到
高速计数器选项 - 选择对应的计数器通道(如HSC0)
- 打开
-
设置计数模式
- 选择递增模式或相位差模式
- 根据编码器类型设定为线驱动输入或增量模式
-
编写高速计数程序
// 高速计数器0当前值存储在DM区
// 读取高速计数器当前值
@EDSFRC(004) // 高速计数器0
// 比较当前值与目标值
CMP(020) D100 // 当前值
#1000 // 目标值
// 等于时输出
= Q100.00
---| |-----( )--------
5. 定时器与计数器的复位处理
5.1 定时器复位
定时器在以下情况会自动复位:
- 启动输入从ON变为OFF时(对TON)
- 使用
RES指令强制复位
// 强制复位定时器
I0.01 T000
---| |-----( RES )----
5.2 计数器复位
计数器复位将当前值恢复为设定值,触点断开。
// 复位计数器
I0.01 C000
---| |-----( RES )----
5.3 批量复位
使用KEEP(011)指令和RES可以实现多个定时器或计数器的批量复位。
6. 常见应用案例
6.1 电机星三角启动控制
利用定时器实现电机星三角降压启动切换。
// 启动信号
I0.00 M0
---| |-----( )--------
// 星形接触器(启动时)
M0 T000
---| |-----( TON #30 )-- // 3秒后切换
T000 Q100.00
---| |-----( )--------
// 三角形接触器(切换后)
T000 Q100.01
---| |-----( )--------
// 主接触器
M0 Q100.02
---| |-----( )--------
6.2 输送带产品计数与分拣
// 产品检测计数
I0.00 C000
---| |-----( CNT )---
C000 #50
// 达到数量后提醒
C000 Q100.00
---| |-----( )--------
// 分拣气缸动作
C000 T001
---| |-----( TON #10 )--
T001 Q100.01
---| |-----( )--------
// 计数满后自动复位
C000 T002
---| |-----( TON #100 )--
T002 C000
---| |-----( RES )----
6.3 设备运行时间累计
使用累计定时器TTIM记录设备总运行时间。
// 设备运行信号
I0.00 TTIM T010
---| |-----( )-------- // 累计时间
#36000 // 1小时
// 运行时间存储(转换为小时)
TTIM(014) T010
D100 // 存储当前值
// 当累计达到100小时时维护提醒
MOV(021) #0
D100
D101
CMP(020) D101
#1000
= Q100.00
---| |-----( )--------
7. 注意事项与技巧
7.1 定时器编号范围
不同系列的欧姆龙PLC定时器编号范围不同:
| 系列 | 定时器数量 | 编号范围 |
|---|---|---|
| CP1E | 256 | T0~T255 |
| CP1L | 512 | T0~T511 |
| CP1H | 512 | T0~T511 |
| CJ2 | 4096 | T0~T4095 |
7.2 计数器编号范围
计数器同样有编号限制,使用时需注意不与定时器冲突:
| 系列 | 计数器数量 | 编号范围 |
|---|---|---|
| CP1E | 256 | C0~C255 |
| CP1L | 512 | C0~C511 |
| CP1H | 512 | C0~C511 |
7.3 编程建议
- 避免重复使用同一编号:定时器和计数器编号不能重复,否则会导致程序逻辑错误
- 合理设置设定值:根据实际需求设置合适的时间或计数单位
- 注意复位时机:确保在适当条件下复位定时器和计数器,避免意外动作
- 高速应用选高速型号:对于响应时间要求高的场景,必须使用TIMH或高速计数器
8. 故障排查
8.1 定时器不动作
- 检查启动条件是否满足
- 确认设定值格式正确(#后跟数字,单位自动识别)
- 验证定时器编号未被重复使用
8.2 计数器计数不准
- 检查计数输入是否为瞬时信号(计数器检测上升沿)
- 确认复位信号未异常触发
- 排查输入抖动导致的误计数
8.3 高速计数器无响应
- 确认高速计数器已在PLC设置中启用
- 检查输入点是否配置为高速输入
- 验证脉冲频率未超过硬件限制

暂无评论,快来抢沙发吧!