PMX PythonLib getMotorStatus()
『PMX Library for Python』のgetMotorStatus()関数について解説します。
【解説】
getMotorStatus()関数は、サーボの状態を知ることができるステータスのモータエラーに関連するデータを読み出します。サーボからの返信パケットに含まれるステータスでモータエラーのビットが立っている場合に、エラーの詳細を知ることができます。
サーボに問題があるとエラーに該当するビットが1になります。
getMotorStatus()関数でエラー情報を読み出すとエラーフラグがクリアされます。ただし、位置エラーやロックエラー、モータ温度エラーなど原因を解消できていない場合は、ステータスをクリアしても再度該当するビットが1になります。
ステータスの詳細はこちらのオンラインマニュアルをご参照ください。
モータエラー詳細
Bit (LSB順) |
状態 | 内容 |
Bit0 | 位置 | サーボの目標指令値が指定範囲外、またはサーボの現在位置が動作可能範囲外にあるとエラーになります。 |
Bit1 | 電流 | サーボから検出した電流値が設定された閾値を上回るとエラーになります。 |
Bit2 | ロック | サーボがロックしていることを検知するとエラーになります。 |
Bit3 | モータ温度 | モータが設定された閾値の温度を上回るとエラーになります。 |
Bit4 | ホールIC | ブラシレスモータに内蔵されたホールICから異常な値が検出されるとエラーになります。 |
Bit5 | なし | |
Bit6 | なし | |
Bit7 | なし |
【構文】
[status, motStaData] = getMotorStatus(ID)
【例】
1 |
flag, motStaData = pmx.getMotorStatus(ServoID) |
【パラメータ】
引数1:ID(int型)
第一引数の「ID」はサーボIDです。「ID」は、命令の対象になるサーボを指定しています。「ID」を0に指定すると、ID0のサーボを指定することができます。
【戻り値】
戻り値1:status(int型)
戻り値は、サーボとの通信状態とサーボの状態が正常かどうかのステータスを足したものが返ってきます。データが0であれば問題ありません。0以外の場合は、なんらかの問題が発生していますので、ステータス部がエラーの場合はオンラインマニュアルの『5.エラー状態』を、通信部がエラーの場合は『ComError』を参照してください。
戻り値2:motStaData(int型)
メモリマップのアドレス402から読み出したモータエラーの値が返ってきます。