EtherCAT技術およびEtherCATプロトコルの紹介
1 EtherCATとは?
EtherCAT®(Ethernet for Control Automation Technology)は、高性能なイーサネットフィールドバス技術であり、信頼性が高く、効率的で、コスト効果に優れた通信ソリューションを、多様な産業用オートメーションアプリケーションに提供します。2003年にBeckhoff Automation社によってオープン技術として開発され、その後EtherCAT Technology Groupという独立組織に引き継がれました。現在では、世界中で6,000以上の会員組織を持つ、最も広く使用されている産業用イーサネットプロトコルの一つとなっています。
EtherCATは、IEEE 802.3のイーサネット標準に基づき、マスター/スレーブ型のアーキテクチャを採用して、同一ネットワーク上のデバイス間の通信を可能にしています。マスターデバイスはコントローラとして機能し、スレーブデバイスにコマンドを送信し、そこからデータを受け取ります。マスターからスレーブへの通信に加えて、マスター間、スレーブ間の通信もサポートされています。EtherCATは、センサ、分散型I/O、アクチュエータ、モータ、その他のコントローラなど、多種多様なデバイスに対応しています。
また、EtherCATは非常にコストパフォーマンスにも優れています。EtherCATはオープンかつ標準化された技術であるため、市場には多数のメーカーから提供される、入手しやすく価格競争力のあるEtherCAT対応のハードウェア製品やソフトウェアソリューションが豊富に揃っています。他のフィールドバス技術は、納期が長く、選択肢が限られ、価格も高いという課題がありますが、それに比べてEtherCATは非常に魅力的な選択肢です。さらに、EtherCATは信頼性が高く、ハードウェアの交換が容易であるため、メンテナンスやダウンタイムの面でもコスト削減に寄与します。
また、EtherCATは非常にコストパフォーマンスにも優れています。EtherCATはオープンかつ標準化された技術であるため、市場には多数のメーカーから提供される、入手しやすく価格競争力のあるEtherCAT対応のハードウェア製品やソフトウェアソリューションが豊富に揃っています。他のフィールドバス技術は、納期が長く、選択肢が限られ、価格も高いという課題がありますが、それに比べてEtherCATは非常に魅力的な選択肢です。さらに、EtherCATは信頼性が高く、ハードウェアの交換が容易であるため、メンテナンスやダウンタイムの面でもコスト削減に寄与します。
EtherCATの柔軟性、卓越した性能、信頼性は、医療用ロボティクス、試験・計測、工作機械、工場の自動化など、高速性と安全性が求められる用途において明確な選択肢となっています。
2 EtherCATプロトコルの基本
2.1 フレーム構造
標準のイーサネット通信と同様に、EtherCATはネットワーク全体でデータを送信するためにイーサネットフレームを使用します。EtherCATフレームはIEEE 802.3イーサネット規格に基づいていますが、帯域幅を増加させ、短い周期プロセスデータに最適化された特別な構造を持っています。EtherCATフレームはまた、UDP/IPやTCP/IPのような大きなプロトコルスタックを排除しており、つまりEtherCATはIPベースのプロトコルではなく、よりデータリンク層またはレイヤ2のプロトコルに類似しています。
EtherCATフレーム、またはテレグラムは、イーサネットヘッダーに続いてEtherCATデータがあり、フレームチェックシーケンス(FCS)で終了します。EtherCATプロトコルは、イーサネットヘッダー内のEtherTypeフィールドに0x88A4の識別子を使用することで識別されます。WiresharkにはEtherCATフレームをグラフィカルに解析するディセクターが含まれています。
EtherCATデータにはEtherCAT専用のヘッダーが含まれ、その後にEtherCATデータグラムが続きます。EtherCATヘッダーは、続くEtherCATデータグラムの合計長さと種類を指定します。EtherCATヘッダーの後にはEtherCATデータグラムがあり、これにはネットワーク内で読み書きされる実際のデータが含まれます。このデータには、アドレス指定、マスターが実行したいコマンドの種類(つまり読み取り、書き込み、または読み書き)、および周期プロセスデータ(PDO)が含まれます。1つのEtherCATフレームには最大で1,498バイトまで含めることができます。
1,498バイトを超える必要がある場合、マスターは複数のデータフレームを送信し、各フレームには、ネットワーク上のデバイスが次のフレームを期待するかどうかを示す識別子が含まれます。
EtherCATマスターは、EtherCATフレームを組み立て、それらをネットワークに送信する責任があります。マスターから送られるすべてのフレームは、ネットワーク上の各ノード(論理リング)を通過します。さらに、柔軟なトポロジーオプションのおかげで、ネットワークスイッチやルーターは不要であり、これによりタイミング遅延やハードウェアコストがさらに削減されます。
2.2動作原理
EtherCATネットワーク内での通信は、マスターがEtherCATフレームをスレーブに送信することから始まります。EtherCATネットワーク内では、データはリングまたはライン構成に従って直線的にスレーブノードを通過していきます。
各スレーブはフレームを受信し、それを「オンザフライ(on the fly)」で処理します。つまり、スレーブはフレーム全体が到着するのを待つのではなく、データが通過する間にそれを読み取り、書き込みます。スレーブは、送信されるフレームの適切な位置にあるデータのみを認識し、指定された命令に従ってそれを変更します。
これにより、各スレーブは遅延を最小限に抑えながら自身のデータをフレームに挿入したり、フレームから読み取ったりできます。マスターは、すべてのスレーブを通過して戻ってきたフレームを受信することで、各スレーブからの応答データを確認できます。
この方法により、EtherCATは従来のイーサネット通信とは異なり、ネットワーク内の複数のデバイスと1つのフレームで効率的に通信することが可能になります。従来のイーサネットでは、マスターは各スレーブに個別のフレームを送信し、それぞれの応答を待つ必要がありました。
2.3トポロジー
EtherCATネットワークのトポロジーは非常に柔軟であり、ライン、ツリー、スター、またはリング構成をとることができます。これにより、さまざまな産業用途における配線要件を満たすことが可能になります。
標準的な構成はライン型です。ここでは、各スレーブが前のスレーブからのデータを受け取り、それを次のスレーブに転送します。ツリー型構成では、1つのスレーブが複数の下位スレーブにデータを分配できます。これにより、複雑なネットワークがより柔軟に実装可能になります。
スター型構成では、スイッチングハブを使用せずにEtherCATスレーブのポート機能により接続されます。また、リング構成では、最後のスレーブがマスターに戻る接続を持ち、冗長性が提供されます。万が一、ネットワークのどこかで通信が途切れても、データは反対側から到達することができます。
このように、EtherCATの柔軟なトポロジーオプションは、設計上の自由度を高め、配線の手間やコストを最小限に抑えることが可能です。
2.4 プロセスデータ
各サイクルにおいて、EtherCATマスターはデータをフレームに組み込み、ネットワーク内のノードに送信します。ノードは、自分に宛てられたデータを読み取り、フレームが下流へ進む際に新しい返却データをフレームに書き込みます。フレームがネットワークの最後のノードに到達し、マスターに戻ると、マスターは新しいデータを読み取り、次のフレームを組み立てます。このマスターとスレーブ間で交換されるデータは、サイクリック・プロセスデータ(PDO)として知られています。
スレーブデバイスは、フィールドバスメモリ管理ユニット(FMMU)を使用して、データをフレーム内の適切な位置に読み書きする責任を負っています。これをデータマッピングと呼び、EtherCATマスターが毎サイクルで完全に整理されたプロセスイメージを受け取ることを保証するために不可欠です。サイクリック・プロセスデータは、オプションのプロセスデータオブジェクト(PDO)を有効にすることによって、プロジェクトのニーズに応じて組み立てることができます。このようにしてプロセスデータを整理することで、EtherCATの高速かつ信頼性の高いパフォーマンスが実現されます。
異なるスレーブデバイスタイプには、異なるハードウェアおよびプロセスデータのレイアウトオプションが存在する場合があります。例えば、デジタルI/Oなどの単純なデバイスは、固定されたハードウェアと固定されたプロセスデータレイアウトを持ちます。ドライブなどの複雑なデバイスは、固定されたハードウェアと可変のプロセスデータレイアウトを持ちます。さらに、バスカプラやゲートウェイなどのモジュラー型デバイスは、可変のハードウェアおよび可変のプロセスデータレイアウトを持ちます。
2.5 通信プロファイルとメールボックスプロトコル
サイクリック・プロセスデータに加えて、EtherCATは非サイクリック通信もサポートしており、さまざまなメールボックスプロトコルを含みます。これらのEtherCAT通信プロファイルは、より多様なフィールドデバイスおよびアプリケーション層をサポートするために確立されました。EtherCAT仕様に従って、スレーブデバイスはすべての通信プロファイルをサポートする必要はなく、代わりに、使用ケースに最も適した、または関連するプロファイルをサポートすることができます。さらに、サイクリック・プロセスデータとは異なり、メールボックスプロトコルのデータ転送は、リアルタイム制約内で確実に届けられるわけではありません。
2.5.1 CANアプリケーションプロトコル over EtherCAT (CoE)
CANopen®は、組み込みシステム向けの人気のある通信プロトコルで、通常はオートメーションアプリケーションで使用されます。EtherCAT通信プロファイルの一つであるCoEは、EtherCATネットワーク上でCANアプリケーションプロトコルの実装を可能にします。これには、CANopenオブジェクト辞書のサポート、プロセスデータオブジェクト(PDO)のマッピング、CoE緊急エラーメッセージ、診断、およびサービスデータオブジェクト(SDO)が含まれます。さらに、ドライブ用のCiA 402プロファイルやエンコーダ用のCiA 406プロファイルなど、標準化されたCANopenプロファイルをEtherCAT通信に再利用することができます。CoEは、ネットワーク構成に従って、プロジェクト固有のパラメータがスレーブデバイスに送信される際によく使用されます。スレーブデバイスのパラメータは、ネットワークが運用状態である間にCoEを介して検査・変更することもできます。
2.5.2 EtherCAT上のEthernet (EoE)
EtherCATのもう一つの強力な通信プロファイルは、Ethernet over EtherCAT(EoE)です。EoEを使用すると、EtherCATネットワーク内でEthernetのデータトラフィックを伝送できます。スイッチポートデバイスは、EtherCATセグメント内でEthernetデバイス(コンピュータやルーターなど)と接続するために使用できます。スイッチポートデバイスは、TCP/IPのフラグメントをEtherCATトラフィックに挿入する役割を担います。EoEは、スレーブデバイスのWebサーバーにアクセスして、デバイスの設定や診断を行うために一般的に使用されます。このようにして、デバイスは非EtherCATのローカルネットワークに直接接続されているかのように見えます。
2.5.3 EtherCAT上のファイルアクセス (FoE)
EtherCATのもう一つの強力な通信プロファイルは、Ethernet over EtherCAT(EoE)です。EoEを使用すると、EtherCATネットワーク内でEthernetのデータトラフィックを伝送できます。スイッチポートデバイスは、EtherCATセグメント内でEthernetデバイス(コンピュータやルーターなど)と接続するために使用できます。スイッチポートデバイスは、TCP/IPのフラグメントをEtherCATトラフィックに挿入する役割を担います。EoEは、スレーブデバイスのWebサーバーにアクセスして、デバイスの設定や診断を行うために一般的に使用されます。このようにして、デバイスは非EtherCATのローカルネットワークに直接接続されているかのように見えます。
2.6 同期(Sync Managers と Distributed Clocks)
EtherCAT通信における同期は、リアルタイム性能を可能にし、複雑で重要なアプリケーションにおいて正確で調整されたプロセスを実現します。同期は、EtherCATネットワーク内のすべてのノードが同じ時間基準で動作していることを保証します。例えば、高速なモーションコントロールのアプリケーションでは、すべてのモータードライブが正確に同時にコマンドを送受信することが非常に重要です。
最も正確なEtherCATの同期メカニズムは、分散クロック(DC)に基づいており、ネットワーク内のノード間でクロックのキャリブレーションはハードウェアに基づいています。EtherCATは、通常、ネットワーク内で最初のDCスレーブから参照クロックを利用します。この参照クロックの時間がネットワーク内のすべてのノードに配布され、その結果として生じるジッターは1マイクロ秒未満です。この参照クロックを基に、各デバイスは定期的にクロックのずれを調整します。すべてのノードが同じ参照クロックで動作することで、プロセスデータや出力信号は、精密なローカルクロックによって管理される周期的なトリガーを使ってネットワーク全体で同時に適用されます。
3 EtherCATの実装
3.1 システムアーキテクチャ
EtherCATの実装のシステムアーキテクチャは、主に3つのコンポーネントに分けることができます:設定ファイル、EtherCATマスター、EtherCATスレーブデバイス。EtherCAT設定ファイルは、マスターがEtherCATネットワークを設定し、初期化するために使用されます。設定ファイルには、スレーブの設定やネットワークトポロジーに関する詳細情報が含まれています。マスター機器(EtherCATマスターとも呼ばれる)は、EtherCATネットワークの管理、スレーブデバイスとのデータ交換、および外部アプリケーションとのインターフェースを担当します。スレーブデバイス(EtherCATスレーブ)は、センサー、ドライブ、アクチュエータ、その他の特定のタスクを実行する自動化システムのデバイスです。
3.2 EtherCATスレーブ情報(ESI)
EtherCATの実装のシステムアーキテクチャは、主に3つのコンポーネントに分けることができます:設定ファイル、EtherCATマスター、EtherCATスレーブデバイス。EtherCAT設定ファイルは、マスターがEtherCATネットワークを設定し、初期化するために使用されます。設定ファイルには、スレーブの設定やネットワークトポロジーに関する詳細情報が含まれています。マスター機器(EtherCATマスターとも呼ばれる)は、EtherCATネットワークの管理、スレーブデバイスとのデータ交換、および外部アプリケーションとのインターフェースを担当します。スレーブデバイス(EtherCATスレーブ)は、センサー、ドライブ、アクチュエータ、その他の特定のタスクを実行する自動化システムのデバイスです。
3.3 EtherCATネットワーク情報(ENI)
ENIファイル、または「EtherCATネットワーク情報」ファイルは、EtherCATシステムで使用される標準化された設定ファイルの一種で、ネットワークトポロジー、ネットワーク内のスレーブの配置、およびすべてのEtherCATスレーブのプロセスデータ構造を定義するために使用されます。ENIファイルは、EtherCAT設定ツールを使用して作成され、ネットワーク内のEtherCATスレーブデバイスをスキャンするか、手動でスレーブデバイスを追加することでネットワークトポロジーを定義します。その後、各スレーブデバイスから提供されたESIファイルの情報を解析します。ENIファイルは、EtherCATマスターによってネットワークを設定および初期化するために使用され、マスターがネットワーク内の各デバイスと通信するために必要なすべての情報が含まれています。
3.4 マスター
EtherCATマスターは、EtherCATネットワークを管理および制御するデバイスです。通常、PCや埋め込み型マイクロプロセッサ、プログラマブルロジックコントローラ(PLC)、またはモーションコントローラが用いられ、EtherCATスレーブデバイスと通信して制御を行います。EtherCATマスターはネットワークの制御ポイントとして機能し、スレーブ間の通信の管理、スレーブへのコマンドの発行、およびスレーブからのデータの受信を担当します。
マスターはまた、ネットワーククロックの管理やネットワーク内での同期を担当し、ウォッチドッグタイマーや自動再試行などのエラーハンドリングメカニズムを提供します。また、ENIファイルとESIファイルからの情報を使用してネットワークを設定し、ネットワークトポロジーやスレーブの機能を理解します。
3.5 スレーブ
EtherCATスレーブは、EtherCATネットワークに接続され、EtherCATマスターによって制御されるデバイスです。これらのデバイスは、センサー、ドライブ、アクチュエータ、またはその他の自動化デバイスであり、自動化システム内で特定のタスクを実行します。EtherCATのユニークなオン・ザ・フライフレーム処理を有効にするため、EtherCATスレーブデバイスにはEtherCATスレーブコントローラ(ESC)が必要です。ESCは、ASICのような専用チップであったり、FPGA内のIPコアとして実装されている場合もあれば、プロセッサに直接組み込まれている場合もあります。ESCは手動で設計することも可能ですが、さまざまな製造業者から市販の製品として広く提供されています。
EtherCATスレーブは、マスターが送信するEtherCATフレームをネットワーク内を通過させながらデータを読み取り、フレーム内に新しいデータを書き込みます。また、スレーブ同士がネットワーク上でスレーブ間通信を行うこともできます。各スレーブデバイスには、固有の識別番号(アドレス)が自動的に割り当てられ、マスターはこのアドレスを使用してスレーブと通信します。スレーブデバイスの機能は、通常、製造業者から提供されたESIファイルによって定義されます。ESCにより、さまざまなトポロジーが可能となり、ケーブルおよびマスターの冗長性もサポートされます。
スレーブデバイスには、エラーハンドリングメカニズムも組み込まれており、ウォッチドッグタイマーや自動再試行などを用いて、通信の信頼性を確保し、エラーによってシステムが停止しないようにします。
3.6 エラー検出と診断
EtherCATには、トラブルシューティングやメンテナンスを迅速かつ容易に行うための便利なエラー検出および診断機能が組み込まれています。エラー検出と診断は、機械の可用性、操作性、および立ち上げ時間を決定する上で重要な役割を果たします。
EtherCATには、起動時に実際のネットワークトポロジーと設定されたトポロジーをスキャンして比較する機能があり、これによりケーブルの問題や物理層の問題を検出することができます。これは従来のフィールドバスシステムと比較して非常に大きな利点です。
さらに、EtherCATでは、エラーが発生したネットワーク内の正確なノードを特定することができます。これをエラー位置特定と呼びます。EtherCATは、機械の動作に影響を与える前に、偶発的な障害を検出し、位置を特定することができます。
各ノードのEtherCATスレーブコントローラは、移動中のフレームをチェックしてエラーを検出します。フレームが正しく受信された場合のみ、スレーブアプリケーションに情報が提供されます。ビットエラーが発生した場合、エラーカウンタがインクリメントされ、後続のノードはそのフレームにエラーがあることを通知されます。マスターは、そのフレームが不良であることを検出し、情報を破棄します。マスターは、ノードのエラーカウンタを分析することで、システム内でエラーが発生した場所を検出できます。
フレーム内には、各データグラムの整合性を監視するための作業カウンタも含まれています。データグラムによってアドレスされたノードがすべて作業カウンタをインクリメントし、マスターはすべてのノードが一貫したデータを使用しているかどうかを周期的に確認できます。作業カウンタの値が予期しない値である場合、マスターはその不一致をアプリケーションに通知します。
1 今後、acontis technologiesはEtherCAT Technology Groupの更新された包括的な言語を採用し、「Master(マスター)」および「Slave(スレーブ)」の代わりに「MainDevice(メインデバイス)」および「SubDevice(サブデバイス)」を使用致します。