PMX PythonLib MemREADToByte()
『PMX Library for Python』のMemREADToByte()関数について解説します。
【解説】
MemREADコマンドは、メモリマップのRAM領域から情報を読み出すためのコマンドです。PMXサーボのメモリマップにはRAM領域とROM領域があります。サーボ起動時にROM領域からRAM領域にデータが展開され、サーボの制御にはRAM領域のデータが使用されます。
この関数は、アドレスで指定したRAM領域から1バイトのデータを読み出すことができます。
【構文】
[status, data] = MemREADToByte(ID, address)
【例】
1 2 3 4 5 |
# MemRead関数を使ってトルクスイッチの状態を取得する print('1byte(unsigned)のトルクスイッチの状態を取得します') # TorqueSwitch Data: 0x01=TorqueON, 0x02=Free, 0x04=Brake, 0x08=Hold flag, data = pmx.MemREADToByte(ServoID, PMX.RamAddrList.TorqueSwitch) # id, Addr print(hex(flag), data) |
【パラメータ】
引数1:ID(int型)
第一引数の「ID」はサーボIDです。「ID」は、MemREADコマンドの命令の対象になるサーボを指定しています。「ID」を0に指定すると、ID0のサーボを指定することができます。
引数2:address(int型)
第二引数の「address」は先頭アドレスです。「先頭アドレス」とは、メモリマップのアドレスを指し、読み出すデータの先頭のアドレスを指定することができます。上記の例では「PMX.RamAddrList.TorqueSwitch」と書いていますが、これはライブラリ内で定義された変数で、メモリマップのアドレスを指定しています。「PMX.RamAddrList.TorqueSwitch」には500が代入されていますので、実行の際は500に変換されます。また数値で500と指定しても同じ番地からデータを読み出すことができます。アドレスは『オンラインマニュアル』をご参照ください。
【戻り値】
戻り値1:status(int型)
一つ目の戻り値は、サーボとの通信状態とサーボの状態が正常かどうかのステータスを足したものが返ってきます。データが0であれば問題ありません。0以外の場合は、なんらかの問題が発生していますので、ステータス部がエラーの場合はオンラインマニュアルの『5.エラー状態』を、通信部がエラーの場合は『ComError』を参照してください。
戻り値2:data(int型(1バイトデータ))
二つ目の戻り値として読み出した1バイトのデータが返ってきます。