short RobLinearMove ( short idx, double Goal[MaxRobAxes], long MoveType );
0が返却されます。
idx:ロボットを指定するインデックス。
Goal:ロボットの各軸の動作目標位置を直交座標系で指定します。配列要素数はMaxRobAxesにしてください。
MoveType:動作の種別。以下の値が有効です。
1…絶対位置指定、同期命令
2…相対位置指定、同期命令
3…絶対位置指定、非同期命令
4…相対位置指定、非同期命令
指定ロボットを直線補間動作にて指定位置へ移動します。
本関数での直線補間の対象は論理軸の1~3軸で、直交座標系のXYZ軸の3次元と同意です。
対象軸以外は、対象軸の移動開始と移動終了に同期し、移動量は比例配分されます。
加減速時間の設定はRobSetCpAccelerations関数で行います。移動速度の設定はRobSetCpSpeed関数で行います。
目標位置の単位は[ユーザ単位]です。
目標位置を設定する配列は配列要素[0]から順番に使用されます。例えば、2次元の直線補間であれば1軸目の目標位置は配列要素[0]に、2軸目の目標位置は配列要素[1]に設定しておきます。直線補間の対象とならない配列要素[3]~の配列要素に設定された位置は補間の対象にはなりません。詳細はロボットと軸(モータ軸)リソースを参照してください。
各座標系で使用するMOS関数一覧はこちらを参照してください。
〇PCベースコントローラ
〇InterMotion
次のプログラムは、2軸で構成されたRobot2を2次元平面上の座標(0,0)と(-100,-55)との間で無限回数移動する例です
void main() {
・・・・
// 目標位置を格納する配列の要素は必ずMaxRobAxesとしてください
// MaxRobAxesの値はシステム内部で定義されており、ユーザが変更することはできません
double pos[MaxRobAxes]; // 目標位置を格納する配列を宣言
・・・・
RobSetCpAccelerations(2, 50, 50, 0, 0); // Robot2の加減速時間設定
RobSetCpSpeed(2, 50); // Robot2の移動速度設定
RobSetManipServoPower(2, 1); // Robot2を全軸サーボオン
RobReturnHome(2); // Robot2を原点復帰
while(1) {
pos[0] = -100; // 1軸目標位置を設定
pos[1] = -55; // 2軸目標位置を設定
RobLinearMove(2, pos, 1); / 絶対位置(-100,-55)へ直線補間移動
Sleep(500); // 500ms処理遅延
pos[0] = 0;
pos[1] = 0;
RobLinearMove(2, pos, 1); // 絶対位置(0,0)へ直線補間移動
Sleep(500); // 500ms処理遅延
・・・・
}
・・・・
}