ご主人様とメイドはテレパシー通信をしている?:江端さんのDIY奮闘記 EtherCATでホームセキュリティシステムを作る(4)(5/9 ページ)
さて、今回はEtherCATのメモリについてお話します。EtherCATのPDO通信、SDO通信は、ご主人様(マスタ)とメイド(スレーブ)は、このメモリを介した“テレパシー通信”によって、完璧なコミュニケーションを実現しています。それを説明した後に、いよいよ、本連載の山場の1つとして、SOEM(Simple Open EtherCAT Master)のデバッグ&トレース環境の作り方を紹介します。
【Step 6】
3つのプロジェクトをバラバラに管理すると面倒なので、simple_testのプロジェクトに3つのプロジェクトを集めます。
一度、Microsoft Visual C++ 2010 Expressを落としてから、C:\SOEM1.3.0\test\win32\simple_test\ simple_test.slnをクリックして、simple_testのプロジェクトを立ち上げてください。
さらに、ファイル(F)→追加(D)→既存のプロジェクト(E)から、C:\SOEM1.3.0\test\win32\slaveinfoの中にできている、slaveinfo.vcxprojを選んで、「開く」を押してください。
同様に、「ファイル(F)」→「追加(D)」→「既存のプロジェクト(E)」から、C:\SOEM1.3.0\soemの中にある、soem.vcxprojを選んで「開く」を押してください。
これで、simple_test(簡易EtherCATテストプログラム)のプロジェクトで、slaveinfoプロジェクト(スレーブ情報収集プログラム)と、soemプロジェクト(SOEM)ライブラリのプロジェクトを同時に管理できるようになります。
【Step 7】
Simple_testの設定を開始します。
【Step 8】
「構成プロパティ」→「全般」として「アプリケーション(.exe)」、「文字セット」→「マルチバイト文字セットを使用する」→「適用(A)」
【Step 9】
「デバッグ」→「コマンド引数」→使用するNICアダプタを入力する→「適用(A)」(こちらを参照)
ちなみに、下図のNICは、あなたのPC環境のものを入力してください)
【Step 10】
「C/C++」→「追加のインクルードディレクトリ」に、5つのディレクトリ名を入力してください。→「適用(A)」
【Step 11】
「リンカー」→「システム」→「サブシステム」が「コンソール(/SUBSYSTEM:CONSOLE)」になっていることを確認してください。
【Step 12】
「リンカー」→「入力」→「追加の依存ファイル」に、あなたの環境での下図の5つのファイル名を入力。
これで、プロジェクト”simple_test”についての設定は完了です。
【Step 13】
slaveinfoの設定を開始してください。
Step.8〜12と同じ設定を行ってください。
【Step 14】
soem(ライブラリ)に必要なファイルを追加してください。
【Step 15】
soemに必要な、以下の3つのファイルを追加してください。
C:\SOEM1.3.0\oshw\win32\nicdrv.c
C:\SOEM1.3.0\osal\win32\osal.c
C:\SOEM1.3.0\oshw\win32\oshw.c
また、ヘッダファイルは、最初はほっといてもよいでしょう(コンパイルエラーが教えてくれるので、その時追加してもよいです)。
【Step 16】
soemの設定を開始する。
【Step 17】
「構成プロパティ」→「全般」→「構成の種類」として「スタティックライブラリ(.lib)」、「文字セット」→「マルチバイト文字セットを使用する」、出力ディレクトリ→“C:\SOEM1.3.0\lib\win32”
「ターゲット名」→“libsoem”
【Step 18】
「C/C++」→「全般」→「追加のインクルードディレクトリ」に、5つのディレクトリ名を入力
この設定が終了したら、最初にsoemプロジェクトのビルドを実施します。成功した後、slaveinfo, simple_testのプロジェクトでビルドしてください(ビルドの順番に注意してください)。これで、slaveinfo, simple_testのデバッグ&トレース環境の構築が構築できていると思います。
この環境を立ち上げるときは、C:\SOEM1.3.0\test\win32\simple_test\simple_test.slnを叩けば、3つのプロジェクトが同時に表示されます(simple_test.slnは、C:\SOEM1.3.0あたりに、ショートカットを張っておくと便利です)。
もしうまく環境が構築できなかったらご連絡ください。メールベースで可能な限りサポート致します(なにしろ私の手元には、実際に動いているデバッグ&トレース環境がありますし)。
ただ、私は、親切心からあなたをサポートをするわけではありません。
これは、私の計画「老人ホーム4.0」に、あなたを巻き込むための布石です。
来週からは、このデバッグ&トレース環境環境を使って、EtherCATの動きを一つ一つ見ながら、理解を深めていきたいと思います。
では、今回のコラムの内容をまとめます。
(1)EtherCATは、APIとメモリとNICの3つが、お互いの存在を無視するかのようにバラバラに動き、その事によって、抜群のリアルタイム性能と同期性能を実現している
(2)EtherCATは、既存の制御ネットワークのデバイスプロファイルをパクる……もとい、活用することで、デバイスの相互利用性を担保している
(3)SOEM(Simple Open EtherCAT Master)のデバッグ&トレース環境の構築は、結構面倒くさい(―― ですが、なんとか頑張って構築してみてください)
それでは、次ページから「付録」を開始します。準備はいいですか?
Copyright © ITmedia, Inc. All Rights Reserved.