RET指令是什么?
在西门子 TIA Portal 中,RET(返回)指令用于停止当前程序块(如 OB、FC 或 FB)的执行,并返回到调用该块的程序块中继续执行。该指令适用于 LAD(梯形图)和 FBD(功能块图)编程语言,具体行为根据 PLC 系列(S7-1200/1500 或 S7-300/400)及编程语言略有不同
1. 基本功能
RET 指令的主要作用是终止当前块的执行流程。
2. 返回值与 ENO 状态
当 RET 指令执行时,调用程序块的使能输出(ENO)信号状态会根据设置进行更新:
3. 不同系列与语言的特性
如果使用该指令结束一个组织块,CPU 将继续执行系统程序 [3] [4]。
在 LAD 中,RLO 显示为指令上方的固定参数值
一个块中可以有多个 RET 指令,不要求必须作为最后一个指令
如果程序段中已包含"JMP"或"JMPN"指令,则不得使用 RET 指令,每个程序段中只能使用一个跳转线圈 [1] [2]。
如果结束的是组织块(OB),执行等级系统将选择另一个程序块开始执行或继续执行(如重新启动循环或恢复被中断的块)
S7-1200 / S7-1500:
S7-300 / S7-400:
Ret (RLO):ENO 的状态与逻辑运算结果 RLO 一致(通常为"1",因为条件为 TRUE 时指令才执行) [1] [2]。
Ret TRUE / Ret FALSE:ENO 的状态被设置为常数值 TRUE 或 FALSE [1] [2]。
Ret Value:ENO 的状态取决于指定的布尔型变量(操作数)的值 。
在 S7-1200/1500 的 FC 或 FB 块中,RET 指令的参数"Return_Value"会被作为被调用功能框的 ENO 值传回到调用例程
条件执行:如果指令输入端的逻辑运算结果(RLO)为"1"(或在 FBD 中功能框输入为真),则停止当前被调用块中的程序执行,并在调用块中继续执行 [1] [3]。
无条件执行:如果指令直接连接到左侧电源线(LAD)或未连接前置逻辑(FBD),则无条件退出程序块 [1] [2]。
不执行:如果 RLO 为"0",该指令不执行,程序将在被调用块的下一程序段中继续执行 。
RET RLO指令长什么样?
怎么添加这个指令?
默认添加的是带问号的ret,即ret value。我们需要选择Ret,才会显示RLO RET
这个指令怎么用?
RLO RET :条件满足,直接退出FC。
---
TRUE RET:条件满足直接退出FC,并且被调用的块的ENO引脚状态为ON
---
FALSE RET:跳出功能块,并且被调用的功能块的ENO状态为False
---
RET+变量,如果变量为TRUE则块的ENO为TRUE,如果变量为FALSE则块的ENO为FALSE