一年目エンジニア

n年目です。

EtherCAT勉強2

EtherCATなどのEthernetベースのネットワーク規格を理解するための勉強記録。

今回明らかにしたい疑問点

EtherCATがEthernetベースということは分かった。
で、Ethernetがどういうことを言っているのかもなんとなくわかった。
今回は、EthernetとEtherCAT、何が同じで何が違うのかを勉強する。

EtherCAT概要

工場で使われるEthernetベースの通信規格。
簡単に説明するのであれば、LANケーブルで工場の機器同士を接続して制御する方法とでもいえばよさそう。

通信の違い

Ethernetで制御をおこなおうとした場合、マスタ1台に対して複数のノードが接続される。
マスターやノードは、要求があったときにのみ、その相手に対してのみデータフレームを移動する。

対してEtherCATは、マスタにつながっているノードに、ノードへの指示や情報が入ったデータフレームを流す。
つながるノードいっぺんにデータフレームを流すイメージ
ノードはフレームを受け取ったら、マスタからの情報をリードしながら、自分の情報をライトする(オンザフライ方式)。


こんなイメージ?

  • Ethernet…実質1対1
  • EtherCAT…1対n

インタフェースコネクタ

EtherCAT機器の通信のポート(LANコネクタ:RJ45)は2つある。
上から流れてくるのを受け取る用と、下に流す用の2つ。

ノード間の遅延

通信でよく問題になるのが遅延。
機器間で動作を同じタイミングで行わないと困る場合があるためよく話題に上がる。

RS485などで1つの相手ごとにコマンド送っていたら、全体の処理がとても遅くなる。
これを回避するために、いろいろな規格が生まれている。

EtherCATではノードにいっぺんにデータを流す。
ノードはがデータフレームの受信時にタイムスタンプを追加する。
その情報がマスタに戻されると、マスタは遅延時間が計算できるので補正ができ、その情報をノードにまた伝えられる。
Distributed Clock System(DC機能)というらしい。
これで同期ができるので、サーボ制御に使える。

サーボ制御...よくわかっていないが、放っておく。

同期:よくわからない→わかった

ハード的な考えだと、同期用のパルスなど出力して同期を行う。
複数のDAC/ADCに同じクロックを分岐させるイメージ。

そういう考えしかないので、データフレームを基にして同期を行う方法がよくわからない。


「時刻の同期」と「動作の同期」がごちゃ混ぜになっている気がする。



つぎを読むと、「時刻同期」が正しいみたい。

クロックのキャリブレーションは完全にハードウェアベースです。最初のDCスレーブデバイスからの時刻情報が周期的にシステム内のその他すべてのデバイスに配信され、スレーブデバイスのクロックは正確に参照時計の時刻に補正できます。その結果、システム内の時計のジッタは1μsより十分小さな値を維持します。 
https://www.ethercat.org/jp/technology.html#1.5

次に勉強するかも

  1. 機能とその種類
  2. ハードウェア要件

同期にもいろいろあるようだし、たぶん専用のコントローラもあるはず。
そこら辺を。