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 に評価された場合、ステートメントの最初のブロックが実行されます。ステートメントの 2 番目のブロックはキーワード 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;

次のアプローチでは、2 番目の 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;

このタイプの制御構造の使用の詳細については、「サンプル スクリプト」を参照してください。