=======
1. 背景
=======
(1)SOEM 1.3.0の Windowsバージョン simple_test.cは、とりあえず
デジタルIOスレーブでLEDがピカピカが光ってキレイでした。
(2)ところが、Linuxバージョンのsimple_test.cでは、この
「キレイ」が発生しません。
========
2. 対応
========
2つのsimple_test.cを比較したら、"IOmap[0]++" が見あたらな
かった。
また Linuxの方は、コールバック関数は使っていない(様子)
========
3. 改良
========
(1) 改良後
void ecatcheck( void *ptr )
{
int slave;
while(1)
{
IOmap[0]++; // ← この1行を加えるだけ
if( inOP && ((wkc < expectedWKC) || ec_group[currentgroup].docheckstate))
=============
4. コンパイル
=============
>cd SOEM-1.3.1
>source ./setup.sh linux
>make all
(詳しいことは、SOEM-1.3.1\READMEに記載がある)
=============
5. 結果
=============
>cd SOEM-1.3.1/test/linux/simple_test
>sudo ./simple_test enx001d73e6ec5e(これはslaveinfoから取ってくるNICの情報)
デジタルIOスレーブでLEDがピカピカが光ってキレイになりました。