short RobSetSpeedOverride ( short idx, double val );
0が返却されます。
idx:ロボットを指定するインデックス。
val:速度オーバーライド値を指定します。PTP動作、補間動作について有効です。RobSetPtpSpeed関数、RobSetCpSpeed関数にて設定された速度に対する%で指定します。値の有効範囲は0~100です。
移動動作中の指定のロボットに対して、速度変更を行うための速度オーバーライド値を設定します。
速度オーバライド値は、PTP動作に対してはRobSetPtpSpeed関数で、補間動作に対してはRobSetCpSpeed関数で設定された移動速度に対する%で指定します。
移動中でないロボットに対して本関数で速度オーバーライドを指示した場合、その指示はそれ以降の移動(PTP動作、補間動作)より有効になります。
速度変更はロボット内の全軸に対して設定されます。個々の軸に対して別々に設定することはできません。
速度オーバライドは、再度オーバライドを設定しない限りその効力は失われません。電源投入直後のオーバライド値は100.0[%]です。また、原点復帰動作に対しては無効です。
100%以外の指定値で本関数を実行すると、加減速パターンが直線加減速になります。
通常の移動速度の設定はRobSetPtpSpeedを使用してください。
〇PCベースコントローラ
〇InterMotion
void main() {
double pos[MaxRobAxes], rate[MaxRobAxes];
short rob, Inp, Inp_old;
rob = 1;
Inp = 0;
・・・・
//エラーリセット
MwResetSystemError();
RobResetError(rob);
//サーボオンと原点復帰
RobSetManipServoPower(rob, 1);
Sleep(500);
RobReturnHome(rob);
RobSetPtpSpeed(rob, 35);
RobSetPtpAccelerations(rob, 0.5, 0.5, 0, 0);
//連続移動(非同期命令)
rate[0] = 1.0;
RobConstVelMove(rob, rate, 3);
Printf0("\nConstVelMove start!\n");
//入力ポートの↑エッジと↓エッジを検出してオーバライド実行
while(1) {
Inp_old = Inp;
Inp = ReadPort(2050);
if(Inp_old == 0 && Inp == 1) {
RobSetSpeedOverride(rob, 20.5); //入力ポートの↑エッジ検出したら元の速度の20.5%に速度変更する
Printf0(" > SpeedOverride 20.5\n");
}
if(Inp_old == 1 && Inp == 0) {
RobSetSpeedOverride(rob, 100.0); //入力ポートの↓エッジ検出したら元の速度に速度変更する
Printf0(" > SpeedOverride 100.0\n");
}
if(ReadPort(2049) == 1) {
RobStopMove(rob);
Printf0("ConstVelMove stop!\n");
break;
}
}
RobSetSpeedOverride(rob, 100.0);
RobSetManipServoPower(rob, 0);
・・・・
}