0


【EtherCAT】Windows+Visual Studio配置SOEM主站——静态库配置+部署

目录


一、准备工作

1. Visual Studio 2022

    下载地址:略

    安装步骤:略

2. Npcap 1.79

    下载地址:Npcap: Windows Packet Capture Library & Driver

0764c6f72328418199a3e06308146f78.png

    安装步骤:三个全选

8a895d2f353a44e89e73a5c1b11601ff.png

3. SOEM源码

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

二、静态库配置

1. 修改SOEM源码配置

f7e6e9645af049cf8ea17fb1dd88fc32.png

** ① 双击打开CMakeLists.txt**

** ② 找到最后一行**

9a0b5351163f4b8b8faf31b98e09c1c4.png

** ③ 注释掉原来内容,添加:add_subdirectory(test/win32/slaveinfo)**

ed8f5cd9e1ec4e0db7cc145eb66c55b8.png

** ④ 进入SOEM源代码的路径:\test\linux\slaveinfo**

** ⑤ 复制CMakeLists.txt到路径:\test\win32\slaveinfo**

583f88cef67b4b008058a3d672f6e758.png

2. 编译SOEM源码

** ① 开始菜单栏打开命令行。(二选一,如果后续测试遇到问题:无法解析外部符号,“x86”与“x64”冲突,换另外一个重新编译。这里使用x64编译,x86相同)**

79bc6a897a7a46e982645163c2381de9.png

** ② 切换到SOEM根目录**

d3b37adffec1475ea36d294a8351b24f.png

** ③ 创建build文件夹 mkdir build**

0898792f092e4ccd9e64ae7b81a5dd91.png

**    ④ 进入build文件夹  cd build**

4dcc646d21f24a6f9f66ed78947495c4.png

    **⑤ 编译:cmake .. -G "NMake Makefiles"**

54d36068f4c24f62af6d593ca9720ad2.png

** ⑥ 编译:nmake**

989bcbcc212d457e97e2cf3689d99154.png

3. 测试

  **  ① 编译完成后,build文件夹下会多出一堆文件**

ce6b30080451460492d6cc587ca839aa.png

** ② 查看路径:\build\test\win32\slaveinfo 中出现slaveinfo.exe,则编译成功**

8b90ace2f4314e69adb1fdda5f3f5b8e.png

** ③ 进入路径:\build\test\win32\slaveinfo cd ./test/win32/slaveinfo**

456629a0c78e46d980de9816638c948f.png

**    ④ 运行测试  slaveinfo.exe  (弹出框点是)**

7c128cd8c0424ec8859ebc2794fe78bf.png

** ⑤ 连接从站测试 slaveinfo.exe \Device\NPF_{xxxx} (弹出框点是)**

fe131b2767354d42bb7cbca17ab15854.png

三、静态库部署

1. 新建Visual Studio工程

9861b4c7463a4962ba70c7553dc216a4.png

668271170c574d239dedd02973dd7d89.png

c482b8ac8a024e77b21fb339a8b58663.png

2. 创建文件夹

    创建inc、src、lib文件夹

975104429dd24c31aa98890221ef556d.png

3. 创建主函数

    在src文件夹中创建main.c

6329b13b8992422088c5da048da7df02.png

939a278fe92642008a511ea47bd6eae5.png

2726a81e8d394bea8b473f79ca13c98c.png

3c943a4675644da2856cadcee3577ead.png

4. 复制静态库

    ① 将SOEM源码路径:SOEM-master_x64\build中的soem.lib复制到第2步中创建的lib文件夹

    ② 将SOEM源码路径:SOEM-master_x64\oshw\win32\wpcap\Lib中的Packet.lib、wpcap.lib复制到第2步中创建的lib文件夹

bff6f958ca2b463ab675387560fe98bb.png

