この記事は2020年4月24日にver10.4.0.2で作成したものです。
【概要】
ループ処理の周回移行時や条件分岐処理のブランチ移行時にデータが保持される変数です。
通常の変数は、繰り返しの周回や条件分岐をまたぐとデータが初期化(データが空になる)されます。
それに対してグローバル変数は、自ら「変数の割当」ステップなどを作成しない限り初期化されることはありません。
【注意】
グローバル変数を多用するとロボットの動作が遅くなります。
繰り返し処理や条件分岐をまたぐ可能性があり、なおかつ初期化されたくない変数のみグローバル変数にしましょう。
【設定方法】
既存の変数をグローバル変数にする方法を説明します。
- 変数をダブルクリックし、編集画面を開きます。
- 「グローバル」にチェックを入れます。
- 「OK」をクリックします。
- 「イテレーション」という変数をグローバル変数にできました。
(※グローバル変数には緑の丸が付与されます。)
【初期化発生例】
非グローバル変数の初期化発生例を紹介します。
この例では、ループの中で変数に値を割り当て、その値が2周目でも保持されるかどうかを確認してみます。
実際に動作させると1周目で割り当てた値が2周目には初期化されていることが分かります
- 非グローバル変数を用意します。
- 以下のような処理を作成します。
繰り返し処理開始→変数の中身を確認→変数の割当→変数の中身を確認→次のループへ
Return 非グローバル:
Assign テキスト:
- デバッグ実行で1周ずつ結果を確認します。
(※毎周、「Next」ステップの実行直前で戻り値を確認しています。)
1周目:
変数の割り当て後に、変数に値が格納されていることが確認できます。
2周目:
1周目で値を割り当てたはずですが、2周目の変数割り当て前に中身が空に戻っています。
このことから1周目で割り当てた値が初期化されていることが確認できます。
※本記事は初心者の方に分かりやすくご説明することを目的としております。
そのため、意図的に厳密な表現を避けている場合がございますのでご了承ください。