EtherCATは他の規格よりも速いのか。

# ■　はじめに

みなさん、速度について考えたことがありますか？
速度と言えば、電車や車の速度もあるでしょう。
ここでは、通信速度について話していきたいと思います。

# ■　通信速度は速い方がいい？

結論から言うと、速い方がいいです。

ネットゲームや動画をみている方はもちろん、通信速度＝人権であると認識しているかと思います。
人間相手ではない、機械に対しても、速度は重要なポイントの一つです。

例えるなら、停止を行いたい時に、「１秒後に停止します。」となった際に、
１秒後には壁にぶつかってるよ！とか、そんな遅かったら緊急停止の意味がないぞ！とぼやく事が起きます。
速い方がいいですね。

逆に、早すぎると「0.0001秒後に停止します。」となった時に、人間が追いつかず「ちょwまwはやすぎw」となることも、まぁ無くはないです。
ただ、この場合は**機械が人間に合わせるために待ち処理をします**

こういった処理が増え、機械は・・・**待ち処理をするのは苦労しないから、兎に角速いので頼む！**となるんです。

とは言え、速度を上げるにはエネルギーが必要になり、消費電力が上がったり到達距離が減ったりと悩ましい事象があるため、一概に速度が速い方が良いとは言えませんが、速い方が嬉しいです。

# ■　著者の話

自分はEtherCATの開発と販売を行っています。
そのEtherCATの売りの一つに「速い通信」である事が挙げられます。
自分も最初、「速い通信規格」を探して行き着いた規格であったりします。
EtherCATの前は、無線通信を触っていました。ZigBeeから入り、Wi-Fi,BLEと触っていますが・・・兎に角遅い。
もっとデータをパスできるんじゃないか？　もっと状態を細かく把握できるんじゃないか？　君の性能はそこまでなのか？？
そんな事を考える事があり、**無線化する前に、有線で高速にデータを確認する必要があるのでは？？** といった考えが生まれました。
実際、EtherCATは速かった。速くて産業用規格なので確実に通信が出来てハッピーでした。
が、さらに速い通信規格を求めてしまう自分もいる事を否定できません。もっと速いのを。
と、調べ始めたら地獄でした。**EtherCATが速い理由が、他が遅すぎるという理由**でした。

そんな悲しみをみなさんと共有したく、通信規格と速度について表にまとめました。

# ■　有線通信　

★ 圧倒的に速いPC向け通信規格

|規格名  |最高速度(理論値) |
|-------|--------|
|Ethernet | 10 Mbps /100 Mbps/1 Gbps/10 Gbps |
|USB 1.1  | 12 Mbps |
|USB 2.0 | 480 Mbps |
|USB 3.0 | 5.0 Gbps |
|PCIEx 1.1 | 2.5 Gbps |
|PCIEx 2.0  | 5.0 Gbps |
|PCIEx 3.0 | 8.0 Gbps |
|Thunderbolt 1 | 10 Gbps |
|Thunderbolt 2 | 20 Gbps |
|Thunderbolt 3 | 30 Gbps |
|Thunderbolt 4 | 40 Gbps |
|HDMI 1.0 | 4.9 Gbps |
|HDMI 2.0 | 18 Gbps |
|HDMI 2.1 | 48 Gbps |
|SATA 1.0 | 1.5 Gbps |
|SATA 2.0 | 3.0 Gbps |
|SATA 3.0  | 6.0 Gbps |
|MIPI D-PHY  | 1.0 Gbps |

   
★ 産業用規格はこのラインが限界？

|規格名  |最高速度(理論値) |
|-------|--------|
|CAN | 1.0 Mbps |
|LIN | 20 Kbps |
|RS-232 | 160 Kbps |
|RS-422 | 10 Mbps |
|RS-485 | 10 Mbps |
|CC-Link(RS485) | 10 Mbps |
|IO-Link(COM3) | 230.4 Kbps |

# ■　無線通信

★ Wi-Fiだと、やっぱり５GHzは速い！

|規格名  |最高速度(理論値) |
|-------|--------|
|Wi-Fi(2.5Ghz IEEE802.11b) | 11　Mbps |
|Wi-Fi(2.5Ghz IEEE802.11g) | 54　Mbps |
|Wi-Fi(2.5/5Ghz IEEE802.11n)  | 600　Mbps |
|Wi-Fi(5Ghz IEEE802.11ac)   | 6.9　Gbps |


★ その他2.4GHz帯域は低消費電力化して速度が犠牲に。

