short RobWaitForMoveDone ( short idx, short RemainMove );
0が返却されます。
idx:ロボットを指定するインデックス。
RemainMove:移動動作残数の指定。
指定された移動動作残数以下になるまで、指定ロボットの移動動作の完了を待ちます。
RobPtpMove等の移動関数を非同期命令で実行した場合、動作の終了を待つことなく移動関数から戻りますが、本関数のRemainMoveにて指定された移動動作残数以下になるまで次のプログラム行の実行を保留し、移動動作の終了と同期を取ることができます。
本関数により処理が戻った状態でも動作残数が0でない場合はそのまま移動が継続されます。
動作残数についてはRobGetMoveStatus関数の解説を参照してください。
本関数を実行するには、指定ロボットがサーボONの状態であることが必要です。
〇PCベースコントローラ
〇InterMotion
void main() {
double pos[MaxRobAxes];
short rob, i;
rob = 1;
WritePort(2113, 0);
・・・・
//サーボオンと原点復帰
RobSetManipServoPower(rob, 1);
Sleep(500);
RobReturnHome(rob);
RobSetPtpSpeed(rob, 20);
RobSetPtpAccelerations(rob, 0.5, 0.5, 100, 100);
//相対位置移動を非同期で10回発行
for(i = 0; i < 10; i = i + 1) {
pos[0] = 100.0;
RobPtpMove(rob, pos, 4);
}
//動作残数が0になったら出力ポートをONして0の位置へ戻る
RobWaitForMoveDone(rob, 0);
WritePort(2113, 1);
pos[0] = 0.0;
RobPtpMove(rob, pos, 1);
・・・・
}