https://emanual.robotis.com/docs/en/dxl/x/xc330-t288/
Dynamixel(スレーブ)自らが勝手にデータを送信することは無く、別途用意されるPC等(マスターないしホスト)から送信されるデータをDynamixelが受信した際にのみデータを返信するといったマスタースレーブ方式を採用しています。また、予め決められた電文に従った(プロトコル)電文にのみ応答します。さらに、その1回分の電文をパケットと言います。
本品はプロトコル2.0のみに対応しています。
Dynamixelは出荷時において個体識別用のID(数字)が全て1に設定されいます。その状態のまま1つのネットワークに複数台接続してしまうと、ホストから個々のDynamixelを識別することができないまでか、全てのDynamixelが自分自身への指令と認識してしまいます。そのため、複数台を接続して使用する際は、必ず予め1台ずつ異なるIDを設定しておきます。
IDを設定する際は先の識別の問題を回避するためホストが提供するネットワークに1台のみのDynamixelを接続し、複数台のDynamixelが接続されていない状態で作業を行う必要があります。
新たに導入されたSecondary IDは、既存のIDと同じ値を設定する事が前提となります。既存のIDの揮発メモリに書き込みの命令を行った際に、それと同じSecondary IDを持ったDynamixelは同じ書き込みが行われますが応答は返しません。
これは特定IDのDynamixelのみへ書き込みを指令するだけで、そのIDと同じSecondary IDを持った複数台のDynamixelを同期して同じ運転を行わせるといった場合に利用できます。
Dynamixelのボーレートは高いほど大量のデータを短時間に送受信できます。しかしながら高いボーレートはケーブルの長さや等の外的要因が相まって、データそのものの信頼性が損なわれる確率が高くなります。
また、複数台のDynamixelを使用する際は、全て同じボーレートに設定しておく必要があります。
Dynamixel内に用意されたメモリ領域をここではコントロールテーブルと称します。コントロールテーブル中の任意のデータにアクセスする手段として通信プロトコロルが用意されています。
ホストから指定されたIDを持ったDynamixelのコントロールテーブルに対して読み書きを行う事で全てを統括するため、先のIDやボーレートもコントロールテーブル上に配置されています。
コントロールテーブルの詳細は後述の表に示します。
Dynamixelは用途に応じて複数の動作モードを選択できます。大きく分けて3つの基本動作を持ちます。
これらの制御の切り替えや制御を行う際の条件の設定は、コントロールテーブル上に配置された様々なパラメータの値を変更することで行います。
Dynamixel X及びPROシリーズ共通の通信プロトコルです。また、Dynamixel MXシリーズのファームウェアをV2対応版に書き換えた際にも適用されます。
Dynamixelでは複数のデバイスを同じネットワークに接続して運用する事を前提としているため、各々のデバイスを区別するためにユニークなID番号を用いる事としています。
また、ホストは任意のIDを持ったデバイスを指定して命令し、指定されたIDに一致したデバイスがそれに応答するといったマスタースレーブ方式を採用しています。
なお、複数のデバイスに同じID値が付けられている事は前提としていないため、1つのネットワークに同一IDを持つデバイスが複数存在してはなりません。
デバイスの情報はメモリマップでとして提供されており、それをコントロールテーブルと称します。
複数の情報はコントロールテーブル上の異なるアドレスに割り当てられており、必要に応じてホストから任意のIDを持ったデバイスの任意のアドレスへアクセスします。
ホストとデバイス間は一般的なシリアル通信を行うハードウェアで接続され、パケット単位で処理される共通の通信プロトコルを用いて相互に情報をやりとりします。
ここではホストからデバイスへ送信されるパケットを「インストラクションパケット」、デバイスからホストへ送信されるパケットを「ステータスパケット」と称します。
ホストから送信するインストラクションパケットの主な機能はIDの指定とコントロールテーブルの任意のアドレスへのデータの読み書きとなります。そのパケットに対して応答すべきデバイスから返信されるステータスパケットには、ホストから読み出し要求されたコントロールテーブル内のデータや、書き込み要求に対する整合性の結果などが含まれます。
以後16bit幅のパラメータはリトルエンディアン(データの下位バイトから順に格納)で指定するものとし、「0x」が付与された英数字は16進数、そうでないものは10進数とみなします。
また、デバイスのコントロールテーブル上のStatus Return Levelによってパケットの有無が異なります。
インストラクションパケットはホストからデバイスへ命令するためのパケットです。
パケット構造は以下の通りで、囲み1つが1byteを意味します。例外についてはこちらを参照します。
Instruction | Function | Value | Number of Parameter |
PING | デバイスの死活確認 | 0x01 | 0 |
READ | コントロールテーブルからの読み込み | 0x02 | 4 |
WRITE | コントロールテーブルへの書き込み(即時反映) | 0x03 | 3~ |
REG WRITE | コントロールテーブルへの書き込み(保留) | 0x04 | 3~ |
ACTION | REG WRITEで保留された値を反映 | 0x05 | 0 |
FACTORY RESET | デバイスのコントロールテーブルの値を出荷時デフォルト化 | 0x06 | 1 |
REBOOT | デバイスの再起動 | 0x08 | 0 |
SYNC READ | 複数デバイスの同一コントロールテーブルから読み込み | 0x82 | 5~ |
SYNC WRITE | 複数デバイスの同一コントロールテーブルへ書き込み | 0x83 | 6~ |
BULK READ | 複数デバイスの異なるコントロールテーブルから読み込み | 0x92 | 6~ |
BULK WRITE | 複数デバイスの異なるコントロールテーブルへ書き込み | 0x93 | 6~ |
(X^16+X^15+X^2+1) Polynomial 0x8005
ステータスパケットはホストから送信されるインストラクションパケットをデバイスが受信した後、その応答としてデバイスからホストへ返信されるパケットです。
パケット構造は以下の通りで、囲み1つが1byteを意味します。例外についてはこちらを参照します。
Bit | Name | Description | |
7 | Alert | - | |
6~0 | Error No. | 1:Result Fail | パケット処理失敗 |
2:Instruction Error | 未定義のインストラクションセット, RegWriteなしでAction | ||
3:CRC Error | CRC不一致 | ||
4:Data Range Error | データの最大・最小値外 | ||
5:Data Length Error | データ幅の不一致 | ||
6:Data Limit Error | データのLimit値外 | ||
7:Accrss Error | 読出専用・書込専用・ロック中のアドレスへのアクセス |
(X^16+X^15+X^2+1) Polynomial 0x8005
Header部と一致するデータ列がInstruction~Parameter間に現れる場合は、Header部と一致する全てのデータ列の末尾に0xFDを1byte付与するものとします。
例えば例外処理前のParameterが「0x01 0x02 0xFF 0xFF 0xFD 0x03」の場合、Header部と一致するデータ列を含んでいますので、「0x01 0x02 0xFF 0xFF 0xFD 0xFD 0x03」の様に追加します。データ長が増えるため、実際のパケットも増えた分だけLengthを増やし、最終的に追加したデータを含むパケットのChecksumを計算します。
例1)
INST:ID=1のアドレス634に10バイトのデータ(0xFF,0xFF,0xFD,0xFF,0xFF,0xFD,0xFF,0xFF,0xFD,0xFF)を書き込む。
0xFF 0xFF 0xFD 0x00 ...Header
0x01 ...ID
0x12 0x00 ...Length
0x03 ...Instruction
0x7A 0x02 0xFF 0xFF 0xFD 0xFD 0xFF 0xFF 0xFD 0xFD 0xFF 0xFF 0xFD 0xFD 0xFF ...Parameter
0xA3 0xE2 ...Checksum
STAT:正常応答
0xFF 0xFF 0xFD 0x00 0x01 0x04 0x00 0x55 0x00 0xA1 0x0C
例2)
INST:ID=1のアドレス634から例1で書き込んだ10バイトのデータを読み出す。
0xFF 0xFF 0xFD 0x00 0x01 0x07 0x00 0x02 0x7A 0x02 0x0A 0x00 0x1E 0xA9
STAT:正常応答
0xFF 0xFF 0xFD 0x00 ...Header
0x01 ...ID
0x11 0x00 ...Length
0x55 ...Instruction
0x00 ...Error
0xFF 0xFF 0xFD 0xFD 0xFF 0xFF 0xFD 0xFD 0xFF 0xFF 0xFD 0xFD 0xFF ...Parameter
0x18 0x99 ...Checksum
特定のIDを持ったDynamixelの存在を確認します。ステータスパケットのパラメータには応答したDynamixelのModel No.とVersion of Firmwareが含まれます。
IDに254を指定してPINGインストラクションを送信すると、ネットワークに存在する全てのDynamixelが順次ステータスパケットを返します。
Param byte No. | Description |
1 | Model No. |
2 | |
3 | Version of Firmware |
例)
INST:ID=1にPINGを発行。
0xFF 0xFF 0xFD 0x00 ...Header
0x01 ...ID
0x03 0x00 ...Length
0x01 ...Instruction
0x19 0x4E ...Checksum
STAT:ID=1のXM430-W210-R(Model No.:0x0406, FW Ver.:0x26)が応答。
0xFF 0xFF 0xFD 0x00 ...Header
0x01 ...ID
0x07 0x00 ...Length
0x55 ...Instruction
0x00 ...Error
0x06 0x04 ...Model No.
0x26 ...Version of Firmware
0x65 0x5D ...Checksum
特定IDのデバイスへアドレス(16bit幅)・バイトサイズ(16bit幅)を指定してコントロールテーブルのデータを読み出します。IDは0~252の範囲が指定できます。
Param byte No. | Description |
1 | 開始アドレス |
2 | |
3 | バイトサイズ(N) |
4 |
Param byte No. | Description |
1 | DATA[0] |
2 | DATA[1] |
3 | DATA[2] |
... | ... |
N | DATA[N-1] |
例)
INST:XM430-W210想定。ID=1に対しパラメータにAddress=132(0x0084 PresentPosition), Length=4(0x0004)を指定してREADを発行。
0xFF 0xFF 0xFD 0x00 ...Header
0x01 ...ID
0x07 0x00 ...Length
0x02 ...Instruction
0x84 0x00 ...開始アドレス
0x04 0x00 ...バイトサイズ
0x1D 0x15 ...Checksum
STAT:32bit幅で現在のPresentPosition=3677(0x00000E5D)の値を返信。
0xFF 0xFF 0xFD 0x00 ...Header
0x01 ...ID
0x08 0x00 ...Length
0x55 ...Instruction
0x00 ...Error
0x5D 0x0E 0x00 0x00 ...DATAs
0x7C 0x9C ...Checksum
特定IDのデバイスへアドレス(16bit幅)・データ(任意バイト数)を指定してコントロールテーブルへ書き込みます。IDは0~252の範囲と254が指定でき、254を指定した場合はステータスパケットが返りません。
Param byte No. | Description |
1 | 開始アドレス |
2 | |
3 | DATA[0] |
4 | DATA[1] |
5 | DATA[2] |
... | ... |
N+2 | DATA[N-1] |
例)
INST:XM430-W210想定。ID=1に対しパラメータにAddress=116(0x0074 GoalPosition), Data=999(0x000003E7 32bit幅)を指定してWRITEを発行。
0xFF 0xFF 0xFD 0x00 ...Header
0x01 ...ID
0x09 0x00 ...Length
0x03 ...Instruction
0x74 0x00 ...開始アドレス
0xE7 0x03 0x00 0x00 ...DATAs
0xF0 0x65 ...Checksum
STAT:正常時の返信。
0xFF 0xFF 0xFD 0x00 ...Header
0x01 ...ID
0x04 0x00 ...Length
0x55 ...Instruction
0x00 ...Error
0xA1 0x0C...Checksum
特定IDのデバイスへアドレス(16bit幅)・データ(任意バイト数)を指定してコントロールテーブルへ書き込む点ではWRITEインストラクションと同じですが、その後ACTIONインストラクションが実行されない限りコントロールテーブルへ反映されません。IDは0~252の範囲と254が指定でき、254を指定した場合はステータスパケットが返りません。
なお、REG WRITEを受信したデバイスは、コントロールテーブル上のアイテムRegistered Instructionを1にし、ACTIONインストラクションを待機中である事を示します。
Param byte No. | Description |
1 | 開始アドレス |
2 | |
3 | DATA[0] |
4 | DATA[1] |
5 | DATA[2] |
... | ... |
N+2 | DATA[N-1] |
例)
INST:XM430-W210想定。ID=1に対しパラメータにAddress=104(0x0068 GoalVelocity), Data=200(0x000000C8 32bit幅)を指定してREG WRITEを発行。
0xFF 0xFF 0xFD 0x00 ...Header
0x01 ...ID
0x09 0x00 ...Length
0x04 ...Instruction
0x68 0x00 ...開始アドレス
0xC8 0x00 0x00 0x00 ...DATAs
0xAE 0x8E ...Checksum
STAT:正常時の返信。
0xFF 0xFF 0xFD 0x00 ...Header
0x01 ...ID
0x04 0x00 ...Length
0x55 ...Instruction
0x00 ...Error
0xA1 0x0C...Checksum
REG WRITEインストラクションで待機中のデバイスのコントロールテーブルを更新します。IDは0~252の範囲と254が指定でき、254を指定した場合はステータスパケットが返りません。
ACTIONを受け取ったデバイスはRegistered Instructionが1であれば0になりますが、0であったデバイスはエラーを返します。
例)
INST:ID=1に対しACTIONを発行。
0xFF 0xFF 0xFD 0x00 ...Header
0x01 ...ID
0x03 0x00 ...Length
0x05 ...Instruction
0x02 0xCE ...Checksum
STAT:Registered Instructionが1であった場合の正常時の返信。
0xFF 0xFF 0xFD 0x00 ...Header
0x01 ...ID
0x04 0x00 ...Length
0x55 ...Instruction
0x00 ...Error
0xA1 0x0C...Checksum
特定IDのデバイスを出荷時の状態にします。IDは0~252の範囲と254が指定でき、254を指定した場合はステータスパケットが返りません。
Param byte No. | Description |
1 | 0x01:IDのみ対象外とする 0x02:IDとBaudrateのみ対象外とする 0xFF:全てを対象とする |
例)
INST:ID=1に完全なFACTORY RESETを発行。
0xFF 0xFF 0xFD 0x00 ...Header
0x01 ...ID
0x04 0x00 ...Length
0x06 ...Instruction
0xFF ...Parameter
0xA6 0x64 ...Checksum
STAT:正常時の返信
0xFF 0xFF 0xFD 0x00 ...Header
0x01 ...ID
0x04 0x00 ...Length
0x55 ...Instruction
0x00 ...Error
0xA1 0x0C
特定IDのデバイスを再起動します。IDは0~252が指定できます。
例)
INST:XM430-W210想定。ID=1へREBOOTを発行。
0xFF 0xFF 0xFD 0x00 ...Header
0x01 ...ID
0x03 0x00 ...Length
0x08 ...Instruction
0x2F 0x4E ...CheckSum
STAT:正常時の返信
0xFF 0xFF 0xFD 0x00 ...Header
0x01 ...ID
0x04 0x00 ...Length
0x55 ...Instruction
0x00 ...Error
0xA1 0x0C...Checksum
Parameterにアドレス(16bit幅)・バイトサイズ(16bit幅)・複数のID指定した1回のインストラクションパケットで、指定されたIDのデバイスのコントロールテーブルからデータを順次読み出します。
インストラクションパケットのIDは254固定、パラメータ内のIDは重複しない0~252の範囲をとります。
個々のデバイスはインストラクションパケットのパラメータで指定されたIDの順にREADと同様のステータスパケットで順次応答しますが、何らかの理由により応答しないデバイスがあった場合は、それ以後に指定された全てのデバイスは応答を中止します。
Param byte No. | Description | |
1 | 開始アドレス | |
2 | ||
3 | バイトサイズ(N) (1以上) | |
4 | ||
5 | 1stデバイスのID (0~252) | |
6 | 2ndデバイスのID (0~252) | |
7 | 3rdデバイスのID (0~252) | |
... | ... |
Param byte No. | Description |
1 | DATA[0] |
2 | DATA[1] |
3 | DATA[2] |
... | ... |
N | DATA[N-1] |
例)
INST:XM430-W210想定。パラメータにアドレス=132(0x0084 PresentPosition), サイズ=4, ID=1,2を指定してSYNC READを発行。
0xFF 0xFF 0xFD 0x00 ...Header
0xFE ...ID(254固定)
0x09 0x00 ...Length
0x82 ...Instruction
0x84 0x00 ...開始アドレス
0x04 0x00 ...バイトサイズ
0x01 0x02 ...IDs
0xCE 0xFA ...CheckSum
STAT:正常時の返信
ID=1が現在のPresentPosition=3677(0x00000E5D 32bit幅)の値を返信。
0xFF 0xFF 0xFD 0x00 0x01 0x08 0x00 0x55 0x00 0x5D 0x0E 0x00 0x00 0x7C 0x9C
ID=2が現在のPresentPosition=1538(0x00000602 32bit幅)の値を返信。
0xFF 0xFF 0xFD 0x00 0x02 0x08 0x00 0x55 0x00 0x02 0x06 0x00 0x00 0x64 0x1A
Parameterに共通のアドレス(16bit幅)・共通のバイトサイズ(16bit幅)・複数のIDと各データを指定した1回のインストラクションパケットで、複数のデバイスのコントロールテーブルへ書き込みます。
インストラクションパケットのIDは254固定、パラメータ内のIDは重複しない0~252の範囲をとります。
Param byte No. | Description | |
1 | 開始アドレス | |
2 | ||
3 | バイトサイズ(N) (1以上) | |
4 | ||
5 | 1stデバイス | ID (0~252) |
6 | DATAa[0] | |
7 | DATAa[1] | |
... | ... | |
N+5 | DATAa[N-1] | |
N+6 | 2ndデバイス | ID (0~252) |
N+7 | DATAb[0] | |
N+8 | DATAb[1] | |
... | ... | |
2*N+6 | DATAb[N-1] | |
2*N+7 | 3rdデバイス | ID (0~252) |
2*N+8 | DATAc[0] | |
2*N+9 | DATAc[1] | |
... | ... | |
3*N+5 | DATAc[N-1] | |
... | ... | ... |
0xFF 0xFF 0xFD 0x00 ...Header
0xFE ...ID(254固定)
0x11 0x00 ...Length
0x83 ...Instruction
0x74 0x00 ...開始アドレス
0x04 0x00 ...バイトサイズ
0x01 0xD2 0x04 0x00 0x00 ...1st ID, DATAs
0x02 0x80 0x0D 0x00 0x00 ...2nd ID, DATAs
0xF4 0x4E ...Checksum
ParameterにID・アドレス(16bit幅)・バイトサイズ(16bit幅)を複数指定した1回のインストラクションパケットで、指定されたIDのデバイスのコントロールテーブルからデータを順次読み出します。
インストラクションパケットのIDは254固定、パラメータ内のIDは重複しない0~252の範囲をとります。
個々のデバイスはインストラクションパケットのパラメータで指定されたIDの順にREADと同様のステータスパケットで順次応答しますが、何らかの理由により応答しないデバイスがあった場合は、それ以後に指定された全てのデバイスは応答を中止します。
Param byte No. | Description | |
1 | 1stデバイス | ID (0~252) |
2 | 開始アドレス | |
3 | ||
4 | バイトサイズ (1以上) | |
5 | ||
6 | 2ndデバイス | ID (0~252) |
7 | 開始アドレス | |
8 | ||
9 | バイトサイズ (1以上) | |
10 | ||
11 | 3rdデバイス | ID (0~252) |
12 | 開始アドレス | |
13 | ||
14 | バイトサイズ (1以上) | |
15 | ||
... | ... | ... |
Param byte No. | Description |
1 | DATA[0] |
2 | DATA[1] |
3 | DATA[2] |
... | ... |
N | DATA[N-1] |
例)
INST:XM430-W210想定。パラメータに、ID=1,アドレス=144(0x0090 PresentInputVoltage),サイズ=2と、ID=2,アドレス=132(0x0084 PresentPosition),サイズ=4を指定してBULK READを発行。
0xFF 0xFF 0xFD 0x00 ...Header
0xFE ...ID(254固定)
0x0D 0x00 ...Length
0x92 ...Instruction
0x01 0x90 0x00 0x02 0x00 ...1st ID, アドレス, サイズ
0x02 0x84 0x00 0x04 0x00 ...2bd ID, アドレス, サイズ
0x1C 0x23 ...CheckSum
STAT:正常時の返信
ID=1が現在のPresentVoltage=151(0x0097 16bit幅)の値を返信。
0xFF 0xFF 0xFD 0x00 0x01 0x06 0x00 0x55 0x00 0x97 0x00 0xCF 0x29
ID=2が現在のPresentPosition=1538(0x00000602 32bit幅)の値を返信。
0xFF 0xFF 0xFD 0x00 0x02 0x08 0x00 0x55 0x00 0x02 0x06 0x00 0x00 0x64 0x1A
ParameterにID・アドレス(16bit幅)・バイトサイズ(16bit幅)・データを複数指定した1回のインストラクションパケットで、指定されたIDのデバイスのコントロールテーブルへ書き込みます。
インストラクションパケットのIDは254固定、パラメータ内のIDは重複しない0~252の範囲をとります。
Param byte No. | Description | |
1 | 1stデバイス a | ID (0~252) |
2 | 開始アドレス | |
3 | ||
4 | バイトサイズ(Na) (1以上) | |
5 | ||
6 | DATAa[0] | |
7 | DATAa[1] | |
8 | DATAa[2] | |
... | ... | |
Na+5 | DATAa[Na-1] | |
Na+6 | 2ndデバイス b | ID (0~252) |
Na+7 | 開始アドレス | |
Na+8 | ||
Na+9 | バイトサイズ(Nb) (1以上) | |
Na+10 | ||
Na+11 | DATAb[0] | |
Na+12 | DATAb[1] | |
Na+13 | DATAb[2] | |
... | ... | |
Na+Nb+10 | DATAb[Nb-1] | |
... | ... | ... |
例)
INST:XM430-W210想定。パラメータに、ID=1・アドレス=112(0x0070 ProfileVelocity~)・サイズ=8・ProfileVelocity=10(32bit幅)・GoalPosition=2048(32bit幅)と、ID=2・アドレス=80(0x0050 PositionDGain)・サイズ=6・PositionDGain=0(16bit幅),PositionIGain=0(16bit幅)・PositionPGain=800(16bit幅)を指定してBULK WRITEを発行。
0xFF 0xFF 0xFD 0x00 ...Header
0xFE ...ID(254固定)
0x1B 0x00 ...Length
0x93 ...Instruction
0x01 0x70 0x00 0x08 0x00 0x0A 0x00 0x00 0x00 0x00 0x08 0x00 0x00 ...1st ID,アドレス,サイズ,DATAs
0x02 0x50 0x00 0x06 0x00 0x00 0x00 0x00 0x00 0x20 0x03 ...2nd ID,アドレス,サイズ,DATAs
0x63 0xE8 ...CheckSum
ファームウェア Ver.44以降を搭載した以下のDynamixelに共通するコントロールテーブルです。
Address | Item | Access | Default Value | Type/Range |
0 | Model Number | R | - | uint16 |
1 | ||||
2 | Model Information | R | 0 | uint32 |
3 | ||||
4 | ||||
5 | ||||
6 | Version of Firmware | R | ? | uint8 |
7 | ID | R/W (NVM) | 1 | uint8 0~252 |
8 | Baudrate | R/W (NVM) | 1 | uint8 |
9 | Return Delay Time | R/W (NVM) | 250 | uint8 0~254 |
10 | Drive Mode | R/W (NVM) | 0 | uint8 0~255 |
11 | Operating Mode | R/W (NVM) | 3 | uint8 0~16 |
12 | Secondary(Shadow) ID | R/W (NVM) | 255 | uint8 0~255 |
13 | Protocol Version | R/W (NVM) | 2 | uint8 |
14 ~ 19 | (reserve) | R | - | uint8 |
20 | Homing Offset | R/W (NVM) | 0 | int32 -1044479~1044479 |
21 | ||||
22 | ||||
23 | ||||
24 | Moving Threshold | R/W (NVM) | 10 | uint32 0~1023 |
25 | ||||
26 | ||||
27 | ||||
28 ~ 30 | (reserve) | R | - | uint8 |
31 | Temperature Limit | R/W (NVM) | - | uint8 0~100 |
32 | Max Voltage Limit | R/W (NVM) | - | uint16 |
33 | ||||
34 | Min Voltage Limit | R/W (NVM) | - | uint16 |
35 | ||||
36 | PWM Limit | R/W (NVM) | 885 | uint16 0~885 |
37 | ||||
38 | Current Limit | R/W (NVM) | - | uint16 |
39 | ||||
40 | Acceleration Limit | R/W (NVM) | 32767 | uint32 0~32767 |
41 | ||||
42 | ||||
43 | ||||
44 | Velocity Limit | R/W (NVM) | - | uint32 |
45 | ||||
46 | ||||
47 | ||||
48 | Max Position Limit | R/W (NVM) | 4095 | uint32 0~4095 |
49 | ||||
50 | ||||
51 | ||||
52 | Min Position Limit | R/W (NVM) | 0 | uint32 0~4095 |
53 | ||||
54 | ||||
55 | ||||
56 | External Port Mode 1 | R/W (NVM) | 3 | uint8 0~3 |
57 | External Port Mode 2 | R/W (NVM) | 3 | uint8 0~3 |
58 | External Port Mode 3 | R/W (NVM) | 3 | uint8 0~3 |
59 ~ 62 | (reserve) | R | - | uint8 |
63 | Shutdown | R/W (NVM) | - | uint8 0~63 |
64 | Torque Enable | R/W | 0 | uint8 0~1 |
65 | LED | R/W | 0 | uint8 0~1 |
66 ~ 67 | (reserve) | R | - | uint8 |
68 | Status Return Level | R/W | 2 | uint8 0~2 |
69 | Registered Instruction | R | 0 | uint8 |
70 | Hardware Error Status | R | 0 | uint8 |
71 ~ 75 | (reserve) | R | - | uint8 |
76 | Velocity I Gain | R/W | - | uint16 0~16383 |
77 | ||||
78 | Velocity P Gain | R/W | - | uint16 0~16383 |
79 | ||||
80 | Position D Gain | R/W | - | uint16 0~16383 |
81 | ||||
82 | Position I Gain | R/W | - | uint16 0~16383 |
83 | ||||
84 | Position P Gain | R/W | - | uint16 0~16383 |
85 | ||||
86 ~ 87 | (reserve) | R | - | uint8 |
88 | Feedforward Acceleration Gain | R/W | 0 | uint16 0~16383 |
89 | ||||
90 | Feedforward Velocity Gain | R/W | 0 | uint16 0~16383 |
91 | ||||
92 ~ 97 | (reserve) | R | - | uint8 |
98 | Bus Watchdog | R/W | 0 | int8 -1~127 |
99 | (reserve) | R | - | uint8 |
100 | Goal PWM | R/W | - | int16 -PWM Limit~PWM Limit |
101 | ||||
102 | Goal Current | R/W | - | int16 -Current Limit~Current Limit |
103 | ||||
104 | Goal Velocity | R/W | - | int32 -Velocity Limit~Velocity Limit |
105 | ||||
106 | ||||
107 | ||||
108 | Profile Acceleration | R/W | 0 | uint32 0~32767 |
109 | ||||
110 | ||||
111 | ||||
112 | Profile Velocity | R/W | 0 | uint32 0~32767 |
113 | ||||
114 | ||||
115 | ||||
116 | Goal Position | R/W | - | int32 Min Position Limit~Max Position Limit -1048575~1048575 |
117 | ||||
118 | ||||
119 | ||||
120 | Realtime Tick | R | - | uint16 |
121 | ||||
122 | Moving | R | 0 | uint8 |
123 | Moving Status | R | 0 | uint8 |
124 | Present PWM | R | - | int16 |
125 | ||||
126 | Present Current/Present Load | R | - | int16 |
127 | ||||
128 | Present Velocity | R | - | int32 |
129 | ||||
130 | ||||
131 | ||||
132 | Present Position | R | - | int32 |
133 | ||||
134 | ||||
135 | ||||
136 | Velocity Trajectory | R | - | |
137 | ||||
138 | ||||
139 | ||||
140 | Position Trajectory | R | - | |
141 | ||||
142 | ||||
143 | ||||
144 | Present Input Voltage | R | - | uint16 |
145 | ||||
146 | Present Temperature | R | - | uint8 |
147 ~ 151 | (reserve) | R | - | uint8 |
152 | External Port Data 1 | R/W | - | uint16 |
153 | ||||
154 | External Port Data 2 | R/W | - | uint16 |
155 | ||||
156 | External Port Data 3 | R/W | - | uint16 |
157 | ||||
158 ~ 167 | (reserve) | R | - | uint8 |
168 | Indirect Address 1 | R/W | 224 | uint16 64~661 |
169 | ||||
170 | Indirect Address 2 | 225 | ||
171 | ||||
172,173 ~ 218,219 | Indirect Address 3 ~ Indirect Address 26 | 226 ~ 249 | ||
220 | Indirect Address 27 | 250 | ||
221 | ||||
222 | Indirect Address 28 | 251 | ||
223 | ||||
224 | Indirect Data 1 | R/W | 0 | uint8 |
225 | Indirect Data 2 | |||
226 | Indirect Data 3 | |||
227 ~ 248 | Indirect Data 4 ~ Indirect Data 25 | |||
249 | Indirect Data 26 | |||
250 | Indirect Data 27 | |||
251 | Indirect Data 28 | |||
252 ~ 577 | (reserve) | R | - | uint8 |
578 | Indirect Address 29 | R/W | 634 | uint16 64~661 |
579 | ||||
580 | Indirect Address 30 | 635 | ||
581 | ||||
582,583 ~ 628,629 | Indirect Address 31 ~ Indirect Address 54 | 636 ~ 659 | ||
630 | Indirect Address 55 | 660 | ||
631 | ||||
632 | Indirect Address 56 | 661 | ||
633 | ||||
634 | Indirect Data 29 | R/W | 0 | uint8 |
635 | Indirect Data 30 | |||
636 ~ 659 | Indirect Data 31 ~ Indirect Data 54 | |||
660 | Indirect Data 55 | |||
661 | Indirect Data 56 |
モデル固有の値を保持します。異なる種類のDynamixelを混在して使用する際の個体識別などに使用できます。
Model Name | Value |
XC330-M077 | 1190(0x4A6) |
XC330-M288 | 1200(0x4B0) |
XC330-M181 | 1200(0x4B0) |
XC330-M288 | 1240(0x4D8) |
XC330-T181 | 1210(0x4BA) |
XC330-T288 | 1220(0x4C4) |
XL430-W250 | 1230(0x4CE) |
2XL430-W250 | 1090(0x442) |
XC430-W150 | 1070(0x42E) |
XC430-W250 | 1080(0x438) |
2XC430-W250 | 1160(0x488) |
XM430-W210 | 1030(0x406) |
XH430-W210 | 1010(0x3F2) |
XH430-V210 | 1050(0x41A) |
XD430-T210 | 1011(0x3F3) |
XM430-W350 | 1020(0x3FC) |
XH430-W350 | 1000(0x3E8) |
XH430-V350 | 1040(0x410) |
XD430-T350 | 1001(0x3E9) |
XW430-T200 | 1280(0x500) |
XW430-T333 | 1270(0x4F6) |
XM540-W150 | 1130(0x46A) |
XH540-W150 | 1110(0x456) |
XH540-V150 | 1150(0x47E) |
XM540-W270 | 1120(0x460) |
XH540-W270 | 1100(0x44C) |
XH540-V270 | 1140(0x474) |
XW540-T140 | 1180(0x49C) |
XW540-T260 | 1170(0x492) |
各Dynamixelを特定するための固有の値で0~252の範囲の数値で設定します。同一ネットワーク内に存在するDynamixelには各々異なるIDが要求されます。
なお2XLや2XCシリーズは1つのデバイスであってもネットワーク上では2個のDynamixelとみなされるため、設定しようとする対象のID番号はもう一方のID番号と同じ値を設定することができません。
通信する際のボーレートです。ホストとDynamixelのボーレートは一致させなくてはなりません。
Value | Baudrate [bps] |
0 | 9600 |
1 | 57600 |
2 | 115200 |
3 | 1000000 |
4 | 2000000 |
5 | 3000000 |
6 | 4000000 |
7 | 4500000 |
インストラクションパケットが送られた後、ステータスパケットを返すまでの待ち時間を設定します。
ホストにおいて半二重のバス制御のタイミングに合わせて調整しますが、弊社が提供するPC用USBシリアルI/Fを使用する限りでは0を設定しても問題ありません。
Delay Time [us] = Value * 2 [us]
デフォルト回転方向、デュアルジョイント、プロファイル構成を設定します。
デフォルト回転方向によりはPosition, Velocity, PWMの各指令によるホーンの回転方向が変化します。
デュアルジョイントは2台のDynamixelを同期させてトルクアップする際に使用し、一方をマスターもう一方をスレーブに設定します。※X540シリーズのみ装備
プロファイル構成は位置決め制御時に速度制御を行うか遷移時間制御を行うかを選択します。
Bit | Name | Description |
7 | 常時0 | |
6 | 常時0 | |
5 | 常時0 | |
4 | 常時0 | |
3 | 常時0 | |
2 | Profile configuration | 0:Velocity-based Profile 1:Time-based Profile |
1 | Dual Joint | 0:Master 1:Slavebr;※X540シリーズのみ |
0 | Direction of rotation | 0:Normal (CCW方向を+、CW方向を-) 1:Reverse (CCW方向を-、CW方向を+) |
2台のDynamixelのDual Jointを各々MasterとSlaveに設定し、Dual Joint Connector同士をデュアルジョイントケーブルで接続します。Slaveに設定されたDynamixelはDual Joint Connectorから入力されるMasterからの信号でのみ動作し、Slaveへの制御モード等の設定は一切無視されます。なお、ケーブルの配線方法により回転方向が決定されます。
Dual Joint | |
Master | Slave |
動作モードを選択します。Valueに記載が無い値は予約済みのため、指定してはなりません。
なお、電流センサを搭載しないデバイスは一部のモードが選択できません。
Value | Mode | Description |
0 | Current Control Mode | 電流制御。位置及び速度制御は行わない。 ※XL430,2XL,XC,2XCシリーズは指定不可 |
1 | Velocity Control Mode | 速度制御。位置及びトルク制御は行わない。 |
3 | Position Control Mode | 位置制御。GoalPositionは0~360°の1回転分の制御範囲に制限。 |
4 | Extended Position Control Mode | 拡張位置制御。GoalPositionの範囲が拡大され、最大±256回転まで対応。 |
5 | Current-Base Position Control Mode | 電流制限付き位置制御。GoalPositionの範囲が拡大され、最大±256回転まで対応。 ※XL430,2XL,XC,2XCシリーズは指定不可 |
16 | PWM Control Mode | PWMのデューティー比を制御。 |
DynamixelのSecondary IDを設定します。Secondary IDは、IDと同様に各Dynamixelを識別するために用いられます。なお、Secondary IDに253以上の値が設定されている場合、Secondary IDは機能しません。
プロトコルを選択します。他のシリーズのDynamixelと混在させて使用する際はそのプロトコルに合わせますが、異なるプロトコルを混在させて使用する事はできません。
Value | Protocol | Description |
1 | DXL 1.0 | AX, DX, RX, MX, EXシリーズと互換 ※XL330,XC330シリーズは指定不可 |
2 | DXL 2.0 | X, PROシリーズと互換 |
20 | S.BUS | Futaba S.BUS (試行的実装) ※XL330,XC330シリーズのみ指定可 |
21 | iBUS | FlySky (試行的実装) ※XL330,XC330シリーズのみ指定可 |
22 | RC-PWM | PWM ※XL330,XC330シリーズのみ指定可 |
この値が真の現在位置に加算されPresent Positionに反映されます。オフセット位置をホスト側では無くDynamixel側に持たせる際に使用します。
真の現在位置とはMulti Turnがoff、Homing Offsetが0、Direction of rotationが0の時のPresent Positionを意味します。
Position [deg] = Value * 360 [deg] / 4095
Present Temperatureがこの値を超えるとHardware Error Statusの該当ビットがONになり、Shutdownで指定された動作に遷移します。
Temperature [degC] = Value * 1 [degC]
Model | Default value |
XL330-M077 | 70 |
XL330-M088 | |
XC330-M181 | |
XC330-M288 | |
XC330-T181 | |
XC330-T288 | |
XL430-W250 | 72 |
2XL430-W250 | |
XC430-W150 | 80 |
XC430-W240 | |
2XC430-W250 | |
XM430-W210 | |
XH430-W210 | |
XH430-V210 | |
XD430-T210 | |
XM430-W350 | |
XH430-W350 | |
XH430-V350 | |
XD430-T350 | |
XW430-T200 | |
XW430-T333 | |
XM540-W150 | |
XH540-W150 | |
XH540-V150 | |
XM540-W270 | |
XH540-W270 | |
XH540-H270 | |
XW540-T140 | |
XW540-T260 |
Present Input Voltageがこの値の範囲を超えるとHardware Error Statusの該当ビットはONになり、Shutdownで指定された動作に遷移します。
Voltage [V] = Value * 0.1 [V]
Model | Default value | Range | |
Max | Min | ||
XL330-M077 | 70 | 35 | 31~70 |
XL330-M288 | |||
XL430-W250 | 140 | 60 | 60~140 |
2XL430-W250 | |||
XC430-W150 | 160 | 60 | 60~160 |
XC430-W240 | |||
2XC430-W250 | |||
XM430-W210 | 160 | 95 | 95~160 |
XH430-W210 | |||
XM430-W350 | |||
XH430-W350 | |||
XM540-W150 | |||
XH540-W150 | |||
XM540-W270 | |||
XH540-W270 | |||
XW540-T140 | |||
XW540-T260 | |||
XH430-V210 | 300 | 110 | 110~300 |
XH430-V350 | |||
XH540-V150 | |||
XH540-V270 |
Goal Currentの絶対値はこの値以下に制限されます。
Current [mA] = Value * CurrentScalingFactor [mA]
Model | Default value | Range | Current Scaling factor [mA] |
XL330-M077 | 1750 | 0~1750 | 1 |
XL330-M288 | |||
XL430-W250 | - | - | - |
2XL430-W250 | |||
XC430-W150 | |||
XC430-W240 | |||
2XC430-W250 | |||
XM430-W210 | 1193 | 0~1193 | 2.69 |
XH430-W210 | 648 | 0~648 | |
XM430-W350 | 1193 | 0~1193 | |
XH430-W350 | 648 | 0~648 | |
XM540-W150 | 2047 | 0~2047 | |
XH540-W150 | |||
XH540-V150 | 1188 | 0~1188 | |
XM540-W270 | 2047 | 0~2047 | |
XH540-W270 | |||
XH540-V270 | 1188 | 0~1188 | |
XW540-T140 | 2047 | 0~2047 | |
XW540-T260 | |||
XH430-V210 | 689 | 0~689 | 1.34 |
XH430-V350 | 689 | 0~689 |
Profile Accelerationはこの値以下に制限されます。
Acceleration [rpm²] = Value * 214.577
XL330シリーズでは指定できません。
Goal Velocityの絶対値とProfile Velocityはこの値以下に制限されます。
Velocity [rpm] = Value * 0.229 [rpm]
Model | Default value | Range |
XL330-M077 | 445 | 0~2047 |
XL330-M288 | 1620 | |
XL430-W250 | 265 | 0~1023 |
2XL430-W250 | 250 | |
XC430-W150 | 460 | |
XC430-W240 | 306 | |
2XC430-W250 | 275 | |
XM430-W210 | 330 | |
XH430-W210 | 210 | |
XH430-V210 | 230 | |
XM430-W350 | 200 | |
XH430-W350 | 130 | |
XH430-V350 | 135 | |
XM540-W150 | 230 | |
XH540-W150 | 300 | |
XH540-V150 | 230 | |
XM540-W270 | 128 | |
XH540-W270 | 167 | |
XH540-V270 | 128 | |
XW540-T140 | 304 | |
XW540-T260 | 167 |
Operating ModeにPosition Control Modeが設定されている時にGoal Positionはこの値の範囲内に制限されます。
Position [deg] = Value * 360 [deg] / 4096
Modeにて3つのExternal Portをデジタル入出力、もしくはアナログ入力に設定します。
※X540シリーズのみ装備
Mode Value | Mode | Description |
0 | Analog IN | PortNへ入力された0~3.3Vの電圧を12bitの分解能でA/D測定しDataNにストア |
1 | Digital OUT (PushPull) | DataNに0の書き込みでPortNから3.3V、1の書き込みでPortNから0Vを出力 VOH:2.4V, VOL:0.5V |
2 | Digital IN (PullUp) | PortNへ0Vの入力でDataに0、PortNへ3.3Vの入力でDataに1をストア VIH:2.3V, VIL:1.0V PullUp/Down Reg:40kΩ(typ) |
3 | Digital IN (PullDown) |
この設定とHardware Error Statusの論理積が0以外になると、Torque Enableは0になりモータの出力が遮断されシャットダウン状態に遷移します。以後通常のインストラクションパケットにてTorque Enableを1にする事ができません。
Bit | Name |
7 | 常時0 |
6 | 常時0 |
5 | Overload Error |
4 | Electrical Shock Error |
3 | Motor Encoder Error |
2 | Overheating Error |
1 | 常時0 |
0 | Input Voltage Error |
なお、シャットダウン状態から復帰するには発生している障害を排除した後、電源の再投入か、REBOOTインストラクションパケットを受信しなくてはなりません。
出力軸をフリーにするか、設定されたOperating Modeに従った制御を開始します。
Value | Description |
0 | 出力軸フリー、制御停止、ロックされたアイテムを解除 |
1 | Operating Modeに従った制御開始、NVM及びIndirect Address領域のアイテムロック |
ステータスパケットを返信するインストラクションパケットを選択します。
Value | Instruction to respond |
0 | Ping |
1 | Ping, Read |
2 | Ping, Read, Write, Reg Write, Factory Reset, Reboot, Sync Read, Bulk Read |
様々なフィードバックと内部の制御状態を比較した結果を示します。さらに、この値とShutdownの論理積の結果により動作を継続するか否かを決定します。
Bit | Name | Description |
7 | - | 常時0 |
6 | - | 常時0 |
5 | Overload Error | 最大出力で制御できない負荷が継続的に発生した |
4 | Electrical Shock Error | 電気的に回路が衝撃を受けたり入力電力が不足してモータが正常動作しない |
3 | Motor Encoder Error | エンコーダが正常動作しない |
2 | Overheating Error | Present TemperatureがTemperature Limitを超えた |
1 | - | 常時0 |
0 | Input Voltage Error | Present VoltageがMax/Min Voltage Limitの範囲を超えた |
速度制御演算における各種制御ゲインを指定します。
Operating ModeにVelocity Control Modeが設定されている時に有効です。
なお、制御ブロック中の各ゲインは、次の算式で示す減じられた値が用いられます。
KvI = (Velocity I Gain) / 65536 KvP = (Velocity P Gain) / 128
位置制御演算における各種制御ゲインを指定します。
Operating ModeにPosition Control Mode・Extended Position Control Mode・Current-Base Position Control Modeが設定されている時に有効な値です。
なお、制御ブロック中の各ゲインは、次の算式で示す減じられた値が用いられます。
KpD = (Position I Gain) / 16 KpI = (Position I Gain) / 65536 KpP = (Position P Gain) / 128
Model | Default Value | ||||
Velocity Gain | Position Gain | ||||
I | P | D | I | P | |
XL430-W250 | 1000 | 100 | 4000 | 0 | 640 |
2XL430-W250 | 1800 | 100 | 2000 | 0 | 640 |
XC430-W150 | 1920 | 100 | 0 | 0 | 460 |
XC430-W240 | 1920 | 100 | 0 | 0 | 700 |
2XC430-W250 | 1920 | 100 | 0 | 0 | 700 |
XM430-W210 | 1920 | 100 | 0 | 0 | 800 |
XH430-W210 | 1920 | 100 | 0 | 0 | 900 |
XH430-V210 | 1920 | 100 | 0 | 0 | 800 |
XM430-W350 | 1920 | 100 | 0 | 0 | 800 |
XH430-W350 | 1920 | 100 | 0 | 0 | 900 |
XH430-V350 | 1920 | 100 | 0 | 0 | 800 |
XM540-W150 | 1920 | 100 | 0 | 0 | 800 |
XH540-W150 | 1920 | 100 | 0 | 0 | 800 |
XH540-V150 | 1920 | 100 | 0 | 0 | 800 |
XM540-W270 | 1920 | 100 | 0 | 0 | 800 |
XH540-W270 | 1920 | 100 | 0 | 0 | 800 |
XH540-V270 | 1920 | 100 | 0 | 0 | 800 |
XW540-T140 | 1920 | 100 | 0 | 0 | 800 |
XW540-T260 | 1920 | 100 | 0 | 0 | 800 |
無通信状態を監視する時間を指定します。
Bus Watchdogが1以上でかつTorque Enableが1である場合、ホストコントローラとDynamixel間の通信間隔を監視します。その間隔が指定時間よりも大きい場合にDynamixelは停止し、Bus Watchdogは-1に変更されます。Bus Watchdog Error状態になると、Goal PWM・Goal Current・Goal Velocity・Goal Positionの各アイテムは読み取り専用に変更されます。Bus Wathdogの値を0に変更すると、Bus Watchdog Errorは解除されます。
Value | Description |
0 | Bus Watchdog無効, Bus Watchdog Error状態を解除 |
1~127 | Bus Watchdog有効 (Value * 20[ms]) |
-1 | Bus Watchdog Error状態 |
PWMのデューティー比を指定します。
Operating ModeにPWM Modeが設定されている事はもとより、全てのModeにおける制御演算結果はPWMのデューティ比として算出されるため、必ず制御の最終段においてこの値以下にデューティー比が制限されモータへ印加されます。
Duty [%] = Value * 100 [%] / 855
電流センサを搭載したモデルにおいて電流制御の目標値を指定します。
Operating ModeにCurrent Control ModeもしくはCurrent-Base Position Control Modeが設定されている時に有効な値で、Current-Base Position Control Mode時はPosition D/I/P Gain, Feedforward 2nd/1st Gainに示すブロック図に従って制御されます。
Current [mA] = Value * ScalingFactor [mA]
モデル毎のCurrent Scaling Factorはこちら。
速度制御の目標値を指定します。
Operating ModeにVelocity Control Modeが設定されている時に有効な値で、Velocity I/P Gaiに示すブロック図に従って制御されます。
Velocity [rpm] = Value * 0.229 [rpm]
Profileの加速度もしくは加速時間を指定します。
Operating ModeがCurrent Control Modeである時を除くModeに有効です。
Drive ModeのProfile ConfigurationがVelocity-basedの場合、加速度は以下の式で決まります。
Acceleration [rpm²] = Value * 214.577
詳細はProfile Velocityを参照ください。なお0はモータの最大能力で加速します。
Drive ModeのProfile ConfigurationがTime-basedの場合、Profile AccelerationがProfile Velocityの50%を超えると50%に制限されます。
Velocity [rpm] = Value * 0.229 [rpm]
Profile | Condition, Waveform |
ステップ | Velocity = 0, Acceleration = don't care |
矩形 | Velocity ≠ 0, Acceleration = 0 |
三角 | Velocity ≠ 0, Acceleration ≠ 0 |
台形 | Velocity ≠ 0, Acceleration ≠ 0 |
t1 [ms] = 64 * (Profile Velocity) / (Profile Acceleration) もしくは t1 [ms] = 64 * (Goal Velocity) / (Profile Acceleration) t2 [ms] = 64 * Δ(Present Position) / (Profile Velocity)
また、これらの他に急峻な加速度変化を抑える制御を行っているため、最終的な目標到達時間はt3よりも長くなる場合があります。
Time [ms] = Value
位置制御の目標値を指定します。
Operating ModeにPosition Control Mode・Extended Position Control Mode・Current-Base Position Control Modeが設定されている時に有効で、各Mode毎に指摘できる数値範囲が異なります。
Operating Mode | Value Range | Max Turnover Number |
3 | Min Position Limit~Max Position Limit | 1 |
4 | -1048575~+1048575 | -256~+256 |
5 |
Position [deg] = Value * 360 / 4096
Present Velocityの絶対値とMoving Thresholdの比較結果を示します。
Value | Description |
0 | Moving Threshold ≥ |Present Velocity| |
1 | Moving Threshold < |Present Velocity| もしくはProfileが進行中 |
動作中の状況を示します。
Bit | Name | Description |
7 | - | 常時0 |
6 | - | 常時0 |
5 | Profile Type | 11:台形速度Profile 10:三角速度Profile 01:矩形速度Profile 00:Step速度Profile |
4 | ||
3 | Following Error | 位置制御時、位置がProfileに非追従 |
2 | - | 常時0 |
1 | Profile Ongoing | Goal Positionに基づくProfile進行中 |
0 | In-Position | 位置制御時、目標位置到達 |
Present Currentは現在モータへ流れている電流で、電流センサを搭載したモデルのみ有効です。
Current [mA] = Value * ScalingFactor [mA]
モデル毎のCurrent Scaling Factorはこちら。
電流センサを搭載しないモデルの場合はPresent Loadが適用され、最大トルクに対する負荷の割合を意味します。
Load [%] = Value * 0.1
センサ等を用いない推定値のため、負荷の方向を知る程度の目的に使用して下さい。
真の位置からHoming Offsetを除した出力軸の位置です。
Torque Enableが0の状態ではレンジフローするまで回転に応じた増減をしますが、Torque Enableを1にした瞬間にOperating Modeに依存した値でクリップされます。
Position [deg] = Value * 360 [deg] / 4096
Profileによって生成された目標速度を逐次示します。
Operating ModeにVelocity Control Mode・Position Control Mode・Extended Position Control Mode・Current-Base Position Control Modeが設定されている時に有効です。
Profileによって生成された目標位置を逐次示します。
Operating ModeにPosition Control Mode・Extended Position Control Mode・Current-Base Position Control Modeが設定されている時に有効です。
コントロールテーブル上のアドレスを再構成します。
Indirect Address N(N=1~56)とIndirect Data N(N=1~56)は対になっており、Indirect Address Nに任意のコントロールテーブル上のアドレスXを設定すると、その後Indirect Data Nへアクセスする事はIndirect Address Nに設定されたアドレスXへ間接的にアクセスする事になります。
具体的な例として、ホストから頻繁にアクセスしたいXM430のアイテムが複数あり、それらが離れたアドレスに配置されていた場合を考えます。通常はそれらアイテム全てをまたぐアドレス範囲のデータをまとめてアクセスするか、個々のアイテムに個別にアクセスするとった手段を執ります。これには本来無用なデータやアクセス回数が強いられるため、通信のトラフィックが上がる要因になるのと、ホスト側のプログラムの負担になります。
ホストから書き込み対象としてPosition P Gain・Goal Velocity・Goal Position、読み出し対象としてPresent Position・Present Temperatureがあった場合、これらをIndirect Data領域に再配置するには以下の手順を踏みます。
以後Indirect Data 1からの連続した224番地にアクセスする事は、再配置したアイテムへ個々に間接的にアクセスした事になります。
Indirect Addressがデフォルト値のままであれば、Indirect Data領域はユーザ任意のRAM領域として扱うことができます。
なお、XL330シリーズは本領域が以下のとおり縮小されていますので注意が必要です。
XL330 series only | ||||
Address | Item | Access | Default Value | Type/Range |
168 | Indirect Address 1 | R/W | 208 | uint16 64~227 |
169 | ||||
170 | Indirect Address 2 | 209 | ||
171 | ||||
172,173 ~ 202,203 | Indirect Address 3 ~ Indirect Address 18 | 210 ~ 225 | ||
204 | Indirect Address 19 | 226 | ||
205 | ||||
206 | Indirect Address 20 | 227 | ||
207 | ||||
208 | Indirect Data 1 | R/W | 0 | uint8 |
209 | Indirect Data 2 | |||
210 ~ 225 | Indirect Data 3 ~ Indirect Data 18 | |||
226 | Indirect Data 19 | |||
227 | Indirect Data 20 |