米尔MYD-YG2LX开发板在工控领域的应用-基于SOEM的EtherCAT主站

下载代码

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主站。由于没有从站,所以暂时未能演示和从站通讯的功能。

标签: 科技行业资讯

猜你喜欢