MOVE  (ステートメント)  【SLIM準拠】


ロボットを指定座標へ移動します。
EXオプション(付加軸相対動作)またはEXA オプション(付加軸絶対動作)を付けることにより、ロボットと付加軸を同期(同時発着)で動作させることができます。


  • <補間方法>が自由曲線以外の場合
    MOVE <補間方法>,[@<パス開始変位>]<ポーズ>[<EXまたはEXAオプション>][,[@<パス開始変位>]<ポーズ>[<EXまたはEXAオプション>]…][,<動作オプション>][,NEXT]
  • <補間方法>が自由曲線の場合【Ver.2.3以降】
    MOVE S, [@<パス開始変位>]<軌道番号>[<EXまたはEXAオプション>][,<動作オプション>][,NEXT]


現在位置から指定座標<ポーズ>へ移動します。
<ポーズ>はポジション型(P型)、ジョイント型(J型)、同次変換型(T型)が使用できます。
  • ポジション型は、変数、番号付き変数によるポーズ列、定数および、現在位置
    (*,CURPOS)が使用できます。
  • ジョイント型は、変数、番号付き変数によるポーズ列および、現在角度(CURJNT)が使用できます。
  • 同次変換型は、変数、番号付き変数によるポーズ列が使用できます。
ポーズ列の表し方: P[3 TO 6]  P[3]からP[6]まで。
<補間方法>にはP、L、C、Sの4種類の選択ができます。
補間方法
意味
P(またはPTPと表記)
現在位置から指定座標へPTP制御で移動します。
L
現在位置から指定座標へCP制御で移動します。
C
現在位置から経由ポーズを通り、目的ポーズへ円弧補間をして移動します。
姿勢は、現在位置の姿勢から目的ポーズの姿勢へ補間動作します。(経由ポーズの姿勢は無視されます)
円弧補間では、経由ポーズ、目的ポーズの2点の指示が必要です。
(Cにはポーズ列は使えません)
経由ポーズにパス開始変位を指定しても動作は変化しません。
円弧補間動作終了時のパスは、MOVE C, P1, @P P2のように指定します。
S 自由曲線
【Ver.2.3以降】
現在位置から、SETSPLINEPOINTで登録した通過点を通り、最終の通過点へ移動します。軌道は滑らかな曲線になります。ツール端の速度は加減速時を除き、曲線上を一定速度で動作します。
姿勢は、通過点毎にパス動作で通過します。

<軌道番号>は自由曲線の軌道番号です。 SETSPLINEPOINTで<軸番号>毎に登録された通過点を通る自由曲線になります。最大20まで指定できます。
<パス開始変位>の値は指定座標(ポーズ)を中心とした球の半径で、動作指令値がその中に入ると次の制御へ移ります。mm単位で指定します。パス開始タイミングを変えるための目安となる数値であり、アーム先端がその中に入ったときに次の制御へ移るわけではありません。
  • 省略するとデフォルト値@0として処理します。
  • @0とすると、エンド動作で動きます。
  • @Pとすると、パス動作で動きます。
  • @Eとすると、エンコーダ値によって目標位置への到達を確認し、次の動作に移ります。
<動作オプション>にはSPEED、ACCEL、DECELがあります。
動作オプション
意味
SPEED(またはSと表記)
移動速度を指定します。意味はSPEED文と同じです。
ACCEL
加速度を指定します。意味はACCEL文と同じです。ただし、減速度の指定はできません。減速度の指定はDECEL文を使ってください。
DECEL
減速度を指定します。意味はDECEL文と同じです。

<NEXTオプション>を付けると、ロボットの動作完了を待たずに次の非動作命令に続きます。ただし、以下の命令は、ロボットの動作完了(パス開始)まで実行待ちになります。 ロボット動作命令(CHANGETOOL、CHANGEWORK、SPEED、JSPEED、ACCEL、JACCEL、DECEL、JDECEL)、最適可搬質量設定ライブラリ(aspACLD、aspChange)、アーム動作ライブラリ(mvSetPulseWidthなど)
また、動作オプションと併用した場合、NEXTオプションは無効になります。<NEXTオプション>を付けた場合、ステップ停止を実行すると、次の動作命令実行待ちの場合は、その動作を終了後に停止します。したがって、停止までの移動が長くなりますので注意してください。
また、ティーチチェックモードでは、NEXTオプションは無効になります。
MOVE P,P[3 TO 5] または、MOVE P,P3,P6,P9 のような表現は、それぞれ
MOVE P,P[3 TO 5] →
MOVE P,P3,NEXT
MOVE P,P4,NEXT
MOVE P,P5
MOVE P,P3,P6,P9 →
MOVE P,P3,NEXT
MOVE P,P6,NEXT
MOVE P,P9

と表現したのと同じ意味になります。(処理効率は左側の表現の方が良い)
従って、
  • IOBLOCK ONとOFFの間に、これらの表現があったとしても、最終ポーズ(P5とかP9)の動作が開始されるまで、次の非動作命令は実行されません。「IOBLOCK ON/OFF」を参照してください。
  • NEXTオプションを付けた場合も最終ポーズ(P5, P9)の動作が開始されるまで、次の非動作命令は実行されません。
EXまたはEXAオプションは下記書式で指定します。
<EXまたはEXAオプション>の書式
EX((<軸番号>,<相対移動量>)[,(<軸番号>,<相対移動量>)…])
EXA((<軸番号>,<軸座標>)[,(<軸番号>,<軸座標>)…])
<軸番号>には付加軸のみを指定でき、ロボット軸は指定できません。


