EtherCat--主站开源的C语言库SOEM-环境搭建

这篇具有很好参考价值的文章主要介绍了EtherCat--主站开源的C语言库SOEM-环境搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、SOEM主站环境搭建

(一)安装VS;

(二)下载SOEM 1.3.1 源代码:链接地址 http://openethercatsociety.github.io/

(三)安装WinPcap_4_1_3.exe:链接地址 https://www.winpcap.org/install/default.htm

二、整体目录 

(一)soem目录:实现主从站功能的主要文件和源文件(头文件和源文件)
ethercatbase.c : 基于ether功能函数,将数据封装成ethercat帧;
ethercatmain.c : ethercat的初始化,从站数据的读取;
定义ec_slave[],所有从站信息都在这个结构体内;
ethercatcoe.c : CoE模块,应用层CoE协议;
ethercatfoe.c : FoE模块;
ethercateoe.c : EoE模块(设置、获取IP函数,发送、接收以太网帧);
ethercatdc.c : EtherCat分布式时钟,实现主从站之间时针同步。

(二) osal/oshw目录:操作系统接口文件
oshw.c : 网卡管理模块;
nicdrv.c : EtherCat原始套接字驱动;
osal.c : 定时器,延时函数。

(三)test目录
运行一些demo程序,可以用wireshark工具监控ethercat帧。

三、SOEM主站环境搭建

(一)SOEM代码编译

(1)打开VS的命令行工具:x86 Native Tools Command Prompt for VS 2017

EtherCat--主站开源的C语言库SOEM-环境搭建

(2)进入解压的SOEM目录

cd/d E:\SOEM-1.3.1    

EtherCat--主站开源的C语言库SOEM-环境搭建

(3)编译lib(替换自己VS安装地址)

make_libsoem_lib.bat "D:\Program Files(x86)\Microsoft Visual Studio\2017\Community\VC" x86

EtherCat--主站开源的C语言库SOEM-环境搭建

 (4)生成全部测试文件

make_test_win32_all.bat "D:\Program Files(x86)\Microsoft Visual Studio\2017\Community\VC" x86

EtherCat--主站开源的C语言库SOEM-环境搭建

 生成全部测试文件(生成exe等文件)simple_test.exe文件,至此完成了SOEM源码的编译。

(二)获取当前网络设备

EtherCAT从站板配置好上电,通过网线连接至电脑。

(1)进入到SOEM-1.3.1\test\win32\simple_test目录。

cd test\win32\simple_test\

EtherCat--主站开源的C语言库SOEM-环境搭建

(2)网络设备列表获取

  方法一:直接运行simple_test,得到当前网络设备;

由于电脑可能有多个网络设备(无线、有线、虚拟网络等),可能不好判断实际网络设备。

simple_test

