PMX PythonLib SystemWRITE()
『PMX Library for Python』のSystemWRITE()関数について解説します。
【解説】
SystemWRITEコマンドは、ID、通信速度、パリティ、及びサーボ通信時の応答時間を変更するコマンドです。変更の際は、誤動作を避けるためにシリアル番号でサーボを指定して処理を実行します。前述のSystemREADコマンドでサーボのシリアル番号を取得してから使用してください。
SystemWRITEコマンドは、ROM領域のデータを直接書き換えますので、データを保存するためにSAVEコマンドを実行する必要はありません。
【構文】
status = SystemWRITE(ID, serialNum, newId, newBaudrateVal, newParityVal, newResponseTime)
【例】
1 2 3 |
#IDを1に書き換えます flag = pmx.SystemWRITE(ServoID, serialNum=None, newId=1, newBaudrateVal=None, newParityVal=None, newResponseTime=None) print(hex(flag)) |
【パラメータ】
引数1:ID(int型)
第一引数の「ID」はサーボIDです。「ID」は、命令の対象になるサーボを指定しています。「ID」を0に指定すると、ID0のサーボを指定することができます。
引数2:serialNum(int型(符号なし4バイトデータ))
第二引数の「serialNum」はシリアル番号です。SystemREAD()関数、またはgetSerialNumber()関数を使用してサーボから読み出します。serialNum=Noneとすると、SystemWRITE()関数内でシリアル番号を読み出します。また、引数のデフォルトでNoneが代入されていますのでSystemWRITE()関数内でシリアル番号を読み出す場合は、省略することができます。
引数3:newId(int型)
新しくサーボに書き換えるサーボIDを渡します。Noneを渡すとサーボIDは書き換わりません。また、引数のデフォルトでNoneが代入されていますのでサーボIDを書き換えない場合は省略することができます。
引数4:newBaudrateVal(int型)
新しくサーボに書き換える通信速度を渡します。Noneを渡すと通信速度は書き換わりません。また、引数のデフォルトでNoneが代入されていますので通信速度を書き換えない場合は省略することができます。
通信速度の設定値は定数が用意されています。指定間違いがないようにこちらをご利用ください。
引数5:newParityVal(int型)
新しくサーボに書き換えるパリティを渡します。Noneを渡すとパリティは書き換わりません。また、引数のデフォルトでNoneが代入されていますのでパリティを書き換えない場合は省略することができます。
パリティの設定値は定数が用意されています。指定間違いがないようにこちらをご利用ください。
引数6:newResponseTime(int型(符号なし1バイトデータ))
新しくサーボに書き換える「応答時間」を渡します。Noneを渡すと応答時間は書き換わりません。また、引数のデフォルトでNoneが代入されていますので応答時間を書き換えない場合は省略することができます。
【戻り値】
戻り値1:status(int型)
戻り値は、サーボとの通信状態とサーボの状態が正常かどうかのステータスを足したものが返ってきます。データが0であれば問題ありません。0以外の場合は、なんらかの問題が発生していますので、ステータス部がエラーの場合はオンラインマニュアルの『5.エラー状態』を、通信部がエラーの場合は『ComError』を参照してください。