今回、このホームセキュリティシステムの稼働ルールは以下の通りとしました。
と、まあ、ここまではいいとして、面倒くさいのは、ご主人様(SOEM)と、メイドたち(“Rio”,“Yuko”,“Mao”)との間で取り決めた構成を、「この私が」読み取らなければならないことです。
今回も、前回使ったsimple_test.cのソースコードを改造して、SOEM用のアプリケーションプログラムを作りますので、そのためには、そのソースコードの中にあるIOMap[]配列が、どのスレーブに対応しているのかを知っておかなければならないからです。
この読み取り作業の概要を簡単に説明します。
まず、EtherCATを上記の構成で接続した後、(これまで何度もご紹介してきました)“SOEM”のツールslaveinfo.exeを起動します。
slaveinfo.exeを実行すると、「対応」の内容が表示されますので、ここから読みとれます。
一番若いメモリ番地が、IOMap[0]に割り当てられますので、上記右図のような表を作れば、スレーブとの対応が分かります。ところが、詳細は「実際に動かしてみないと、よく分からん」のです。
例えば、“Mao”や“Rio”のDI用とDO用のメモリは、分けられてバラバラに配置されているし、“Yuko”のアナログポートのアドレスは32ビットも確保されているけど、実際に使われているのは16ビット分だけでした(私は、メモリをダンプ表示するプログラムを作って確認しました)。
『一体、ご主人様とメイドたちは、どういう話し合いをしたんだ?』と尋ねたくなりました。
Copyright © ITmedia, Inc. All Rights Reserved.