この記事は EtherCATについて語る Advent Calendar 2019 の20日目です。
昨日は@lipoyangさんの ロボットの体内ネットワークとしてのEtherCAT でした。
#はじめに
さて、いよいよクリスマスまで、後5日!
今回のネタは、宅内EthertCATのススメです。
#宅内でEtherCATを始める方法
宅内でEtherCAT初めたい方が居るかわかりませんが、まとめておきます。
マスター
EtherCATの制御処理を行う親の様な物です。主にPCが多いですが、RaspberryPiやJetson Nanoで動かすことが出来ます。
また、本場のEtherCATではリアルタイムが重要となり、リアルタイムカーネルパッチなどのテクニックを追加することが多いです。宅内では・・・無くても良い気がします。
スレーブ
EtherCATで制御される側の子の様な物です。スレーブは何台でも(65536台まで)接続可能です。展示会で見た所、機器にサーボモータを25機必要な際は、EtherCATスレーブを25機接続していました。この様に、1機能1スレーブという細かい機能に分解が可能です。
逆に言えば、1スレーブは1機能に集中して専門的処理をするのが良いです。
その他
EtherCATは有線LANの規格に成りますので、有線のLANポート(希望は1Gbpsですが100MBpsの規格なので100Mbpsでも問題ないです)が必要に成ります。ノートPCで試す際はUSB−LANポートでも試せます。ただリアルタイムは減りますので目をつぶりましょう。
LANケーブルが何本か必要になります。今どき無線LANの時代に有線LANケーブルを買って親に怒られる方は、隠れながら遊びましょう。
また、電源に関しても必要に成る場合があります。5Vや12V、24Vの物が殆どです。産業用は200VACや三相交流などが家庭には無い電源もあるので、宅内で試す際はDC24V以内の物がオススメです。
#マスターを用意する
まず、マスターと呼ばれる機能を実現するPCを用意します。
-
Windows PC
WindowsではSOMEがサポートしてます。
https://github.com/OpenEtherCATsociety/SOEM -
Linux PC
SOEMがサポートしてます。
自分のPyEtherCATもサポートしてます。
https://github.com/pyEtherCAT -
MacOS
SOEMがサポートし始めたらしい。
オススメとしては、RaspberryPiやJetsonNanoがオススメです。
EtherCATの仕組みは少し特殊になるため、OSの深層までいじってしまう場合があります。
そのため、手軽に安全にOSを再度インストールが出来るRaspberryPiが実験する上でおすすめです。
たが、PCと比べるとスペックが下がりますので、開発用LinuxPCを用意するのが一番面白いです。
早速自分の宣伝をしつつ、同じチップを使ってるEasyCATもオススメです。
これらに関しては、同じチップなので凡そ把握が出来ますが、以下のものに関してはどの様に開発をすればよいかイマイチ分からず、人柱を求めます。
1台実機を持ってますが、使い方が分からず来年の課題としたい所です。
#あ〜あと何だっけ?
宅内EtherCAT、あとなんだっけなぁ。
EtherCATについて語る Advent Calendar 2019の過去日にヒントが隠されているかも知れません。
このネタは今後もススメていこうと思います。宅内EthertCAT、面白いよ。
#おわりに
え?おわり?
ハイ、すみません。宅内EtherCATという言葉が使いたかっただけです。
別に宅内ならEtherCATじゃなくて良くね?いやいやいや・・・
皆さん、宅内サーバーラックの方々をご存知ですか?あの方々も仕事で使用する機材で構築する事で現場でのノウハウを高めているのです!!
我々も真似をして、技術的好奇心と現場で使用するかもという観点から、**自宅でもEtherCATを触っておくとノウハウが貯まる!**という点があります。
もしもEtherCATをルーターに接続してしまったら・・・
早速、宅内EtherCATの成果を話しましょう。
宅内EtherCATですから、一般の御家庭通り、ルーターとスイッチングハブがありますよね。
そこにEtherCATを接続してしまったらどうなるでしょう!
答えは直ちに問題はないが、ゆくゆく問題になるです。
何が問題ないのか。EtherCATはブロードキャストパケットになります。ブロードキャストパケットは言わば全方位発射みたいなものです。
本来はEtherCATは 1-to-1の接続となるため、ブロードキャストでも問題はありませんが、ルーターやスイッチングハブにブロードキャストが流れるとご丁寧に全員にパケットを流してくれます。
そのため、EtherCATパケットは全てのPCへとパケットが流れていきます。
それって害があるんじゃない?難しい話ですが、見かけ上は問題なく動きます。
というのも、PC側は受け取ったパケットを判別して、不要なものは破棄します。なので不明なブロードキャストパケットはPC側で破棄されます。
破棄するなら問題なくない?確かにそうです。では、何が問題あるのでしょうか。
それはネットワークの帯域です。
EtherCATパケットは物凄く高速にパケットを流し続けます。そのため、ルーターやスイッチングハブにアクセスが集中し、他のパケットが入り込む余地が無くなったり、順番待ちを行ったり、負荷が固まればフリーズしてしまうこともあります。
ただ、今のEtherCATでは100Mbpsが最大帯域で、実際は数十Mbpsしか出ません。そのため、1Gbpsに耐えられるスイッチングハブやルーターですと問題なく動いてしまいます。
まぁ、おわかり頂ける等に、余りやらないほうが良いと言ったところでしょうか。
この様な現場でやったら間違いなく怒られる内容を、先に自宅で試すって言うのも、気軽に出来てとても良かったです。
と、そんな所で、今日の記事を終えたいと思います。
宅内EtherCAT、いい響きですね。今後も使っていきたいと思いました。
ではでは
北神(@nonnoise)