收藏了 西门子SCL语言编程,常用指令介绍( 三 )

说明:使用"复查循环条件"指令,可以结束 FOR、WHILE 或 REPEAT 循环的当前程序运行 。
执行该指令后,将再次计算继续执行程序循环的条件 。该指令将影响其所在的程序循环 。

收藏了 西门子SCL语言编程,常用指令介绍

文章插图
图16 CONTINUE用在FOR循环

收藏了 西门子SCL语言编程,常用指令介绍

文章插图
图17 CONTINUE用在WHILE循环

收藏了 西门子SCL语言编程,常用指令介绍

文章插图
图18 CONTINUE用在REPEAT循环
示例
收藏了 西门子SCL语言编程,常用指令介绍

文章插图
图19 CONTINUE示例
下表展示了计算结果:
收藏了 西门子SCL语言编程,常用指令介绍

文章插图
 
如果满足条件 i < 5,则不执行后续值分配 ("DB10".Test[i] := 1) 。运行变量 (i) 以增量"1"递增,然后检查其当前值是否在设定的循环取值范围内 。如果执行变量在循环取值范围内,则将再次计算 IF 的条件 。
如果不满足条件 i < 5,则将执行后续值分配 ("DB10".Test[i] := 1) 并开始一个新循环 。在这种情况下,执行变量也会以增量"1"进行递增并接受检查 。
EXIT:立即退出循环
说明:使用"立即退出循环"指令,可以随时取消 FOR、WHILE 或 REPEAT 循环的执行,而无需考虑是否满足条件,并在循环结束(END_FOR、END_WHILE 或 END_REPEAT)后继续执行程序 。
该指令将影响其所在的程序循环 。
收藏了 西门子SCL语言编程,常用指令介绍

文章插图
图20 EXIT语句
示例
收藏了 西门子SCL语言编程,常用指令介绍

文章插图
图21 EXIT示例
下表展示了计算结果:
收藏了 西门子SCL语言编程,常用指令介绍

文章插图
 
如果满足条件 i > 5,则将取消循环执行 。程序将从 END_FOR 后继续执行 。
如果不满足条件 i <= 5,则将执行后续值分配 ("DB10".Test[i] :=1) 并开始一个新循环 。将运行变量 (i) 以 1 进行递增,并进行检查该变量的当前值是否在程序中设定的循环取值范围之内 。如果执行变量 (i) 在循环取值范围内,则将再次计算 IF 的条件 。
GOTO:跳转
说明:使用"跳转"指令,可以从标注为跳转标签的指定点开始继续执行程序 。
跳转标签和"跳转"指令必须在同一个块中 。在一个块中,跳转标签的名称只能指定一次 。每个跳转标签可以是多个跳转指令的目标 。不允许从"外部"跳转到程序循环内,但允许从循环内跳转到"外部" 。
注意:
LAD/FBD语言内的SCL段,不能使用GOTO指令 。
跳转标签遵循以下语法规则:
  • 字母(a 至 z,A 至 Z)
  • 字母和数字组合;请必须字母为开始
可按如下方式声明此指令:
GOTO <跳转标签>;
...
<跳转标签>: <语句>
示例
收藏了 西门子SCL语言编程,常用指令介绍

文章插图
图22 GOTO示例
下表展示了每个操作数数值对目标变量的变化影响:
收藏了 西门子SCL语言编程,常用指令介绍

文章插图
 
根据"Tag_Value"操作数的值,程序将从对应的跳转标签标识点开始继续执行 。例如,如果"Tag_Value"操作数的值为 2,则程序将从跳转标签"MyLABEL2"开始继续执行 。在这种情况下,将跳过"MyLABEL1"跳转标签所标识的程序行 。
RETURN:退出块
说明:使用"退出块"指令,可以终止当前处理块中的程序执行,并在调用块中继续执行 。
如果该指令出现在块结尾处,则可以跳过 。
收藏了 西门子SCL语言编程,常用指令介绍

文章插图
图23 RETURN语句
示例
收藏了 西门子SCL语言编程,常用指令介绍

文章插图
图24 RETURN示例
如果"Tag_Error"操作数的信号状态不为 0,则将终止当前处理块中的程序执行 。
 

【收藏了 西门子SCL语言编程,常用指令介绍】


推荐阅读