
JmpList — 跳转列表
按 k 跳到 labels[k];k 用 UInt,越界不跳转。
在 TIA 里试一下
选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。
一句话
JmpList 按 k 跳到 labels[k];k 用 UInt,越界不跳转。
符号与引脚
分类:程序控制
不需要实例
模板值:无
| 引脚 | 方向 | 说明 |
|---|---|---|
en | 流输入 | 左侧 RLO |
k | 输入 | 索引(UInt) |
符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。
最小示例
Enable=1 时:Sel=0 跳 L0,Sel=1 跳 L1;其它值不跳。

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。
怎么工作
k是索引,从 0 开始;labels是目标标签列表(Card= 列表长度)。k必须是UInt(用Int编译会报类型不匹配)。- 标签要声明在目标 network 里。
JmpList是 terminal:必须是 rung 的最后一项。
常用场景
常见坑
- k 用 Int:编译报 “Int 与 UInt 不匹配”;改成
UInt。 - 越界:
k >= labels.length时不跳转;需要兜底就加范围判断。 - 标签未声明:每个 label 都要在某个 network 的
labels里声明。 - 不是最后一个元素:跳转类指令必须是 rung 的最后一项。
- 和 Switch 混淆:
JmpList按索引,Switch按值比较。
