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;
并关闭加热。