22-3. PLC的程序控制指令(跳转及标号指令)

22-3. PLC的程序控制指令(跳转及标号指令)
其核心作用类似于计算机编程中的 GOTO语句,用于改变程序执行的顺序流,实现程序分支选择。


一、核心概念:两条指令,一个组合

  1. 跳转指令
  • 名称 :JMP n(n 为 0-255 的数字)。
  • 功能 :当 前面的条件满足(输入有效) 时,它就立即"命令"程序跳转走。
  • 类比:就像路牌上写着"如果前方拥堵,请跳转到3号路线"。
  1. 标号指令
  • 名称 :LBL n(n 必须与对应的 JMP n中的数字相同)。
  • 功能 :它标记了程序中的一个目标位置,是跳转指令的目的地。
  • 类比:就像高速公路上的"3号路线"入口标识。
    简单来说 :JMP是 "从哪里跳" 的命令,LBL是 "跳到哪里去" 的标记,两者通过相同的数字 n 配对使用。

二、工作原理

图片中的例子清晰地展示了这个过程:

  • 梯形图(左)
    • I0.0是一个输入触点(如一个按钮开关)。
    • 当 I0.0接通(为1) 时,JMP 3指令生效。
    • 程序不会继续向下执行 紧随其后的常规逻辑,而是直接跳转 到标有 LBL 3的地方开始执行。
    • 如果 I0.0断开(为0) ,JMP 3指令无效,程序会像平常一样,顺序执行 JMP 3和 LBL 3之间的所有指令。
  • 语句表(右)
    • LD I0.0:载入输入 I0.0 的状态。
    • JMP 3:如果前面条件为真,则跳转到标号 3。
  • LBL 3:这里是标号 3 的位置。

三、关键规则与影响(使用说明)

  1. 必须配对 :JMP和 LBL必须成对出现,且在同一程序块内(如同在主程序中),不能跨子程序或中断程序跳转。
  2. 跳转时的元件状态"冻结" :被跳过的程序段(即 JMP和 LBL之间的部分)会停止执行。这会对内部的元件产生特殊影响,这是使用时要特别注意的:
  • 输出、中间继电器等:保持跳转前的状态不变。
  • 计数器:停止计数,当前值保持。
  • 定时器(分情况)
    • 1ms/10ms 定时器:继续计时(PLC系统仍在后台刷新),到时后触点会动作。
  • 100ms 定时器停止计时 ,当前值保持不变。这会导致计时不准确,因此被跳转段内的定时器需谨慎使用

四、核心用途总结

这种指令主要用在需要 "程序选择性执行" 的场合,例如:

  • 设备模式选择:手动模式、自动模式、维修模式对应不同的程序段,通过一个选择开关触发跳转。
  • 工艺配方切换:生产不同产品时,跳转到不同的参数设置和流程段。
  • 错误处理与复位:发生某种故障时,跳转到专门的报警处理程序段。
    简单来说,跳转及标号指令赋予了PLC程序非顺序执行的能力,让工程师可以根据外部条件灵活地组织程序结构,跳过当前不需要执行的步骤,从而提高编程效率和程序的可读性。
相关推荐
深蓝海拓4 天前
S7-1500PLC学习笔记:MOVE_BLK、MOVE_BLK_VARIANT、BLKMOV的区别
笔记·学习·plc
深蓝海拓4 天前
S7-1500学习笔记:用户自定义数据类型(UDT)
笔记·学习·plc
深蓝海拓4 天前
S7-1500学习笔记:Array数据类型
笔记·学习·plc
控电PLC5 天前
33. 顺序控制指令
plc·plc功能图
深蓝海拓8 天前
基于QtPy (PySide6) 的PLC-HMI工程项目(二)系统规划
笔记·python·qt·学习·plc
深蓝海拓9 天前
西门子S7-1500PLC的常用Area地址以及网络读写
笔记·学习·plc
深蓝海拓9 天前
基于QtPy (PySide6) 的PLC-HMI工程项目(一)使用自定义socket协议的基本方法
python·plc
Lilixxs11 天前
施耐德 M580、M340 PLC 中 BOOL 类型数组地址
数据结构·plc·施耐德·m580·m340·unity pro·control expert
9稳14 天前
基于PLC的生产线自动升降机设计
开发语言·网络·数据库·嵌入式硬件·plc
zmj32032416 天前
PLC与单片机、继电器控制系统 的价格比较
单片机·嵌入式硬件·plc