2306|0

504

帖子

4

TA的资源

纯净的硅(高级)

楼主
 

【米尔MYD-YG2LX开发板】在工控领域的应用-基于SOEM的EtherCAT主站 [复制链接]

前言

本文介绍【米尔MYD-YG2LX开发板】在工控领域的应用

,实现基于SOEM的EtherCAT主站。开发环境基于WSL2.

下载代码

git clone https://github.com/OpenEtherCATsociety/SOEM

PC端

编译

cd SOEM/

export CC=gcc

mkdir build_pc

cd build_pc/

 

cmake ..

lhj@lhj:~/SOEM/build_pc$ cmake ..

-- The C compiler identification is GNU 9.4.0

-- Check for working C compiler: /usr/bin/gcc

-- Check for working C compiler: /usr/bin/gcc -- works

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Detecting C compile features

-- Detecting C compile features - done

-- OS is linux

-- LIB_DIR: lib

-- Configuring done

-- Generating done

-- Build files have been written to: /home/lhj/SOEM/build_pc

lhj@lhj:~/SOEM/build_pc$

 

make

lhj@lhj:~/SOEM/build_pc$ make

Scanning dependencies of target soem

[  4%] Building C object CMakeFiles/soem.dir/soem/ethercatbase.c.o

[  9%] Building C object CMakeFiles/soem.dir/soem/ethercatcoe.c.o

[ 14%] Building C object CMakeFiles/soem.dir/soem/ethercatconfig.c.o

[ 19%] Building C object CMakeFiles/soem.dir/soem/ethercatdc.c.o

[ 23%] Building C object CMakeFiles/soem.dir/soem/ethercateoe.c.o

[ 28%] Building C object CMakeFiles/soem.dir/soem/ethercatfoe.c.o

[ 33%] Building C object CMakeFiles/soem.dir/soem/ethercatmain.c.o

[ 38%] Building C object CMakeFiles/soem.dir/soem/ethercatprint.c.o

[ 42%] Building C object CMakeFiles/soem.dir/soem/ethercatsoe.c.o

[ 47%] Building C object CMakeFiles/soem.dir/osal/linux/osal.c.o

[ 52%] Building C object CMakeFiles/soem.dir/oshw/linux/nicdrv.c.o

[ 57%] Building C object CMakeFiles/soem.dir/oshw/linux/oshw.c.o

[ 61%] Linking C static library libsoem.a

[ 61%] Built target soem

Scanning dependencies of target simple_ng

[ 66%] Building C object test/simple_ng/CMakeFiles/simple_ng.dir/simple_ng.c.o

[ 71%] Linking C executable simple_ng

[ 71%] Built target simple_ng

Scanning dependencies of target slaveinfo

[ 76%] Building C object test/linux/slaveinfo/CMakeFiles/slaveinfo.dir/slaveinfo.c.o

[ 80%] Linking C executable slaveinfo

[ 80%] Built target slaveinfo

Scanning dependencies of target eepromtool

[ 85%] Building C object test/linux/eepromtool/CMakeFiles/eepromtool.dir/eepromtool.c.o

[ 90%] Linking C executable eepromtool

[ 90%] Built target eepromtool

Scanning dependencies of target simple_test

[ 95%] Building C object test/linux/simple_test/CMakeFiles/simple_test.dir/simple_test.c.o

[100%] Linking C executable simple_test

[100%] Built target simple_test

lhj@lhj:~/SOEM/build_pc$

 

部署

生成的文件如下

其中libsoem.a为库文件

test/linux/下的

simple_test,slaveinfo,eepromtool为测试Demo。