EtherCat--主站开源的C语言库SOEM-环境搭建

  方法二:通过WinPcap来获取设备列表。(使用方法一可直接跳过

    winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。它用于windows系统下的直接的网络编程。Winpcap提供了一个强大的编程接口,它很容易地在各个操作系统之间进行移植,方便程序员进行开发。

  1.下载并安装WinPcap运行库:http://www.winpcap.org/install/default.htm

  2.下载WinPcap开发包:http://www.winpcap.org/devel.htm

  3.新建一个空项目。以管理员的权限打开VS2017,新建一个VC++的Win32控制台应用程序,设置为空项目。

EtherCat--主站开源的C语言库SOEM-环境搭建

   4.添加wpcap.lib和ws2_32.lib两个库。

EtherCat--主站开源的C语言库SOEM-环境搭建

   5.设置项目。打开项目属性,如图,添加WPCAP和HAVE_REMOTE这两个宏定义。

EtherCat--主站开源的C语言库SOEM-环境搭建

   6.添加包含路径(Include和Lib目录)包含目录和库目录。(上面下载的WinPcap开发包)

EtherCat--主站开源的C语言库SOEM-环境搭建

   7.设置UAC。(非必须,推荐设置,让生成的程序能够自主触发管理员权限对话框。无论如何,最终生成的程序都需要以管理员权限运行)

EtherCat--主站开源的C语言库SOEM-环境搭建

  8.直接运行可能会出现,“const char * 与char * 不兼容” 的问题。

EtherCat--主站开源的C语言库SOEM-环境搭建

 9.完成上述步骤后,向项目添加需要的源文件即可。

注意:此处配置的为x64,否则会出现“找不到pcap.h”的情况。由于开发winpcap项目的目的在于为win32应用程序提供访问网络底层的能力,因此开发包里面有大量的WIN32的标识符,直接使用会出现“未定以标识符”错误。

EtherCat--主站开源的C语言库SOEM-环境搭建

拷贝文件后,运行跳出窗口 显示网络设备列表。

EtherCat--主站开源的C语言库SOEM-环境搭建

#define WIN32
#include <iostream>
#include "pcap.h"
#pragma comment(lib,"wpcap")

using namespace std;

int  main()
{
    pcap_if_t* alldevs;
    pcap_if_t* d;
    char errbuf[PCAP_ERRBUF_SIZE];
    //获取设备列表
    if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &alldevs, errbuf) == -1)
    {
        cout << "Error in pacp_findalldevs_ex:" << errbuf << endl;
        return -1;
    }
    int i = 0;
    for (d = alldevs; d != NULL; d = d->next)
    {
        cout << endl;
        cout << i++ << " " << d->name << endl;
        if (d->description)
            cout << " <" << d->description << ">" << endl;
        else
            cout << " <No description>" << endl;
    }
    if (i == 0)
    {
        cout << "No interfaces found!" << endl;
        return -1;
    }

    pcap_freealldevs(alldevs);

    return 0;
}

(三)SOEM代码测试

(1)simple_test测试

运行simple_test.exe \Device\NPF_{XXXX},其中\Device\NPF_{XXXX}是电脑的网络设备符。

simple_test.exe \Device\NPF_{XXXX}

EtherCat--主站开源的C语言库SOEM-环境搭建

(2)simple_test测试结果

如果出现“No slave found!”则是没有连接从站控制器,所以并没有扫描到从站信息;

尝试重连EtherCat从站后,扫面结果"1 slaves found and configured."

EtherCat--主站开源的C语言库SOEM-环境搭建

EtherCat--主站开源的C语言库SOEM-环境搭建

(四)Win11系统识别不到网络设备列表

以管理员身份运行命令行串口,输入net start npf 启动NPF。

参考文档:

EtherCat主站开源的C语言库SOEM说明

【SOEM主站】一、SOEM主站环境搭建及连接板子测试

EtherCAT-SOEM主站搭建-windows

VS配置Winpcap环境及获取设备列表

VS2019配置WinPcap开发文章来源地址https://www.toymoban.com/news/detail-447657.html

