1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

日記;回すだけIII ④発行されるコマンドを見る

Last updated at Posted at 2022-02-28

 ツールTMCM-CANopenでは、実際にCANバスで流れるコマンドなどを表示できます。図は前回のを流用しているので、余計な矢印が入っています。

コマンドの表示

 前回のツールを使って、オリエンタルモーターを利用できるようにします。

  日記;回すだけIII ③TMCM-CANopenで回す

 画面下に、16進で、コマンドの実行が表示されています。
bl101.png

NMT

 モータBLVD-KRDのGeneralからNMTのStartボタンを押します。NMTは電源が入るとInitialization状態になり、指示することで、Pre-operationalに移行します。この条件では、SDOによってオブジェクト・ディクショナリの読み書きができます。実働状態はOperationalで、PDOでリアルタイムにデータが読み書きされます。
 Startをクリックします。
bl102.png

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にはチェックしません。
bl103.png

 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にはチェックしません。
bl104.png

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で行います。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?