PMX ArduinoLib getMotorStatus()

『PMX Library for Arduino』のgetMotorStatus()関数について解説します。

 

【解説】

getMotorStatus()関数は、サーボの状態を知ることができるステータスのモータエラーに関連するデータを読み出します。サーボからの返信パケットに含まれるステータスでモータエラーのビットが立っている場合に、エラーの詳細を知ることができます。

サーボに問題があるとエラーに該当するビットが1になります。

getMotorStatus()関数でエラー情報を読み出すとエラーフラグがクリアされます。ただし、位置エラーやロックエラー、モータ温度エラーなど原因を解消できていない場合は、ステータスをクリアしても再度該当するビットが1になります。

ステータスの詳細はこちらのオンラインマニュアルをご参照ください。

 

モータエラー詳細

Bit
(LSB順)
状態 内容
Bit0 位置 サーボの目標指令値が指定範囲外、またはサーボの現在位置が動作可能範囲外にあるとエラーになります。
Bit1 電流 サーボから検出した電流値が設定された閾値を上回るとエラーになります。
Bit2 ロック サーボがロックしていることを検知するとエラーになります。
Bit3 モータ温度 モータが設定された閾値の温度を上回るとエラーになります。
Bit4 ホールIC ブラシレスモータに内蔵されたホールICから異常な値が検出されるとエラーになります。
Bit5 なし  
Bit6 なし  
Bit7 なし  

 

 

【構文】

status = getMotorStatus(ID, &motStaData);

 

【例】

 

【パラメータ】

引数1:ID(byte型)

第一引数の「ID」はサーボIDです。「ID」は、命令の対象になるサーボを指定しています。「ID」を0に指定すると、ID0のサーボを指定することができます。

 

引数2:motStaData(byte型)

第二引数の「motStaData」にメモリマップのアドレス402から読み出したモータエラーの値が代入されます。

 

【戻り値】

戻り値:status(unsigned short型)

戻り値は、サーボとの通信状態とサーボの状態が正常かどうかのステータスを足したものが返ってきます。データが0であれば問題ありません。0以外の場合は、なんらかの問題が発生していますので、ステータス部がエラーの場合はオンラインマニュアルの『5.エラー状態』、または『PmxStatusErrorList』を、通信部がエラーの場合は『ComError』を参照してください。

status = PMXからの返信のステータス(PMX::PmxStatusErrorList) + 送受信の状態(PMX::ComError)

 

 

リファレンスの目次に戻る