EtherCAT主站SOEM在Ubuntu上的移植


      SOEM(Simple Open EtherCAT Master)是rt-lab提供的一个开源EtherCAT主站,使用裸套接字收发EtherCAT帧,可以很方便地移植到嵌入式设备上。

      本文介绍如何在Ubuntu(VMware)上运行SOEM主站的步骤,以及通过1个按钮控制一个LED指示灯的简单实验。

1、软硬件环境

      软件:VMware10+Ubuntu14.04, 在此虚拟机上运行SOEM,并连接EtherCAT从站。

      硬件:

      (1)24V电源

        (2) EK1100

        (3)EL1014 (输入通道1接一个按钮)

        (4) EL2004 (输出通道1接一个LED指示灯)

        (5) EL9010

EtherCAT主站SOEM在Ubuntu上的移植_第1张图片


2、获取源码

         从网站http://openethercatsociety.github.io/上下载SOEM1.3.1并在Ubuntu中解压到/opt,解压后的文件如下:

EtherCAT主站SOEM在Ubuntu上的移植_第2张图片

      soem文件夹下为实现EtherCAT master功能的主要文件。

      osal和oshw文件夹下是操作系统的接口文件,包括intime、linux、rtk和win32。

      test文件夹是各操作系统下的一些demo程序。

    

3、编译

       在终端中进入SOEM所在目录:
       :cd /opt/SOEM-1.3.1

       运行初始化脚本:
       : source ./setup.sh linux

       编译:
      : make all

4、打开debug功能

      打开debug功能后,EC_PRINT函数将有效。

      将../soem/EthercatConfig.c文件的第62行注释去掉就可以了:

      // define if debug printf is needed
      #define EC_DEBUG


5、运行demo

      运行test目录下的demo程序:

     : cd /opt/SOEM-1.3.1/test/linux/simple_test

     :./simple_test eno16777736

     其中eno16777736为网卡名称,通过命令ifconfig查询得到,运行效果如下

EtherCAT主站SOEM在Ubuntu上的移植_第3张图片


6、使用Wireshark监控EtherCAT帧

       在主机上运行Wireshark软件,网卡选择本地连接,监控到的数据如下:

      EtherCAT主站SOEM在Ubuntu上的移植_第4张图片


7、简单实验

       在/soem/test/linux/simple_test.c 中添加一行:

       *(ec_slave[0].outputs = *(ec_slave[0].inputs;

       即通过EL1014的输入控制EL2004,这样就能通过按钮控制LED指示灯的亮灭了。


      EtherCAT主站SOEM在Ubuntu上的移植_第5张图片            





你可能感兴趣的:(EtherCAT主站SOEM在Ubuntu上的移植)