
InRange — 范围比较
in 落在 [min, max] 区间内(含边界)时输出导通。
在 TIA 里试一下
选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。
一句话
InRange 检查一个值是否落在 [min, max] 区间内;在区间内(含边界)时输出导通。
符号与引脚
分类:比较
不需要实例
模板值:源类型(SrcType)
| 引脚 | 方向 | 说明 |
|---|---|---|
pre | 流输入 | 左侧 RLO |
in | 输入 | 被检查的值 |
min | 输入 | 下限 |
max | 输入 | 上限 |
out | 流输出 | 条件成立时为 1 |
符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。
最小示例
Level 在 10 到 20 之间时 InBand=1;10 和 20 本身也算在区间内。

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 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是结果;可以继续串联其它条件。 - 浮点数范围比较要留精度余量。
常用场景
常见坑
- 边界值:
InRange包含min/max;要排除边界用Lt+Gt。 - 类型不一致:
Int和Real不要直接比较;先转换。 - Real 精度:计算值有误差,范围要留余量。
- min > max:结果通常恒为 0;参数要校验。
- 比较顺序:比较盒前面的 RLO 也会影响结果;
pre=0时比较不输出。
