跳到正文
Learn-LAD
梯形图示例库/LAD 指令手册/CTUD — 双向计数器

CTUD — 双向计数器

CU 上升沿加 1,CD 上升沿减 1;R 复位,LD 装载 PV;QU/QD 分别表示到上限/下限。

计数器 S7-1200/1500 TIA V19 别名:双向计数器 / Up/down counter / CTUD

在 TIA 里试一下

选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。

TiaLink 设置

默认 http://localhost:8080。也可以在本页地址后加 ?tialink= 临时指定。

TiaLink 启动时若设置了 --api-token,这里要填相同的值;只保存在本机浏览器 localStorage,不会上传。

一句话

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 重新装载。

CTUD_Example:Network 1 — 双向计数 0..10

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 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 是当前值。

常用场景

1. 双向计数

同上面的最小示例。

2. 位置计数

Up/Down 记录位置,PV=100;到 100 时 AtTop=1。Reset 清零,Load 装载 100。

CTUD_Position:Network 1 — 位置 0..100

常见坑

  • 用电平计数:CU/CD 一直为 1 不会每个扫描都加/减。
  • R 和 LD 同时为 1:确认优先级;通常 R 优先,按 TIA 版本确认。
  • PV 类型不匹配:PV/CV 要使用同一种数据类型。
  • 上下限回绕:到类型上限/下限会回绕;需要时加限幅。
  • 实例冲突:同一个计数器实例在多处调用会互相覆盖。

← 返回 LAD 指令手册