ツールTMCM-CANopenでは、実際にCANバスで流れるコマンドなどを表示できます。図は前回のを流用しているので、余計な矢印が入っています。
コマンドの表示
前回のツールを使って、オリエンタルモーターを利用できるようにします。
NMT
モータBLVD-KRDのGeneralからNMTのStartボタンを押します。NMTは電源が入るとInitialization状態になり、指示することで、Pre-operationalに移行します。この条件では、SDOによってオブジェクト・ディクショナリの読み書きができます。実働状態はOperationalで、PDOでリアルタイムにデータが読み書きされます。
Startをクリックします。
Tx: 0x000: 01 0a
Rx: 0x18a: 60 12 # NMT Start
Rx: 0x28a: 60 12 03 # NMT Pre-Op?
TxはマスタのPC、Rxはモータ・コントローラのスレーブと思われます。たぶん、Pre-operational状態になりました。ID=10なので、送信時Tx 0x0aは10です。01は、NMT service start remote nodeの指定です。レスポンスで帰ってきている03はマニュアルにはない数値なので、何かわかりません。InitializationはPre-operationalに遷移するので、そうなっていると推定します。
Controlword (6040h)
- Shutdown 06
- Switch ON 07
- Switch ON + Enable Operation 0f
- Quick Stop 02
- Enable Operation 07
- Fault Reset 1x
CiA-402 State Machine
もう一つの状態遷移CiA-402 State Machineを有効にします。
左のCiA-402 State Machineをクリックします。表示が進んでいくので、Cyclic pollingにはチェックしません。
Read status wordボタンをクリックすると、0x6041のBits in Statuswordが読み出されます。
Tx: 0x000: 80 0a
Tx: 0x60a: 40 41 60 00 00 00 00 00 # Read to switch
Rx: 0x58a: 4b 41 60 00 60 12 00 00 # 0x1260(16進) 0b0001 0010 0110 0000(2進) 4704(10進)
ビットの役割です。見るべきは、下位の8ビットです。Quick Stop状態で、Switch ON Disabledになっています。
0 Ready to Switch ON
1 Switched ON
2 Operation Enabled
3 Fault
4 Voltage Enabled
@5 Quick Stop
@6 Switch ON Disabled
7 Warning
8 Drive profile operation ready (manufacturer-specific (MS))
@9 Remote
10 Target Reached
11 Internal Limit Active
@12,13 Operation Mode Specific (OMS)
14 Reserved (manufacturer-specific (MS))
15 TLC (manufacturer-specific (MS))
CiA-402 State MachineのSwitch ON Disabledボタンをクリックします。
Tx: 0x60a: 2b 40 60 00 06 00 00 00 # shutdown
Rx: 0x58a: 60 40 60 00 00 00 00 00
Tx: 0x60a: 40 41 60 00 00 00 00 00 # Bits in Statusword
Rx: 0x58a: 4b 41 60 00 21 12 00 00
Ready to Switch ONボタンをクリックします。
Tx: 0x60a: 2b 40 60 00 07 00 00 00 # Switch ON
Rx: 0x58a: 60 40 60 00 00 00 00 00
Tx: 0x60a: 40 41 60 00 00 00 00 00 # Bits in Statusword
Rx: 0x58a: 4b 41 60 00 23 12 00 00
Operation enabledボタンをクリックします。
Tx: 0x60a: 2b 40 60 00 0f 00 00 00 # Operation enabled
Rx: 0x58a: 60 40 60 00 00 00 00 00
Tx: 0x60a: 40 41 60 00 00 00 00 00 # Bits in Statusword
Rx: 0x58a: 4b 41 60 00 27 12 00 00
上記のボタンと遷移がずれているかもしれません。
稼働状態になりました。NMTがOperationalで、CiA-402 State MachineのStatusword(0x6041)が0x1227(1001000100111)であれば、モータが鳴り始めます。
CiA-402 Profile Psition Mode
PPモードで動かします。
左のCiA-402 Profile Psition Modeをクリックします。表示が進んでいくので、Cyclic pollingにはチェックしません。
Tx: 0x60a: 40 83 60 00 00 00 00 00
Rx: 0x58a: 43 83 60 00 e8 03 00 00 # "1000" 加速度6083
Tx: 0x60a: 40 84 60 00 00 00 00 00
Rx: 0x58a: 43 84 60 00 e8 03 00 00 # "1000" 減速時加速度6084
Tx: 0x60a: 40 81 60 00 00 00 00 00
Rx: 0x58a: 43 81 60 00 01 00 00 00
既に設定されている値を読み出しています。
- 回転方向の加速度6083 Profile acceleration 1000
- 逆回転方向の加速度6084 Profile deceleration 1000
値を入れています。
- 速度6081 Profile velocity 1000
- どこまで回転させるか607A Target position 5000
押すボタンです。
- Move absoluteで5000まで回転
Tx: 0x60a: 40 60 60 00 00 00 00 00 # Mode of operation
Rx: 0x58a: 4f 60 60 00 03 00 00 00 # 0x0003 <-Profile Velocity Mode
Tx: 0x60a: 2f 60 60 00 01 00 00 00 # 0x0001 <-1:Profile Position Mode
Rx: 0x58a: 60 60 60 00 00 00 00 00 # 0 <-?? no mode change?
Tx: 0x60a: 23 7a 60 00 88 13 00 00 # "5000" Target position 607A
Rx: 0x58a: 60 7a 60 00 00 00 00 00
Tx: 0x60a: 40 40 60 00 00 00 00 00 # Controlword
Rx: 0x58a: 4b 40 60 00 0f 00 00 00 # 0x000f 0b0000 0000 0000 1111 <- Switch on,Enable voltage, Quick stop,Enable operation
Tx: 0x60a: 2b 40 60 00 1f 00 00 00 # 0x001f : Absolute Positioning
Rx: 0x58a: 60 40 60 00 00 00 00 00
Tx: 0x60a: 2b 40 60 00 0f 00 00 00 # 0x000f
Rx: 0x08a: 4a ff 81 00 00 00 00 00
Rx: 0x58a: 60 40 60 00 00 00 00 00
押すボタンです。
- Move relativeでは10000単位で回転
このように、設定値や押すボタンによって、コマンドやレスポンスを調べることができます。
Tx: 0x60a: 40 60 60 00 00 00 00 00 Controlword
Rx: 0x58a: 4f 60 60 00 01 00 00 00 0x0001 Profile Position Mode
Tx: 0x60a: 23 7a 60 00 88 13 00 00 "5000" Target position 607A
Rx: 0x58a: 60 7a 60 00 00 00 00 00
Tx: 0x60a: 40 40 60 00 00 00 00 00 Controlword
Rx: 0x58a: 4b 40 60 00 0f 00 00 00 Controlword
Tx: 0x60a: 2b 40 60 00 5f 00 00 00 Controlword
Rx: 0x58a: 60 40 60 00 00 00 00 00 Controlword
Tx: 0x60a: 2b 40 60 00 4f 00 00 00 Controlword
Rx: 0x58a: 60 40 60 00 00 00 00 00 Controlword
PDOとSDO
オブジェクト・ディクショナリの読み書きは、PDOとSDOの2種類があります。
PDO通信(CoEプロトコル)=プロセス・データ通信
マスタが、論理プロセス・データ空間をノード?スレーブにマッピングすることで、定周期通信を実現します。
PDOマッピング=I/Oデータ割り付け、したら、PDO通信=リモートI/O通信を行います。I/Oデータの割り付けは、EDSファイルを使います。
マスタからのデータをスレーブが受信するのがRxPDO、スレーブからマスタへデータを送信するのがTxPDOです。
サブインデックス0にマッピングされているオブジェクト数が記述されています。
0x1600~0x17ffがRxPDO用、0x1a00~0x1bffがTxPDO用
NMTのPre-Ope時に設定値の変更ができます。
PDO2 1st application object 1614807056 60400010h
2nd application object 1616904200 60600008h
PDO Mappingアドレス
四つ設定できます。デフォルトでマッピングは設定されていますが、変更もできます。
Receive-PDO (RPDO) (Master -> Driver)
- 1400h: 1st RPDO communication parameter
- 1401h: 2nd RPDO communication parameter
- 1402h: 3rd RPDO communication parameter
- 1403h: 4th RPDO communication parameter
- 1600h: 1st RPDO mapping parameter
- 1601h: 2nd RPDO mapping parameter
- 1602h: 3rd RPDO mapping parameter
- 1603h: 4th RPDO mapping parameter
Transmit-PDO (TPDO) (Driver -> Master)
- 1800h: 1st TPDO communication parameter
- 1801h: 2nd TPDO communication parameter
- 1802h: 3rd TPDO communication parameter
- 1803h: 4th TPDO communication parameter
- 1A00h: 1st TPDO mapping parameter
- 1A01h: 2nd TPDO mapping parameter
- 1A02h: 3rd TPDO mapping parameter
- 1A03h: 4th TPDO mapping parameter
デフォルトの値がマッピングされている。EDSファイル内
cob-id RPDO1 0000020A RPDO2 0000030A RPDO3 0000040A RPDO4 0000050A
TPDO1 4000018A TPDO2 4000028A TPDO3 4000038A TPDO4 4000048A
このモータのマッピングです。
1600h: 1st RPDO mapping parameter 1,6040 0010h、0,0,0 Controlword
1601h: 2nd RPDO mapping parameter 2,6040 0010h、6060 0008h,0,0 Controlword、Modes of operation
1602h: 3rd RPDO mapping parameter 2,6040 0010h、607A 0020h,0,0 Controlword、Target position
1603h: 4th RPDO mapping parameter 2,6040 0010h、60FF 0020h,0,0 Controlword、Target velocity
1A00h: 1st TPDO mapping parameter 1,6041 0010h、0,0,0 Statusword
1A01h: 2nd TPDO mapping parameter 2,6041 0010h、6061 0008h,0,0 Statusword、Modes of operation display
1A02h: 3rd TPDO mapping parameter 2,6041 0010h、6064 0020h,0,0 Statusword、Position actual value
1A03h: 4th TPDO mapping parameter 2,6041 0010h、606C 0020h,0,0 Statusword、Velocity actual value
SDO通信=メールボックス通信=メッセージ通信
任意のタイミングでマスタがコマンドを送信し、スレーブがレスポンスを返します。
SDOのやり取りはPre-Ope以上で使えます。
オブジェクト・ディクショナリの読み書きはSDOでできます。
しかし、NMTがOperational状態で、CiA-402 State MachineがSwitch ON + Enable Operation状態、つまり、正常稼働状態では、マッピングされたオブジェクト・ディクショナリの読み書きはPDOで行います。