(付加軸を動かすコマンドはMOVEのEXまたはEXAオプション、DRIVEDRIVEAのみです。)


  • ポジション型、同次変換型にてポーズ指定した場合、指定されたポーズがロボットの動作範囲外となることがあります。その場合、エラー6070番台 (J*ソフトリミットオーバ、可動範囲外、特異点です) が発生します。特に16~31の形態を指定した場合はご注意ください。
  • CP動作、円弧補間動作において、現在とっている形態(操作ガイド「4.1.3 腕・ひじ・手首の形態について」参照)と指定座標の形態が異なる場合、エラー607F(ロボット形態不一致)が発生します。ただし、ロボット形態が変化する動作が可能な場合は、エラーは発生しません。
  • CP動作、円弧補間動作、自由曲線動作において、特異点(操作ガイド「4.1.3 腕・ひじ・手首の形態について [ 2 ] 形態の境界」参照)近傍を通るとき、エラー6080番台(指令速度制限オーバ)を発生し、停止することがあります。この場合、スピードを落とすか、最適可搬質量設定モード(p. 4-8「4.6 最適可搬質量設定機能」 参照)を2または3にして使用してください。それでもエラーが発生する場合は、特異点近傍の軌道を回避してください。
  • CP動作において、動作終了時の形態と指定されたポーズの形態が一致せず、ワーニング601C(形態を変更してください)が発生する場合があります。動作終了時の形態で再度、教示いただくようお願いします(ただし、ワーニングが発生しても動作には影響しません)。
  • 円弧補間動作時のパス動作、エンコーダ値確認動作は、目的ポーズにパス開始変位量を指定してください。経由ポーズにパス開始変位量を指定しても、動作は変化しません。
  • 円弧補間動作は、経由ポーズの姿勢が無視されます。したがって、ツール端が経由ポーズを通過しない場合があります。ツール端が経由ポーズを通過するようにするには、ツール定義にてツール端にツール座標を設定してください。
  • 円弧補間動作にて、前動作がパスの場合、パス動作中に瞬時停止をかけて再起動すると、「エラー60de 指定した回転動作と異なる動作をします」が発生する場合があります。
  • 円弧補間動作において、現在のポーズと目的ポーズが一致している場合、動作しません。また、現在のポーズと経由ポーズが一致している場合、経由ポーズと目的ポーズが一致している場合、目的ポーズへ向けてCP動作となります。
  • 自由曲線動作において、SETSPLINEPOINTで登録した通過点の形態が現在の形態と異なる場合エラー「607F ロボット形態不一致」が発生します。
  • 自由曲線動作において、通過点間の移動距離が短く、姿勢変化が大きい場合、エラー6080番台「指令速度制限オーバ」を発生し停止することがあります。この場合、スピードを落とすか、最適可搬質量設定モードを2または3にしてください。
  • 1つの自由曲線上をパス動作で繰返し動作させたい場合は、その自由曲線を2つの軌道番号に登録し、動作毎に軌道番号を切り替えてください。同じ軌道番号の自由曲線をパス動作させるとエラーが発生する場合があります。
付加軸の注意事項
  • 無限回転の設定になっている軸はEXAオプション(絶対動作命令)は実行できません。
  • ポーズ列を扱う場合は、注意が必要です。
    例:MOVE P,P[3 TO 5] EX((7,30))は
    MOVE P,P3,NEXT
    MOVE P,P4,NEXT
    MOVE P,P5 EX((7,30))
    と記述したのと同じになります。
    よって7軸はロボットがP5の座標へ移動するのと同期(同時発着)します。


例1:
DIM li1 As Integer
6軸
MOVE P, (740, 0, 480, 180, 0, 180, 5), NEXT
'(740, 0, 480, 180, 0, 180)でロボット形態5の
'座標へ(PTP制御) 移動します。
'動作開始後、次命令を実行します。
4軸
MOVE P, (100, 200, 300, 45, 1), NEXT
'(740, 0, 480, 180, 0, 180)でロボット形態1の
'座標へ(PTP制御) 移動します。
'動作開始後、次命令を実行します。
MOVE L, lp1, SPEED = 100
'lp1の座標へ(CP制御, 内部速度=100%)
'移動します。
MOVE P, @30 lp2, lp3, S = lil
'lp2(@30)、lp3の座標へ順に
'(PTP制御,内部速度= li1)動作します。
MOVE L, @20 lp4, @50 lp5, @100 lp6
'lp4(@20)、lp5(@50), lp6(@100) の
'座標へ順に(CP制御)動作します。
MOVE L, @P P[6 TO 15], lp7
'P[6]からP[15]まで順にパス動作で
'移動し、lp7の座標へ(CP制御) 動作
'します。
MOVE C, lp1, @p lp2
'lp1を通りlp2へ移動する円弧補間
'動作をします。lp2にてパス動作し、
'次の制御に移ります。

例2(付加軸の例):
PROGRAM PRO1
TAKEARM 2
'ロボット軸と付加軸を含むアームグループ2を取得
MOVE P,P0 EX((7,30),(8,10))
'ロボットのP0への移動と、7軸、8軸の相対移動
'が同時発着します。
MOVE P,P1 EXA((7,30))
'ロボットのP1への移動と、
'7軸の絶対移動が同時発着します。
END

例3(自由曲線動作の例)【Ver.2.3以降】:
MOVE S, @P 2, S=10, NEXT
' 軌道番号2の自由曲線を内部速度10%で
' パス動作します。動作開始後、
' 次命令を実行します。