5. 复制头文件

  • 将SOEM源码路径:SOEM-master_x64\osal中的osal.h复制到第2步中创建的inc文件夹
  • 将SOEM源码路径:SOEM-master_x64\osal\win32中的inttypes.h、osal_defs.h、osal_win32.h、stdint.h复制到第2步中创建的inc文件夹
  • 将SOEM源码路径:SOEM-master_x64\osal\win32中的inttypes.h、osal_defs.h、osal_win32.h、stdint.h复制到第2步中创建的inc文件夹
  • 将SOEM源码路径:SOEM-master_x64\oshw\win32中的nicdrv.h、oshw.h复制到第2步中创建的inc文件夹
  • 将SOEM源码路径:SOEM-master_x64\oshw\win32\wpcap\Include中的bittypes.h、ip6_misc.h、Packet32.h、pcap-bpf.h、pcap-namedb.h、pcap-stdinc.h、remote-ext.h、Win32-Extensions.h复制到第2步中创建的inc文件夹(不要复制pcap.h)
  • 将SOEM源码路径:SOEM-master_x64\oshw\win32\wpcap\Include\pcap中的bluetooth.h、bpf.h、namedb.h、pcap.h、sll.h、usb.h、vlan.h复制到第2步中创建的inc文件夹
  • 将SOEM源码路径:SOEM-master_x64\soem中的ethercat.h、ethercatbase.h、ethercatcoe.h、ethercatconfig.h、ethercatconfiglist.h、ethercatdc.h、ethercateoe.h、ethercatfoe.h、ethercatmain.h、ethercatprint.h、ethercatsoe.h、ethercattype.h复制到第2步中创建的inc文件夹

72cff87f7aec40bb99ad4e3f6a37de99.png

6. 配置头文件路径

125b0b7798574d06a41e6831d761170e.png

bed8a67b6a1b45c5a117e79f4c4452a3.png

eff633958456407795b89fd328bf7300.png

f59ecab04ad84f148c8f015b71e436dd.png

7100f88278ea47418c1459414b3248b4.png

7. 添加头文件

99c3a2db13764f4ebbd617ed266aaa48.png

8f1c3fb02e75425d95314732b2054628.png

ac89a8d3c1c843b898302ad274406a4c.png

743e0190ea5d49d795806d6be9ce5fe2.png

65130316ba7444619a950b86920c35ac.png

8. 配置静态库路径

    打开属性

3174c088e8b84e1a8e437125fa7a9b90.png

047cd82848c24fb0b5aee840ee76862d.png

660ad6c1d9104e0e96238a58a7fdd774.png

6bea57de926e4630954f26e6ec265654.png

9. 添加静态库

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

19280eea5f6b4815aea3b9fd5e04831e.png

db6317a3280c43eeba4a5942c7f6f40f.png

10. 添加宏

   添加宏:_CRT_SECURE_NO_WARNINGS、WIN32

55c5043de02d4cd08c62692342efd854.png

dc96273f216f44ff8ec65435ac82ba23.png

四、测试

1. 网卡测试

  • 打开SOEM源文件夹路径:SOEM-master\test\win32\slaveinfo
  • 打开slaveinfo.c,复制所有程序到主函数main.c中
  • 运行代码

f98875c0b0ac4848b68f7381ec516c50.png

2. 问题及解决办法

** ① 找不到头文件**

2016aed6c4cd43c496e46754c35d38da.png

    **解决办法:**双击跳转到下图,修改为#include <bpf.h>

c13ebb3da2f94cefbbf16656f7d92310.png

6d2a2ed4745d4025adc0c95762476f07.png

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

f842180c71094c90a9f1e9b49f2d5b8c.png

   ** 解决办法:**将SOEM源码路径:SOEM-master_x64\oshw\win32\wpcap\Lib\x64中的Packet.lib、wpcap.lib复制到lib文件夹

3. 运行结果

5aa146b3b42d4c068b91a64acc892d27.png

4. 连接从站测试

  • 找到自己的网卡,上一步成功运行可以查看自己的网卡名称为:\Device\NPF_{xxx}
  • 复制网卡名称
  • 修改主函数代码:(注:网卡名称中“\”,要用“\”表示)
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;
}

890165a085bf4bb185deee7c8f620781.png

f92c4c5776d14363a805c5a29fafd614.png

标签: visual studio

本文转载自: https://blog.csdn.net/m0_59921410/article/details/140890153
版权归原作者 SudoReboot 所有, 如有侵权,请联系我们删除。

“【EtherCAT】Windows+Visual Studio配置SOEM主站——静态库配置+部署”的评论:

还没有评论