産業用イーサネット(10)EtherCAT のデータ通信

EtherCAT のデータ通信

EtherCAT のマスタ/スレーブ間通信には2つの方式がある。1つは、スレーブに接続された工作機械やロボットなどを動かすために周期的に制御データを配信するPDOProcess Data Object)と主にスレーブの初期設定に使用する不定期にデータを送受信するSDO (Service Data Object)だ。

PDO は、マスタがデータを各スレーブに配信する周期通信だ。マスタのメモリ空間を各スレーブに割り当て、マスタがメモリを書き換えるとその指令が周期通信でスレーブに伝わる。逆にスレーブ内のメモリを書き換えるとマスタに伝わる。面倒な通信プロトコルを経由せずにコマンドやデータを共有できる仕組みだ。

SDOは周期性のない通信だ。システム立上げ時に、接続されたスレーブを見つけ出し、初期設定を行うのが主な役目だが、EtherCAT 以外の様々なプロトコルデータを EtherCAT 上を通過させる役目もある。PDO 通信の隙間で通信するため、通信時間の保証などはない。

PDO (Process Data Object)

工作機械やロボットのサーボモータの位置制御などは、一定の制御サイクルで入出力データを更新する必要がある。このような周期性のあるデータ通信に PDO 通信を使用する。しかも更新サイクルはかなり早く、 250マイクロ秒から 4ミリ秒当たりが一般的だ(図1 参照) 。RS485 のポーリングサイクルや100Mbpsの標準イーサネットでは、実現は困難だ。

図1 PDO通信サイクルのイメージ
図1 PDO通信サイクルのイメージ

PDO の動作イメージは、マスタと各スレーブのメモリ空間に工作機械やロボットを制御するコマンドやステイタス領域を定義し、マスタとスレーブは自分自身のメモリ空間に書き込む。あとは、On The Fly で動作する周期通信(PDO)がマスタとスレーブのメモリ内容の同期をとる。

このメモリ空間を「論理アドレス(Logical Address)空間」と呼ぶ。論理アドレス空間のメモリを読み書きするだけで、マスタとスレーブ間のメモリ内容が同期(一致)する仕組みだ。実際は各スレーブに実装された FMMU (Fieldbus Memory Management Unit)がスレーブ内のメモリ管理を行い、マスタに実装された SM (Sync Manager) がマスタの論理アドレス空間と送受信するフレームとの調整を行う。

アプリケーションから見た動作イメージは、相手が遠隔地にあることや EtherCAT でつながっていることを意識しない。自分自身のメモリーにアクセスしているだけだ(図2 参照)。EtherCAT 側からみると、マスタ側の書込みデータをスレーブに運び、スレーブ側の書込みデータをマスタに運ぶ。この動作を定期的に行っている(図3 参照)。

PDO 通信を始めるためには、論理アドレスの割り付けやスレーブの初期設定が必要だ。一連の初期設定は SDO (Service Data Object) の役目だ。

図2 PDO(プロセスデータ通信)イメージ1
図2 PDO(プロセスデータ通信)イメージ1
図3 PDO(プロセスデータ通信)イメージ2
図3 PDO(プロセスデータ通信)イメージ2

SDO (Service Data Object)

SDO はスレーブの初期設定や EtherCAT 以外の様々なプロトコルやデータの転送に使用する。ここでは、スレーブの初期設定に絞り動作概要を説明する。
EtherCAT で使用するアドレスモードは、4 の様にロジカルアドレスとデバイスアドレスがある。デバイスアドレスには更に3つのアドレスモードがある。

図4 EtherCAT アドレスモード
図4 EtherCAT アドレスモード
SDO (Service Data Object)

論理アドレス(Logical Address)は、PDO 通信で使用する。3つのデバイスアドレスは、PDO 通信の論理アドレスを使用する前準備で主に使用する。

Auto Increment Address

初期状態では、マスタはどの様なスレーブが何台、どの順序で接続されているかわからない。そこで、システム立上げ時にフレームが循環し、初期値 0x0000 から順次1減算したアドレスを「仮アドレス」として設定する。マスタに一番近いスレーブは、0xFFFF になり、次段のスレーブは更に1減算し 0xFFFE になる。循環するフレームには番号が上書きされるため、最後の番号が残り、マスタはノードの数が分かる。

Configured Address

Auto Increment Address でアドレスを仮決めしたスレーブに与えられる「構成済アドレス」だ。アドレス空間は16ビットで、0x0000~0xFFFF の範囲になる。以降はこのアドレスで、マスタとスレーブは通信を行う。0xFFFF は使用できないため、スレーブの総数は65,535 台になる。

初期状態から構成済アドレス(Configured Address)割り当てまでのイメージは、図5を参照いただきたい。

図5 Configured Address の割り当て
図5 Configured Address の割り当て

オフセット

スレーブ内には SDO 用のメモリがあり、このメモリ番地を「オフセット」と呼ぶ。オフセットは0番地から始まり基本的な部分は、全てのスレーブで共通だ。ベンダー(製造会社)名やスレーブの種別等が割り当てられている。ベンダーごとにユニークなオフセット番号が割り当てられることがあるが、これは各ベンダーが発行する ENI(EtherCAT Network Information)を、事前にマスタに登録する必要がある。

図6 はオフセットのイメージだ。Auto Increment Address や Configured Address をベースに、オフセット0ならばスレーブ内メモリーの0番地を指す。

図17 オフセット
図6 オフセット

工場・物流現場のネットワークの現状

この記事を書いた人

岩崎 有平

早稲田大学 理工学部 電子通信学科にて通信工学を専攻。
安立電気(現 アンリツ)に入社後、コンピュータ周辺機器の開発を経てネットワーク機器の開発やプロモーションに従事する。
おもにEthernetを利用したリアルタイム監視映像配信サービスの実現や、重要データの優先配信、映像ストリームの安定配信に向けた機器の開発行い、Video On Demandや金融機関のネットワークシステム安定化に注力した。
現在は、Ethernetにおけるリアルタイム機能の強化・開発と普及に向けて、Ethernet TSNの普及活動を行っている。