工控網(wǎng)首頁(yè)
>

應(yīng)用設(shè)計(jì)

>

米爾MYD-YG2LX開(kāi)發(fā)板在工控領(lǐng)域的應(yīng)用-基于SOEM的EtherCAT主站

米爾MYD-YG2LX開(kāi)發(fā)板在工控領(lǐng)域的應(yīng)用-基于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$

 

部署

生成的文件如下

其中l(wèi)ibsoem.a為庫(kù)文件

test/linux/下的

simple_test,slaveinfo,eepromtool為測(cè)試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$

 

開(kāi)發(fā)板端

編譯

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導(dǎo)入開(kāi)發(fā)板

chmod +x simple_test slaveinfo

運(yùn)行

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:~#

 

總結(jié)

本開(kāi)發(fā)板接口資源豐富,性能強(qiáng),特別適合工控領(lǐng)域的應(yīng)用,比如作為EtherCAT主站。由于沒(méi)有從站,所以暫時(shí)未能演示和從站通訊的功能。

審核編輯(
王靜
)
投訴建議

提交

查看更多評(píng)論
其他資訊

查看更多

海思Hi3093工控MPU-米爾嵌入式核心板開(kāi)發(fā)板

米爾RZ/G2L開(kāi)發(fā)板瑞米派雙核A55Remi Pi學(xué)習(xí)板兼容樹(shù)莓派擴(kuò)展模塊

米爾電子芯馳系列-D9-pro處理器D9360商顯板-國(guó)產(chǎn)六核CPU

米爾首發(fā)-全志T527核心板-國(guó)產(chǎn)開(kāi)發(fā)板,8核A55賦能邊緣計(jì)算

米爾電子 瑞薩系列-RZ/G2UL核心板,通用64位工業(yè)MPU