LANGUAGE
日本語 English

関数名

RobLinearMove

定 義

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関数一覧はこちらを参照してください。

前処理の候補

後処理の候補

他処理の候補

対応HW

〇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処理遅延
		・・・・
	}
	・・・・
}