原文:https://blog.csdn.net/ethercat_i7/article/details/52794069?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase
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
2、获取源码
从网站http://openethercatsociety.github.io/上下载SOEM1.3.1并在Ubuntu中解压到/opt,解压后的文件如下:
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查询得到,运行效果如下
6、使用Wireshark监控EtherCAT帧
在主机上运行Wireshark软件,网卡选择本地连接,监控到的数据如下:
7、简单实验
在/soem/test/linux/simple_test.c 中添加一行:
*(ec_slave[0].outputs = *(ec_slave[0].inputs;
即通过EL1014的输入控制EL2004,这样就能通过按钮控制LED指示灯的亮灭了。
————————————————
版权声明:本文为CSDN博主「ethercat_i7」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ethercat_i7/article/details/52794069