プログラム ループの使用
- Last UpdatedSep 26, 2024
- 1 minute read
ループを使用すると、コードのセクションを繰り返し実行できます。InTouch HMI は、FOR ループのみをサポートしています。FOR ループは、ループの繰り返しごとに増加または減少する数値ループ変数の値を監視することによって機能します。ループは、ループ変数の値が固定制限に達するまで実行されます。
構文
FOR LoopTag = StartExpression TO EndExpression [STEP ChangeExpression]
... ステートメントまたは別の FOR ループ ...
NEXT;
-
StartExpression、EndExpression、および ChangeExpression は、合わせて繰り返しの回数を定義します。
-
StartExpression は、ループ範囲の開始値を設定します。EndExpression は、ループ範囲の終了値を設定します。
-
STEP ChangeExpression はオプションで、各ループ繰り返し中にループ タグ変数を増加または減少させる値を設定します。この値を指定しない場合、デフォルト値 1 が使用されます。
FOR ループを実行すると、InTouch HMI は、以下の処理を実行します。
-
LoopTag を StartExpression の値に設定します。
-
LoopTag が EndExpression より大きいかどうかをテストします。大きい場合、InTouch HMI は、ループを終了します(ChangeExpression が負の場合、InTouch HMI は、LoopTag が EndExpression より小さいかどうかをテストします)。
-
ループ内で、ステートメントを実行します。
-
LoopTag を ChangeExpression の値(値が指定されていない場合は 1)だけ増加します。
-
手順 2 ~ 4 を繰り返します。
FOR ループを使用する場合、以下の規則に注意してください。
-
FOR ループは入れ子にすることができます。入れ子レベルの最大数は、使用できるメモリおよびシステム リソースにより異なります。
-
すべての FOR ステートメントには、終了を示す NEXT ステートメントが必要です。NEXT ステートメントは、同じ入れ子レベルで直前に入れ子となっている FOR ステートメントに適用されます。
-
LoopTag は、数値タグ変数(またはローカル変数)でなければなりません。
-
StartExpression、EndExpression、および ChangeExpression は、数値の結果として評価される有効な式でなければなりません。
-
ChangeExpression が正の場合、EndExpression は、StartExpression より大きくなければなりません。ChangeExpression が負の場合、StartExpression は、EndExpression より大きくなければなりません。そうでない場合、ループは開始されません。
-
ループを終了するには、EXIT FOR ステートメントを使用します。詳細については、「ループの強制終了」を参照してください。
-
ループには時間制限があります。「ループ実行の時間制限」を参照してください。
警告:ループ実行は、他のランタイム プロセスに影響を与えます。詳細については、「他のランタイム プロセスへのループの効果」を参照してください。.