この記事は EtherCATについて語る Advent Calendar 2019 の7日目です。
昨日は@nonnoiseさんの EtherCAT関連の名称まとめ でした。
#はじめに
EtherCATを開発する上で、知っておくべき内容や開発手法について説明していきます。
シリーズものなので、以下にリンクをまとめる(予定)
この図は、EtherCATマスターブック 第1巻にて書き出した図で、最初に大きな分岐がある。
EtherCATには、二つの役割があり、
一括して集中管理を行う => マスター
自分の機能や処理だけに集中する => スレーブ
といった感じで、マスターとスレーブの2役がEtherCATを構成させる。
それぞれの開発方法やデバック方法が違うため、一般的にはどちらか一方に集中して開発を行うが、
著者は研究者でマニアな事もあり、両方開発する事でEtherCATの理解を深めている。
#マスター開発
マスターとは、スレーブを一括して管理を行ったり、それぞれのスレーブに情報を伝達する親となる部分である。
マスターを開発する際は、最低限1台はスレーブが必要となる。
マスター側の開発は、主にデスクトップPCやノートPCなど、コンピュータで以下のような環境で開発する事が出来る。
-
Windows 10 PC
- TwinCAT(BECKHOFF) 有料ソフト
- その他ベンダーの有料ソフト
- Simple Open EtherCAT Master SOEM
-
Ubuntu PC (Linux)
-
Raspberry Pi (Rasbian)
自分はPyEtherCATの開発者で最も簡単な部分しか実装されていないが、EtherCATを理解するには最も適したシンプルなライブラリだと思っている。
(要するに高度な機能が実装できてなく、仕様通りの仕組みを丁寧に実装したまで)
また、大手ベンダーが手を出していないLinuxでの実装がよかったのかRaspberryPiでも動作するため、軽く試したい方は気にして見れいただければと思います。
PyEtherCATについての使い方は次回にご紹介いたします。
#スレーブ開発
さて、スレーブ側ですが、スレーブとは、制御したいモータや機械もしくは制御に使うスイッチやセンサー側を開発するという事です。
スレーブを開発するには以下の物を準備する必要があります。
-
マスター機器
- 上のマスターを構成するもの
- マスター動作するシーケンサ
- RaspberryPi + PyEtherCAT
-
スレーブIC
-
それらを使用したモジュール基板
- EtherCATスレーブ評価基板LAN9252使用
- EasyCAT
- その他、各ベンダーが出すモジュール(使い方は各社に聞いて見て)
あぁ大変。
オススメは以下の機構で簡単に実験ができます。
##ArtifactNoiseモデル
- Raspberry Pi 3B+ (4Bでも)
- PyEtherCAT
- EtherCATスレーブ評価基板LAN9252使用
- LED16モジュール
これらを組み合わせると、簡単なEtherCATについての理解する事ができる。
とりあえず、概要はこんな所で。
仕事でEtherCATを学ぶ方は、マスター側を攻めるのか、スレーブ側を攻めるのかを理解し、
ロボットや研究開発で使用する方は、両方を学ぶ必要があるんだなと覚悟をし、
マニアなのでどっちも触る!って方は、ぜひ次回も読んでいただければと思います!!
それでは、次回また!
北神 @nonNoise