跳到正文
Learn-LAD
梯形图示例库/LAD 指令手册/Dec — 自减

Dec — 自减

每次执行把操作数减 1。

数学 S7-1200/1500 TIA V19 别名:自减 / Dec

在 TIA 里试一下

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

TiaLink 设置

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

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

一句话

Dec 每次执行把操作数减 1。

符号与引脚

分类:数学 不需要实例 模板值:目标类型(DestType)
引脚方向说明
en流输入使能输入
operand输入被修改的操作数(InOut)
eno流输出使能输出

符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。

最小示例

Enable=1 时 Count 每个扫描减 1;Enable=0 时不再变化。

Dec_Example:Network 1 — 每次执行把操作数减 1。

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。

怎么工作

  • operand 是 InOut 变量:指令读它、改它、再写回。
  • DestType 模板决定数据类型;EN/ENO 是使能。
  • 到类型上限/下限会回绕(如 Int 到 32767 再加变 -32768),需要时先做范围检查。
  • 每个扫描都执行:连续使能会连续自增/自减,通常配边沿或条件。

常用场景

1. 单步递增/递减

同上面的最小示例。

2. 倒计数

用边沿触发或条件使能,让 Index 每次事件只减 1。

Dec_Index:Network 1 — 每次执行把操作数减 1。

常见坑

  • 每个扫描都加/减:EN 一直为 1 时值会连续变化;要单次用 PContact/边沿。
  • 类型上限回绕:Int/DInt 到边界会回绕,必要时用更大类型或先判断。
  • operand 用 Output:TIA 不允许读 Output;用 InOut 或 Static。
  • ENO 未接:后面的指令可能不执行;需要串联时检查 ENO。
  • 多实例写同一变量:多个 Inc/Dec 写同一 operand,结果依赖扫描顺序。

← 返回 LAD 指令手册