GR-SAKURAでEtherCAT

この記事は EtherCATについて語る Advent Calendar 2019 の16日目です。

昨日は@nonNoiseさんの EtherCATでステッピングモータ を動かしてみる でした。

さて、12月14日に開催されたルネサスナイト15にて「GR-SAKURAでEtherCAT」と題してLTしてきました。今日はその内容をご紹介いたします。(アドベントカレンダーをご覧の皆さんには今さらな内容を含みます。)

スライド資料

EtherCATとは?

さて、みなさんはEtherCATというものをご存知でしょうか?

f:id:licheng:20191215193026p:plain

EtherCATというのはEthernetベースのフィールドバスの規格です。要は、工場のFA機器をLANケーブルで接続して制御しようというものでして、通常のLANに比べてリアルタイム性が非常に高いという特長があります。

通常のLANとどう違うかと言いますと、まず、そもそもIPアドレスを使いません。ネットワークはマスターとスレーブで構成されまして、それらをデイジーチェーン接続します。そして全てのノードが一つのEthernetフレームを共有して同時に読み書きします。これによって高いリアルタイム性を実現しています。

だいじなポイントとして、マスターのほうは汎用のEthernetコントローラで実現できるんですが、スレーブのほうにはEtherCAT専用のハードウェアが必要となります。

GR-SAKURAとは?

f:id:licheng:20191215194513j:plain

GR-SAKURAとは、ルネサスRX63Nマイコンを搭載したArduino互換マイコンボードです。Arduino Unoサイズのボードに強力なRXマイコンEthernetコネクタ、USBホストコネクタ、micro SDカードスロットを搭載した「全部入り」なボードです。

GR-SAKURAでEtherCAT

f:id:licheng:20191212210146p:plain

で、今回は、GR-SAKURAでEtherCATのシステムを作ってみました。

マスター1台にスレーブ2台が接続されてます。片方のスレーブには4軸のロボットアームが接続されてまして、もう片方のスレーブにはロボットアームを操作するためのコントローラが接続されてます。

マスターはGR-SAKURAだけでできてます。ソフトウェアはSOEMというのを使ってます。SOEMというのはオープンソースのEtherCATマスターのスタックです。Windows/Mac/Linuxなどに対応しています。このSOEMを、Arduinoに移植しちゃいました。今のところ、Arduino DueとGR-SAKURAに対応してます。

ただし、GR-SAKURAでは不具合がありレスポンスが悪いです。まあ、これはEthernetのライブラリをよくわからずむりやりハックして使ってるためでしょう。 (この件はルネサスさんから詳細を聞きたいと言われたので状況をまとめて質問メールを送ることにします。) (2020/01/23 バグ修正)

いっぽう、スレーブのほうは、GR-SAKURAにEasyCAT Shieldというのをのせてます。このEasyCAT Shiledというのは、EtherCATスレーブの専用チップを搭載したArduono用シールド基板です。

デモ

コントローラのツマミを回すと、ロボットアームが動きます。まあ、こんなもんArduino Uno 1個でできるやろ、GR-SAKURA 3個も使うなやって話ですが、あくまでEtherCATの実験のためのシステムと考えてください (^^;)


GR-SAKURAでEtherCAT

ちなみに

ルネサスRX72MマイコンにはEtherCATスレーブのハードウェアが搭載されてるそうです。すでに開発ボードが市販されてますね。気になります。
www.chip1stop.com


発表は以上です。最後までお読みいただきありがとうございました。