Arc, Arc3
Arcはベース座標系のXY平面で、アームを現在位置から指定位置まで円弧補間動作で動かします。
Arc3は3次元で、アームを現在位置から指定位置まで円弧補間動作で動かします。
この2つのコマンドは、ロボットが、水平多関節型 (RSシリーズを含む)でも垂直6軸型 (Nシリーズを含む)でも使うことができます。
書式
Arc
(1) Arc 経由座標, 目標座標 [ROT] [ CP ] [Till | Find] [!並列処理!] [SYNC]
(2) Arc 目標座標, 半径, 長短, 回転方向 [ROT] [ CP ] [Till | Find] [!並列処理!] [SYNC]
(3) Arc 目標座標, 回転角 [ROT] [ CP ] [Till | Find] [!並列処理!] [SYNC]
(4) Arc 目標座標, 中心座標, 長短 [ROT] [ CP ] [Till | Find] [!並列処理!] [SYNC]
Arc3
(1) Arc3 経由座標, 目標座標 [ROT] [ECP] [ CP ] [Till | Find] [!並列処理!] [SYNC]
(2) Arc3 目標座標, 中心座標, 長短 [ROT] [ECP] [ CP ] [Till | Find] [!並列処理!] [SYNC]
パラメーター
- 経由座標
- ポイントデータ、もしくはXY関数で指定します。アームが現在位置から目標座標に移動するまでの軌道で通過しなくてはいけないポイントです。
- 目標座標
- ポイントデータ、もしくはXY関数で指定します。アームが円弧動作で移動する到達地点、目標位置です。
- 中心座標
- ポイントデータ、もしくはXY関数で指定します。アームが円弧動作する際の中心座標です。Arcコマンドの場合、Z座標と姿勢 (U,V,W)は利用されません。Arc3コマンドの場合、現在地, 目標座標, 中心座標のX, Y, Z座標を通る平面上を円弧動作します。その際、中心座標の姿勢 (U, V, W)は利用されません。
- 半径
- 円弧動作の半径を実数または式 (単位 :mm)で指定します。
- 長短
- 円弧が現在位置から目標座標に対して短い経路を通るか、長い経路を通るかを指定します。短い経路を通る場合はARC_SHORT、長い経路を通る場合はARC_LONGを指定します。
- 回転方向
- 円弧動作の回転方向を指定します。ベース座標系のXY平面に対しZ軸方向の反時計回りの場合はARC_PLUS、時計回りの場合はARC_MINUSを指定します。
- 回転角
- 円弧動作の回転する角度を実数または式 (単位 :度)で指定します。
360度より小さく、-360度より大きい値を指定します。ベース座標系のXY平面に対しZ軸方向の反時計回りの場合はプラス、時計回りの場合はマイナスで指定します。 - ROT
- ツール姿勢変化を優先させて、動作の速度、加減速度を決めます。省略可能です。
- ECP
- 外部制御点動作を指定します。省略可能です。 (ECPオプション使用時のみ有効)
- CP
- パスモーションを指定します。省略可能です。
- Till | Find
- TillまたはFind式を記述します。省略可能です。
Till | Find Till Sw(式) = {On | Off} Find Sw(式) = {On | Off} - ! 並列処理 !
- Arcステートメントには並列処理ステートメントが使えます。省略可能です。 (詳細については "並列処理"を参照してください。)
- SYNC
- 動作コマンドを予約します。SyncRobotsによる動作開始まで、ロボットは動作しません。省略可能です
解説
ArcとArc3は、アームを現在位置から目標座標まで、経由座標を通過して円弧補間動作で動かすときに使われます。与えられた3点 (現在地, 経由座標, 目標座標)または、与えられた2点 (現在地, 目標座標)と半径, 回転角, 中心座標などのパラメーターから自動的に円弧補間軌道を演算し、目標座標に至るまで、その軌道に沿ってアームを動かします。
また、水平多関節型ロボットの場合は、現在地から目標座標の点へU座標が動きますが、垂直6軸型ロボットの場合は、現在地から目標座標に向かう最短の回転姿勢でU, V, W座標が動きます。経由座標で指定した姿勢(U, V, W)は通過しません。
使用する場合は、実際の動きを事前に確認してください。
ArcとArc3の速度と加減速度は、それぞれSpeedSとAccelSの設定値を使用します。速度と加減速度の関係については、"注意"の "Arc, Arc3をCPとともに用いる"を参照してください。ただし、ROT修飾パラメーターを指定しているときの速度と加減速度はそれぞれSpeedRとAccelRの設定値を使用します。この場合、SpeedSとAccelSの設定値は無効となります。
ロボットのツール先端位置を、特定の座標に固定したままツール姿勢のみを変化させようとした場合や、ツール先端の移動距離に対してツール姿勢変化が大きい場合、ツール姿勢変化速度が著しく速くなる恐れがあります。これを防ぐため、ツール姿勢変化速度が大きい場合に自動で動作速度を制限する機能が働きます。
CP動作時のツール姿勢変化速度の上限値を手動で設定したい場合は、SpeedRLimitationをオンにしてください。SpeedRLimitationをオンにした場合、CP動作時のツール姿勢変化速度が設定したSpeedRを超える場合は、ツール姿勢変化速度がSpeedRになるように動作速度を制限します。ツール姿勢変化速度が設定したSpeedRを超えない場合は、設定したSpeedSで動作します。ツール姿勢変化速度の上限値はSpeedRであらかじめ設定してください。
ECPを使っている場合 (Arc3のみ)、指定したECP番号に対応する外部制御点で、ワークが円弧の軌道に沿って動きます。このとき先端関節の中心は、円弧軌道をたどりません。
Arc動作の速度と加速度の設定
ArcとArc3命令に対する速度と加減速度の設定は、それぞれSpeedSとAccelSにより行います。SpeedSで速度 (単位: mm/s)、AccelSで加減速度 (単位: mm/s2)を指定します。
注意
Arc命令は水平面においてのみ有効です
Arc命令によって描かれる軌道はXY平面上での真円弧になります。経由座標で指定したZ座標や姿勢(U, V, W)は通過せず、現在のポイントと目標座標値を補間します。
Arc3では3次元空間における円弧軌道を指定できます。経由座標で指定したZ座標は通過しますが、姿勢(U, V, W)は通過せず、現在のポイントと目標座標値を補間します。Arc命令に対する範囲確認
ArcとArc3ステートメントは、Arc動作に先立って軌道範囲確認の演算を行うことができません。したがって、目的位置が動作エリア内でも、軌道がエリア外にでると停止することがあります。そのとき衝撃が生じ、アームに障害を与える可能性がありますので、あらかじめプログラムを低速で走らせて軌道を確認しておくことが必要です。
Arc動作の設定にあたって
Arcコマンドによる円弧動作は、現在位置から開始されるため、ArcとArc3の実行に先立って、あらかじめGoやJumpその他の関連動作コマンドを使って、ロボットのアームを適切な位置に動かしておくことが必要な場合もあります。
Arc, Arc3をCPとともに用いる
CPパラメーターを使うと、動作命令は減速開始と同時に制御を次のステートメントに移します。これは、ユーザーがいくつかの動作命令をつなげ、連続した動作を一定の速度で行わせたいときに便利です。CP指定なしのArc命令, Arc3命令では、アームは必ず減速して、指定された目標座標に停止します。
コンベヤートラッキングでArc, Arc3コマンドを利用する場合
経由座標を指定しないArc, Arc3書式は、Cnv_QueGetで得たポイントデータを入れて利用することはできません。経由座標指定のArc, Arc3書式を使用してください。
円弧の角度が±180度、±360度付近の場合
経由座標を指定しないArc, Arc3書式の場合、円弧の角度が±180度付近や±360度付近では想定通りの軌跡にならない場合があります。またArc3で円弧の角度が±180度となるように中心座標、目標座標を指定した場合、円弧が特定できないためエラーになります。円弧の角度が±180度、±360度付近では、経由座標指定のArc, Arc3書式を使用してください。
半径指定Arcコマンドの制限
半径は、現在地から目標座標まで距離の1/2以上の値を設定してください。指定した半径が短すぎると円弧が描けないためエラーになります。
回転角指定Arcコマンドの制限
回転角は、360度より小さく、-360度より大きい値を指定してください。0度は円弧にならないためエラーになります。
起こりやすいエラー
ハンド(腕系)の属性を変更する
Arc命令を使用する場合は、各ポイントのハンドの属性に注意してください。円弧補間動作の間にハンドの向きが変更されると (例えば、右腕から左腕、あるいはその逆の変更など)、エラーになります。アームの属性値(/L左腕, /R右腕)は、実際の現在位置、経由座標や目標座標と一致していなければいけません。
可動範囲外にアームを動かそうとするとき
もし指定された円弧動作が、アームを可動範囲外に動かそうとしていると、エラーになります。
ほぼ直線で動かそうとするとき
もし指定された円弧動作が、ほぼ直線になる場合、エラーになります。Moveコマンドを利用してください。
参照
!...! 並列処理, AccelS, Move, SpeedS
Arc, Arc3使用例(経由座標指定)
下記は、図のような軌道を描くプログラムの例です。
P100から動作を開始し、P101を経由して、P102に到着する円弧動作軌道をとります。
Function ArcTest
Go P100
Arc P101, P102
Fend
ヒント
初めてArc命令を使うときには、可動範囲の中にあるロボットの側のポイントを使って、簡単な円弧で試してみることをお奨めします。そのとき、実際に描かれる円弧軌道を想定してみてください。そしてアームが通常の可動範囲外を移動してしまうポイントをティーチングしないようにしてください。
Arc使用例(半径指定)
下記は、図のような軌道を描くプログラムの例です。
P100から動作を開始し、半径 R[mm] (下記の例では500.0mm)でP102に到着する円弧動作軌道をとります。
Function ArcTest
Go P100
Arc P102, 500.0, ARC_SHORT, ARC_MINUS
Fend
半径R[mm]が、現在地P100から目標座標P102まで距離の1/2に等しい場合、下記のように動作します。半径R[mm]がさらに短い場合、円弧が描けないためエラーになります。
Arc使用例(回転角指定)
下記は、図のような軌道を描くプログラムの例です。
P100から動作を開始し、指定した回転角(単位:度)だけ回転してP102に到着する円弧動作軌道をとります。回転角が負の値の場合、下記の例のように、ベース座標系のXY平面に対しZ軸方向の時計回りに回転します。
Function ArcTest
Go P100
Arc P102, -123.4
Fend
Arc, Arc3使用例(中心座標指定)
下記は、図のような軌道を描くプログラムの例です。
P103を中心座標として、P100から動作を開始し、P102に到着する円弧動作軌道をとります。
Function ArcTest
Go P100
Arc P102, P103, ARC_SHORT
Fend
ヒント
中心座標がずれていた場合
中心座標P103と現在地P100との距離R1と、中心座標P103と目標座標P102との距離R2が異なる位置に中心座標P103を指定した場合、P103ではなく現在地と目標座標の距離が等しくなる位置を中心座標として円弧動作を行います。この場合、想定通りの軌跡にならない場合があるので、現在地と目標座標から等距離に中心座標を指定してください。
中心座標指定のArcコマンドで±180度付近を指定した場合
Arcコマンドにおいて、円弧の角度が±180度となるように中心座標P103を指定した場合、ARC_LONGを指定するとベース座標系のXY平面に対しZ軸方向の時計回りに回転します。ARC_SHORTを指定するとベース座標系のXY平面に対しZ軸方向の反時計回りに回転します。
ただし、円弧の角度が±180度からわずかにずれると、ARC_LONGまたは、ARC_SHORTで指定した長さの経路で回転します。±180度付近で想定通りの円弧を描くためには経由座標指定を利用してください。