接続と実行フロー
接続を使用して、ステップ間の実行フローを決定します。
次のようなシンプルなロボットがあるとします。
![](../../All_Images/3StepRobot.png)
このロボットは、次の 3 つのステップから構成されています:ステップ A、ステップ B、およびステップ C。エラーが発生せず、各ステップで 1 つの出力ロボット状態が生成される場合、ロボットは次のように実行されます。最初のロボット状態が生成され、ステップ A (最初のステップ) への入力として使用されます。ステップ A により出力ロボット状態が生成されます。この出力ロボット状態はステップ B の入力ロボット状態です。ステップ B はステップ C の入力ロボット状態であるロボット状態を生成します。ステップ C が実行され、出力ロボット状態が生成されると、実行は完了します。つまり、ステップの実行は次のようになります。「A、B、C」。
ステップは実行時に出力ロボット状態を生成しないことがあります。これは、エラーまたはテストステップが原因で実行がロボット内の別のステップで続行された際に発生します (条件とエラー処理を参照)。
ループ アクションを含むステップでは入力状態を複数回処理することがあり、そのたびに異なるロボット状態が出力されます。ステップ B にループ アクションが含まれる次のようなロボットがあるとします。
![](../../All_Images/4StepIteratorRobot.png)
エラーまたはテスト ステップがなく、ステップ B が 3 つのロボット状態を出力し、その他すべてのステップが 1 つのロボット状態を出力する場合、ステップは次の順序で実行されます。「A、B[1]、C、D、B[2]、C、D、B[3]、C、D」。B[ N ] はステップ B に含まれるループ アクションの N 回目のイテレーションを表します。ステップ B によって出力されたロボット状態は別のロボット状態です。各イテレーションにより新しいロボット状態が出力されます。そのため、ステップ C は実行されるたびに新しい入力ロボット状態を受け取ります。
詳細については、分岐、ロボット状態、実行フロー チュートリアルを参照してください。
1 つのステップを複数のステップに接続できます。これは「分岐」と呼ばれます。次のようなロボットがあるとします。
![](../../All_Images/5StepAndBranchRobot.png)
このロボットで、ステップ A の後に分岐ポイントが続き、接続は 2 つの分岐に分かれています。1 つの分岐はステップ B とステップ C から構成され、もう 1 つの分岐はステップ D とステップ E から構成されます。分岐ポイントから出るすべての分岐は次々に実行されます。そのため、エラーまたはテスト ステップで管理フローが変更されず、各ステップで 1 つの出力ロボット状態が生成される場合、先行ロボットは次のように実行されます:A、B、C、D、E。ただし、ステップ B とステップ D はそれぞれステップ A によって生成されたものと同じ出力ロボット状態のコピーを受け取ります。
分岐は複雑な方法で結合できます。次のようなロボットがあるとします。
![](../../All_Images/5StepIntertwinedAndBranch.png)
このロボットは、接続が明示的に順序付けられる様子を示しています。このロボットでは、ステップ D の分岐が数字によって指定された順序で実行されます。ステップ E はステップ C の前に実行されます。順序が数字によって指定されていない場合、接続はトップダウンで実行されます。そのため、テスト ステップがなく、エラーが発生せず、各ステップで 1 つの出力ロボット状態が生成される場合、ロボットは次のように実行されます:A, B, C, D, E, C。ステップ C が初めて実行されると、ステップ B によって生成された出力ロボット状態を受け取ります。ステップ C が 2 回目に実行されると、ステップ D によって生成された出力ロボット状態を受け取ります。
状況に応じて、複数の分岐のうち 1 つだけを選択 (実行) したい場合があります。条件とエラー処理トピックでは、これを行う方法について説明します。