前回、USBケーブルでEPOS4(ID5)につないで、初期設定をし、チューニングしました。今回は、USBケーブルでもう一つのコントローラEPOS4(ID6)につなぎます。
Device Catalogのアイコンをクリックし、USBをダブルクリックすると、つないだUSB0が見えます。
USB0で右クリックでscanしますが、ID5を見つけてきます。ID5のUSBケーブルを抜いてscanします。
ID6を見つけてきました。USB0がUSB2に変わっています。理由は不明です。
Parameter Export/Importから、Inport Parameter to Fileを選びます。DCFファイルは前回保存した22-6-3.dcfです。最後のほうで、エラーが出て、エラーレポートが出ました。どうも、同じEPOS4でバックアップをするようで、別のEPOS4へパラメタをコピーする用途ではないようです。
初期設定
前回ID5と同じ初期化をします。
と思ったら、まったく同じ値が入っていました。理由は不明です。
Regulation Tuning
チューニングをします。
Currentです。電流は1000mAにして実行しました。
パラメタ(AccelerationとDeceleration)を合わせて実行します。ほぼ同じになりました。
Positionです。
パラメタを合わせて実行します。
前回のとは少し異なっています。
PDOマッピングの修正
左のメニューのCANopenをクリックし、Receive-PDOの画面を出します。このコントローラはID=6を設定してあります。
COB-IDは0x200+Node-IDなので、0x00000206、0x00000306、0x00000406、0x00000506に変更します。全部synchronousです。
Transmit-PDO画面を出します。
COB-IDは0x180+Node-IDなので、0x00000186、0x00000286、0x00000386、0x00000486に変更します。全部synchronousです。
Toolsから Object Dictionaryを開きます。PDOマッピング付近を見ます。COB-IDなど、ID6用になっているのが確認できます。
USBケーブルをID5にもつなぎ、ID5のObject Dictionaryを開きます。PDOマッピング付近を見ます。COB-IDなど、ID5用になっているのが確認できます。
資料
ダウンロードした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++でプログラミング<準備>
- ② ラズパイ+EPOS4、C++でプログラミング<車体の用意>
- ③ ラズパイ+EPOS4、C++でプログラミング<モータのチューニング>
- ④ ラズパイ+EPOS4、C++でプログラミング<モータのチューニング2>
- ⑤ ラズパイ+EPOS4、C++でプログラミング<ライブラリの準備>
- ⑥ ラズパイ+EPOS4、C++でプログラミング<オブジェクト・ディクショナリを読み出す>
- ⑦ ラズパイ+EPOS4、C++でプログラミング<モータの回転 PPM>
- ⑧ ラズパイ+EPOS4、C++でプログラミング<モータの回転 CSP その1>ベータ版
- ⑨ ラズパイ+EPOS4、C++でプログラミング<モータの回転 CSP その2>ベータ版