今回の記事ではDELTA Motion社が新しくリリースしたECATモジュールを使用しEtherCATネットワークを構築します。記事の中に使用してるのはWeidmuller・MURRELEKTRONIK・DELTA・OMORNのSlaveです。
さ、FAを楽しもう。
ECAT Modules?
ECATモジュールはEtherCATメインデバイス機能を提供し、電気モータードライブの制御やセンサーやアクチュエータなどの他のEtherCAT下位デバイスとの通信を可能にします。そのECATモジュールは2つのRJ-45ポートを備え、ECATモジュールはケーブルの冗長性をサポートします。
RMC200は、位置、速度、圧力、力、トルク制御、EtherCAT経由のシングル/デュアルループ軸をサポートしています。軸は、EtherCATデータまたは直接接続されたセンサーやアクチュエーターの任意の組み合わせで出力とフィードバックを定義できます。RMC200 EtherCATは、CANopen over EtherCAT (CoE) CiA402ドライブプロファイルとCiA408バルブプロファイルをサポートしています。
また、ECATモジュールは、すべてのRMC200ベースでサポートされており、スロット2(CPUのすぐ右側のスロット)にのみ取り付けることができます。LEDインジケータは、ネットワーク状態、冗長状態、各ポートの状態を表示します。
こちらはECATモジュールの仕様になります。
ECATモジュールを使用することによって、他社のEtherCAT Slaveにも簡易で接続でき、独立したシステムを構築可能です。
Reference Link
Install the latest Version OF RMC Tools
Deltamotion社のECATモジュールを使用するには最新バージョンのRMC Toolsを使用してください。下記のLinkから最新VersionのRMC ToolsをDownloadできます。
https://deltamotion.com/products/software/rmctools
こちらは今回記事で使用したRMC Toolsバージョンです。
最新VersionのRMC Toolsに、Tools MenuからEtherCAT ESI Managerという新しい項目が表示されます。
また、ECATモジュールが追加されたらEtherCATの項目が表示されます。
Implementation
Add EtherCAT Module
まずはRMCプロジェクトにECATモジュールを追加してください。
Install ESI File
次はTools>EtherCAT ESI ManagerをクリックしEtherCAT ESI Fileをインストールしましょう。
Add Folderをクリックします。
各メーカーのHPからDownloadしたESI FileをImportしましょう。
Done!ESI FileがImportされました。
Configure EtherCAT Network
RMC ToolsからEtherCAT ネットワークを構築するため、EtherCATアイコンをクリックします。
こちらはEtherCAT Slaveの構築画面です。
Add EtherCAT Slave
EtherCATネットワークにSlaveを追加するため、Slaveを追加する位置を右クリック>Add SubDevice(s) Afterします。
こちらはSlaveの追加画面になります。Filter機能を使用し、必要なSlaveを検索しましょう。今回の例ではOMRONのNX-ECC203を追加してみます。
Done!NX-ECC203が追加されました。
Append Module
OMRONのNX-ECC203にインストールしたIOモジュールを追加するため、NX-ECC203を右クリック>Append Moduleします。
こちらはSubモジュールの挿入画面が表示されます。
Filter機能を使用し必要なモジュールを追加しましょう。
Done!入力モジュールNX-ID5442が追加されました。
Copy機能を使用し同じモジュールを追加することができます。
こちらは今回のOMORN NX-ECC203の構成です。
また、Modules Tabに直接すべてのSlot構成を変更できます。
Download
EtherCATネットワークを構築完了したら、Download EtherCAT Configuration to Controllerをクリックし、Hardware CofigurationをDownloadしましょう。
Yesで進みます。
Start EtherCAT Diagnostics
Start EtherCAT Diagnosticsをクリックし現在のEtherCATネットワーク診断情報を確認しましょう。
Configure Using Network Scan
また、RMC ToolsにはNetwork Scanする機能があり、ネットワークにあるEtherCAT Slaveを一気にプロジェットにUploadできます。
Result
Done!EtherCAT 通信が開始されました。
Configure Axis
今回の記事ではDelta社のサーボモータを使用しますので、Delta MotionのRMC200がEtherCAT経由でServo を制御することもできます。
RMC ToolsからEtherCAT Servo 軸を追加するため、Axes>Axis Definitionsをクリックします。
こちらはRMC Toolsの軸設定画面です。Newをクリックし新しい軸を追加します。
Control ModeをRemoteにし、OutputとFirst FeedbackをECAT[Slot 2]を設定してください。
Axis Parameters
次は先程追加したEtherCAT 軸のパラメータを設定します。
こちらはRMC Toolsで定義したすべての軸のパラメータ設定画面になります。
Position Scale/Offset Wizard
最初にPosition Scaleを設定するため、Tools And Wizards>Axis2>Launchをクリックします。こちらは一回転するにあたって必要な分解能を設定できます。
今回使用するのは”Transducer or Encoder Method or Calibration Data”の設定方法です。
これは通常データシートから得られるトランスデューサに関する情報をユーザーに提供するよう求めるものであり、非常に正確で設定可能ですが、トランスデューサーのデータが入手できない場合、この方法は使用できません。
”Transducer or Encoder Method or Calibration Data”を選択し、Next>で進みます。
こちらは分解能の設定画面になります。
- こちらは機構の移動単位になります。
- 一回転にあたって変化するパルス数を設定します。
- Offsetが必要な場合は設定してください。
- パルスの進行方向になります。
Delta社の取説にも書きましたが、ASDA-A3の分解能は24ビットで、モーター1回転あたり16,777,216パルスを生成します。エンコーダの分解能(17ビット、20ビット、22ビット)に関係なく、Eギア比はASDA-A3サーボドライブの24ビット分解能に従って設定されます。また、E-Gearの比率というパラメーターがあり、その設定が1の場合、モーター1回転につき16,777,216パルスを発生させます。
つまり、現在16777216パルスあたりに(1回転)で、1mmとして設定しました。
次はNext>で進みます。
RMC Toolsが自動的にパラメータを計算してくれますので、計算結果に実機と合ってるかを確認し、Next>で進みます。
現在値と新しいパラメータを確認し、Finishで進みます。
Done!Position Scaleびおパラメータ値が更新されました。
Count Index
Counts Index軸パラメータは、軸フィードバックとして使用するEtherCATデータの位置を指定します。これは軸が必要とする位置、速度、圧力、または力のデータです。
また、Counts インデックスで指定されたデータは、Raw Counts Axis Status レジスタの値であり、この値はスケーリングされ、Actual Position(実際の位置)、 Actual Force(実際の力)などの軸のフィードバック値になります。
今回はEtherCATのPDO 0x6064を設定します。
Input SubDevice
Input SubDeviceパラメータはどの EtherCAT SubDevice が軸のフィードバックを提供するかを選択するかを設定できます。
今回はEtherCAT経由でDeltaのASDA-A3-E Servoを制御しますので、先程EtherCATネットワークで追加したServo Drive Slaveを設定しましょう。
Control Word Index
Control Word IndexはEtherCAT出力タイプがドライブまたはバルブの軸に適用されます。これらの出力タイプはドライブ仕様CiA402とバルブ仕様CiA408で定義され、ドライブまたはバルブの状態を制御するためにコントロールワードとステータスワードを使用します。
これらの状態は、ドライブ状態とバルブ状態の軸ステータス・レジスタに表示されますが、EtherCATのState Machine状態Init、Pre-op、OpなどのEtherCAT通信状態とは別です。
また、Control Word Indexは通常 0x6040:00 ですが、多軸ドライブの場合、インデックス は通常各軸ごとに 0x800 ずつ増加します。例えば、ドライブの第 2 軸(軸 1)のControl Word Indexは、通常は 0x6840:00 です。
Status Word Index
Status Word IndexはEtherCAT出力タイプがドライブまたはバルブの軸に適用されます。これらの出力タイプはドライブ仕様CiA402とバルブ仕様CiA408で定義され、ドライブまたはバルブの状態を制御するためにコントロールワードとステータスワードを使用します。これらの状態は、ドライブ状態とバルブ状態の軸ステータス・レジスタに表示されますが、EtherCATのState Machine状態Init、Pre-op、OpなどのEtherCAT通信状態とは別です。
また、Status Word Indexは、通常は 0x6041:00 です。多軸ドライブの場合、インデックス は通常、各軸ごとに 0x800 ずつ増加します。例えば、ドライブの第 2 軸(軸 1)のステータス・ワード・インデックスは、通常は 0x6841:00 です。
Target Position Index
このパラメータを使用して、RMC軸の出力をドライブ内の正しいインデックスにマッピングします。目標位置インデックスはEtherCATリモート制御軸にのみ適用され、ドライブがCSPモードで、ドライブ内で位置PIDが実行されます。軸の出力信号はドライブに連続的に送信されるターゲット位置カウントです。
また、通常ではターゲット位置インデックスは 0x607A:00 です。多軸ドライブの場合、インデックス は通常、各軸ごとに 0x800 ずつインクリメントされます。例えば、ドライブの第 2 軸(軸 1)のターゲット位置インデックスは、通常は 0x687A:00 です。
Position Error Index
このパラメータを使用して、CSP モードの EtherCAT ドライブから位置フォロ ーエラーを受信し、それを位置エラー軸ステータスレジスタに適用する。
位置エラーインデックスはCSPモードのEtherCATドライブにのみ適用されます。CSPモードでは、RMCは継続的にターゲット位置をドライブに送信し、ドライブは位置PID計算を実行し、ドライブは実際の位置をRMCに返します。EtherCATネットワークではわずかな通信遅延が発生するため、RMCToolsに表示される実際の位置と目標位置は実際には異なる時間に取得されます。
これは、RMCが報告する実際の位置と目標位置の差が真の差ではないことを意味しますし、Position Error Axis Status レジスタにも、プロットで Actual Position と Target Position を視覚的に見る場合にも当てはまります。軸は非常によく制御されているのに、Actual Position と Target Position が存在しないエラーを示すことがあります。
この問題を解決するには、追従エラーをドライブから読み取り、位置エラー軸ステータスレジスタに割り当てることができます。その後、Position Error Axis Status レジスタをプロットに含めることで、真の追従エラーを表示できます。
通常、位置エラーインデックスは 0x60F4:00 です。多軸ドライブの場合、インデックス は通常、各軸ごとに 0x800 ずつインクリメントされます。例えば、ドライブの第 2 軸(軸 1)の位置エラーインデックスは、通常は 0x687A:00 です。
Display Unit
Display Units 軸パラメータは、RMCTools でその軸に表示されるフィー ドバック単位を定義する。表示単位は表示のみを目的としており、フィードバックの自動スケーリ ングや単位間の変換は行ないません。
Auto Stop Configuration
こちらは軸が動作するときのエラー検出パラメータです。実際のアプリケーションを合わせて設定してください。
Download All to Controller
最後にすべてのConfigurationをCPUにDownloadするため、”Download All to Controller”をクリックしましょう。
Update Flash
CPUに転送したデータをROMに書き込むために、Controller>Update Flashします。
Result
こちらはECATモジュールが各EtherCAT Slaveと正常に通信してるときのLED 状態です。
最後はCommand Toolで先ほど追加したAxisを操作しましょう。
こちらはRMC Toolsから軸にコマンドを発行する画面です。
Enable/Disable Axisを使用し、Delta Servoモーターを有効にします。
Enable/Disableの欄でEnableを設定します。
Sendボタンをクリックしコマンドを発行します。
Done!Event Logからコマンドが受け取ったことがわかります。
Servoモーターを動かしたい場合はMotion Commands>Point-to-PointでMotionコマンドを発行しましょう。