到了这里,关于EtherCat--主站开源的C语言库SOEM-环境搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • EtherCAT主站源码 基于STM32F407和STM32H743两款芯片 通过移植开源SOME主站代码,使两款芯片具有EtherCAT主站功能,支持DC同步功能

    EtherCAT主站源码基于STM32F407和STM32H743两款芯片,通过移植开源SOME主站代码,使两款芯片具有EtherCAT主站功能,支持DC同步功能。可支持汇川IS620N、松下A5B/A6B、欧姆龙G5系列、埃斯顿ProNet、迈信EP3E、台达A2-E,伟创SD700这几款EtherCAT总线伺服。支持的这些驱动器可以混用,主站自动

    2024年02月04日
    浏览(49)
  • IGH(EtherCAT开源主站)移植到beaglebone black(AM3358)开发板上

    本文是在已经打上xenomai补丁的linux-3.8.13-bone86内核源码上进行的,参看使用xenomai与linux内核源码交叉编译,移植到beaglebone black(AM3358)开发板上 igh软件下载地址: IgH EtherCAT Master for Linux (etherlab.org) 将打入xenomai补丁,写入sd卡的系统的sd卡挂载(插入电脑,自动挂载)到ubuntu系统

    2024年02月11日
    浏览(45)
  • EtherCAT 开源主站 IGH 在 linux 开发板的移植和伺服通信测试

    手边有一套正点原子linux开发板imax6ul,一直在吃灰,周末业余时间无聊,把EtherCAT的开源IGH主站移植到开发板上玩玩儿,搞点事情做。顺便学习研究下EtherCAT总线协议及其对伺服驱动器的运动控制过程。实验很有意思,这里总结下实验过程,分享给有需要的小伙伴。 igh EtherC

    2024年04月29日
    浏览(118)
  • 【】浅谈EtherCAT主站EOE(上)-EOE网络

    版权声明:本文为本文为博主原创文章,未经本人同意,禁止转载。如有问题,欢迎指正。博客地址:https://www.cnblogs.com/wsg1100/ 目录 一、EoE ethercat工作图示 二、EoE服务规范 EtherCAT主站如何提供EoE服务? 三、EoE网络 EOE网络 这篇文章的标题虽然是关于EtherCAT EOE,但其实主要内

    2024年02月06日
    浏览(52)
  • EtherCAT主站写从站EEPROM抓包分析

    本文主站设置从站1字地址为0的EEPROM数据为0x3C00(设置完毕后请还原字0的EEPROM数据),使用Wireshark抓取到的报文如下: 这一阶段涉及的寄存器包括0x0500、0x0501,有关这2个寄存器的描述如下: 将EEPROM访问控制权设置为主站的操作分为2步: (1)强制PDI释放EEPROM访问控制权 主站

    2024年02月05日
    浏览(45)
  • Ethercat学习-从站FOE固件更新(TwinCAT主站)

    简介 FOE(File Access over Ethercat),用于节点之间的文件传输。协议类似于TFTP协议,感觉和TFTP协议没有太大的区别,只是一个是UDP传输,一个是Ethercat传输。从机在通过FOE进行固件更新的时候,作为服务端,主机作为客户端,有主机发起固件的上传和下载 协议说明 FOE帧格式: 目

    2024年02月10日
    浏览(68)
  • 小米便签开源项目本地环境搭建

    基于Android Studio、和Gradle 的小米便签配置和安装 一、Android Studio的中文社区(官网)下载最新的Android Studio 点击开始传送 http://www.android-studio.org/ 可参考下文安装配置Android StudioAndroid Studio 和 SDK 下载、安装和环境变量配置_siwuxie095的博客-CSDN博客_androidstudio配置sdk 根据指引把

    2023年04月25日
    浏览(43)
  • MIT Cheetah开源代码仿真环境搭建

    参考文章:长乐未央https://zhuanlan.zhihu.com/p/537013183 电脑系统:Ubuntu18.04 ROS版本: ROS Melodic 首先更新一下 安装依赖项 首先是QT5.14.2,下载地址友情链接:QT5.14.2 下载完成后选中下载的QT5文件,右键点击属性,点击权限,勾选允许作为程序执行文件,如下图所示: 然后在该文件

    2023年04月17日
    浏览(44)
  • 开源元数据管理平台OpenMetadata开发环境搭建

    开源的元数据管理平台很多。开源元数据管理平台是一种用于收集、存储和管理数据的工具,它们提供了一种可扩展的方式来组织和维护数据的元数据信息。以下是一些常见的开源元数据管理平台: Apache Atlas:Apache Atlas是一个开源的大数据元数据管理和数据治理平台,旨在帮

    2024年02月20日
    浏览(38)
  • 短视频矩阵源码开源搭建--基于PHP语言

    短视频矩阵系统是一种基于云计算和大数据技术的智能化视频分发系统,旨在为用户提供个性化的短视频推荐和播放服务。该系统通过对用户行为数据和视频内容进行深度分析和计算,实现了智能化的推荐算法和视频分发机制,使用户能够快速、便捷地找到自己喜欢的视频并

    2024年02月21日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包