|規格名  |最高速度(理論値) |
|-------|--------|
|Bluetooth 2.0 | 3.0 Mbps |
|Bluetooth 4.0  | 1.0 Mbps |
|Bluetooth 5.0 | 2.0 Mbps |
|TWELITE(2.4GHz)| 1.0 Mbps |
|ZigBee(2.4GHz)| 250 Kbps |


★ 流行りのLPWAは桁違いに**遅い!**

|規格名  |最高速度(理論値) |
|-------|--------|
|SIGFOX (920MHz) | 100 bps |
|LoRa(920MHz)  | 250 Kbps |
|Wi-SUN(920MHz) | 800 Kbps |


# ■　広域通信網 
   
|規格名  |最高速度(理論値) |
|-------|--------|
|3Gハイスピード | 7.2 Mbps |
|LTE 4G  | 150 Mbps |
|LTE-M | 1.0 Mbps |
|Cat.NB1  | 200 Kbps |
|NB-IoT  | 200 Kbps |


# ■　人間相手には速くなる傾向が、機械相手には遅くなる傾向が

**最新規格だからって速くなる訳じゃないんだよ！！**

実際、情報をまとめてみて驚きました。自分も新しい規格＝速いと思い込んで居た節があります。
これは、考えを改めないと、いざ通信してみたら思った以上の性能が出せないといった悲しい事が起きてしまう場合があります。

どうも傾向を見ていくと、新しい古いは関係なく
 **人間相手には速いが、機械相手には遅い**といった流れが見えてくるかと思います。
特にPC向けは桁違いに速い。Gbpsの世界を優雅に過ごしている。本当に羨ましい。
逆に、低消費電力を行った結果、数kbpsしか出せない最新規格もあります。

人間相手は欲深く、常に速度を求める主体である為、メーカーは売る為には速くしなければなりません。
逆に、機械相手なら無口ですので、速度を抑えて、余裕が出来た部分を低消費電力と謳えば良いのです。

なんということか。機械には人権は無いのか。機械が速度を求めてはいけないのか。

この辺りは、エンジニアの皆様が機械の気持ちを汲み取って上げるしかありません。

自分は、**機械はより高速な通信を求めていると思っています。**

と言うのも、今まで機械はON・OFFだけの動作で済んでいましたが、今やAD変換やDA変換が当たり前。
**信号一つにも数byteのデータが必要になります。**
また、センサーも高速化し、高感度な物も増えてきました。
モータだって高速に制御できる時代です。

その為、高速に通信が出来れば、**もっと細かな、もっと適切な、もっと柔軟な、制御ができる**　と思われます。


# ■　10Mbps 以上 100Mbps以内の通信規格

マイコンが処理できる範囲としては、この辺りが**高速**で**現時点での限界**でもあります。

|規格名  |最高速度(理論値) |
|-------|--------|
|Ethernet | 10 Mbps /100 Mbps/1 Gbps/10 Gbps |
|USB 1.1  | 12 Mbps |
|USB 2.0 | 480 Mbps |
|RS-422 | 10 Mbps |
|RS-485 | 10 Mbps |
|CC-Link(RS485) | 10 Mbps |
|Wi-Fi(2.5Ghz IEEE802.11b) | 11　Mbps |
|Wi-Fi(2.5Ghz IEEE802.11g) | 54　Mbps |
|LTE 4G  | 150 Mbps |


この辺が、まぁ**我慢して良いかな**と思える範囲です。
この中に、最高速度に程遠い速度を出すのが


|規格名  |最高速度(理論値) |
|-------|--------|
|USB 1.1  | 12 Mbps |
|USB 2.0 | 480 Mbps |
|Wi-Fi(2.5Ghz IEEE802.11b) | 11　Mbps |
|Wi-Fi(2.5Ghz IEEE802.11g) | 54　Mbps |
|LTE 4G  | 150 Mbps |


です。通信の規格上、どうしても遅延や待ち時間が発生し、実際は数Mbpsだったり数Kbpsだったりします。
その為、高速とは言えなくなる事もあります。当然、環境にも左右され、**最高速度なんか幻想だぜ！はっはっは！**と涙流しながらログを見るのです。

それらを除くと・・・・残された通信規格は

|規格名  |最高速度(理論値) |
|-------|--------|
|Ethernet | 10 Mbps /100 Mbps/1 Gbps/10 Gbps |
|RS-422 | 10 Mbps |
|RS-485 | 10 Mbps |
|CC-Link(RS485) | 10 Mbps |

になります。
RS-422/RS-485は実際はほぼ同じ規格で、さらにCC-Linkも同等とみなせる為、RS-485　が一人残ります。
10Mbpsも悪くありません。悪くありませんが、もう少し速くならない？と思うでしょう。

さて、最後に残ったのは・・・

