はじめに
今回は、 「ループ中にエラーが発生した場合、ループを終了させる方法」 をご紹介します!
MCのスケジュールからロボットを実行している場合、BizRobo!の仕様上、ループの途中でエラーが発生すると、すべてのイテレーションが実行されてからエラーとなります。
予定しているイテレーション数が多い場合、エラーが発生しても停止せずに稼働時間が長くなってしまう(とくにDA)ため、その対処法をご紹介します。
あくまで一例ですので、参考程度にご覧ください!
記事内のロボットは v10.4.0.4 で作成しています。
設定方法
すべてのステップのエラー処理にループ終了を設定すれば、実現したい処理はできますが、現実的ではないため、今回は「エラーフラグ」変数(グローバル)でエラーハンドリングします。
- エラーフラグが立っていない(0)か確認
- 処理中はエラーフラグを立てる(1)
- 処理終了でエラーフラグを戻す(0)
上記のように設定することで、ステップ1つずつにエラー処理を入れることなくエラー検知することができます。
注意点としては、
エラー処理に「次のイテレーション」が入っているステップには、エラー処理を「次の代替手段を試行」に変更しフラグを戻す処理、
ブランチ・分岐で処理終了点が分かれている場合は、それぞれにフラグを戻す処理を入れる必要があるので気を付けてください。
さいごに
ご覧いただきありがとうございました!
今回紹介したのは、ただループを終了させるだけでしたが、トライステップに飛ばすなどすれば、エラー時の処理を設定できます。
ぜひ参考にしていただければ幸いです。