EtherCAT用語説明
EtherCATは、オープン規格のイーサネットフィールドバスであり、その主な特長として、
・Ethernetによる高速性
・省配線
・時刻同期性
が挙げられます。
また、社内にあるイーサネットの標準部品でフィールドバスを構成できるため、低コストで高速な制御が可能です。
基本的な構成として、制御を統括的にコントロールするマスターと、マスターの指示で動作するスレーブ(サーボドライブ,IO,センサなど)で構成されています。
本ページでは、EtherCATの簡単な用語説明とモーション制御するうえでの要点についてまとめてあります。
EtherCATについての詳細な技術情報は、EtherCAT Technology Group等をご覧ください。
モーション制御とEtherCAT
EtherCATでは指令量をシリアルデータで送るため、より高精度の制御が可能であり位置検出器の性能を最大限活かすことができます。
また、サーボドライバの情報をマスター側で一元管理することが可能です。他にも、
・インポジション幅をマスターで調整可能
・トルクや電流値などをロギングすることで,ドライバ交換時期の予測が可能
・ドライバが生成した実速度と実位置などのロギング
・アラームの詳細情報の取得
・ダイアグノーシス機能が実装されているサーボドライブであればイベント情報などをLANケーブルのみで取得可能
・コントローラ部の省配線化やLANポートのみで制御可能
などモーション制御をする上でのメリットが多いフィールドバスです。
さらにPCの性能向上によって、PC上でのリアルタイムなモーション制御が可能となってきたため、モーション制御を必要とするユーザーでの関心が高くなってきました。そのことから、ハイバーテックでは2007年よりEtherCAT製品開発を開始しています。
EtherCATプロトコル
動作原理
EtherCATでは、標準Ethernetフレームデータをオン・ザ・フライ方式でリード&ライトします。フレームは各ノードを通過するときに、ノードに対して「オンザフライ」で自身にアドレス指定されたデータのリードやライトを行い、次のノードに移動します。
Ethernetフレームの送信をし、ネットワーク上のデバイス制御を行うものをマスタといいます。マスタの種類には,OS上でソフトウェアマスタスタックを動かしてマスタとするタイプと、EtherCATマスタ機能を持つインターフェースカードをマスタにするタイプなどがあります。
マスタから送られるフレーム内のデータを読み取り、同時にマスタ宛のデータをオンザフライでフレームに書き込む動作を行うものをスレーブといいます。フレームは接続された次のスレーブに渡され、ネットワークに接続する全てのスレーブにデータを伝達します。
オンザフライ方式によってマスターから送出されたフレームがネットワークを周回する間に,全てスレーブの出力処理と入力処理を完了する仕組みです。
通信プロファイル
EtherCATでは、CoEプロトコルによるCANopen規格と同等の通信メカニズムを使用できるようにすることで、オブジェクトディクショナリ(OD)やプロセスデータオブジェクト(PDO)、サービスデータオブジェクト(SDO)などをサポート可能とし、ネットワーク管理方法もCANopenと同様にすることができます。
これにより、CANopen対応デバイス開発の経験を活かしCANopenプロトコル処理ソフトウェアの大部分を再利用することが可能となっています。また、「CiA402ドライブプロファイル」によるコントローラ機能動作の定義部分も再使用できる特長があります。
他にもSoE (Servo drive profile over EtherCAT)、EoE(Ethernet over EtherCAT)、FoE (File access over EtherCAT)、FSoE (Safety over EtherCAT)もサポートしていますが、 CiA402 ドライブプロファイルによるモーション制御を行う場合はCoEを使用します。そのため、EtherCATではIEC 61800-7-201およびIEC 61800-7-301に定められている「CiA402ドライブプロファイル」を満たす必要があります。EtherCATシリーズではコントローラ機能動作の定義部分に適用しています。
CANopen
ドイツの「CAN in Automation(CiA)」によって規格化された、組み込み向け通信プロトコルです。
CiA301の規格書にまとめられており、CAN(Controller Area Network)システムをベースとしたアプリケーションレイヤーに通信とデバイスプロファイルを定義したものです。
組み込みシステムのネットワーク技術として、仕様が一般に公開されている上位ソフトウエアであり、その他に約20のデバイスの標準仕様が策定されており、モータやリモートI/Oなどの仕様書が作成されています。CiA402ドライブプロファイルもこのうちの一つとなります。
CAN (Controller Area Network)
最大1Mbpsの速度で、シリアル通信用の物理/データ・リンク層を提供するネットワークです.
簡潔にまとめると、以下のようになります。
・CAN ・・・ 通信のルールを定めたもの
・CANopen ・・・ CANで扱われるデータの仕様を定めたもの
CoE (CANopen over EtherCAT)
EtherCATでスレーブにアクセスするときのCANopenによる通信方式です。CoEプロトコルを使ったデータはSDO(サービスデータオブジェクト)またはPDO(プロセスデータオブジェクト)による通信を行い、OD(オブジェクトディクショナリー)を参照します。
オブジェクトディクショナリー (OD)
最大65535のインデックスと、一つ当たり最大256のサブインデックスから成るデータセットで、デバイスの動作などを全てデバイス内部に定義した辞書のようなものです。
スレーブはこのODを持ち、マスターはこの情報を基にスレーブを制御します。下図はODの構造図です。
各オブジェクトはアクセスのために、16bitのインデックスと8bitのサブインデックスが定義されています。
モーション制御において重要なのは、赤い文字の部分です。
0x6000 – 0x9FFFのプロファイル領域に、実際の動作コマンドや情報などが定義されています。このオブジェクトを確認して、0x1000 – 0x1FFF:の通信領域にPDOマッピングを行います。
多くの場合、0x6000 – 0x6FFF にPDOの入力側(TxPDO)にマッピングできるオブジェクトの定義がされ、0x7000 – 0x7FFF にPDOの出力側(RxPDO)にマッピングできるオブジェクトの定義がされていますが、メーカーによって異なるため注意が必要です。
SDO (Service Data Object)
メールボックス通信で行われる同期通信です。EtherCAT以外の様々なプロトコルやそれらプロファイルデータに対して、統一的にアクセスできるようになります。EtherCATではCANopen、Ethernet、File Access、Sercos、Vendor specific の各プロトコルをEtherCAT上で使用する事が出来ます。
SDOは、スレーブデバイスのODのIndexとsub Indexを指定し,パラメータ転送など指定されたタイミングでのデータ読み出し/書き込みを行います。
同期通信であり、PDO通信の合間に行うため通信時間の保証はありません。
モーション制御での使用例として、PDOマッピングやウォッチドック設定などで使用することがあります。
PDO (Process Data Object)
プロセスデータ通信によって行われる周期通信です。接続するスレーブのPDOマッピングしたデータによって決まる固定長のデータとフォーマットで、通信周期ごとに全スレーブに対する通信が行われます。
モーション制御は、EtherCATスレーブの入出力やサーボモータの位置制御など、一定の制御周期で入出力データ更新を行う指令が多いため、主にこのPDO通信を使用します。
通信周期は、250μsec ~ 4msec程度が一般的です。通信周期を速くする場合、マスターとスレーブの性能が重要になります。
PDOマッピング
PDOデータの中身を割り付けることをPDOマッピングといいます.
SDO通信で割り付けたり、専用のツールを使用する必要があるなどマスターによってこのPDOマッピングの方法は異なります。
モーション制御におけるPDOマッピングでは、CiA402ドライブプロファイルによって定義された動作モードによって割り付けるPDOが異なりますので注意してください。
【割り付け例】
cspモードでモーション制御を行いたいときのマッピング例
ppモードでモーション制御を行いたいときのマッピング例
FMMU (Fieldbus Memory Management Unit)
各スレーブにあるフィールドバスメモリ管理機能です.EtherCATコマンドの論理アドレス空間とESCの物理メモリ間の割り当てをします。
論理アドレスコマンド(LRD、LWR、LRW)を使用したプロセスデータ交換を使用するときに設定が必要です。
SM (Sync Manager)
SMはPDO通信、SDO通信によって通信するデータの受信・送信ポート管理をする機能です。物理メモリ割り当てやサイズ指定、データ設定、バッファモード設定等を行います。
・メールボックス通信:メールボックスのメッセージが上書きされないように保護します(1-バッファモード)
・プロセスデータ通信:マスター側からのライトが可能なメモリと、スレーブ側からのリードが可能な最新のライト済みメモリを保証します(3-バッファモード)。その逆方向も同様です。
CiA402ドライブプロファイル
CiA402ドライブプロファイルは、IEC 61800-7-201およびIEC 61800-7-301に定められている、ドライブおよびモーションコントロールのデバイスプロファイルです。主にドライバの動作内容について定義されています。
・csp (サイクリック同期位置モード)
上位側(マスタやアプリケーション、モーションライブラリなど)にて指令位置を生成し、PDO通信周期によってドライバに毎周期到達すべき位置が送信されます.
・pp (プロファイル位置モード)
目標位置、速度、加減速度、ジャーク等を指定してスレーブに送信することで、それらを基にスレーブが位置指令を生成し動作するモードです。
・hm (原点復帰モード)
CiA402ドライブプロファイルで定義された原点復帰方法によって、スレーブが位置指令を生成し原点復帰を行うモードです。
どの方法が対応しているかはベンダーによって異なる場合があるので、各ベンダーのマニュアル等で確認が必要です。
cspモードは、リアルタイム性能が担保されていないOS上だと滑らかな動作の実現は難しいです。その場合には、リアルタイムOS上で動かすか、ppモードで位置決めを行うといいでしょう。
また、複数軸を同期させるためにはリアルタイムOS上でcspモードにして全軸を動作させるのようにするといいですが、CPUのリソースを多くとってしまう可能性があります.リソースがあまり使えない場合は、同期させる軸をハッキリさせて他の軸はppモードで制御するなど工夫が必要です。
Proccess Image
送受信しているデータのことです。
スレーブへの出力信号パターンをマスターによってEtherCATフレームに加工したデータです。
EtherCAT同期機能
EtherCATでは、マスタ/スレーブ間あるいはスレーブ同士で発生してしまう伝搬遅延を解消するための様々な同期機能が用意されています。
Free run
通信の同期は行わずに、各スレーブがそれぞれの内部周期で処理します。そのためスレーブ間の同期はもちろん、EtherCAT通信フレームとの同期も取ることができないため、モーション制御には向きませんが、スレーブを初めて接続したときなどの動作確認で使用できます。
Synchronous with SM
SM同期とも呼ばれます。プロセスデータがSM2にライト(またはSM3からリード)されたときに同期します。
すなわち、各スレーブがEtherCATパケットフレームを受信したタイミングで処理開始するため、EtherCATパケットフレームとの同期ができます。
しかし、スレーブ間の伝搬遅延は同期できないため複数軸の同期処理には向きません。
Distributed Clock (DC)
スレーブやマスターの通信フレーム伝搬遅延時間を測定し、基準となるクロックを決めてそのタイミングで出力を有効化することで、各スレーブ間で発生する遅延時間を補正することができます。
これによりスレーブ間の正確な処理タイミングの同期ができるため、複数軸の正確な同期制御が可能となります。
スレーブ
ESC (EtherCAT Slave Controller)
スレーブの通信制御をする部分であり、EtherCATスレーブには必ずESCが使用されています。
EtherCAT通信パケットから自スレーブ宛のデータを取り込み、またマスタ宛のデータをパケットに書き込む役割をします。また、そのパケットを次スレーブへ引き渡す機能も持ちます。スレーブ内の処理を行っているCPUとはDPRAM(Dual Port RAM)によってデータの受け渡しを行います。
SII (Slave Information Interface)
EtherCATスレーブ内にあるEEPROMのことで、ESCのハードウェア設定情報が保存されています。
スレーブは起動時にこのデータをレジスタにロードすることで、スレーブ内のESCがDPRAMをアクセスすることが可能となります。
EtherCATステートマシン(ESM)
スレーブが現在どの機能が使用可能であるかという状態を示すステートマシンです。
・Init:通信の初期化状態です。マスターはDL-Informationレジスタにアクセス可能です。
・Pre-Operational:SDO通信は可能ですがPDO通信はできません。
・Safe-Operational:SDO通信とPDO通信(入力のみ)が可能です。ここではPDO通信の出力は評価されないため、安全状態(safe state)を保持できます。
・Operational:PDO通信の入力と出力の両方が有効となります。
モーション制御においては、
1. Initで初期化する
2. Pre-Operational状態時にPDOマッピングを行う
3. Safe-Operational状態を経由して
4. Operational状態になったらモーション制御を開始する
という手続きを行うのが基本です。