ST语句:IF
IF 语句用于检查条件,并根据该条件执行后续语句。
描述
条件被编码为返回布尔值的表达式:
- 如果表达式返回
TRUE,则满足条件,并在THEN之后执行相应的语句。 - 如果表达式返回
FALSE,则计算以下用ELSIF标识的条件。 - 如果
ELSIF条件返回TRUE,则语句在相应的THEN之后执行。 - 如果所有条件都返回
FALSE,则语句在ELSE之后执行。
重要
因此,最多只有一个分支 IF 语句被执行。 ELSIF 分支和 ELSE 分支是可选的。
句法
IF <条件> THEN
<语句>
( ELSIF <条件> THEN
<语句> )*
( ELSE
<语句> )?
END_IF;
// ( ... )* 没有,一次或几次
// ( ... )? 可选
示例
PROGRAM PLC_PRG
VAR
Temp: INT;
HeatingOn: BOOL;
OpenWindow: BOOL;
END_VAR
IF Temp < 20 THEN
HeatingOn := TRUE;
ELSIF Temp > 50 THEN
OpenWindow := TRUE;
ELSE HeatingOn := FALSE;
END_IF;
该程序在运行时运行如下:
- 对于表达式
Temp < 20 = TRUE的求值,将执行后续语句HeatingOn := TRUE;并打开加热开关。 - 对于表达式
Temp < 20 = FALSE的求值,计算后续的ELSIF条件Temp > 50。 - 如果为真,则执行
ELSIF中的语句OpenWindow := TRUE;并打开视图。 - 如果所有条件都为
FALSE,则在ELSE中执行该语句HeatingOn := FALSE;并关闭加热。