文章

Linux下的 EtherCAT Master 安装与编译环境配置

Installation

执行软件包目录中 install script, sudo ./install

VS code with gcc compiler

在vs code的工作目录中的tasks.json文件内添加如下参数,就能在VS code中直接build执行文件。

"args": [
    "-l",
    "ecMaster"
],

Windows下的 EtherCAT Master 安装与编译环境配置

Installation

安装软件包路径EtherCAT_CD_2024-12-17.ZIP\CD\EtherCAT_Master\Windows\EtherCAT_Master_Win_V1102_Trial.exe 。 安装完成后,可以看到 C:\Windows\System32\ecmcore.dll 文件。 查看 C:\Program Files\esd\EtherCAT\MasterC:\Users\bobtu\Documents\ESD\EtherCAT\Master\example 两个目录, esd EtherCAT Master 软件都在此两个目录中。

VS code with cl.exe compiler

新增几个系统环境变量VsInstDir, WinEcatDir, WinKitsDir,如下图。

在系统 Path 变量中增加几个目录,如下图。

此处以Visual Studio Code (VSCode) 作为 IDE 为例进行介绍。

  1. Configure VS Code for Microsoft C++
  2. 创建一个目录,名为ecm_workspace,并将 C:\Users\bobtu\Documents\ESD\EtherCAT\Master\example\中的两个文件ecmTest.cgetopt_long.c 拷贝到此目录。
  3. 将如下两个文件 c_cpp_properties.jsontasks.json 替换或者拷贝至 .vscode 目录中。
  4. 打开 ecmTest.c ,运行Terminal -> Run Build Task...,执行 C/C++: cl.exe build active file,若有如下信息显示,则证明编译环境搭建完成。
 *  Executing task: C/C++: cl.exe build active file 

Starting build...
cmd /c chcp 65001>nul && cl.exe /Zi /EHsc /nologo /FeC:\Users\bobtu\Documents\ecm_workspace\ecmTest\ecmTest.exe C:\Users\bobtu\Documents\ecm_workspace\ecmTest\ecmTest.c getopt_long.c "/IC:\Program Files\ESD\EtherCAT\Master\include" "/IC:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt" "/IC:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\um" "/IC:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\shared" "/IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\include" /link "C:\Program Files\ESD\EtherCAT\Master\lib\x64\ecmcore.lib" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\Lib\10.0.26100.0\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\Lib\10.0.26100.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\lib\x64"
ecmTest.c
getopt_long.c
Generating Code...

Build finished successfully.
 *  Terminal will be reused by tasks, press any key to close it.