条件分岐
指定した条件が成立しているかどうかによって、プログラムの処理を分岐するコマンドです。
このコマンドに到達すると、現在のロボットステータス、パレット、変数などの指定した条件が、満たされているかどうかを判断します。
一致するとき: プログラムはボックス内の"真のとき"の分岐を実行します。
一致しないとき: プログラムはボックス内の"偽のとき"の分岐を実行します。
複数の条件が設定されているとき: 先に設定されている条件から判定します。
- 条件の設定手順
[+条件追加]をタップする
プルダウンをタップし、設定する条件の種類を選択する
(入力信号)で設定する場合
入力信号が指定した状態かどうかを判断します。- ビットの場合:
"もし (入力ビット)が (状態: ON/OFF)ならば" - バイト、ワードの場合:
"もし (入力バイト/ワード & マスク)が (状態:数値)ならば"
- ビットの場合:
キーポイント
フィルター機能を使うと、入力の分類を選択でき、表示項目を絞り込めます。
表示するI/Oの種類、 入力ビットについては、以下を参照してください。
RC700-E/RC800-A/RC800Lコントローラーを使用している場合は、安全入力/出力の入力状態を、条件分岐の対象として設定できます。(ハンド)で設定する場合
ハンドがワークを、掴んでいるか、放しているかで判断をします。以下の形式で選択します。
"もし (ハンド (つかんでいる / はなしている))が (True / False)ならば"(パレット)で設定する場合
パレットの指定した位置 (最初 / 最後)で、特定の処理を行います。以下の形式で選択します。
"もし (Pallet XX)が (位置: 最初 / 最後)ならば"(タイムアウト)で設定する場合
"つかむ"、"はなす"、または"待機"コマンドがタイムアウトしたかどうかで、特定の処理を行います。以下の形式で選択します。
"もし (Grip/Waitタイムアウト)が (True / False)ならば"
[Gripタイムアウト]
ハンド設定で、"つかむ"動作にタイムアウトを設定している場合、ここでタイムアウトを条件として設定できます。
[待機タイムアウト]
最後に実行した"待機"コマンドがタイムアウトしたかどうかを条件として設定できます。
待機(RC+)で設定する場合
RC+プロジェクトの取り込み設定をしている場合のみ、選択できます。
条件は、以下の形式で選択します。
"もし(変数のラベル/変数名)が(xx)ならば"
変数
取り込んだRC+プロジェクトで定義されているグローバル変数のリストから、条件の判定対象とする変数を選択します。
条件の形式は、選択する変数によって異なります。
変数の型 選択肢/入力制限 条件設定時の演算子 Boolean 2バイト、True/False True/False = Byte 2バイト整数、-128~+127 整数のみ入力可能 = > < >= <= <> Integer 2バイト整数、-32768~32767 Short 2バイト整数、-32768~32767 Int32 4バイト整数、-2147483648~2147483647 Int64 8バイト整数、-9223372036854775808~9223372036854775807 Long 4バイト整数、-2147483648~2147483647 Ubyte 符号なし2バイト整数、0~255 0以上の整数を入力可能 = > < >= <= <> Ushort 符号なし2バイト整数、0~65535 UInt32 符号なし4バイト整数、0~4294967295 UInt64 符号なし8バイト整数、0~18446744073709551615 Real 4バイト実数、有効桁数6桁 数値のみ入力可能 = > < >= <= <> Double 8バイト実数、有効桁数14桁 String ASCII文字のみ、最大255文字 = <> コマンドをドラッグ&ドロップして、[真のとき]、[偽のとき]の動作を追加する
さらに条件を追加したい場合は、[+]ボタンをタップして、条件を追加する
条件を2つ以上設定するとき、それぞれの条件の間に、演算子を設定できます。
And (なおかつ): 条件1と条件2がどちらも成立するとき
Or (または): 条件1か条件2の、どちらかが成立するとき
キーポイント
複数の条件が設定されている場合は、先に設定されている条件から順に判定します。例えば、条件1, 2, 3を設定すると、まず条件1, 2を判定します。次に、その結果と条件3を判定します。