LANGUAGE
日本語 English

関数名

RobCircularMove

定 義

short RobCircularMove ( short idx, double PassPos1[MaxRobAxes], double PassPos2[MaxRobAxes], long MoveType );

戻り値

0が返却されます。

引 数

idx:ロボットを指定するインデックス。
PassPos1:ロボットの各軸の動作中継位置1を直交座標系で指定します。配列要素数はMaxRobAxesにしてください。
PassPos2:ロボットの各軸の動作中継位置2を直交座標系で指定します。配列要素数はMaxRobAxesにしてください。
MoveType:動作の種別。以下の値が有効です。
1…絶対位置指定同期命令
2…相対位置指定、同期命令
3…絶対位置指定、非同期命令
4…相対位置指定、非同期命令

概 要

指定ロボットを、指定された平面上の中継位置1、2を経由し、最終目標位置(=現在位置)まで真円補間動作にて移動します。

詳 細

本関数での補間の対象は論理軸の1~2軸で、直交座標系のXY平面上でのみ動作します。
補間対象外の軸は移動を行いません。
加減速時間の設定はRobSetCpAccelerations関数で行います。移動速度の設定はRobSetCpSpeed関数で行います。
目標位置の単位は[ユーザ単位]です。

備考

中継位置を設定する配列は配列要素[0]と[1]が使用されます。3軸目(配列要素[2])以降の中継位置は無視されます。
詳細はロボットと軸(モータ軸)リソースを参照してください。
各座標系で使用するMOS関数一覧はこちらを参照してください。

前処理の候補

後処理の候補

他処理の候補

対応HW

〇PCベースコントローラ
〇InterMotion

使用例


次のプログラムは、4軸で構成されたRobot1を真円補間でポーズ停止しながら無限回数移動する例です
void main() {
	double ppos[MaxRobAxes], gpos[MaxRobAxes];
	short rob;
	・・・・
	rob = 1;
	//エラーリセット、サーボON、原点復帰
	MwResetSystemError();
	RobResetError(rob);
	RobSetManipServoPower(rob, 1);
	RobReturnHome(rob);
	//初期設定
	RobSetCpSpeed(rob, 200);			// 移動速度設定
	RobSetPtpAccelerations(rob, 0.5, 0.5, 0, 0);	// 加減速時間設定
	pos1[0] = 292.0;
	pos1[1] = -41.0;
	pos1[2] = 0.0;
	pos1[3] = 0.0;
	RobLinearMove(rob, pos1, 1);			// 移動の初期位置への移動
	//1軸目(X)と2軸目(Y)で真円補間を行います
	//1軸目と2軸目(X,Y)は(292, -41)の位置から(-32, 16)を経由して再び(292, -41)の位置へ戻る真円補間動作で移動します
	//3軸目と4軸目は移動動作を行いません
	while(1) {
		pos1[0] = 209.0;	//Xの中継位置1
		pos1[1] = 104.0;	//Yの中継位置1
		pos1[2] = 300.0;	//XY平面以外は動作しません(無視されます)
		pos1[3] = 500.0;	//XY平面以外は動作しません(無視されます)
		pos2[0] = -32.0;	//Xの中継位置2
		pos2[1] = 16.0;		//Yの中継位置2
		pos2[2] = 200.0;	//XY平面以外は動作しません(無視されます)
		pos2[3] = 600.0;	//XY平面以外は動作しません(無視されます)
		RobCircularMove(rob, pos1, pos2, 1);
		Pause(1);		//ポーズ停止
	}
	・・・・
}