LANGUAGE
日本語 English

関数名

RobGetMoveStatus

定 義

short RobGetMoveStatus ( short idx );

戻り値

正常終了では移動動作残数を0~999の値の範囲で返却します。
異常終了では1000以上の値が返却されます。

引 数

idx:ロボットを指定するインデックス。

概 要

指定したロボットにおける移動動作残数を取得します。

詳 細

RobPtpMove等の移動関数を非同期命令で実行した場合、動作の終了を待つことなく移動関数から戻りますが、本関数にて、残りの動作残数を知ることができます。
動作残数とは、ロボットの軸数に関わらず、未実行の非同期移動関数の行数です。例えば、目標位置を変えながら次の非同期移動関数を連続発行した後、RobGetMoveStatusをループして、発行、監視していると、残数が減っていってゼロになります。
RobPtpMove(1,pos1,3); // 非同期命令
RobPtpMove(1,pos2,3); // 非同期命令
RobPtpMove(1,pos3,3); // 非同期命令
RobPtpMove(1,pos4,3); // 非同期命令
本関数を実行するには、指定ロボットがサーボONの状態であることが必要です。

備考

前処理の候補

後処理の候補

他処理の候補

対応HW

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

使用例


void main() {
	double pos[MaxRobAxes];
	short rob, Remain;
	rob = 1;
	//エラーリセット
	MwResetSystemError();
	RobResetError(rob);
	//サーボオンと原点復帰
	RobSetManipServoPower(rob, 1);
	Sleep(500);
	RobReturnHome(rob);
	//移動パラメータ設定
	RobSetPtpSpeed(rob, 20);
	RobSetPtpAccelerations(rob, 0.5, 0.5, 100, 100);
	//非同期/相対位置移動開始
	for(i = 0; i < 5; i = i + 1) {
		pos[0] = 100.0;
		RobPtpMove(rob, pos, 4);
	}
	//動作残数が0になるとループを抜けます
	while(1) {
		Remain = RobGetMoveStatus(rob);
		Printf1("Ptp移動中のRobGetMoveStatus= %d\n", Remain);
		Sleep(100);
		if(Remain == 0) {
			break;
		}
	}
	・・・・
}