GR-MANGOでEtherCAT
2020.8.29 GR-MANGO作品発表会
西村備山 (@lipoyang)
自己紹介
奈良県在住
組込み系技術者
西村備山 (@lipoyang)
EtherCATとは?
ベッコフ社Webサイトより
いいさキャット?
EtherCATとは?
• Ethernetベースのフィールドバス
(FA機器をLANケーブルで接続)
• リアルタイム性が非常に高い
(低レイテンシ、低ジッタ)
GR-SAKURAで作ってみた
(2019年 ルネサスナイト15)
構成図
EtherCAT
マスター
EtherCAT
スレーブ1
LANケーブル LANケーブル
IN OUT
EtherCAT
スレーブ2
IN OUT
PWM信号×4
4軸ロボットアーム
アナログ信号×4
4軸コントローラ
マスターとスレーブ
EtherCATマスター EtherCATスレーブ
GR-SAKURAの
LANポートを使用
スレーブには
専用H/Wが必要
マスターにLANポートが
もう1個あれば
EtherCAT
マスター
EtherCATIPv4
EtherCAT-IPゲートウェイができる!
こういうのを作りたい
PWM信号
4軸ロボットアーム
EtherCAT
マスター
EtherCAT
スレーブ1
EtherCAT
IN OUT
EtherCAT
スレーブ2
IN OUT
アナログ信号
4軸コントローラ
IPv4
ゲームパッド
データ表示
【朗報】
LANポート2個搭載
GR-MANGO 登場!
【悲報】
「LANポート2個はニーズが少ない」
「LANポート2個をサポートする自信が無い」
「Mbedで使えるのはLANポート1個だけ」
「製品版ではLANポート1個になるかも」
【悲報】
「Mbed の Ethernetクラスは未実装」
• Ethernetクラス
… 生のEthernetフレームをハンドルする
EtherCATマスターに使うならこちら
• EthernetInterfaceクラス
… IPパケットをハンドルする
たいていはこちらを使う
低レベルドライバを叩くしかない
関数 説明
R_ETHER_Initial イーサネットドライバの初期化
R_ETHER_Open_ZC2 イーサネットの動作を開始
R_ETHER_Close_ZC2 イーサネットの送受信を停止
R_ETHER_Control コントロールコードに応じて各種処理
R_ETHER_CheckLink_ZC イーサネットのリンク状態をチェック
R_ETHER_LinkProcess リンク信号変化時などの処理
R_ETHER_Write_ZC2_GetBuf 送信データを格納するバッファを取得
R_ETHER_Write_ZC2_SetBuf 送信バッファのデータを送信開始
R_ETHER_CheckWrite データ送信が完了したことを確認
R_ETHER_Read_ZC2 受信データを格納したバッファを返す
R_ETHER_Read_ZC2_BufRelease 受信データを格納したバッファを開放
EtherCATマスター SOEM
• Simple Open EtherCAT Master
• オープンソースのEtherCATマスター
• Windows/Mac/Linuxに対応
• いくつかのRTOSにも対応
OpenEtherCATsociety/SOEM
SOEM for Arduino / Mbed
lipoyang/SOEM4Arduino
lipoyang/SOEM4Mbed
対応ボード (2020/08/29 現在)
Arduino系
Adruino Due, ESP32-DevKitC
M5 Stack, ATOM Matrix
chipKIT Max32
GR-SAKURA, GR-ROSE
Mbed系
mbed LPC1768
NUCLEO-F767ZI, F446RE
GR-PEACH, GR-MANGO
ロボットアーム制御のデモ
GR-MANGO(β版)でEtherCAT-IPゲートウェイ
youtu.be/0t5lHCy8NLg
ロボットアーム制御のデモ
lipoyang/Mango_EtherCAT_IP
GR-MANGO(β版)でEtherCAT-IPゲートウェイ
CH0:UDP/IPに使用
CH1:EtherCATに使用
ソースコードと解説を公開中
でも製品版では…
LANポート1個なんですよね…
(´・ω・`) ショボーン
またね~
Twitter: @lipoyang
GitHub: lipoyang
SlideShare: lipoyang
http://lipoyang.net

GR-MANGOでEtherCAT