Simple Open EtherCAT Master
RT-LABS
OpenEtherCATsociety/SOEM
オープンソースのEtherCATマスタースタック
同様にスレーブにはSOESが存在,LAN9252とマイコンでスレーブ作るならSOESを移植すればいいのだろうか.
GPL2ライセンス(一部を除く)で公開されている.
を用意しておく.
開発者コマンドプロンプトもしくはx64 Native Tools Command Prompt for VS 2019からSOEMのディレクトリを開き,下記コマンドを順番に実行.
といってもcl
とcmake
のパスが通っていればどのコマンドラインソフトウェアでも良さそう.
mkdir build cd build cmake .. -G "NMake Makefiles" nmake
ビルドが成功するとSOEM/build/test/linux
フォルダ内部に
のフォルダが生成され,それぞれの中に実行ファイルがあるはず.
とはいってもWindows用のC(C++)コンパイラ(MSVC)さえあればいい.なのでVisualStudio全部でなくBuildToolsのみインストールすればよい.
コマンド ラインから Microsoft C++ ツールセットを使用する
ダウンロードページ(https://visualstudio.microsoft.com/ja/downloads/)下部の「Visual Studio 2019のツール」から「Build Tools for Visual Studio 2019」をダウンロード,実行する.
インストールするワークロードから「C++ Build Tools」を選択する.このとき,オプションで
にチェックが入ってることを確認する.
SOEMをビルドするためだけに上記全部入らないだろうけど,MSVS v142だけではcmake実行時にエラーが出た.一つずつインストールする項目する増やして検証しても良かったけど面倒なのでまとめてインストールしておく.
Visual C++ ビルドツール 2019 (Build Tools for Visual Studio 2019) のインストール(Windows 上)
SOEMなどフリーのEtherCATのマスターソフトウェアはネットワークの下のレイヤーにアクセスするためのソフトウェアが必要.
https://nmap.org/
WindwosではNpcapをインストールしないとEtherCAT Explorerや Easy Configuratorが利用できない.
Win PcapはWindows10では安定しないらしいので大体としてNpcapをインストールする.
インストール時のオプションで
「Install Npcap in WinPcap API-compatible Mode」
へのチェックを入れておくこと.
WindowsでSOEMのアプリケーションを走らせるときはPowershellではくコマンドプロンプトがいい.アプリケーションを動かすときNICのIDを引数に渡すが,バックスラッシュと円マークの違いで正しく認識されない.
ESIファイルの書き込み.はeepromtoolでできる.引数にNICEのID,つながってる接続されているスレーブの番号,オプション,ファイル名を渡す.
以下はコマンドプロンプトでのログ.
F:\ws_ecat\SOEM\build\test\linux\eepromtool>eepromtool.exe \Device\NPF_{9DD75716-8432-4044-83D0-7E8B95869425} 1 -w slave.bin SOEM (Simple Open EtherCAT Master) EEPROM tool ec_init on \Device\NPF_{9DD75716-8432-4044-83D0-7E8B95869425} succeeded. 1 slaves found. Slave 1 Vendor ID : 00001337 Product Code : 000004D2 Revision Number : 00000000 Serial Number : 00000000 Busy. Total EEPROM write time :642ms End, close socket End program F:\ws_ecat\SOEM\build\test\linux\eepromtool>
ここでは
\Device\NPF_{9DD75716-8432-4044-83D0-7E8B95869425}
(\
になっているが,コマンドプロンプト上では¥
で表示される.)slave.bin