跳到正文
Learn-LAD
梯形图示例库/LAD 指令手册/JumpNot — 条件跳转(RLO=0)

JumpNot — 条件跳转(RLO=0)

RLO 满足条件时跳到指定标签,跳过中间的 networks;跳转指令是 terminal,没有 flow-out。

程序控制 S7-1200/1500 TIA V19 别名:跳转 / JMPN / Conditional jump

在 TIA 里试一下

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

TiaLink 设置

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

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

一句话

JumpNot 在 RLO 为 0 时跳到指定标签,跳过中间的 networks;它是 terminal 指令,没有 flow-out。

符号与引脚

分类:程序控制 不需要实例 模板值:无
引脚方向说明
in流输入左侧 RLO
label输入目标标签

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

最小示例

Skip=0 时跳到标签 SKIP,跳过「可能被跳过」那个 network;Skip=1 时正常执行中间的 network,然后继续到标签。

JumpNot_Example:Network 1 — 条件跳转;Network 2 — 可能被跳过;Network 3 — 跳转目标

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

怎么工作

  • JumpNot 必须放在 rung 的最后;它没有 flow-out,后面不能再接指令。
  • 目标标签必须在某个 network 的 labels 中声明;示例的标签在最后一个 network。
  • Jump 是 RLO=1 跳转;JumpNot 是 RLO=0 跳转,逻辑相反。
  • 跳转只影响当前 OB/FB 的扫描顺序;不会跳过标签之后的 network。
  • 跳转可以形成循环;必须确保有退出条件。

常用场景

1. RLO=0 时跳过

同上面的最小示例。

2. 跳过多个 network

Skip=0 时一次跳过两个输出 network,直接到标签继续执行。

JumpNot_SkipTwo:Network 1 — 条件跳转;Network 2 — 可能被跳过 1;Network 3 — 可能被跳过 2;Network 4 — 跳转目标

常见坑

  • 标签未声明:TIA 会报错;label 必须和某个 network 的标签完全一致。
  • 放在 rung 中间:JumpNot 是 terminal,后面不能再接指令。
  • 逻辑写反:JumpNot 是 RLO=0 跳转;需要 RLO=1 跳转时用 Jump。
  • 初始化被跳过:跳过的 network 不执行,里面的赋值/复位都不会发生;上电初始化要放在跳转之前。
  • 可读性:大量跳转会让扫描顺序难以追踪;优先用状态机/条件逻辑。

← 返回 LAD 指令手册