PMX ArduinoLib getStatus()

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

 

【解説】

getStatus()関数は、サーボの状態を知ることができるステータスのデータを読み出します。この関数で読みだすステータスのデータは、サーボからの返信パケットに含まれるステータスと同じ情報です。

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

getStatus()関数でステータスを読み出すとステータスがクリアされます。ただし、入力電圧エラーやCPU温度エラーなど原因を解消できていない場合は、ステータスをクリアしても再度該当するビットが1になります。

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

 

「ステータス」詳細

Bit
(LSB順)
状態 内容
Bit0 システムエラー Watchdog、ROM、入力電圧、CPU温度のエラー
Bit1 モータエラー 位置、電流、ロック検知、モータ温度、ホールICのエラー
Bit2 通信エラー 通信状態が原因によるエラー
Bit3 コマンドエラー コマンド番号の不一致や、オプションの設定可能範囲外など
Bit4 RAMアクセス
エラー
RAMへのデータ読み出し、書き込みで指定したアドレスがアクセス許可範囲外の場合、範囲外アドレスの先頭アドレスを通知します。
Bit5 モードエラー トルクスイッチの状態で使用できないモードのまま実行した場合のエラー
Bit6 データエラー 設定範囲外のデータを送信した場合のエラー
Bit7 なし  

 

 

【構文】

status = getStatus(ID, &stData);

 

【例】

 

【パラメータ】

引数1:ID(byte型)

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

 

引数2:stData(byte型)

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

 

【戻り値】

戻り値:status(unsigned short型)

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

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

 

 

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