long RobGetErrorStatus ( int idx, long Code[2], double Sts1[MaxRobAxes], double Sts2[MaxRobAxes], double Sts3[MaxRobAxes] );
idxで指定したロボットが正常状態であれば0を、ロボットエラー状態であれば0以外を返却します。
idx:ロボットを指定するインデックス。
Code:エラーコードを格納するための配列を指定します。配列要素数は2にしてください。
Sts1:ロボットの各軸のステータスコード1(ドライバアラーム状態)を格納するための配列を指定します。配列要素数はMaxRobAxesにしてください。
Sts2:ロボットの各軸のステータスコード2(エラー状態)を格納するための配列を指定します。配列要素数はMaxRobAxesにしてください。
Sts3:ロボットの各軸のステータスコード3(RTEXドライバのエラーコード)を格納するための配列を指定します。配列要素数はMaxRobAxesにしてください。
指定ロボットの詳細なロボットエラーステータスを取得します。
Code[0]には指定ロボットの補間動作中のエリアオーバ状態が格納されます。エリアオーバが発生していれば1が、正常状態であれば0が格納されます。本エラーではサーボOFFになりません。
Code[1]には指定ロボットの位置決めタイムアウトの状態が格納されます。位置決めタイムアウト状態では1が、正常状態であれば0が格納されます。本エラーが発生した場合、該当ロボットの全軸を自動的にサーボOFFします。
Sts1配列には指定ロボット各軸のドライバアラームの状態が格納されます。bit0がドライバアラームの発生有無で、1ならばドライバアラームが発生しており、0ならば正常状態です。bit1~bit31は未使用で全て0が格納されます。本エラーが発生した場合、該当ロボットの全軸のサーボを自動的にOFFします。
Sts2配列には指定ロボット各軸のエラー状態が格納されます。エラーが発生した場合、該当ロボットの全軸のサーボを自動的にOFFします。各ビットの意味は次の通りです。
bit0は正方向のオーバラン(オーバトラベル)の発生有無で、1ならば正方向オーバランが発生しており、0ならば正常状態です。
bit1は負方向のオーバラン(オーバトラベル)の発生有無で、1ならば負方向オーバランが発生しており、0ならば正常状態です。
bit2は最高周波数オーバの発生有無で、1ならば最高周波数オーバが発生しており、0ならば正常状態です。
bit3は位置偏差エラーの発生有無で、1ならば位置偏差エラーが発生しており、0ならば正常状態です。
bit4は原点センサ(モードによってリミットセンサ)の故障の発生有無で、1ならば原点センサの故障が発生しており、0ならば正常状態です。
bit5~bit25は未使用で全て0が格納されます。
bit26~bit31は該当の軸にRTEXサーボドライバが割り付けられているときに意味を持ちます。それ以外のモータドライバでは未使用で全て0が格納されます。
bit26はRTEXドライバから読出したメーカIDと、PCベースコントローラ/InterMotion内部に登録したメーカIDについて、両者が不一致であれば1、一致の場合は0となります。
bit27はRTEXフルクローズ軸に対してサーボON時にコマンド実行エラーの発生有無で、1ならばエラーが発生しており、0ならば正常状態です。
bit28はRTEXドライバのコマンドタイムアウトエラー1の発生有無で、1ならばエラーが発生しており、0ならば正常状態です。
bit29はRTEXドライバのコマンドタイムアウトエラー2の発生有無で、1ならばエラーが発生しており、0ならば正常状態です。
bit30はRTEXドライバのコマンド実行エラーの発生有無で、1ならばエラーが発生しており、0ならば正常状態です。
bit31はRTEXドライバの原点復帰関連のエラー(アブソモード時に原点復帰コマンドを実行、またはインクリメンタルモード時に多回転クリアを実行)の発生有無で、1ならばエラーが発生しており、0ならば正常状態です。
Sts3配列は該当の軸にRTEXサーボドライバが割り付けられているときに意味を持ち、指定ロボットの各軸のRTEXサーボドライバエラーコードが格納されます。それ以外のモータドライバでは未使用で全て0が格納されます。各ビットの意味は次の通りです。
bit0~bit7はRTEXサーボドライバのエラーコード(メイン)が格納されます。
bit8~bit15はRTEXサーボドライバのエラーコード(サブ)が格納されます。
bit16~bit31は未使用で全て0が格納されます。
詳細はこちら
Sts1、Sts2、Sts3のデータの配列は配列要素[0]から順番に使用されます。例えば、2軸ロボットであれば1軸目のデータは配列要素[0]に、2軸目のデータは配列要素[1]に格納されます。詳細はロボットと軸(モータ軸)リソースを参照してください。
また、ロボットエラーステータスはManagerAM3のRobot info.タブに表示されるRobot errorのCode1、Code2、Status1、Status2、Status3の値にも反映されます。
〇PCベースコントローラ
〇InterMotion
// 2軸ロボットの詳細なエラーステータスを定期的に取得して標準出力に表示する例です
void main() {
long rc;
long Code[2];
long Sts1[MaxRobAxes];
long Sts2[MaxRobAxes];
long Sts3[MaxRobAxes];
・・・・
while(1) {
rc= RobGetErrorStatus(1, Code, Sts1, Sts2 , Sts3);
Printf1("rc %ld\n", rc);
Printf2("Code[0], Code[1] %ld %ld\n", Code[0], Code[1]);
Printf2("Sts1[0], Sts1[1] %ld %ld\n", Sts1[0], Sts1[1]);
Printf2("Sts2[0], Sts2[1] %ld %ld\n", Sts2[0], Sts2[1]);
Printf1("Sts3[0] %ld \n", Sts3[0]);
Printf1("Sts3[1] %ld \n", Sts3[1]);
Sleep(100);
}
・・・・
}