Move
アームを現在位置から指定位置まで直線補間動作で動かします。
書式
Move 目標座標 [ROT] [ECP] [CP] [Till | Find] [!並列処理!] [SYNC]
パラメーター
- 目標座標
- ポイントデータで目標位置を指定します。
- ROT
- ツール姿勢変化を優先して、動作の速度、加減速度を決めます。省略可能です。
- ECP
- 外部制御点動作を指定します。省略可能です。 (ECPオプション使用時のみ有効)
- CP
- パスモーションを指定します。省略可能です。
- Till | Find
- TillまたはFind式を記述します。省略可能です。
Till | Find Till Sw(式) = {On | Off} Find Sw(式) = {On | Off} - ! 並列処理 !
- 動作中にI/Oなどのコマンドを実行できるように、並列処理ステートメントを追加できます。省略可能です。
- SYNC
- 動作コマンドを予約します。SyncRobotsによる動作開始まで、ロボットは動作しません。
解説
Moveはアームを現在位置から目標座標まで直線移動させます。Moveでは全関節が同時に動き始め、同時に停止します。目標座標は、Move命令の実行前にあらかじめティーチングしておきます。Moveの加減速は、AccelS命令で制御します。Moveの速度は、SpeedS命令で制御します。SpeedSで設定した値が、それぞれの関節の許容速度を1つでも超えた場合、モーターの励磁を切ってロボットは停止します。
Moveの速度と加減速度はそれぞれSpeedSとAccelSの設定値を使用します。速度と加減速度の関係については、"注意"の"MoveをCPとともに用いる"を参照してください。ただし、ROT修飾パラメーターを指定しているときの速度と加減速度は、それぞれSpeedRとAccelRの設定値を使用します。その場合、SpeedSとAccelSの設定値は無効となります。
通常、移動距離が"0"で、姿勢関節のみが動作するような場合にはエラーとなります。ROT修飾パラメーターを付けてツール姿勢変化の加減速を優先することで、エラーなく動作が可能になります。ROT修飾パラメーターを付けたとき、姿勢変化がなく、移動距離が"0"でない場合には、エラーとなります。
また、移動距離に対してツール姿勢変化速度が大きすぎる場合や、指定された回転速度がマニピュレーターの限度を越えている場合もエラーとなります。その場合は指定速度を落とすか、またはROT修飾パラメーターをつけて姿勢変化の加減速度を優先するようにしてください。
ECPを使っている場合、指定したECP番号に対応する外部制御点で、ワークが直線に動きます。このとき先端関節の中心は、直線をたどりません。
Move動作完了以前にロボットを減速停止させたい場合は、ユーザーはその条件を、Till修飾子を使って指定できます。ここで指定した条件は、入力ビットのうち1つをチェックすることになり、Sw命令を使って行います。ユーザーは、入力がオンかオフかをチェックし、指定した条件に基づいてアームを停止させます。この機能は、入力条件が成立するとMoveが中止される割込みに似ています。Move動作中一度も入力条件が成立しなければ、目標座標で指定された位置までアームは到達します。
Till修飾子は省略可能です。Till修飾子の詳細については、Tillコマンドを参照してください。
注意
Moveでできないこと
動作を行う前に動作範囲確認をすることはできません。したがって目標座標位置が許容動作範囲内にあっても、そこに至る軌道が許容動作範囲外を通過すると、アームが突然停止して、サーボに衝撃を与え、障害を生じる危険があります。これを防ぐために、Moveを高速度で実行する前に、低速度で動作範囲確認を行ってください。つまり、目標座標がアームの動作範囲内にあっても、Move動作でそこに至る軌道が、物理的にアームの許容動作範囲外にあると、アームは動かなくなります。
MoveをCPとともに用いる
CPパラメーターを使うと、動作命令は減速開始と同時に制御を次のステートメントに移します。これは、ユーザーがいくつかの動作命令をつなげ、連続した動作を一定の速度で行わせたいときに便利です。CP指定なしのMove命令では、アームは必ず減速して、指定された目標座標に停止します。
Moveに適切な速度, 加減速度指示を与える
SpeedSとAccelS命令は、Move動作中のマニピュレーターの速度と加減速度を指定しますが、SpeedSとAccelSは、直線および円弧補間動作に対する命令であることに注意してください。PTP動作に対しては、SpeedとAccel命令が適用になります。
起こりやすいエラー
直線移動距離が0となる動作を実行しようとした場合
Moveは、4自由度ロボット(水平多関節型 (RSシリーズを含む)など)のU座標値や6自由度ロボット (垂直6軸型 (Nシリーズを含む))のU, V, W座標値のみを変化させるような動作を行おうとするとエラーが発生します。この場合はROTパラメーターを使用してください。
関節の制限スピードを超えるエラー
指示された動作中、1関節でも許容速度を超えると、オーバースピードエラーが発生します。モーターオーバースピードエラーの場合、アームは停止し、モーターの励磁は切れます。
RSシリーズで原点近傍を通過する動作を実行した場合
RSシリーズでは、Moveで原点近傍を通過するような動作を行うと、オーバースピードエラーが発生することがあります。原点近傍を通過するような動作については、以下のような対策を行ってください。
- SpeedSの設定速度を下げてください。
- 原点近傍を通過しない経路に変更してください。
- Moveの代わりにGoなどのPTP動作を使用してください。
参照
AccelS, Arc, CP, Go, Jump, Jump3, Jump3CP, SpeedS, Sw, Till
Move使用例
下記の例は、P0~P1までアームをPTP動作し、その後、直線でP0まで戻す簡単な例です。プログラム後半で、アームは、入力ビット2がオンになるまでP2に向かって直線移動します。動作中に入力ビット2がオンになると、アームはP2に到達前でも減速停止し、次のプログラム命令を実行します。
Function movetest
Home
Go P0
Go P1
Move P0
Move 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
次にMoveをCPとともに用いる例です。下記図は、P100から始まる円弧軌道を示します。P100からP101まで直線移動し、P101から円弧が始まりP102を通ってP103に円弧を描き続きます。P103からP104までは直線動作になり、この間に減速停止します。P104で停止するまで、途中のポイントでは減速しないことに注目してください。下記のファンクションでは、このような動作をプログラムしています。
Function CornerArc
Go P100
Move P101 CP 'P101で停止しない
Arc P102, P103 CP 'P103で停止しない
Move P104 'P104に減速停止
Fend