跳到主要内容

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