Jump
アームを、現在位置から指定位置まで、ゲートモーション (まず垂直方向に上昇し、それから水平移動し、最後に垂直方向に下降する、門型動作)によりPTP動作します。
書式
Jump 目標座標 [Cアーチ番号] [LimZ [Z座標値]] [CP] [{Sense|Till|Find}] [!並列処理!] [SYNC]
パラメーター
- 目標座標
- ポイントデータで目標位置を指定します。
- アーチ番号
- アーチ番号は、Jumpにおけるアーチモーションの形状に、どのArch テーブルの設定を使うか指定します。アーチ番号は、頭にアルファベット文字"C"をつけてください。有効値は、C0~C7です。省略可能です。
- Z座標値
- Jump命令による動作中に第3関節が移動し得る最大値 (Z制限値)、あるいは、JumpによるZ成分の高さシーリング値と考えてください。有効な第3関節の座標値ならば、どの値でもかまいません。省略可能です。
- CP
- パスモーションを指定します。省略可能です。
- Sense、TillまたはFind
- Sense、TillまたはFind式を記述します。省略可能です。
Sense | Till | Find Sense Sw(式) = {On | Off} Till Sw(式) = {On | Off} Find Sw(式) = {On | Off} - !並列処理!
- Jump命令による動作中に、I/Oや、その他のコマンドを実行するための並列処理ステートメントを追加することができます。省略可能です。
- SYNC
- 動作コマンドを予約します。SyncRobotsによる動作開始まで、ロボットは動作しません。
解説
Jump命令は、いわゆる「アーチモーション (アーチ型動作)」によってアームを現在位置から目標座標まで移動させます。いわば、3つの動きを1回で行うステートメントと考えることができます。例えば、アーチ番号が定義されていれば、1回のJump命令で次の3つの動作を行います。
- まず、第3関節だけが、Jumpコマンド中のアーチ番号が演算するZ軸の高さまで動作します。
- 次に、アームは、LimZが指定するZ制限位置に達するまでZ軸方向に上昇しながら、目標座標に水平移動します。それから、第1関節, 第2関節, 第4関節のそれぞれの動作を行いながらZ軸方向に下降を始めます。アームは最終的なX, Y, U座標位置が得られるまで動作します。
- アームは、ターゲットのZ座標位置が得られるまでZ軸方向のみの移動を行い、目標座標が得られたところでJump命令が終了します。
目標座標 (移動の目的位置)は、Jump命令の中で指定することができないので、Jump命令が実行される前にティーチングしておく必要があります。Jump移動の加速と減速は、Accelによって行います。また、移動の速度は、Speedによって行います。
垂直6軸型ロボット (Nシリーズを含む)に対してJumpを実行することはできません。Jump3を使用してください。
CPについて
CPパラメーターをつけた場合には、動作の減速開始時に次の動作命令の加速を重ね合わせることが可能です。この場合には、目標座標には位置決めされません。
アーチ番号について
Jumpのアーチの型は、Jumpコマンド中で指定されるアーチ番号によって変更することができます。これによって、第1関節, 第2関節, 第4関節の各関節が動く前に、どれだけZ軸方向に動かしておきたいか決めることができます。Jump命令で有効に使えるアーチ番号値は、C0~C7までの値です。C0~C6までの値に対するArchテーブル値の設定は、ユーザーがArchコマンドによって定義することができるようになっています。しかし、C7は常に、「ゲートモーション」を定義しています。「ゲートモーション」とは、ロボットが、第1関節, 第2関節, 第4関節の各関節を動かす前に、第3関節だけを先に、LimZで定義される座標位置まで移動させる動きのことです。この「ゲートモーション」では、LimZが定義するZ制限値まで移動してから初めて、第1関節, 第2関節, 第4関節の各関節の動作が始まります。第1関節, 第2関節, 第4関節の各関節が、それぞれの最終目標座標位置まで移動すると、第3関節が、目標座標で定義される最終Z座標位置を目指して下降します。次の図は「ゲートモーション」の動きを表わします。
記号 説明 a 現在位置 b 目標座標 LimZについて
LimZ Z座標値は、現在設定されているローカル座標系の水平移動面におけるZ座標の最高値を指定します。指定されたアーチ設定によっては、LimZ値に達する前に、第1関節、第2関節、第4関節の各関節が動き始めることもあるかも知れませんが、LimZ値は、常に、その移動におけるZ座標方向の上限値を定義しています。もし、LimZパラメーターを省略すると、その直前 (最後)にLimZによって指定された最高値が準用されます。
LimZによって指定される高さ方向の制限値は、ローカルロボット座標系でのZ座標値です。つまり、それは、ArmやTool座標のZ座標値ではありません。したがって、作業高の異なるツールやハンドを使用する場合は、十分注意し、必要な処置を行ってください。
Senseについて
省略できるパラメーターの1つです。Senseは、第3関節が最終の下降動作を行う前に、入力条件またはメモリ I/O条件をチェックしたいときなどに使います。問題がなければ、ロボットのアームは、目標座標の上 (最終的に第3関節の動作を残すだけになっている位置)に停止して、このコマンド (Jump)の実行が終了したことになります。ただし、Senseで指定した条件を検知しても、ロボットのアームは、すぐには停止しないので注意してください。
記号 説明 a 条件チェック b 動作終了 c 目標座標 JSやStatなどのコマンドを組み合わせて、Sense条件が成立してロボットのアームが目標座標の前で停止したか、あるいは、Sense条件が成立せずロボットのアームはそのまま目標座標に停止したか、を確認することができます。
Tillについて
オプションのTillを使って、Jumpを実行する前に、ロボットを減速して停止させる条件を設定することができます。これは、I/O入力のうち1つ、あるいは、メモリーI/Oの1つをチェックする、という条件を含むことで設定できます。これには、SwまたはMemSw関数を使います。あらかじめ設定された条件にしたがって、入力がオンかオフかをチェックして、アームを減速し、停止させることができます。
Stat関数を使うことにより、Till条件が成立してこのコマンドが実行されたか、あるいは、Till条件が成立しないでロボットが目標座標に停止したかを確認することができます。
注意
Jumpは垂直6軸型ロボット (Nシリーズを含む)には使用できません。
Jump3またはJump3CPを使用してください。
アーチ番号 パラメーターを省略する場合
アーチ番号パラメーターの設定を省略すると、Jumpコマンド実行時のデフォルトArch値は、C7となります。上記でも説明されているとおり、Arch値がC7の場合、「ゲートモーション」移動(上記参照)になります。
Jump とJump3, Jump3CP の違い
Jump3とJump3CPは、垂直6軸型ロボット (Nシリーズを含む)で使用することができますが、Jumpは使用することができません。水平多関節型ロボット (RSシリーズを含む)で、Z軸方向に上昇と下降を行う場合は、Jumpを使用すると動作時間が短縮できます。Jump3の接近動作や退避動作は、Z軸以外の方向に行うこともできます。
Jump とGo の違い
JumpとGoの、最も重要な違いは、Goの場合、全関節の動きがシンクロしており、各関節は同時に動き始め、同時に停止します。Jumpでは、動作の始めと終わりに垂直方向だけの第3関節移動があります。デバイスを吸着, 配置というような作業にはこのコマンドをお勧めします。
Jumpにおける減速停止
Jumpでは、アームは必ず減速しながら目標座標に停止します。
Jumpにおける適正速度と加速指示
Jump 動作におけるロボットの速度と加減速は、それぞれSpeedとAccelよって設定します。SpeedとAccelは、Jump, Goなど、あくまでもポイントからポイントへ動作する場合についてのみ設定できる命令であることに注意してください。例えば、MoveやArcのような直線および円弧補間動作を行う命令の場合は、SpeedS やAccelSの命令を使用してください。
また、Jumpの場合は、第3関節の上昇移動、第4関節の回転を含む水平動作、そして第3関節の下降について、速度と加減速を別々に設定することができます。
JumpのPass機能
下降動作量が0のJumpにCPパラメーターをつけた場合、そのJumpの水平動作が減速停止することなく、直後に続くPTP動作と滑らかに接続できます。
また、直前のPTP動作命令にCPパラメーターをつけた場合、上昇動作量が0のJumpは、そのPTP動作が減速停止することなく、Jumpの水平動作と滑らかに接続できます。
これは、通常のJumpの水平動作 (1つのPTP動作)を、いくつかのPTP動作が滑らかに接続する動作に置きかえたい場合に便利です。
[例]
Go P1 Jump P2 :Z(-50) C0 LimZ -50 CP Go P3 :Z(0) CP Jump P4 C0 LimZ 0
アーチ使用時の重要事項
アーチモーションは、第3関節の上昇または下降動作と、横方向動作の合成を軌跡制御上で行うため、実際の軌跡を保証できるものではありません。動作速度やアームの動き方によってその軌跡は変化します。実際の軌跡は、作業で使用する実速度と姿勢で確認してください。
- 同じ位置で、同じ[Cアーチ番号]を持つJump命令を実行しても、高速動作時と比較して低速時の軌跡は低くなります。したがって、高速で障害物に衝突しないことを確認しても、低速で動作すると衝突する可能性がありますので注意してください。
- 低速動作時より高速動作の方が、垂直上昇量が増え、垂直下降量が減る傾向にあります。期待した垂直下降距離が出ない場合は、速度や減速度を下げるか、下降距離を長めに設定してください。
- 同じ距離の動作であっても、アームの動き方によって軌跡は変化します。アームの動き方による軌跡の変化はさまざまですが、一般的な水平多関節型ロボットを例にとれば、第1アームを大きく動かすほど垂直上昇量が増え、垂直下降量が減る傾向が強くなります。期待した垂直下降距離が出ない場合は、速度や減速度を下げるか、下降距離を長めに設定してください。
起こりやすいエラー
LimZ値の設定が低すぎる場合
第3関節のアーム位置が、LimZの設定値よりも高い位置にある状態で、Jumpが実行されると、エラー4005になります。
参照
Accel, Arc, Arc3, Arch, Go, JS関数, JT関数, LimZ, P# (2. ポイント指定), Pulse, Sense, Speed, Stat関数, Till
Jump使用例
次の例は、ポイントP0からP1へ、単純なPTP動作をしたあと、P0へJumpで戻るものです。プログラム後半で、アームはJumpを実行し、入力ビット4がオンにならなければ下降動作を行い、P1に移動します。入力ビット4がオンの場合、下降動作を行いません。
Function jumptest
Home
Go P0
Go P1
Sense Sw(4) = On
Jump P0 LimZ -10
Jump P1 LimZ -10 Sense '入力4をチェック
If JS = True Then
Print "Input #4 came on during the move and"
Print "the robot stopped prior to arriving on"
Print "point P1."
Else
Print "The move to P1 completed successfully."
Print "Input #4 never came on during the move."
EndIf
Fend
> Jump P10+X50 C0 LimZ-20 Sense !D50;On 0;D80;On 1!
コマンドウィンドウからの操作例です。
> Jump P0 'P0にジャンプ動作します
> Jump P0 C0 'P0にアーチ番号C0で設定されたアーチモーションでジャンプ動作します
> Jump P0 LimZ -10 'P0に、Z制限値-10mmまででジャンプ動作します
> Jump P0 !D0; On 1; D50; Off 1! 'P0にジャンプ動作します。動作の移動量が50%になるまでは出力の1ビット目をOnし、50%以降は1ビット目をOffします。
入力の1ビット目がOnになったら、Jump命令を停止して次の処理に進みます。
Function main
(中略)
Till Sw(1) = On
Jump P0 C0 CP Till
(中略)
Fend
← JTran Jump3, Jump3CP →