PMX PythonLib getStatus()
『PMX Library for Python』のgetStatus()関数について解説します。
【解説】
getStatus()関数は、サーボの状態を知ることができるステータスのデータを読み出します。この関数で読みだすステータスのデータは、サーボからの返信パケットに含まれるステータスと同じ情報です。
サーボに問題があるとエラーに該当するビットが1になります。
getStatus()関数でステータスを読み出すとステータスがクリアされます。ただし、入力電圧エラーやCPU温度エラーなど原因を解消できていない場合は、ステータスをクリアしても再度該当するビットが1になります。
ステータスの詳細はこちらのオンラインマニュアルをご参照ください。
「ステータス」詳細
Bit (LSB順) |
状態 | 内容 |
Bit0 | システムエラー | Watchdog、ROM、入力電圧、CPU温度のエラー |
Bit1 | モータエラー | 位置、電流、ロック検知、モータ温度、ホールICのエラー |
Bit2 | 通信エラー | 通信状態が原因によるエラー |
Bit3 | コマンドエラー | コマンド番号の不一致や、オプションの設定可能範囲外など |
Bit4 | RAMアクセス エラー |
RAMへのデータ読み出し、書き込みで指定したアドレスがアクセス許可範囲外の場合、範囲外アドレスの先頭アドレスを通知します。 |
Bit5 | モードエラー | トルクスイッチの状態で使用できないモードのまま実行した場合のエラー |
Bit6 | データエラー | 設定範囲外のデータを送信した場合のエラー |
Bit7 | なし |
【構文】
[status, stData] = getStatus(ID)
【例】
1 |
flag, stData = pmx.getStatus(ServoID) |
【パラメータ】
引数1:ID(int型)
第一引数の「ID」はサーボIDです。「ID」は、命令の対象になるサーボを指定しています。「ID」を0に指定すると、ID0のサーボを指定することができます。
【戻り値】
戻り値1:status(int型)
戻り値は、サーボとの通信状態とサーボの状態が正常かどうかのステータスを足したものが返ってきます。データが0であれば問題ありません。0以外の場合は、なんらかの問題が発生していますので、ステータス部がエラーの場合はオンラインマニュアルの『5.エラー状態』を、通信部がエラーの場合は『ComError』を参照してください。
戻り値2:stData(int型)
メモリマップのアドレス400から読み出したステータスの値が返ってきます。