Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ InTouch HMI

IF … THEN … ELSEIF … ELSE … ENDIF

  • Last UpdatedNov 11, 2023
  • 1 minute read

IF-THEN-ELSE-ENDIF 根据表达式的语句有条件地执行各种指令。上下文如下:

IF <Boolean_expression>THEN

[statements];

[ { ELSEIF

[statements] } ];

[ ELSE

[statements] ];

ENDIF;

其中,Boolean_expression 是可求值为布尔值的表达式。

根据表达式返回的数据类型,按下表对表达式进行求值以构成 True 或 False 语句:

数据类型

映射

布尔型、离散

直接使用(无需映射)。

整型

Value = 0 求值为 False。
Value != 0 求值为 True。

浮点、实型

Value = 0 求值为 False。
Value != 0 求值为 True。

双精度

Value = 0 求值为 False。
Value != 0 求值为 True。

字符串型、消息

不能映射。使用结果为 Boolean_expression 字符串类型的表达式会导致脚本验证错误。

时间

不能映射。使用结果为 Boolean_expression 时间类型的表达式会导致脚本验证错误。

经过时间

不能映射。使用结果为 Boolean_expression 经过时间类型的表达式会导致脚本验证错误。

对象

使用结果为对象类型的表达式。验证,但在运行时,对象会转换为布尔型。如果该类型无法转换为布尔型,则会提交运行时异常。

如果 Boolean_expression 求值为 True,则会执行第一个语句块。可选,可在关键字 ELSE 后边定义第二个语句块。如果 Boolean_expression 求值为 False,则会执行此块。

为了帮助在多个可选项之间做出决定,通常会根据需要使用可选的 ELSEIF 子句。ELSEIF 子句模仿其它编程语言提供的切换语句。例如:

IF value == 0 Then

Message = "Value is zero";

ELSEIF value > 0 Then

Message = "Value is positive";
ELSEIF value < 0 Then

Message = "Value is negative";

ELSE

{Default.Should never occur in this example};

ENDIF;

以下方法在先前的语句中嵌套了另一个 IF 组件语句,并要求外加一个 ENDIF:

IF (X1 == 1) THEN

X1 = 5;

{ ELSEIF <X1 == 2>THEN

X1 = 10;

ELSEIF X1 == 3 THEN

X1 = 20 ;

ELSEIF X1 == 4 THEN

X1 = 30 };

IF X1 == 99 THEN

X1 = 0;

ENDIF;

ENDIF;

如需关于使用此类型控制结构的详细信息,请参阅样本脚本