さて、最初に本連載の背景をお話したいと思います。
私は、これまでも、趣味でホームセキュリティシステムを作ってきました。
しかし、最近、そのシステムで使ってきた「X10スレーブ(つまり「メイド」)」が、国内で手に入らなくなり、海外の通販サイトでも出品されなくなってきました。このまま行くと、2〜3年後には、わが家のホームセキュリティは停止してしまいます。
となれば、新しいメイド……もとい、スレーブで、新しいホームセキュリティシステムを作り直さなければなりません。
ある日のこと、私が、ジャンク用のダンボール箱をひっくり返していた時、友人から借りたまま、返却せずほったらかしにしていた、オムロンの「GX MD-1611」が、ポロっと出てきました。
―― そういえば、これも、(デジタルI/O)スレーブだったっけ?
これが、この連載のきっかけとなる、EtherCATスレーブとの出会いでした。
早速、EtherCATを調べてみたのですが、「こりゃ使えねーわ」と、早々に諦めモードに入ってしまいました。
わが家のホームセキュリティシステムは、
で構成されるものに対して、
EtherCATが想定しているファクトリオートメーションシステムは、
というものだからです
オーバースペックも、いいとこです。
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.