lhj@lhj:~/SOEM/build_pc$ tree .
.
|-- CMakeCache.txt
|-- CMakeFiles
|   |-- 3.16.3
|   |   |-- CMakeCCompiler.cmake
|   |   |-- CMakeDetermineCompilerABI_C.bin
|   |   |-- CMakeSystem.cmake
|   |   `-- CompilerIdC
|   |       |-- CMakeCCompilerId.c
|   |       |-- a.out
|   |       `-- tmp
|   |-- CMakeDirectoryInformation.cmake
|   |-- CMakeOutput.log
|   |-- CMakeTmp
|   |-- Export
|   |   `-- share
|   |       `-- soem
|   |           `-- cmake
|   |               |-- soemConfig-noconfig.cmake
|   |               `-- soemConfig.cmake
|   |-- Makefile.cmake
|   |-- Makefile2
|   |-- TargetDirectories.txt
|   |-- cmake.check_cache
|   |-- progress.marks
|   `-- soem.dir
|       |-- C.includecache
|       |-- DependInfo.cmake
|       |-- build.make
|       |-- cmake_clean.cmake
|       |-- cmake_clean_target.cmake
|       |-- depend.internal
|       |-- depend.make
|       |-- flags.make
|       |-- link.txt
|       |-- osal
|       |   `-- linux
|       |       `-- osal.c.o
|       |-- oshw
|       |   `-- linux
|       |       |-- nicdrv.c.o
|       |       `-- oshw.c.o
|       |-- progress.make
|       `-- soem
|           |-- ethercatbase.c.o
|           |-- ethercatcoe.c.o
|           |-- ethercatconfig.c.o
|           |-- ethercatdc.c.o
|           |-- ethercateoe.c.o
|           |-- ethercatfoe.c.o
|           |-- ethercatmain.c.o
|           |-- ethercatprint.c.o
|           `-- ethercatsoe.c.o
|-- Makefile
|-- cmake_install.cmake
|-- libsoem.a
`-- test
    |-- linux
    |   |-- eepromtool
    |   |   |-- CMakeFiles
    |   |   |   |-- CMakeDirectoryInformation.cmake
    |   |   |   |-- eepromtool.dir
    |   |   |   |   |-- C.includecache
    |   |   |   |   |-- DependInfo.cmake
    |   |   |   |   |-- build.make
    |   |   |   |   |-- cmake_clean.cmake
    |   |   |   |   |-- depend.internal
    |   |   |   |   |-- depend.make
    |   |   |   |   |-- eepromtool.c.o
    |   |   |   |   |-- flags.make
    |   |   |   |   |-- link.txt
    |   |   |   |   `-- progress.make
    |   |   |   `-- progress.marks
    |   |   |-- Makefile
    |   |   |-- cmake_install.cmake
    |   |   `-- eepromtool
    |   |-- simple_test
    |   |   |-- CMakeFiles
    |   |   |   |-- CMakeDirectoryInformation.cmake
    |   |   |   |-- progress.marks
    |   |   |   `-- simple_test.dir
    |   |   |       |-- C.includecache
    |   |   |       |-- DependInfo.cmake
    |   |   |       |-- build.make
    |   |   |       |-- cmake_clean.cmake
    |   |   |       |-- depend.internal
    |   |   |       |-- depend.make
    |   |   |       |-- flags.make
    |   |   |       |-- link.txt
    |   |   |       |-- progress.make
    |   |   |       `-- simple_test.c.o
    |   |   |-- Makefile
    |   |   |-- cmake_install.cmake
    |   |   `-- simple_test
    |   `-- slaveinfo
    |       |-- CMakeFiles
    |       |   |-- CMakeDirectoryInformation.cmake
    |       |   |-- progress.marks
    |       |   `-- slaveinfo.dir
    |       |       |-- C.includecache
    |       |       |-- DependInfo.cmake
    |       |       |-- build.make
    |       |       |-- cmake_clean.cmake
    |       |       |-- depend.internal
    |       |       |-- depend.make
    |       |       |-- flags.make
    |       |       |-- link.txt
    |       |       |-- progress.make
    |       |       `-- slaveinfo.c.o
    |       |-- Makefile
    |       |-- cmake_install.cmake
    |       `-- slaveinfo
    `-- simple_ng
        |-- CMakeFiles
        |   |-- CMakeDirectoryInformation.cmake
        |   |-- progress.marks
        |   `-- simple_ng.dir
        |       |-- C.includecache
        |       |-- DependInfo.cmake
        |       |-- build.make
        |       |-- cmake_clean.cmake
        |       |-- depend.internal
        |       |-- depend.make
        |       |-- flags.make
        |       |-- link.txt
        |       |-- progress.make
        |       `-- simple_ng.c.o
        |-- Makefile
        |-- cmake_install.cmake
        `-- simple_ng

