【EtherCAT】Windows下编译SOEM源代码和demo并打包

背景:一般机器人主要软件都运行在Linux下,EtherCAT主站和通信代码也运行在Linux下,对于只使用Windows的同学来说,有时候想要进行简单的整机通信系统测试就变得相对困难。这时候如果能在Windows平台下构建简单的主站应用程序,用于基础的通信系统测试,就变得相当方便了

编译环境

根据官方资料,Windows平台下使用Visual Studio完成编译

SOEM源码链接:OpenEtherCATsociety/SOEM: Simple Open Source EtherCAT Master

系统:Windows10
VS:Visual Studio 2022
SOEM:SOEM-1.4.0
pcap:npcap-1.80

Releases · OpenEtherCATsociety/SOEM下载1.4.0的源码zip压缩包并解压

Visual Studio 2022安装下面的环境

1

从官网Npcap: Windows Packet Capture Library & Driver下载npcap-1.80,备用

2

编译源码与demo

开始编译前先修改源码中的CMakeLists.txt文件,默认为编译Linux下的demo,修改为Windows平台的demo

if(BUILD_TESTS)
  # add_subdirectory(test/linux/slaveinfo)
  # add_subdirectory(test/linux/eepromtool)
  # add_subdirectory(test/linux/simple_test)
  add_subdirectory(test/win32/slaveinfo)
  add_subdirectory(test/win32/simple_test)
endif()

然后给需要编译的demo增加CMakeLists.txt文件

3

内容参考Linux中的,或者直接拷贝到相应目录即可

set(SOURCES simple_test.c)
add_executable(simple_test ${SOURCES})
target_link_libraries(simple_test soem)
install(TARGETS simple_test DESTINATION bin)
set(SOURCES slaveinfo.c)
add_executable(slaveinfo ${SOURCES})
target_link_libraries(slaveinfo soem)
install(TARGETS slaveinfo DESTINATION bin)

使用安装好的Visual Studio 2022环境和工具进行编译

4

5

cmake .. -G "NMake Makefiles"
nmake

编译完成,得到两个demo的可执行文件

6

安装依赖

直接运行可执行文件,得到下面的错误

7

安装npcap-1.80,解决依赖问题。这里建议勾选后两项,第一项勾选后每次运行都会有弹窗提示,按需求安装。

8

继续运行可执行文件,即可得到下面输出,说明编译与运行都没有问题了

9

硬件测试

通过网线连接EtherCAT从站,进行相关测试。slaveinfo和simpletest都可以正常运行

10

11

打包运行

Windows平台有很多方便的打包工具,不过这里只是一些简单的小工具,就不进行复杂的操作,直接将可执行文件和依赖的库一起压缩打包

12

直接将以上文件拷贝到另一台全新的电脑,安装npcap-1.80,运行提示缺少相关库

13

14

直接从之前编译的电脑中拷贝相关文件,最终得到下面这些文件

C:\Windows\System32\vcruntime140d.dll
C:\Windows\System32\ucrtbased.dll

15

最后运行,两个demo程序都可以正常运行

16

至此,即可完成一些小工具的开发与使用,并且可以移动到别的电脑运行

Tips:Windows11使用的时候输入网卡名字的时候加上引号(“device”,‘device’),单双引号皆可

参考链接

主要参考以下内容

  1. [EtherCAT]在Windows中编译并使用开源主站SOEM 1.4.0——2024.07.16_soem1.4.0-CSDN博客
  2. 【EtherCAT】Windows+Visual Studio配置SOEM主站——源码配置_业界新闻_筋斗云
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值