日記；回すだけⅣ ④ ラズパイ＋EPOS4、C++でプログラミング＜モータのチューニング2＞

　前回、USBケーブルでEPOS4（ID5）につないで、初期設定をし、チューニングしました。今回は、USBケーブルでもう一つのコントローラEPOS4（ID6）につなぎます。
![EPOS4-raspai02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407635/a9a916db-e880-2505-3b22-1e0b786e7bdc.png)

　Device Catalogのアイコンをクリックし、USBをダブルクリックすると、つないだUSB0が見えます。

![can101.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407635/7c629bd5-65ef-52b6-4e85-3d15dad44f9e.png)

　USB0で右クリックでscanしますが、ID5を見つけてきます。ID5のUSBケーブルを抜いてscanします。
　ID6を見つけてきました。USB0がUSB2に変わっています。理由は不明です。

![2022-06-03 (47).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407635/b8f75dc8-a7fa-30f1-a985-2dadbf04c91d.png)

　Parameter Export/Importから、Inport Parameter to Fileを選びます。DCFファイルは前回保存した22-6-3.dcfです。最後のほうで、エラーが出て、エラーレポートが出ました。どうも、同じEPOS4でバックアップをするようで、別のEPOS4へパラメタをコピーする用途ではないようです。

### 初期設定
　前回ID5と同じ初期化をします。
　と思ったら、まったく同じ値が入っていました。理由は不明です。

### Regulation Tuning

　チューニングをします。
　Currentです。電流は1000mAにして実行しました。

![2022-06-03 (52).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407635/5c405ed3-8566-7caa-3d47-b3cdd648c711.png)


　Velocityです。1000incにして実行しました。
　
![2022-06-03 (53).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407635/05f8c971-5132-3dc1-ee6b-4b89d109f832.png)



　パラメタ（AccelerationとDeceleration）を合わせて実行します。ほぼ同じになりました。

![2022-06-03 (58).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407635/863b5632-fb01-28c2-229c-adaa05686524.png)

 Positionです。

![2022-06-03 (54).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407635/b67ab8ec-7a94-293f-22ac-ce56e46868f2.png)

　パラメタを合わせて実行します。
　前回のとは少し異なっています。

![2022-06-03 (56).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407635/c35e2535-f952-c086-4f85-28684b39f3b6.png)

### PDOマッピングの修正

　左のメニューのCANopenをクリックし、Receive-PDOの画面を出します。このコントローラはID=6を設定してあります。
　COB-IDは0x200＋Node-IDなので、0x00000206、0x00000306、0x00000406、0x00000506に変更します。全部synchronousです。
![2022-06-03 (61).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407635/c707a3ea-eac7-5a3c-418f-8e482d8eb697.png)


　Transmit-PDO画面を出します。
　COB-IDは0x180＋Node-IDなので、0x00000186、0x00000286、0x00000386、0x00000486に変更します。全部synchronousです。

![2022-06-03 (62).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407635/a981be9a-011c-633e-6fbc-4e060c1756ba.png)

　Toolsから Object Dictionaryを開きます。PDOマッピング付近を見ます。COB-IDなど、ID6用になっているのが確認できます。

![2022-06-03 (64).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407635/cdf961ba-64ca-b51a-9402-c8819615df67.png)　

　USBケーブルをID5にもつなぎ、ID5のObject Dictionaryを開きます。PDOマッピング付近を見ます。COB-IDなど、ID5用になっているのが確認できます。
![2022-06-03 (66).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407635/bf6d8e50-6d2a-6a52-4537-8b5e138f95cd.png)

### 資料
　ダウンロードしたEPOS4資料の大まかな中身の説明です。

"EPOS4 / IDX Communication Guide"
　-> Chapter "3 CAN Communication"
"EPOS4 / IDX Firmware specification"
　-> Chapter "2 System overview"
　-> Chapter "3 Operating modes"
　-> Chapter "4 Inputs and Outputs"
　-> Chapter "5.2 CAN Communication"
　-> Chapter "6 Object Dictionary"
　-> Chapter "7 Error Handling"
"EPOS4 Application Notes Collection"
　-> Chapter "5 CANopen Basic Information"
　-> Chapter "7 Device Programming" 

### レスポンス
　EtherCATで使われるCANopenは、高速です。それは、EtherCATがリアルタイムOSもしくはそれに相当するスケジュールで動いているからです。CAN自体も、リアルタイム性が保証できれば、EPOS4のライブラリの関数を実行するスピードは1ms程度です。
　しかし、今回のようにラズパイ4では普通のLinuxが動いているので、リアルタイム性は誰も保証してくれません。現実には、EPOS4のライブラリの実行スピードは1ms程度から、10～40msに変動します。
　なので、PDOによるデータの読み書きは高速ではなく、SDOでもほぼ同じ速度というのが現実のようです。
　しかし、位置決めのPPTでは、Target PositionはPDOで管理されている前提のライブラリになっているので（筆者はそう解釈しているが正しくないかもしれない）、PDOマッピングは正しく設定しておきます。

　　https://support.maxongroup.com/hc/en-us/articles/360006122334

##### 目次
- [① ラズパイ＋EPOS4、C++でプログラミング＜準備＞](https://qiita.com/jamjam/items/f6acf1128c6020b27059)
- [② ラズパイ＋EPOS4、C++でプログラミング＜車体の用意＞](https://qiita.com/jamjam/items/a9d400baaa5909bb0885)
- [③ ラズパイ＋EPOS4、C++でプログラミング＜モータのチューニング＞](https://qiita.com/jamjam/items/9266eb684d8a2bec7ac6)
- [④ ラズパイ＋EPOS4、C++でプログラミング＜モータのチューニング2＞](https://qiita.com/jamjam/items/93a57e9356bb1f9d1e6a)
- [⑤ ラズパイ＋EPOS4、C++でプログラミング＜ライブラリの準備＞](https://qiita.com/jamjam/items/be97d25e90c7aa9b92c5)
- [⑥ ラズパイ＋EPOS4、C++でプログラミング＜オブジェクト・ディクショナリを読み出す＞](https://qiita.com/jamjam/items/0cd6c5363c851c3c0e3c)
- [⑦ ラズパイ＋EPOS4、C++でプログラミング＜モータの回転 PPM＞](https://qiita.com/jamjam/items/725047121f582bb30937)
- [⑧ ラズパイ＋EPOS4、C++でプログラミング＜モータの回転 CSP その1＞ベータ版](https://qiita.com/jamjam/items/d58bf9affbd980e1735b)
- [⑨ ラズパイ＋EPOS4、C++でプログラミング＜モータの回転 CSP その2＞ベータ版](https://qiita.com/jamjam/items/ea611e552c5787ed5de0)