short RobReturnHome2 ( short idx, long Mode );
0が返却されます。
idx:ロボットを指定するインデックス。
Mode:動作の種別。以下の値が有効です。
1…同期命令
3…非同期命令
指定ロボットの機械原点への原点復帰動作を行います。
動作の種別に1を指定した場合は、本関数は原点復帰が完了するまで次のプログラム行の実行を保留します。この場合はRobReturnHome関数と同様の動作をします。
動作の種別に3を指定した場合は、本関数は原点復帰を開始すると、原点復帰の完了を待たずに次のプログラム行を直ちに実行します。この場合、原点復帰完了状態はRobGetReturnHomeStatus関数で取得することができます。原点復帰のシーケンス状態はRobGetReturnHomeSequence関数で取得することができます。
原点復帰動作を途中で停止したい場合は、RobSetServoPower等の関数を使用してサーボをOFFにしてください。この場合、プログラムはランタイムエラーで停止します。
コンフィギュレーションファイルのEncoderTypeパラメータで、RTEXのアブソリュートシステムを設定した軸を含むロボットに対して本関数を発行するとランタイムエラーとなります。
コンフィギュレーションファイルに、原点復帰動作に関連するパラメータが設定できます。主なパラメータは次の通りです。
原点復帰タイプ:ReturnHomeTypeパラメータ
原点復帰動作順序:ReturnHomeOrderパラメータ
原点サーチ速度:ReturnHomeVelocity1およびReturnHomeVelocity2パラメータ
原点サーチ加減速時間:ReturnHomeAccel1およびReturnHomeDecel1パラメータ
〇PCベースコントローラ
〇InterMotion
void init_rob() {
short rc, rc_old, i;
・・・・
//Robot1~4を初期化
for(i = 1; i < 5; i = i + 1) {
RobSetSettle(i, 50);
RobSetPtpAccelerations(i, 1.0, 1.0, 100, 100);
RobSetPtpSpeed(i, 100);
RobSetManipServoPower2(i, 1); // 即時サーボオン
}
//Robot1~4のサーボオンを確認
for(i = 1; i < 5; i = i + 1) {
rc_old = 0;
while(1) {
rc = RobGetManipServoPowerStatus(i);
if(rc == 1 && rc_old == 0) {
Printf1("Rob%d:サーボON終了\n", i);
break;
}
rc_old = rc;
Sleep(10);
}
}
//Robot1~4の原点復帰
for(i = 1; i < 5; i = i + 1) {
RobReturnHome2(i, 3); // 機械原点への原点復帰(非同期モード)
}
//Robot1~4の原点復帰終了を確認
for(i = 1; i < 5; i = i + 1) {
rc_old = 0;
while(1) {
rc = RobGetReturnHomeStatus(i);
if(rc == 1 && rc_old == 0) {
Printf1("Rob%d:原点復帰終了\n", i);
break;
}
rc_old = rc;
Sleep(10);
}
}
・・・・