[西门子] 西门子SCL基础教学---GOTO/RETURN

[复制链接]
查看68327 | 回复0 | 2024-3-11 18:50:13 | 显示全部楼层 |阅读模式
GOTO:简单理解就是跳转。跳转到指定的标签程序段运行程序。

注意事项:

    GOTO语句目前只能用在纯SCL的环境下,不能在混合编程模式下使用GOTO。至于以后会不会改,那谁知道呢。

    GOTO语句不允许从外部跳转到循环体内。但是可以从循环体内跳转到外部。

    跳转标签的命名格式为纯字母(A、b)、字母+数字(F1、h2),不允许数字在前字母在后(3t,6F),也不允许纯数字(1、2),也不允许有特殊符号(f-1、Y-5)。

    不要往上跳。例如你的程序段100有一个GOTO F1,在程序段50的地方是这个F1的标签。如果这样的话,极其容易造成死循环。

    不能跳转到别的块里面。


RETURN:退出块。简单理解就是碰到这个语句,即使后面还有很多语句没执行,那么对不起,不会执行了,他要退出这个FB或者FC块了。GOTO的标签不需要预先声明,但是你跳转的里面必须要有这些标签。
GOTO示例:声明输入变量in=int声明输出变量out1=int                   out2=int
IF #in=10THEN    GOTO L1;ELSE    GOTO L2;END_IF;L1:#out1 := 100;#out2 := 0;RETURN;L2:#out1 := 0;#out2 := 500;L1和L2为跳转标签。RETUEN是退出程序块。此条语句执行的结果就是:当in不等于10的时候,跳转到L2的标签然后执行L2后面的程序段,那么结果就是out1=0,out2=500。当in等于10的时候,程序跳转到L1的标签,执行L1标签后面开始的程序。这时候out1=100,out2=0,然后这时候遇到RETURN关键字,那么他就退出程序块,也就是RETURN后面的语句不再执行。
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则