|規格名  |最高速度(理論値) |
|-------|--------|
|Ethernet | 10Mbps /100Mbps/1Gbps/10Gbps |

なるほど。そうなりましたか。
産業用では、CANやLINもありましたし、IO-Linkも有名でしたが、共に数Kbpsの速度しか出ないようです。
よくまぁその速度で長年やってきましたね。
もちろん、信頼性やエラーチェック、その他ハードウェアの構成や実績等を考えても、大変素晴らしい通信規格です。
なので、一概には批判することはできません。が、僕は今もっと速いのが欲しいのです。

さて、残ったEthernetですが、Ethernetも、そこに**書かれた最大速度が出せない**という事が起きます。
特にインターネットの通信にはTCPやUDPもあり、その下にはIPもあったりします。
その為、速度はプロトコルを重ねるにつれて遅くなっていきます。

ここで、産業用Ethernetの規格を並べると

|規格名  |１パケットで操作できる台数 |
|-------|--------|
| EtherNet/IP | 1台 |
| PROFINET | 1台 |
| EtherCAT | 連結された機器全台 |

などがあります。
EtherNet/IPとPROFINETに関しましては、IP(機器に割り振られたアドレス)のような仕組みを使い、機器を１台１台指定して通信を行います。
その為、１台に通信している間は、他の１台と通信できなかったりします。
もちろん、スレッド等の技術を使いパケットを分割して帯域ギリギリまで責めるという技もありますが、そういう技を使う目的では無いように思えます。
という事で、こちらも**IPにより遅くなる**となってしまいます。

では、EtherCATはどうなのかというと、TCPもUDPも使わず、IPすら使いません。MACアドレスもブロードキャストです。
**EtherCATは、Ethernetの物理層と、その他の通信規格に害を及ぼさない範囲で、独自の通信網を構築するという技を使っています。**
速い速い言う割に遅いんだろ？と疑い深い自分も、いろいろ試験を行いましたが、**実測80Mbps程度**で通信ができたりします。

    EtherCAT: 100Mbps(実測80Mbps~50Mbps）

かなりギリギリまで攻めた規格かなと思います。

## 追記(20200928)

この記事を書いた後に、海外の方が同様に　EtherNet/IP vs EtherCATについて書かれた記事を見つけました。

原文　https://blog.misumiusa.com/ethernet-ip-vs-ethercat/
Google翻訳　https://translate.google.co.jp/translate?hl=ja&tab=TT&sl=en&tl=ja&u=https%3A%2F%2Fblog.misumiusa.com%2Fethernet-ip-vs-ethercat%2F

上記のようなIPを含むと遅くなる。EtherCATだと速い。といった内容が書かれていました。

# ■ EtherCATが一番良い？

そんなことはありません。
先のフィルタで 10Mbps ~ 100Mbpsがマイコンに**適してる**と言いましたが、もしマイコンがより速くなった際は、当然、**遅い**となります。
その為、次の世代の通信規格を追うのであれば

|規格名  |最高速度(理論値) |
|-------|--------|
|Ethernet | 1.0 Gbps/10 Gbps |
|USB 3.0  | 5.0 Gbps |
|PCIEx 1.1 ~ 3.0 | 2.5 Gbps ~ 8.0 Gbps |
|Thunderbolt 1 ~ 4 | 10 Gbps ~ 40 Gbps |
|HDMI 1.0 ~ 2.1 | 4.9 Gbps ~ 48 Gbps |
|SATA 1.0 ~ 3.0  | 1.5 Gbps ~ 6.0 Gbps |
|MIPI D-PHY | 1.0 Gbps |
|Wi-Fi(5Ghz IEEE802.11ac) | 6.9 Gbps |

の辺りの所謂**ギガ帯**の通信が魅力的に見えてきます。

と、そんな話をすると、**EtherCATも次の規格はEtherCAT-Gで、EthernetのGbpsに対応した規格になります。**
また表立って登場してませんが、**速度の速い方向に進む規格**であることには間違いありません。

**機械に人間と同等の通信速度人権を与える大変素晴らしい規格だとわかります。**

# ■　まとめ

**速度を求めるなら、PC向けを使え**

まぁそう言うことになりそうですね。

マイコンや制御に使える汎用規格としては、**RS485やUARTの高速版**を使用する方が良いですし、
産業用規格に乗っ取って通信するなら **EtherCATが最強**だし
より高速を求めるなら**ギガ帯通信速度の規格**を採用するのも良いかもです。
速くUSB3.0が乗ったマイコンが出てこないかな。

兎に角、EtherCATが**他の規格よりも速い**事がわかって一安心しました。