
CTUD — 双向计数器
CU 上升沿加 1,CD 上升沿减 1;R 复位,LD 装载 PV;QU/QD 分别表示到上限/下限。
在 TIA 里试一下
选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。
一句话
CTUD 是双向计数器:CU 上升沿加 1,CD 上升沿减 1;R 复位,LD 装载 PV;QU/QD 分别表示到上限/下限。
符号与引脚
分类:计数器
需要实例
模板值:计数值类型(value_type)
| 引脚 | 方向 | 说明 |
|---|---|---|
CU | 流输入 | 加计数输入(上升沿) |
CD | 输入 | 减计数输入(上升沿) |
R | 输入 | 复位输入 |
LD | 输入 | 装载输入 |
PV | 输入 | 装载值 |
QU | 流输出 | CV≥PV 时为 1 |
QD | 输出 | CV≤0 时为 1 |
CV | 输出 | 当前计数值 |
符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。
最小示例
Up 加、Down 减,PV=10;到上限时 Full=1。Reset 清零,Load 重新装载。

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。
怎么工作
| 事件 | CV |
QU / QD |
|---|---|---|
CU 上升沿 |
+1 | CV ≥ PV 时 QU=1 |
CD 上升沿 |
-1 | CV ≤ 0 时 QD=1 |
R=1 |
0 | 都复位 |
LD=1 |
PV |
按装载值 |
CU/CD都是边沿计数:信号一直为 1 只算一次。R优先于计数;LD装载PV,不是清零。- 需要实例(
IEC_COUNTER或计数器实例 DB)。 QU/QD是上下限状态,CV是当前值。
常用场景
常见坑
- 用电平计数:
CU/CD一直为 1 不会每个扫描都加/减。 - R 和 LD 同时为 1:确认优先级;通常 R 优先,按 TIA 版本确认。
PV类型不匹配:PV/CV要使用同一种数据类型。- 上下限回绕:到类型上限/下限会回绕;需要时加限幅。
- 实例冲突:同一个计数器实例在多处调用会互相覆盖。
