跳到正文
Learn-LAD
梯形图示例库/LAD 指令手册/Abs — 绝对值

Abs — 绝对值

取绝对值:out = |in|。

数学 S7-1200/1500 TIA V19 别名:绝对值 / ABS / Abs

在 TIA 里试一下

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

TiaLink 设置

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

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

一句话

Abs 取绝对值:out = |in|。

符号与引脚

分类:数学 不需要实例 模板值:源类型(SrcType)
引脚方向说明
en流输入使能输入
in输入输入值
eno流输出使能输出
out输出绝对值

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

最小示例

Enable=1 时 Result = |A|;A=-5 和 A=5 都得到 5。

Abs_Example:Network 1 — 绝对值

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

怎么工作

  • EN 为 1 时执行;in/out 的数据类型要一致。
  • SrcType 模板决定类型;IN 的负数最小值取绝对值可能溢出(如 Int 的 -32768)。
  • ENO 可以继续串联;类型/溢出错误时可能为 0。

常用场景

1. 绝对值

同上面的最小示例。

2. 误差幅度

Magnitude = |Setpoint - Actual|,用于判断偏差大小而不关心方向。

Abs_Error:Network 1 — 误差绝对值

常见坑

  • 最小值溢出:有符号类型的最小负数取绝对值可能超出上限;先做范围检查。
  • 类型不一致:Int、DInt、Real 不要混用;先转换。
  • 丢掉方向:绝对值只保留大小;需要方向时保留原始差值。
  • ENO 未接:后面的指令可能不执行;需要串联时检查 ENO。
  • 每个扫描都算:条件/边沿触发要明确。

← 返回 LAD 指令手册