EtherCATって結局なに? 〜「ご主人様」と「メイド」で説明しよう:江端さんのDIY奮闘記 EtherCATでホームセキュリティシステムを作る(1)(3/4 ページ)
何十台ものロボットが高速、かつ正確に動き、次々とモノを製造していく――。このような、いわゆるファクトリオートメーション(FA)を支えるネットワーク方式の1つに、EtherCATがあります。EtherCATは、高速・高精度にマシンを制御する産業向けのネットワークですが、私は、無謀(?)にも、これを使って自宅のホームセキュリティシステムを構築してみようと思い付いたのです。本連載では、その“手法”の全てを公開します。
ぽろっと出てきたスレーブが、きっかけに
さて、最初に本連載の背景をお話したいと思います。
私は、これまでも、趣味でホームセキュリティシステムを作ってきました。
しかし、最近、そのシステムで使ってきた「X10スレーブ(つまり「メイド」)」が、国内で手に入らなくなり、海外の通販サイトでも出品されなくなってきました。このまま行くと、2〜3年後には、わが家のホームセキュリティは停止してしまいます。
となれば、新しいメイド……もとい、スレーブで、新しいホームセキュリティシステムを作り直さなければなりません。
ある日のこと、私が、ジャンク用のダンボール箱をひっくり返していた時、友人から借りたまま、返却せずほったらかしにしていた、オムロンの「GX MD-1611」が、ポロっと出てきました。
―― そういえば、これも、(デジタルI/O)スレーブだったっけ?
これが、この連載のきっかけとなる、EtherCATスレーブとの出会いでした。
早速、EtherCATを調べてみたのですが、「こりゃ使えねーわ」と、早々に諦めモードに入ってしまいました。
わが家のホームセキュリティシステムは、
- 「今、通信に失敗しても、次に成功してくれればいいな」を認容する超ルーズな電灯線通信(X10通信)
- 電灯が6つ、センサーが3つ、大音量アラーム装置2台、パトランプ2台で、通信は平均1時間に1回程度
- 秋葉原のジャンク屋で拾ってきた出どころの怪しいノートPCを改造した江端自作マスタ
で構成されるものに対して、
EtherCATが想定しているファクトリオートメーションシステムは、
- 工場の製造ラインで使用される、多関節を有する工業用ロボットを同時に何十台も超高速で動かす高信頼FAネットワークシステム
- 最大65535台のスレーブに対して、最大8000回/秒の命令を出せる
- 高精度なフレーム送出タイミングを制御する高価な専用のマスタ装置が必要
というものだからです
オーバースペックも、いいとこです。
EtherCATを使えば、わが家だけでなく、町内の全世帯にホームセキュリティシステムを敷設しても、まだ余裕がありそうです。
『なるほど、EtherCATを、ホームセキュリティで使うヤツがいないのは当然だ』と思いました。
なにより、私の手元にはEtherCATのスレーブがあっても、マスタがありません。そんなものを購入する金も場所もありません。
そこで、「もしかしたら、PCをマスタとして使うソフトウェアがあるかな」と思い、探してみたところ ――あるにはあったのですが―― 市販製品で、しかも高価でした。
しかし、さらに探し続けていたら、オープンソースのEtherCATマスタを見つけることができました。
それが、Simple Open EtherCAT Master:SOEMというプログラムです(私は「ソエム」と発音しています)。
SOEMは、WindowsとLinuxのOSで動作する、GPL2でライセンスされたオープンソースプログラムです。GUIも構築支援ツールもなく、スレーブ情報ファイル(ESIファイル)も使いません。インタフェースは、Windowsなら「コマンドプロンプト」を使用し、表示は文字だけです。さらに、汎用OSの上で動作するので厳密なリアルタイム性能は担保されません。
ですから、SOEMを、超高速で連携動作する工場のロボットに使うのは無理っぽいです。
―― しかし、
- 泥棒の侵入を人感センサーで検知して、
- 大音響のブザーやパトランプでやかましく騒ぎ立てて、
- その情報をメールでバシバシ送り、
- 携帯から自宅の電灯のスイッチをたたき落とす
程度のことなら、問題なさそうです。
わが家のホームセキュリティシステムは、ミリ秒単位で人感センサーやブザーの動作のタイミングを合わせる必要など全くないからです。
さらにSOEMは、全てのソースコードが開示されていますので、例えば、GDB(GUN Debugger)や、Visual Studio のデバッグモードを用いれば、SOEMを動かしながらEtherCATマスタの動きも理解できそうです。
「これに、Wireshark(ネットワークアナライザ)で、送信フレームをキャプチャすれば、EtherCATの学習環境は完璧じゃんか」と、私は、ほくそ笑みました。
実際には、そんな簡単な話ではなかったのですが ―― それは追ってお話します。
Copyright © ITmedia, Inc. All Rights Reserved.