跳到正文
Learn-LAD
梯形图示例库/LAD 指令手册/InRange — 范围比较

InRange — 范围比较

in 落在 [min, max] 区间内(含边界)时输出导通。

比较 S7-1200/1500 TIA V19 别名:范围比较 / IN_RANGE / InRange

在 TIA 里试一下

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

TiaLink 设置

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

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

一句话

InRange 检查一个值是否落在 [min, max] 区间内;在区间内(含边界)时输出导通。

符号与引脚

分类:比较 不需要实例 模板值:源类型(SrcType)
引脚方向说明
pre流输入左侧 RLO
in输入被检查的值
min输入下限
max输入上限
out流输出条件成立时为 1

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

最小示例

Level 在 10 到 20 之间时 InBand=1;10 和 20 本身也算在区间内。

InRange_Example:Network 1 — InRange — 范围比较

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

怎么工作

in min max out
15 10 20 1
10 10 20 1
20 10 20 1
9 / 21 10 20 0
  • 区间包含边界;如果不希望包含边界,用 Lt/Gt 组合。
  • in/min/max 的数据类型必须一致;SrcType 模板用于类型引用。
  • 比较盒的 pre 是左侧 RLO,out 是结果;可以继续串联其它条件。
  • 浮点数范围比较要留精度余量。

常用场景

1. 范围判断

同上面的最小示例。

2. 温度正常区间

Temp 在 20.0 到 80.0 之间时 Normal=1;超出范围报警。

InRange_Temp:Network 1 — 温度范围

常见坑

  • 边界值:InRange 包含 min/max;要排除边界用 Lt + Gt。
  • 类型不一致:Int 和 Real 不要直接比较;先转换。
  • Real 精度:计算值有误差,范围要留余量。
  • min > max:结果通常恒为 0;参数要校验。
  • 比较顺序:比较盒前面的 RLO 也会影响结果;pre=0 时比较不输出。

← 返回 LAD 指令手册