一、准备工作
1. Visual Studio 2022
2. Npcap 1.79
3. SOEM源码
二、源码部署
1. 新建Visual Studio工程
2. 创建文件夹
3. 创建主函数
4. 复制源代码
5. 删除无关项
6. 将soem源码添加进工程
7. 添加soem头文件
8. 配置头文件路径
9. 配置静态库和静态库路径
10. 定义宏
三、运行测试
1. 网卡测试
2. 问题及解决办法
3. 运行结果
4. 连接从站测试
下载地址:略
安装步骤:略
下载地址:Npcap: Windows Packet Capture Library & Driver

安装步骤:三个全选

下载地址:GitHub - OpenEtherCATsociety/SOEM: Simple Open Source EtherCAT Master



在第1步,⑤位置设置的路径下,创建inc、src、soem三个文件夹。

在第2步创建的src文件夹下,创建主函数main.c




复制SOEM源代码中的osal、oshw、soem三个文件夹,到步骤2创建的soem文件夹下

① 进入步骤2创建的soem文件夹下


② 进入osal文件夹,保留win32文件夹和osal.h文件,其余删除




③ 进入oshw文件夹,保留win32文件夹,其余删除




④ 进入soem文件夹









重复步骤①、②、③



重复步骤①、②、③















重复⑤、⑥

重复⑤、⑥

重复⑤、⑥

重复⑤、⑥



同第8步的①、②,打开属性





添加静态库:Packet.lib、wpcap.lib、winmm.lib、ws2_32.lib

同第8步的①、②,打开属性

添加宏:_CRT_SECURE_NO_WARNINGS、WIN32



① 指针未初始化

解决办法:双击上图红色行,跳转到oshw.c文件;第42行,对prev_adapter指针初始化。

② 无法解析外部符号,“x86”与“x64”冲突

解决办法:参考源码部署的“9. 配置静态库和静态库路径”,重新配置静态库路径为:\soem\oshw\wpcap\Lib\x64(原始的静态库路径为:\soem\oshw\wpcap\Lib)


char ifbuf[1024] = "\\Device\\NPF_(xxxxxxxxxxx)"; int main(int argc, char* argv[]) { ec_adaptert* adapter = NULL; printf("S0EM (Simple Open EtherCAT Master)\nSlaveinfo\n"); /* start slaveinfo */ slaveinfo(ifbuf); printf("End program\n"); return 0; } 
