
CTD — 减计数器
CD 每个上升沿 CV-1;CV≤0 时 Q=1;LD 把 CV 重新装载为 PV。
一句话
CTD 是减计数器:CD 每个上升沿让 CV 减 1;CV ≤ 0 时 Q=1;LD=1 时把 CV 重新装载为 PV。
符号与引脚
分类:计数器
需要实例
模板值:计数值类型(value_type)
| 引脚 | 方向 | 说明 |
|---|---|---|
CD | 流输入 | 倒计数输入(上升沿) |
LD | 输入 | 装载输入:LD=1 时 CV=PV |
PV | 输入 | 装载值 |
Q | 流输出 | CV≤0 时为 1 |
CV | 输出 | 当前计数值 |
符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。
最小示例
每次 Down 上升沿倒计数,PV=10;到 0 时 Empty=1。Load=1 重新装载 10。

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。
怎么工作
| 事件 | CV |
Q |
|---|---|---|
CD 上升沿 |
-1 | CV ≤ 0 时为 1 |
LD=1 |
PV |
按装载后的值 |
CD 保持 1 |
不变 | 不变 |
CD是边沿计数:信号一直为 1 只算一次;再次计数需要先回 0 再上升。LD是装载,不是复位:装载后CV=PV,不是 0。PV/CV数据类型要一致;CV可以接到比较/显示。- 需要实例(
IEC_COUNTER或计数器实例 DB)。
常用场景
1. 批次倒计数
每来一个零件倒计数一次,PV=100;到 0 时 Batch=1,操作员重新装载。

2. 与 CTU 的区别
CTU 向上计数到 PV;CTD 从 PV 向下计数到 0。需要双向计数用 CTUD。
常见坑
- 用电平计数:
CD一直为 1 不会每个扫描都减;必须检测上升沿。 - 把 LD 当复位:
LD装载PV,不是清零;要清零可以把PV设为 0 再装载。 PV类型不匹配:PV/CV要使用同一种数据类型。- 实例冲突:同一个计数器实例在多处调用会互相覆盖。
- 下溢:
CV到类型下限会回绕;需要时用更大的数据类型或在 0 处停止。
在博途里试一下
TiaLink
把 TIA Portal 接到你的智能体:导入、编译、读回核对、PLCSIM 仿真。本地运行,工程数据不出厂。
打开 TiaLink也可以先在示例库里找一条用到 CTD 的完整程序,导入后再改。