.
.

IF语句用于检查条件,并根据此条件执行后续语句。

判断条件为布尔表达式的值。如果表达式返回TRUE,则满足条件并执行THEN之后的相应语句。如果表达式返回FALSE,则将执行ELSIF之后的相应语句。如果ELSIF条件返回TRUE,则在相应的THEN之后执行语句。如果所有条件都返回FALSE,则执行ELSE之后的语句。

因此,最多执行IF语句的一个分支。ELSIF分支和ELSE分支是可选的。

.语法


IF <判断条件> THEN
    <语句>
( ELSIF <判断条件> THEN
        <语句> )*
( ELSE
        <语句> )? 
END_IF;
// ( ...)* 无,一次或几次
// ( ...)? 可选的
 
.

.例如


PROGRAM PLC_PRG
VAR
    iTemp: INT;
    xHeatingOn: BOOL;
    xOpenWindow: BOOL;
END_VAR

IF iTemp < 17 THEN 
    xHeatingOn := TRUE;
ELSIF iTemp > 25 THEN 
    xOpenWindow := TRUE;
ELSE xHeatingOn := FALSE;
END_IF;
 

该程序在runtime中按以下方式运行:

为了评估表达式iTemp < 17 = TRUE,将执行以下语句并打开加热功能。为了评估表达式iTemp < 17 = FALSE,评估了随后的ELSIF条件iTemp > 25。如果为TRUE,则执行ELSIF中的语句并打开视图。如果所有条件都为FALSE,则执行ELSE中的语句并关闭加热。

.

.另请参阅