機能パック - マスター同期
 

Class A - マスター同期(DCM)

マスター - スレーブ間の同期を行います。

分散クロックの原理

各スレーブ デバイスの同期を取るためには、EtherCAT の分散クロック(DC=Distributed clocks)を使用します。
分散クロックを使うには、まずバス上の最初のDC 対応スレーブが、リファレンス クロックとして定義されます。
リファレンス クロックの時間は、EtherCAT マスターを通じてすべてのスレーブに分散されます。そして EtherCAT マスターは、クロック マスターの ESC(EtherCAT スレーブコントローラー)の適切なレジスタに保管されているバス時間を読み込むため、またその値を DC スレーブの対応するレジスターに書き込むために、ARMW コマンドをサイクリックに送信します。
各 DC スレーブは 内蔵の ESC を使用して、自らのローカル時間を更新します。
要求される精度を保証するためには(1µ秒以下の値を保証可能)、特定のスレーブ間の EtherCAT フレームの遅延も併せて保証する必要があります。
各スレーブでは、フレームが送信された時から、そのフレームが受信された時までの時間を計測します。
その後でマスターは、バス トポロジーに応じてスレーブ間の遅延を計算し、対応する遅延保証値を ESC のレジスター 0x928 に書き込みます。

ESC コントローラーの DC ユニットは、2 つのデジタル出力信号、SYNC0 と SYNC1 を提供します。
この SYNC パルスは、通常 EtherCAT バス クロックに対応する周波数で、バス時間に基づいて生成されます。
例えば EtherCAT マスターがサイクリック I/O データを 1m秒レートで送信する場合、SYNC パルス周波数も、通常 1kHz に設定されます。
このスレーブ上の SYNC 信号は、一方ではデジタル出力信号(例:スレーブハードウェアコンポーネントの起動信号)として使用できると共に、もう一方ではスレーブソフトウェアの割り込みソースとしても使用できます。

ここではっきりしているのは、すべてのスレーブはSYNC パルスがリリースされる前に新しいデータを受け取らなければならないという点です。
その実現のためには、新しいサイクリック I/O データと SYNC パルスの到着の最小タイムラグが、保証されなければなりません。


マスター同期

通常、EtherCAT マスター スタックは、サイクリック I/O データーを、コントローラー ハードウェア(例:組み込み x86 PC 内の a8254 タイマー)のハードウェア タイマーに則って送信します。
システムが 1kHz サイクルで動作する場合、8254 タイマーと SYNC パルスを生成するスレーブ タイマーも、1kHz に設定されます。
ただし、8254 タイマーもスレーブ タイマーも、厳密にサイクル レート 1kHz で動作するわけではありません。
事実上、2 つのタイマーはどちらも 1kHz で正確に動作するわけではなく、2 つのタイマーの間にはわずかなドリフトが発生します。これにより、マスターでのサイクリック I/O の送信と、スレーブでの SYNC パルスの生成の間隔も、一定のものにはなりません。

この間隔を、綿密に定義された一定の値にコントロールするためには、EtherCAT マスターを DC クロック マスター(バス上の最初の DC 対応スレーブ)と同期させる必要があります。
このメカニズムを DC(分散クロック)マスター同期= DCM と呼びます。

DCM は、次の 2 通りで実装できます。

- マスター シフト: EtherCAT マスターが実行されるハードウェアで、使用する物理タイマー(例:8254 タイマー)を再調整
- バス シフト: DC クロック マスターのバスタイムの再調整

DC コントローラーは、EtherCAT マスター タイムとDC クロックマスタータイムの差を、サイクリックに計算します。
PI コントローラー アルゴリズムは、設定値(SYNC パルスからマスター内のタイマー割り込みまでの時間)を考慮して、再調整値を計算します。
再調整値は、「マスター シフト」を使用する場合には EtherCAT マスター(例:8254)の物理タイマーに、「バスシフト」を使用する場合は、DC クロック マスターのレジスター 0x920 に、それぞれ影響を与えます。

EC-Master の マスター同期(DCM)機能パックは、上記マスター シフトとバスシフトの両方に対応しています。
マスターと各スレーブの同期は、EtherCAT の設計で、もっとも難しい課題の 1 つです。acontis 社ではこの点においても実績を積んでおりますので、お問い合わせをいただければ、ご使用のアプリケーションやハードウェアに最適な実装方法についてのご相談を承ります。

DCM マスター シフト モード

・ マスター コントロール システム(ホスト)のタイマー(リロード値)を調整します。
・ 例えばホストが速すぎる場合は、リロード値を 1 ティック増加し、それから初期値に戻します。
・ ボード アダプション用のハードウェア インターフェース レイヤー(タイマー API)は
  自動アクチュエーターエラー補正を持ちます。
・ システム時間は変更されないため、すべての DC スレーブ上で、非常に正確で安定した
  SYNC0 を得られます。

DC バス シフト モード

・ DC クロック マスターのシステム時間オフセット(STO)レジスターを調整します。
・ 重要: この STO は絶対値であり、DC クロック マスターのシステム時間に即座に加算されます。
  DC スレーブは、この時間に収束されます。

・ →複数の EtherCAT バスを同期させる場合や、マスタータイマーの調整ができない場合などに有用な方法です。
  ただし、同期割り込みに若干のジッターが生じるというデメリットがあります。

 
(C) 2014 - Alle Rechte vorbehalten