pg直营网-pg网赌游戏 >关于创龙 > 新闻资讯 > 技术文章

    联系pg直营网

    contact us

    公司总机:020-8998-6280

    技术热线:020-3893-9437

    技术邮箱:support@tronlong.com

    销售邮箱:sales@tronlong.com

    开源igh ethercat主站方案,基于imx8、zynq、am335x、t3等平台

    2021/09/17

    前 言:创龙科技已基于imx8、zynq、am5728、am5708、am437x、am335x、t3/a40i等平台提供了开源ethercat主站igh案例。本文档主要演示tlimx8-evm评估板基于igh ethercat控制伺服电机方法。如需其他平台相关资料,请与我们联系。


    本文档适用开发环境:

    windows开发环境:windows 7 64bit、windows 10 64bit

    linux开发环境:ubuntu 18.04.4 64bit

    虚拟机:vmware15.1.0

    linux sdk:5.4.70_2.3.0

    kernel:linux-5.4.70-xenomai-g8d94618-v1.0

    igh ethercat:ethercat-stable-1.5-gcd0d17d-20210723

    xenomai:xenomai-v3.1.1-g8b2052e

    伺服驱动器:台达asd-a2-0121-e

    伺服电机:台达ecma-c10401gs


    硬件平台:tlimx8-evm评估板(nxp i.mx 8m mini)


    (点击图片查看产品详细介绍)

    图 2 tlimx8-evm评估板



    案例详细说明请扫描下方二维码或点击下载链接:

    http://site.tronlong.com/pfdownload

    开源igh ethercat主站方案,基于imx8、zynq、am335x、t3等平台-pg直营网

    igh ethercat为运行于linux系统的免费开源ethercat主站程序,框架如下所示,官方文档:https://www.etherlab.org/download/ethercat/ethercat-1.5.2.pdf。


    图 1

    igh ethercat主站通过构建linux字符设备,应用程序通过对字符设备的访问实现与ethercat主站模块的通信。

    igh ethercat开发包提供ethercat工具,该工具提供各种可在linux用户层运行的命令,可直接实现对从站的访问和设置,如设置从站地址、显示总线配置、显示pdo数据、读写sdo参数等。

    igh ethercatpg直营网官网:https://www.etherlab.org/en/ethercat。

    案例功能:控制伺服电机正转和反转。

    1. 正转:伺服电机目标速度从0加速到10000,当达到10000速度后,控制伺服电机减速至0,循环运行。
    2. 反转:伺服电机目标速度从0加速到-10000,当达到-10000速度后,控制伺服电机减速至0,循环运行。

    图 2

    为便于测试,我司提供已验证的基于xenomai编译生成的内核镜像文件和设备树镜像文件,位于案例"igh_ethercat_dc_motor\kernel-xenomai\images\linux-5.4.70-xenomai-g8d94618-v1.0\"目录下,请替换至linux系统启动卡boot分区下。同时将linux-5.4.70-xenomai-g8d94618-v1.0目录下的module驱动压缩包5.4.70-g8d94618.tar.gz,解压至linux系统启动卡rootfs分区"lib/modules/"目录下。

    备注:如需使用由内核源码重新编译生成的内核镜像文件、设备树文件和modules驱动,请参考linux系统使用手册将编译的module驱动安装至linux系统启动卡中,默认安装后module驱动目录为5.4.70。

    图 3

    请按下图所示使用网线连接评估板rgmii eth网口和伺服驱动器a的in网口,将伺服驱动器a的out网口使用网线连接至伺服驱动器b的in网口。

    图 4

    图 5

    为便于测试,我司提供的经验证的igh ethercat主站程序为案例"igh_ethercat_dc_motor\igh_ethercat\images\ethercat-stable-1.5-gcd0d17d-20210723\"目录下的ethercat-stable-1.5-gcd0d17d-20210723.tar.gz压缩包,在ubuntu下解压即可得到igh ethercat主站程序文件夹。

    将igh ethercat主站程序文件夹整个拷贝至评估板文件系统,执行如下命令查询评估板网卡物理地址。本次测试将igh ethercat主站程序文件夹命名为__install。

    target# ifconfig

    图 6

    执行如下命令,加载驱动模块。

    target# insmod /home/root/ethercat/__install/modules/ec_master.ko main_devices=ce:bb:9d:3b:d3:6b

    图 7

    执行如下命令,拷贝ethercat主站相关文件至评估板文件系统。

    target# cp /home/root/ethercat/__install/etc/sysconfig/ethercat /etc/sysconfig

    target# cp /home/root/ethercat/__install/modules/ec_master.ko /lib/modules/5.4.70-g8d94618 //模块驱动名称可通过"uname -r"查看

    target# depmod //同步模块依赖关系

    图 8

    执行如下命令,启动ethercat主站。

    target# /home/root/ethercat/__install/etc/init.d/ethercat start

    图 9

    执行如下命令,加载ec_generic.ko驱动文件。

    target# insmod /home/root/ethercat/__install/modules/ec_generic.ko

    图 10

    执行如下命令,添加igh动态链接库路径。

    target# export ld_library_path=$ld_library_path:/home/root/ethercat/__install/lib

    图 11

    将案例igh_ethercat_dc_motor可执行文件拷贝至评估板文件系统,执行如下命令查看参数信息。

    target# ./igh_ethercat_dc_motor --help

    图 12

    执行如下命令,控制两台伺服电机同时正转。

    target# ./igh_ethercat_dc_motor -d 0

    图 13

    图 14

    按下"ctrl c",停止运行程序。

    图 15

    执行如下命令,控制两台伺服电机同时反转。

    target# ./igh_ethercat_dc_motor -d 1

    图 16

    图 17

    按下"ctrl c",停止运行程序。

    图 18

    备注:案例设置ethercat周期为1.1ms,同时串口循环打印ethercat周期的最小值和最大值。

    参数解析:

    1. latency:等待唤醒时间。
    2. period:ethercat通讯周期时间。
    3. exec:接收和发送ethercat数据时间。

    4.1igh ethercat主站程序编译

    igh ethercat主站程序的编译需依赖于基于xemomai生成的内核,请参考linux系统使用手册将案例"igh_ethercat_dc_motor\kernel-xenomai\src\"目录下的linux-5.4.70-xenomai-g8d94618-v1.0内核源码进行编译后,再编译igh ethercat主站程序。

    请将案例"igh_ethercat_dc_motor\igh_ethercat\src\"目录下的igh ethercat主站程序开发包ethercat-stable-1.5-gcd0d17d-20210723.tar.gz拷贝至ubuntu工作目录,执行如下命令进行解压。

    host# mkdir ethercat

    host# tar -xvf ethercat-stable-1.5-gcd0d17d-20210723.tar.gz -c ethercat/

    图 19

    进入解压目录,执行如下命令生成configure文件。

    host# ./bootstrap

    图 20

    执行如下命令,加载sdk环境变量并进行配置。

    host# source /home/tronlong/sdk/environment-setup-aarch64-poky-linux

    host# mkdir __install //创建__install文件夹用于存放生成的文件

    host# ./configure --prefix=/home/tronlong/ethercat/__install --with-linux-dir=/home/tronlong/kernel-xenomai/ --enable-8139too=no --enable-generic=yes --host=aarch64-poky-linux

    备注:"/home/tronlong/kernel-xenomai/"为案例提供的内核源码目录。

    图 21

    图 22

    执行如下命令,进行编译。

    host# make

    图 23

    图 24

    执行如下命令,编译驱动。

    host# make modules

    图 25

    图 26

    执行如下命令,将生成的igh ethercat主站程序安装至指定路径下。

    host# make install systemdsystemunitdir=/home/tronlong/ethercat/__install

    图 27

    图 28

    执行如下命令,将驱动文件拷贝至"__install/modules/"目录下。

    host# mkdir -p __install/modules

    host# cp ./master/ec_master.ko ./__install/modules/

    host# cp ./devices/ec_generic.ko ./__install/modules/

    图 29

    4.2igh_ethercat_dc_motor案例编译

    igh_ethercat_dc_motor案例的编译需基于igh ethercat主站程序,请先编译igh ethercat主站程序。

    请将案例"igh_ethercat_dc_motor\src\"目录拷贝至ubuntu工作目录下,进入src目录执行如下命令修改makefile相关内容为igh ethercat主站程序对应目录。

    host# vi makefile

    图 30

    图 31

    然后执行如下命令,加载sdk环境变量并进行编译。编译完成后,将在当前目录下生成可执行文件。

    host# source /home/tronlong/sdk/environment-setup-aarch64-poky-linux

    host# make

    图 32

    1. 创建ethercat master。

    图 33

    2.创建域。

    图 34

    3.配置pdo。

    图 35

    4.为域注册pdo条目。

    图 36

    5.激活master。

    图 37

    6.修改当前进程优先级。

    图 38

    7.进入循环周期任务。

    图 39

    8.在周期任务中设置驱动器操作模式、加速度和减速度,分别发送0x6、0x7、0xf使驱动器处于on状态。

    图 40

    9.发送目标速度,转动电机。

    图 41

    xenomai是一个免费开源的linux平台实时框架,通过使用与linux内核并行运行的实时协同内核(real-time co-kernel)处理所有对时间要求严格的活动,例如处理中断和调度实时线程。cobalt core比原生linux与rt-linux内核具有更高的优先级。

    图 42

    图 43

    6.1编译说明

    案例使用的xenomai版本为3.1.1,开发包为案例"igh_ethercat_dc_motor\xenomai\src\"目录下的xenomai-v3.1.1-g8b2052e.tar.gz,将其拷贝至ubuntu工作目录下,执行如下命令进行解压。

    host# mkdir xenomai

    host# tar -xvf xenomai-v3.1.1-g8b2052e.tar.gz -c xenomai/

    图 44

    进入解压目录,执行如下命令在当前目录生成configure文件。

    host# ./scripts/bootstrap

    图 45

    执行如下命令,加载sdk环境变量并进行配置,请确保已正确安装交叉编译工具。

    host# source /home/tronlong/sdk/environment-setup-aarch64-poky-linux

    host# ./configure --build=i686-pc-linux-gnu --host=aarch64-poky-linux --disable-debug --enable-smp --with-core=cobalt

    图 46

    图 47

    host# mkdir __install //创建__install文件夹用于存放生成的文件

    host# make destdir=/home/tronlong/xenomai/__install install

    图 48

    编译完成后,将在__install目录下生成usr文件夹。

    图 49

    6.2测试说明

    为便于测试,我司提供的经验证的xenomai测试程序为案例"igh_ethercat_dc_motor\xenomai\images\xenomai-v3.1.1-g8b2052e\"目录下xenomai-v3.1.1-g8b2052e.tar.gz压缩包,在ubuntu下解压即可得到xenomai测试程序文件夹。

    请使用已替换内核的linux系统启动卡启动评估板,将xenomai测试程序文件夹整个拷贝至评估板文件系统,执行如下命令拷贝xenomai相关文件和设置动态链接库。本次测试将xenomai测试程序文件夹命名为__install。

    target# cp -r xenomai/__install/usr/xenomai/ /usr/

    target# export ld_library_path=/usr/xenomai/lib:$ld_library_path

    图 50

    xenomai的测试工具均位于"/usr/xenomai/bin/"目录下,可调用对应测试工具进行测试。

    图 51

    使用cyclictest工具进行实时性能基准测试。

    target# echo 0 > /proc/xenomai/latency

    target# /usr/xenomai/demo/cyclictest -t5 -p98 -m -n

    图 52

    表 1 cyclictest测试结果说明


    联系创龙

    公司总机:020-8998-6280

    技术热线:020-3893-9734

    技术邮箱:support@tronlong.com

    销售邮箱:sales@tronlong.com



    创龙官方微信公众号

    pg直营网 copyright © 2013~2021 广州创龙电子科技有限公司 all rights reserved  |

    网站地图