29 directories, 100 files
lhj@lhj:~/SOEM/build_pc$

 

开发板端

编译

cd SOEM/

export CC=aarch64-linux-gnu-gcc

mkdir build

 

cd build/

 

cmake ..

lhj@lhj:~/SOEM/build$ cmake ..

-- The C compiler identification is GNU 9.4.0

-- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc

-- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc -- works

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Detecting C compile features

-- Detecting C compile features - done

-- OS is linux

-- LIB_DIR: lib

-- Configuring done

-- Generating done

-- Build files have been written to: /home/lhj/SOEM/build

lhj@lhj:~/SOEM/build$

 

 

make

lhj@lhj:~/SOEM/build$ make

Scanning dependencies of target soem

[  4%] Building C object CMakeFiles/soem.dir/soem/ethercatbase.c.o

[  9%] Building C object CMakeFiles/soem.dir/soem/ethercatcoe.c.o

[ 14%] Building C object CMakeFiles/soem.dir/soem/ethercatconfig.c.o

[ 19%] Building C object CMakeFiles/soem.dir/soem/ethercatdc.c.o

[ 23%] Building C object CMakeFiles/soem.dir/soem/ethercateoe.c.o

[ 28%] Building C object CMakeFiles/soem.dir/soem/ethercatfoe.c.o

[ 33%] Building C object CMakeFiles/soem.dir/soem/ethercatmain.c.o

[ 38%] Building C object CMakeFiles/soem.dir/soem/ethercatprint.c.o

[ 42%] Building C object CMakeFiles/soem.dir/soem/ethercatsoe.c.o

[ 47%] Building C object CMakeFiles/soem.dir/osal/linux/osal.c.o

[ 52%] Building C object CMakeFiles/soem.dir/oshw/linux/nicdrv.c.o

[ 57%] Building C object CMakeFiles/soem.dir/oshw/linux/oshw.c.o

[ 61%] Linking C static library libsoem.a

[ 61%] Built target soem

Scanning dependencies of target simple_ng

[ 66%] Building C object test/simple_ng/CMakeFiles/simple_ng.dir/simple_ng.c.o

[ 71%] Linking C executable simple_ng

[ 71%] Built target simple_ng

Scanning dependencies of target slaveinfo

[ 76%] Building C object test/linux/slaveinfo/CMakeFiles/slaveinfo.dir/slaveinfo.c.o

[ 80%] Linking C executable slaveinfo

[ 80%] Built target slaveinfo

Scanning dependencies of target eepromtool

[ 85%] Building C object test/linux/eepromtool/CMakeFiles/eepromtool.dir/eepromtool.c.o

[ 90%] Linking C executable eepromtool

[ 90%] Built target eepromtool

Scanning dependencies of target simple_test

[ 95%] Building C object test/linux/simple_test/CMakeFiles/simple_test.dir/simple_test.c.o

[100%] Linking C executable simple_test

[100%] Built target simple_test

lhj@lhj:~/SOEM/build$

 

部署

cp libsoem.a /mnt/d

cp test/linux/simple_test/simple_test /mnt/d

cp test/linux/slaveinfo/slaveinfo  /mnt/d

将上述文件rz导入开发板

chmod +x simple_test slaveinfo

运行

root@myir-yg2lx:~# ./slaveinfo eth0

SOEM (Simple Open EtherCAT Master)

Slaveinfo

Starting slaveinfo

ec_init on eth0 succeeded.

No slaves found!

End slaveinfo, close socket

End program

 

root@myir-yg2lx:~# ./simple_test eth0

SOEM (Simple Open EtherCAT Master)

Simple test

Starting simple test

ec_init on eth0 succeeded.

No slaves found!

End simple test, close socket

End program

root@myir-yg2lx:~#

 

总结

本开发板接口资源丰富,性能强,特别适合工控领域的应用,比如作为EtherCAT主站。由于没有从站,所以暂时未能演示和从站通讯的功能。

 

点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表