検索
連載

「老人ホーム 4.0」がやって来る江端さんのDIY奮闘記 EtherCATでホームセキュリティシステムを作る(3)(4/5 ページ)

私がEtherCATでホームセキュリティシステムを構築しなければならない切実な理由――それは「介護」です。自分の身を自分で介護する。そんな次世代の介護システム実現のために、EtherCATを利用できると考えたのです。後半では、PCベースでEtherCATスレーブを作る方法をご紹介します。

Share
Tweet
LINE
Hatena

PCベースで「メイド」を作る

 今回は、Visual C++ 2010(無償版)を使った、EtherCATマスタであるSOEM(Simple Open EtherCAT Master)のデバッグ&トレース環境の構築方法について説明する予定でした。

 しかし、前回の記事へのコメントで、「SOEMの動作検証をするためには、結局、EtherCATスレーブを自費で購入しなければならないじゃないか」というのが、ずっと気にかかっていました。

 確かに、EtherCATスレーブという、(現時点において)超レアなデバイスを、この連載のためだけに私費で購入するのは難しいだろうなと、私も思います。

 (ところで、EtherCATスレーブを、この連載の読者に無償で貸し出してもよいという太っ腹なベンダー各社の社長さま。ご連絡をお待ちしております。お貸しいただけたら、御社のEtherCATスレーブの製品を、この連載でご紹介させていただく予定です。)

 そこで今回は、当初の予定を変更して、PCベースのメイド(EtherCATスレーブ)の作り方をご説明したいと思います。

 SOEM(EtherCATマスタ)の対向装置となる、PCベースのEtherCATスレーブエミュレータ、名付けて「メイドPC」を提供できれば、スレーブを購入して頂かなくとも、SOEMの動作確認は可能となります。

 まず私は、後輩に、「PCで動くEtherCATスレーブエミュレータを探してほしい」と頼みました。1時間もたたないうちに、彼は、「light ethercat slave」なるものを見つけてきてくれました。

江端:「おお、仕事速いなぁ。ついでに構築もやってくれる?」
後輩:「嫌です」

 にべもなく断られましたので、自力で構築を試みました。

 本連載の実験装置は、Windows7の環境で統一したかったのですが、このlight ethercat slaveは、LinuxOSを前提としたオープンソースでした。そこで、今回10年以上前に購入した古いノートPCを探し出して、UbuntuのLinuxの環境で、「メイドPC」を作ることにしました。

 私が構築した手順を記載します。

【Step.1】ノートPCに、「Ubuntu 14.04 LTS 日本語 Remix」をインストールします。私の場合、Windowsの環境はそっくり残して、USBメモリからブートできるようにしました。

【Step.2】light ethercat slaveのソースコードをダウンロードします。

photo

【Step.3】ダウンロードした一式を、適当なディレクトリに持ってきて、(私は、“~/”の直下にしました)解凍します。“ecslave-code-3e2f3eee4b11f13a4e1bf6e2d674eb85c2d62333”というディレクトリ名だと分かりにくいので“ecslave-code”という名前にリネームしておきます。

(以下、こちらの記載に基づいて、淡々と行います。)

【Step.4】構築に必要なツールを、以下の手順でUbuntu Linuxにダウンロードします。

(1)$ sudo apt-get install automake(「Makefile.amからMakefile.inを自動生成するもの」だそうです)

(2)$ sudo apt-get install libpcap-dev(pcapライブラリのインストール)

(3)$ sudo apt-get install libpthread-stubs0-dev(pthreadライブラリのインストール)

【Step.5-1】次に、構築(ビルド)を実行します。

$ cd ecslave-code として、以下を実行(ここから先は、なんでもsudoを付けておけば、安心でしょう)。

(1)$ sudo autoreconf

(2)$ sudo automake --add-missing

(3)$ sudo sh configure

(4)$ sudo make

 ecslave-codeのディレクトリの中に、ex_slaveという名前の実行ファイルができていれば成功です。

 次に、使用方法を説明します。

 書式は以下の通りです。

$ sudo ./ec_slave ethX NUM

(ethXは、イーサネットインタフェースの名前("eth0", "eth1"など)で、NUMはエミュレートするEhterCATスレーブの数です)

$ ifconfigで、EtherCATマスタ(SOEM)とつないでいるイーサネットインタフェースを確かめた後、

$ sudo ./ec_slave eth0 1

などと入力してください。

eth0が利用可能でない場合は、“LINK 0 eth0 DOWN”
eth0が利用可能の場合は、"LINK 0 eth0 UP"

と表示されます。

 SOEM(Simple Open EtherCAT Master)から、slaveinfo前回を参照)を実行すると、恐しく時間がかかった後(1分から数分後)に、以下が表示されます。

photo

$ sudo ./ec_slave eth0 3

としてslaveinfoを実行すると、マスタ側に3つ分のスレーブ情報が表示されるので、試してみてください。ただし、表示はさらに遅くなります。これは、「メイドPC」が、Linuxのアプリケーションとして動作しているためです。マスタの動作チェックには使えますが、実際のスレーブの代替にはならないでしょう。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る