Skip to main content

ST 声明:IF

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

条件编码为 表达 返回一个布尔值。如果表达式返回 TRUE, 则条件成立并执行相应的语句 THEN.如果表达式返回 FALSE,然后是以下条件,它们被标识为 ELSIF, 被评估。如果 ELSIF 条件返回 TRUE,则语句在相应的之后执行 THEN.如果所有条件都返回 FALSE, 然后语句在之后执行 ELSE.

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

句法

IF <condition> THEN
    <statements>
( ELSIF <condition> THEN
            <statements> )*
( ELSE
            <statements> )?
END_IF;
// ( ... )* None, once or several times
// ( ... )? Optional
70. 例子
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;

该程序在运行时运行如下:

对于表达式的评估 iTemp < 17 = TRUE,执行后续语句,开启加热。对于表达式的评估 iTemp < 17 = FALSE, 随后 ELSIF 状况 iTemp > 25 被评估。如果这是真的,那么中的陈述 ELSIF 执行并打开视图。如果所有条件都满足 FALSE, 然后语句在 ELSE 并且加热被关闭。