SOEM
Simple Open EtherCAT Master
RT-LABS
OpenEtherCATsociety/SOEM
オープンソースのEtherCATマスタースタック
同様にスレーブにはSOESが存在,LAN9252とマイコンでスレーブ作るならSOESを移植すればいいのだろうか.
GPL2ライセンス(一部を除く)で公開されている.
Windowsでビルド
- Visual Studio環境(開発者コマンドプロンプト for VS 20XX とか)
- CMake 2.8.0 later
- Npcapライブラリ
を用意しておく.
開発者コマンドプロンプトもしくはx64 Native Tools Command Prompt for VS 2019からSOEMのディレクトリを開き,下記コマンドを順番に実行.
といってもcl
とcmake
のパスが通っていればどのコマンドラインソフトウェアでも良さそう.
mkdir build cd build cmake .. -G "NMake Makefiles" nmake
ビルドが成功するとSOEM/build/test/linux
フォルダ内部に
- eepromtool
- simple_test
- slaveinfo
のフォルダが生成され,それぞれの中に実行ファイルがあるはず.
Visual Studioのインストール
とはいっても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」を選択する.このとき,オプションで
- MSVC v142
- Windows 10 SDK
- WIndows用C++ CMakeツール
- ツールのコア機能のテスト ビルドツール
にチェックが入ってることを確認する.
SOEMをビルドするためだけに上記全部入らないだろうけど,MSVS v142だけではcmake実行時にエラーが出た.一つずつインストールする項目する増やして検証しても良かったけど面倒なのでまとめてインストールしておく.
Visual C++ ビルドツール 2019 (Build Tools for Visual Studio 2019) のインストール(Windows 上)
Npcapのインストール
SOEMなどフリーのEtherCATのマスターソフトウェアはネットワークの下のレイヤーにアクセスするためのソフトウェアが必要.
https://nmap.org/
WindwosではNpcapをインストールしないとEtherCAT Explorerや Easy Configuratorが利用できない.
Win PcapはWindows10では安定しないらしいので大体としてNpcapをインストールする.
インストール時のオプションで
「Install Npcap in WinPcap API-compatible Mode」
へのチェックを入れておくこと.
作業ログ 2021-04-25
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>
ここでは
- NICのID
\Device\NPF_{9DD75716-8432-4044-83D0-7E8B95869425}
(\
になっているが,コマンドプロンプト上では¥
で表示される.) - 書き込むESIファイル
slave.bin