使用“满足条件时执行”指令可以重复执行程序循环,直至不满足执行条件为止。该条件是结果为布尔值(TRUE 或 FALSE)的表达式。可以将逻辑表达式或比较表达式作为条件。
执行该指令时,将对指定的表达式进行运算。如果表达式的值为 TRUE,则表示满足该条件;如果其值为 FALSE,则表示不满足该条件。
也可以嵌套程序循环。在程序循环内,可以编写包含其它运行变量的其它程序循环。
通过指令“复查循环条件”(CONTINUE),可以终止当前连续运行的程序循环。通过指令“立即退出循环”(EXIT) 终止整个循环的执行。有关本主题的更多信息,请参见“另请参见”。
可按如下方式声明此指令:
WHILE DO ;
END_WHILE;
参数
下表列出了该指令的参数:
参数 | 数据类型 | 存储区 | 说明 |
---|---|---|---|
<条件> | BOOL | I、Q、M、D、L | 表达式,每次执行循环之前都需要进行求值。 |
<指令> | - | 在满足条件时,要执行的指令。如果不满足条件,则程序将从 END_WHILE 后继续执行。 |
有关有效数据类型的更多信息,请参见“另请参见”。
示例
以下示例说明了该指令的工作原理:
SCL |
---|
WHILE "Tag_Value1" <> "Tag_Value2" DO "Tag_Result" := "Tag_Input"; END_WHILE; |
只要“Tag_Value1”和“Tag_Value2”操作数的值不匹配,“Tag_Input”操作数的值就会分配给“Tag_Result”操作数。