short RobGetAxesConfig ( int idx, long PyhsicalAxisNo[MaxRobAxes], long PyhsicalAxisType[MaxRobAxes] );
正常終了では0が返却されます。指定ロボットが未設定の場合は1が返却されます。
idx:ロボットを指定するインデックス。
PyhsicalAxisNo:ロボットの各軸に割付けられている物理軸番号を格納するための配列を指定します。配列要素数はMaxRobAxesにしてください。
PyhsicalAxisType:ロボットの各軸に割付けられている物理軸タイプを格納するための配列を指定します。配列要素数はMaxRobAxesにしてください。
指定ロボットの各論理軸に割付けられている物理軸番号と物理軸タイプを取得します。
PyhsicalAxisNoの各要素に得られた番号が0の場合、その論理軸には物理軸が割付けされていないことを示します。0以外の場合は、その論理軸に該当番号の物理軸が割付けられていることを示します。
PyhsicalAxisTypeの各要素に得られた番号が0の場合、その軸はRTEX軸であることを、1であればパルス列軸であることを示します。物理軸番号の割付けが0以外の場合に、物理軸タイプは有効な意味を持ちます。
物理軸番号および物理軸タイプを格納する配列は、配列要素[0]から順番に使用されます。例えば、2軸ロボットであれば論理1軸目の物理軸番号および物理軸タイプは配列要素[0]に、論理2軸目の物理軸番号および物理軸タイプは配列要素[1]に格納されます。詳細はロボットと軸(モータ軸)リソースを参照してください。
〇PCベースコントローラ
〇InterMotion
void main() {
long PhyAxNo[MaxRobAxes], PhyAxType[MaxRobAxes];
int RobotNum, i, RobRc;
・・・・
// ロボット数の調査
RobotNum = 0;
for(i = 1; i <= 16; i = i + 1) {
RobRc = RobGetAxesConfig(i, PhyAxNo, PhyAxType);
if(RobRc == 0/*ロボットが存在する*/) {
RobotNum = RobotNum + 1;/*最大ロボット数を更新*/
}
}
// 例えばRobot1が物理9軸と10軸で構成されたパルス列タイプのロボットであったとする
RobGetAxesConfig(1, PhyAxNo, PhyAxType); // ロボット1の情報取得
Printf1("\n PhyAxNo= %d", PhyAxNo[0]); // PhyAxNo[0]=9が得られる
Printf1(", %d", PhyAxNo[1]); // PhyAxNo[1]=10が得られる
Printf1(", %d", PhyAxNo[2]); // PhyAxNo[2]=0が得られる
Printf1(", %d", PhyAxNo[3]); // PhyAxNo[3]=0が得られる
Printf1(", %d", PhyAxNo[4]); // PhyAxNo[4]=0が得られる
Printf1(", %d", PhyAxNo[5]); // PhyAxNo[5]=0が得られる
Printf1(", %d", PhyAxNo[6]); // PhyAxNo[6]=0が得られる
Printf1(", %d", PhyAxNo[7]); // PhyAxNo[7]=0が得られる
Printf1("\n PhyAxType= %d", PhyAxType[0]); // PhyAxType[0]=1が得られる
Printf1(", %d", PhyAxType[1]); // PhyAxType[1]=1が得られる
Printf1(", %d", PhyAxType[2]); // PhyAxType[2]=0が得られる
Printf1(", %d", PhyAxType[3]); // PhyAxType[3]=0が得られる
Printf1(", %d", PhyAxType[4]); // PhyAxType[4]=0が得られる
Printf1(", %d", PhyAxType[5]); // PhyAxType[5]=0が得られる
Printf1(", %d", PhyAxType[6]); // PhyAxType[6]=0が得られる
Printf1(", %d", PhyAxType[7]); // PhyAxType[7]=0が得られる
・・・・
}