short RobPtpJointMove ( short idx, double GoalPos[MaxRobAxes], long MoveType );
0が返却されます。
idx:ロボットを指定するインデックス。
GoalPos:ロボットの各軸の動作目標位置を関節座標系で指定します。配列要素数はMaxRobAxesにしてください。
MoveType:動作の種別。以下の値が有効です。
1…絶対位置指定、同期命令
2…相対位置指定、同期命令
3…絶対位置指定、非同期命令
4…相対位置指定、非同期命令
指定ロボットを、関節座標系で指定された位置へ、PTP動作にて移動します。
関節座標系では、原点復帰を実施しなくとも移動動作が可能です。
原点復帰前に本関数を使用する場合は、絶対位置指定はできません。相対位置指定(動作種別2または4)を指定してください。
ロボットが複数軸で構成されている場合、移動開始タイミング、および停止タイミングは軸間で同期動作となります。
加減速時間の設定はRobSetPtpAccelerationsで行います。移動速度の設定はRobSetPtpSpeedで行います。
目標位置の単位は[ユーザ単位]です。
目標位置を設定する配列は配列要素[0]から順番に使用されます。例えば、2軸ロボットであれば1軸目の目標位置は配列要素[0]に、2軸目の目標位置は配列要素[1]に設定しておきます。詳細はロボットと軸(モータ軸)リソースを参照してください。
各座標系で使用するMOS関数一覧はこちらを参照してください。
〇PCベースコントローラ
〇InterMotion
次のプログラムは、2軸で構成されたRobot1を2次元平面上の座標(0,0)と(-100,-55)との間で無限回数移動する例です
void main() {
・・・・
// 目標位置を格納する配列の要素数は必ずMaxRobAxesとしてください
double pos[MaxRobAxes]; // 目標位置を格納する配列を宣言
・・・・
RobSetPtpAccelerations(1, 50, 50, 0, 0); // Robot1の加減速時間設定
RobSetPtpSpeed(1, 100); // Robot1の移動速度設定
RobSetManipServoPower(1, 1); // Robot1を全軸サーボオン
pos[0] = 20; // 1軸移動量を設定
pos[1] = 40; // 2軸移動量を設定
RobPtpJointMove(1, pos, 2); // 原点復帰前に現在位置から(+20, +40)の相対位置へptp移動
RobReturnHome(1); // Robot1を原点復帰
while(1) {
pos[0] = -100; // 1軸目標位置を設定
pos[1] = -55; // 2軸目標位置を設定
RobPtpJointMove(1, pos, 1); // 絶対位置(-100, -55)へptp移動
Sleep(500); // 500ms処理遅延
pos[0] = 0;
pos[1] = 0;
RobPtpJointMove(1, pos, 1); // 絶対位置(0, 0)へptp移動
Sleep(500); // 500ms処理遅延
・・・・
}
・・・・
}