Go
アームを、現在位置から指定位置までPTP動作で動かします。
書式
Go目標座標 [CP] [LJM [姿勢フラグ選択]] [Till | Find] [! 並列処理 !] [SYNC]
パラメーター
- 目標座標
- ポイントデータで目標位置を指定します。
- CP
- パスモーションを指定します。省略可能です。
- LJM
- 目標座標をLJM関数で変換します。省略可能です。
- 姿勢フラグ選択
- LJM関数に与える姿勢フラグ選択パラメーターを指定します。省略可能です。
- Till | Find
- TillまたはFind式を記述します。省略可能です。
Till | Find Till Sw(式) = {On | Off} Find Sw(式) = {On | Off} - ! 並列処理 !
- I/Oその他のコマンドを動作中に実行させたいときに、並列処理ステートメントを付け加えることができます。省略可能です。
- SYNC
- 動作コマンドを予約します。SyncRobotsによる動作開始まで、ロボットは動作しません。
解説
Goは、ロボットアームのすべての関節を、同時にPTP動作で動かします。下記は、Go命令に対する目標座標を指定する例です。
- 特定のポイント番号で指定する。例:
Go P1 - 移動先を具体的な座標値で指定する。例:
Go XY(50, 400, 0, 0) - ポイント番号+オフセット値で指定する。例:
Go P1 +X(50) - ポイント番号+それと異なる座標値を明示して指定する。例:
Go P1 :X(50)
動作の経路は、各関節がそれぞれ現在のポイントから目標座標までを補間するため、軌跡は予測できません。周辺装置との干渉に十分注意してください。
Go命令の動作速度は、Speed 命令で設定します。加減速度は、Accel 命令で設定します。
CPパラメーターをつけた場合には、動作の減速開始時に次の動作命令の加速を重ね合わせることが可能です。この場合には、目標座標には位置決めされません。
LJMパラメーターをつけた場合には、現在位置を参照位置として、目標位置をLJM関数で変換した位置に動作します。
Go LJM(P1, Here,1)を、Go P1 LJM 1と簡略して記述できます。
このとき元のポイントデータP1は変更されません。
LJMパラメーターは垂直6軸型ロボット (Nシリーズを含む)、およびRSシリーズロボットで有効です。
姿勢フラグ選択をデフォルト値で使用する場合は、省略が可能です。
Go P1 LJM
注意
Go とMoveの違い
Move と Goは、ともにロボットアームを動作させる命令です。両者の間の大きな違いは、GoがPTP動作させるのに対し、Moveは直線軌道でアームを移動させることです。目標ポイントに到着したときのアームの姿勢が重要であるときはGo 命令を用いますが、動作中のアームの軌道を制御することがより重要である場合は、Move 命令を使います。
Go と Jumpの違い
JumpとGoは、ともにロボットアームをPTP動作で移動させる命令です。しかし、Jumpには、Goにない機能が1つあります。Jumpでは、ロボットのハンドをまずLimZ値まで持ち上げてから、アームを水平移動させ、目標座標の上空にきたところで下降移動させる、という動きをさせることです。この動きのメリットは、障害物をより確実に避けることができる点と、さらに重要なのは、吸着, 配置動作による作業のサイクルタイムの向上にあります。
Goに適切な速度と加減速度指示を与える
Go 命令の動作速度と加減速度の設定は、Speed とAccel命令で行います。非常に重要なことですが、SpeedとAccel命令はGo命令と同じく、PTP動作に対する設定を行います。直線および円弧補間動作の速度, 加減速度の設定は、SpeedSとAccelS命令で行います。
Till 修飾子を用いるGoの用法
Till修飾子を用いることで、Go命令で指定された目標座標に到着する前に、そこに至る通過点で、ロボットを減速停止する条件を設定することができます。もしTill条件が成立しない場合は、ロボットはそのまま目標座標まで移動します。Tillを用いたGoの用法には、下記の2通りがあります。
(1) GoとTill 修飾子
現在のTill条件が成立したかどうかチェックします。成立すれば、Goが指定した動作の完了を待たずにロボットを途中通過点で減速停止させることで、コマンドの実行は完了します。
(2) GoとTill 修飾子、Sw (入力ビット番号) 修飾子、入力条件
この用法では、あらかじめ設定されたTillの既存の設定条件を用いるのではなく、Go命令と同じ行でTill条件を新たに設定することができます。設定する条件は、入力の1つをチェックするというものですが、そのためにはSw 命令が必要になります。入力の状態がオンかオフかをチェックし、設定した条件に応じてアームを停止させることができます。この機能は、入力条件が成立すると動作が停止させられる「割込み」とほとんど同じ働きをします。もし入力条件がロボットの動作中に1度も成立しなければ、アームは指定された目標座標位置に到達します。
Find修飾子を用いるGoの用法
Find修飾子を用いることで、Go命令による動作中にロボットに1つの位置を記録するよう条件設定することができます。Findを用いたGoの用法には、下記の2通りがあります。
(1) GoとFind 修飾子
現在のFind条件が成立したかどうかチェックします。成立すれば、現在の位置を特別なポイント、FindPos に保存します。
(2) GoとFind 修飾子, Sw(入力ビット番号) 修飾子, 入力条件
この用法では、あらかじめ設定されたFindの既存の設定条件を用いるのではなく、Go命令と同じ行で新たにFind条件を設定することができます。設定条件は、1つの入力をチェックすることです。そのためにはSw 命令が必要になります。入力の状態がオンかオフかをチェックし、現在の位置を特別なポイント、FindPos に保存します。
Go 命令では停止前に必ず減速します
Go命令では、アームが動作の目標座標に停止する前に、必ず減速します。
起こりやすいエラー
可動範囲外にロボットを動作させようとしたとき
目標座標を直接座標で設定する場合、その座標位置がロボットの可動範囲内にあるか、必ず確認してください。ロボットの可動範囲内外が指定されていると、エラーが発生します。
参照
!...! 並列処理, Accel, Find, Jump, Move, Pass, P# (2. ポイント指定), Pulse, Speed, Sw関数, Till
Go使用例
下記は、P0 からP10 にPTP 動作する簡単な例です。プログラム後半で、アームは、入力ビット2がオンになるまで、P2に向かってPTP 動作します。Goの途中で、入力ビット2がオンになると、アームはP2到着を待たずに減速停止し、次の命令を実行します。
Function sample
Integer i
Home
Go P0
Go P1
For i = 1 to 10
Go P(i)
Next i
Go P2 Till Sw(2) = On
If Sw(2) = On Then
Print "Input #2 came on during the move and"
Print "the robot stopped prior to arriving on"
Print "point P2."
Else
Print "The move to P2 completed successfully."
Print "Input #2 never came on during the move."
EndIf
Fend
コマンドウィンドウからの操作例です。
>Go Here +X(50) '現在の位置からX方向に50mm移動
>Go P1 'P1に移動
>Go P1 :U(30) 'P1ただしU=30の位置へ移動
>Go P1 /L '左腕姿勢でP1へ移動
>Go XY(50, 450, 0, 30) 'X=50, Y=450, Z=0, U=30の位置へ移動
[その他の例]
Till Sw(1) = Off And Sw(2) = On '入力1と2をTill条件として指定
Go P1 Till 'あらかじめ定義したTill条件を満たした場合は停止
Go P2 Till Sw(2) = On '入力ビット2がオンになった場合は停止
Go P3 Till 'あらかじめ定義したTill条件を満たした場合は停止
← Global GoSub...Return →