======= 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がピカピカが光ってキレイになりました。