LANGUAGE
日本語 English

関数名

RobConstVelMove

定 義

int RobConstVelMove ( int idx, double MoveRate[MaxRobAxes], int MoveType );

戻り値

0が返却されます。

引 数

idx:ロボットを指定するインデックス。
MoveRate:RobSetPtpSpeed関数の設定に対する速度比率を各軸ごとに設定します。配列要素にマイナスの値を設定すると逆方向となります。配列要素の数値は-1.0~1.0の範囲で設定してください。1.0または-1.0を設定すると、RobSetPtpSpeed関数の設定速度で移動します。0を設定すると移動しません。配列要素数はMaxRobAxesにしてください。
MoveType:動作の種別。以下の値が有効です。相対移動は指定できません。
1…同期命令
3…非同期命令

概 要

指定ロボットを一定の速度で連続移動します。

詳 細

ロボットが複数軸で構成されている場合、MoveRateの配列要素に各軸の速度比率を設定できます。
移動動作の中止はRobStopMove関数やRobStopMove2関数で行ってください。特にMoveTypeに1を指定した場合は、本関数は移動完了まで次のプログラム行の実行を保留しますので、移動動作の中止は他のプロセスからのみ行うことができます。

備考

速度比率を設定する配列は配列要素[0]から順番に使用されます。例えば、2軸ロボットであれば1軸目の速度比率は配列要素[0]に、2軸目の速度比率は配列要素[1]に設定しておきます。詳細はロボットと軸(モータ軸)リソースを参照してください。
加速時間の設定はRobSetPtpAccelerations関数で行います。

前処理の候補

後処理の候補

他処理の候補

対応HW

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

使用例


次のプログラムは、本関数を動作種別に3を指定して移動開始した後、ポート5121をwhile文で監視し、ポートの値が1になったらRobStopMove関数で移動を中止する例です。動作種別に1を指定して移動開始すると、プログラム行の実行が進まないので、同じプロセスの中では移動を中止することができなくなります。
void main() {
	・・・・
	// MaxRobAxesの値はシステム内部で定義されており、ユーザが変更することはできません
	double MoveRate[MaxRobAxes];
	short i;
	・・・・
	RobSetPtpAccelerations(1, 1.0, 1.0, 100, 100);	// Robot1加減速時間設定
	RobSetPtpSpeed(1, 10); 				// Robot1の移動速度設定
	RobSetManipServoPower(1, 1);			// Robot1を全軸サーボオン
	RobReturnHome(1); 				// Robot1を原点復帰
	MoveRate[0] = 1.0; 				// 1軸目は100%の速度で正方向移動
	MoveRate[1] = -0.5; 				// 2軸目は50%の速度で逆方向移動
	WritePort(5121, 0);
	RobConstVelMove(1, MoveRate, 3);		//Robot1を連続移動開始
	while(1) {
		i = ReadPort(5121);			// ポート5121が1になったら
		if(i == 1) {
			RobStopMove(1); 		// 移動を中止する
			break;
		}
		Sleep(100);
	}
	・・・・
}