short RobSetManipServoPower2 ( short idx, long status );
正常終了では0が返却されます。異常終了では0以外が返却されます。
idx:ロボットを指定するインデックス。
status:状態を指定します。次の値が有効です。
0…サーボOFF
1…サーボON
指定ロボットの全軸のサーボON、またはサーボOFFを即時に行います。
RobSetManipServoPower関数を使用してサーボONを指定した場合には、確実にサーボONが行われるように、内部的に1秒の遅延が入っています。そのため例えば8個のロボットのサーボを順次ONするためには合計8秒の時間が必要です。
本関数はその遅延を行わない関数です。複数のロボットをほぼ同時にサーボONしたい場合に使用します。上記8個のロボットの例では、本関数を使用することにより8個のロボットをほぼ同時にサーボONすることができます。本関数にてサーボONしたあとは、RobGetManipServoPowerStatus 関数などで確実にサーボONとなっていることを確認してください。
〇PCベースコントローラ
〇InterMotion
void main() {
short rc;
・・・・
RobResetError(1);
RobResetError(2);
RobResetError(3);
RobResetError(4);
// Robot1~4をほぼ同時にサーボONします
RobSetManipServoPower2(1, 1);
RobSetManipServoPower2(2, 1);
RobSetManipServoPower2(3, 1);
RobSetManipServoPower2(4, 1);
Printf0("\n");
while(1) {
//全ロボットのサーボ状態を確認する
rc = RobGetManipServoPowerStatus(1);
rc = rc & RobGetManipServoPowerStatus(2);
rc = rc & RobGetManipServoPowerStatus(3);
rc = rc & RobGetManipServoPowerStatus(4);
if(rc == 1) {
break;
}
Sleep(100);
}
・・・・
}