目次

EtherCAT

SOEM

Simple Open EtherCAT Master

RT-LABS
OpenEtherCATsociety/SOEM

オープンソースのEtherCATマスタースタック
同様にスレーブにはSOESが存在,LAN9252とマイコンでスレーブ作るならSOESを移植すればいいのだろうか.
GPL2ライセンス(一部を除く)で公開されている.

Windowsでビルド

を用意しておく.
開発者コマンドプロンプトもしくはx64 Native Tools Command Prompt for VS 2019からSOEMのディレクトリを開き,下記コマンドを順番に実行.
といってもclcmakeのパスが通っていればどのコマンドラインソフトウェアでも良さそう.

mkdir build
cd build
cmake .. -G "NMake Makefiles"
nmake

ビルドが成功するとSOEM/build/test/linuxフォルダ内部に

のフォルダが生成され,それぞれの中に実行ファイルがあるはず.

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」を選択する.このとき,オプションで

にチェックが入ってることを確認する.
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>

ここでは

参考文献

メモ:WindowsでEtherCATマスター
Windows 10でのWinPcap代替 = Npcap