一起游 手游攻略 手游评测 周期抖动2μs!RK3576的IgH EtherCAT工业级主站方案很厉害

周期抖动2μs!RK3576的IgH EtherCAT工业级主站方案很厉害

时间: 来源:互联网 浏览:0

在工业自动化领域,如何在通用Linux系统上实现微秒级硬实时控制一直是机器人、多轴运动控制等高精度场景实现的关键挑战。开源的IgH EtherCAT Master协议栈以其优异的高实时性能和低抖动特性,成为连接工业现场总线和上层应用的核心桥梁。不过,要发挥其全部潜力,离不开Preempt-RT实时内核的强大加持。

本文将基于飞凌嵌入式OK3576-C开发板。通过1ms周期同步速度模式和125s周期同步扭矩模式的实测对比,展示系统如何在CPU隔离核心和满载压力下将通信抖动控制在微秒级,为您呈现完整的、可实施的高性能实时工业控制解决方案。

先说结论,性能很强!

周期同步速度模式,周期抖动由6.3080s降低为3.5790s;周期同步转矩模式,周期抖动由50.0470s降低为2.1130s!

1、IgH EtherCAT Master是什么?

在回答这个问题之前,我们先来看看什么是EtherCAT? EtherCAT 是发展最快的工业以太网协议之一。它采用硬件驱动架构,具有速度快、传输数据量大、传输距离远、更新周期短、连接设备数量多等多重优点。

wKgZO2ly8LqASxQ0ACy-ibhtLB0824.gif

IgH EtherCAT则是运行于Linux系统的开源EtherCAT主站程序,IgH EtherCAT主站搭建Linux字符设备,应用程序通过访问字符设备实现与EtherCAT主站模块的通信。

wKgZO2ly8LiAN-o6AAARYjjjw-k461.png

主要包括以下三个部分:

1. Master Module

角色:EtherCAT主站的“大脑”和核心。

功能:负责管理EtherCAT总线通信,实现主站和从站之间的数据交换和同步。包含主站实例以及底层驱动和上层应用调用的接口。

2. Device Modules

角色:针对实时性能优化的“网卡驱动”(如Rockchip RK平台的stmmac)。

功能:作为主站与物理网口之间的桥梁。可智能分流:使用主站选择的设备来发送和接收EtherCAT帧;未选中的设备使用常规协议栈作为普通以太网设备,实现EtherCAT和普通网络的并行工作。

wKgZPGly8LiAL_dqAAAV2vU3hXc011.png

3. Application

角色:业务逻辑的执行者(用户编写或生成)。

功能:通过申请接口向主站申请总线控制权。一旦获得批准,就可以配置总线并进行循环过程数据交换。应用程序可以是内核模块,也可以是通过库(EtherCAT/RTDM) 调用的用户空间程序。

wKgZPGly8LmATHW7AAQ3gCkFfyw307.png

评论区留言【资料】,即可获得IgH EtherCAT Master官方源码及技术手册的下载方式。

2、实时内核Preempt-RT

1. 独具优势:

IgH EtherCAT Master 需要运行在实时操作系统上,以保证高实时性。 Preempt-RT 是针对实时性能进行优化的Linux 内核。与普通Linux内核相比,Preempt-RT具有明显的优势:

硬实时保障:具有硬实时能力,可以保证关键任务在严格规定的时限内完成,不受其他任务干扰,满足工业自动化、航空航天等极高时间精度场景的需求。

高效调度与低延迟:采用基于优先级的抢占式调度算法,高优先级任务可以立即抢占低优先级任务;同时,对中断处理机制进行深度优化,大大缩短响应时间,消除系统抖动。

高精度定时:提供微秒级的核心定时器精度,配合实时扩展机制,支持用户定制核心,精确满足EtherCAT通信的周期性数据交换需求。

2. 实时性测试

本测试参考Rockchip RealTime Linux性能测试报告,分为空载测试和压力测试。测试环境如下:

工具:循环测试

硬件平台:OK3576-C开发板

内核版本:6.1.118-rt36

路径:SDK/docs/rk35xx/Patches/Real-Time-Performance/PREEMPT_RT/kernel-6.1/kernel-6.1.118

一个。配置Preempt-RT内核请参考用户资料:/1-Manual/OK35xx-Linux6.1.118-配置实时内核方法.pdf

b.不同硬件平台的实时测试结果请参考用户资料:/1-manual/OK35xx-Linux6.1.118-real-time test.pdf

空载测试:

循环测试-c 0 -m -t 8 -p99 -D12H

参数介绍:

-c 0:选择时钟源为CLOCK_MONOTONIC -m:锁定内存,防止内存页被交换到磁盘-t 8:创建8个测试线程-p 99:设置线程优先级为99 -D 12h:设置测试时长为12h wKgZO2ly8LiADozlAAECpXkG-2A177.png

压力测试:

压力-ng -c8 --io 8 --cpu-load 100 -vm 4 --vm-bytes 512M --超时10000000s

参数介绍:

-c 8:模拟8个CPU逻辑核满载运行--io 8:模拟磁盘I/O压力--cpu-load 100:设置CPU目标负载为100% --vm 4 --vm-bytes 512M:模拟内存压力--timeout 10000000s:设置测试时长为10000000秒wKgZO2ly8LmAWIWQAAEkDQTH1Gs615.png

3、演示案例

本节演示选择周期同步速度模式(通讯周期为1ms)和周期同步扭矩模式(通讯周期为125s)驱动伺服电机旋转。

1. 环境介绍

开发环境:内核:6.1.118-rt36IgH EtherCAT 主站:IgH EtherCAT 主站1.6.0-rc1EtherCAT 主站:OK3576-CEtherCAT 从站: (1) EtherCAT 耦合器EK1100 (2) 数字量输出模块EL2008 (3) 伺服驱动器IS620NS1R6I+伺服电机MS1H1-10B30CB A330Z

拓扑结构图:wKgZO2ly8LmAAeHOAAIrvq-vALE547.png

主站通过网线与EtherCAT耦合器EK1100连接。 EK1100通过E-Bus连接数字量输出模块EL2008,通过网线连接伺服驱动器IS620N。交流伺服电机MS1H1-10B30CB通过电源线和编码线与伺服驱动器IS620N连接。

使用EtherCat调试工具输出识别的从站:

wKgZPGly8LmAVJ1JAAAwj2D3Wto264.png

使用EtherCat调试工具输出总线拓扑:

wKgZPGly8LqAfo1gAACV6QFEeTk568.png

2. 伺服模式

IS620N支持7种伺服模式,分别为Profile位置模式(PP)、Profile速度模式(PV)、Profile扭矩模式(PT)、回零模式(HM)、周期同步位置模式(CSP)、周期同步速度模式(CSV)、周期同步扭矩模式(CST)。

不同模式支持不同的通信周期,如下图:

wKgZO2ly8LqASrTYAACzEsjWMPg584.png

3. 主站性能测试方法

参考以下定义:抖动和延迟的定义

wKgZPGly8LqADyKNAACxhIcCjSE623.png

参考官方示例代码:

示例/dc_user/main.c · stable-1.5 · EtherLab/EtherCAT Master · GitLab

有一个通信周期的最大和最小成本的统计。以1s为周期打印该区间内EtherCAT通讯周期时间的最大值和最小值。

wKgZPGly8LqAcVHXAAAxURZg3IE130.png

演示一:周期同步速度模式(1ms)

周期同步速度模式下,上位控制器周期性同步地将计算出的目标速度60FF发送给伺服驱动器,速度和扭矩调整由伺服内部进行。

基本配置:wKgZO2ly8LuAWWssAAEnqgYypfA856.png

使用EtherCat调试工具输出pdo信息:

wKgZO2ly8LqAKTxbAAA8O0qP4mw952.png

操作步骤:步骤1:设置模式,OD 6060h=09h,循环同步速度模式。

步骤2:设置目标速度,OD 60FFh=0。由于在速度模式下,一旦切换到Servo On(步骤3),伺服电机就会开始运行,所以设置0是为了保证在Servo On期间保持0rpm而不运行。

步骤3:设置控制命令OD 6040h,请按照以下步骤操作。步骤3.1和3.2是将驱动器的状态机置于就绪状态。

wKgZPGly8LqAI2YdAACpseAit3Y943.png第4步:设置目标速度OD 60FFh。

性能指标: 压力测试(6小时)

压力-c 4 --io 2 --vm 1 --vm-bytes 256M --超时1000000s

./igh_ethercat_motor_csv

wKgZO2ly8LqAAiugAABLeboMEoU296.png wKgZPGly8LuAD45LAADlUNHUa9U824.png

隔离测试+隔离芯(6h)

压力-c 4 --io 2 --vm 1 --vm-bytes 256M --超时1000000s

任务集-c 7 ./igh_ethercat_motor_csv

wKgZO2ly8LuAJQigAABJISFtopQ866.png wKgZO2ly8LuAYCiQAADn_TIMgJw909.png

演示二:周期同步转矩模式(125s)该模式下,上位控制器周期性同步将计算出的目标扭矩6071h 发送至伺服驱动器,由伺服内部进行扭矩调整。当速度达到极限值时,进入调速阶段。

基本配置:wKgZPGly8LuAGwbMAAFRC4PZPLo178.png

使用EtherCat调试工具输出pdo信息:

wKgZPGly8LuATjIsAAA_WRF1QZs164.png

操作步骤:步骤1:设置模式,OD 6060h=0Ah,周期同步扭矩模式。

步骤2:设置目标扭矩,OD 6071h=0。由于在扭矩模式下,一旦切换到Servo On(步骤3),伺服目标扭矩就会生效,所以先将其设置为0以确保安全。

步骤3:设置控制命令OD 6040h,请按照以下步骤操作。步骤3.1和3.2是将驱动器的状态机置于就绪状态。

wKgZO2ly8LuAdAXtAACr67gqOIg049.png第4 步:设置目标扭矩OD 6071h。

性能指标: 压力测试(6小时)

压力-c 4 --io 2 --vm 1 --vm-bytes 256M --超时1000000s

./igh_ethercat_motor_cst

wKgZPGly8LuADUuHAABIW_-HUvQ154.png wKgZPGly8LyAaRFAAADk9w-ydG8376.png

压力测试+隔离核心(6h)

压力-c 4 --io 2 --vm 1 --vm-bytes 256M --超时1000000s

任务集-c 7 ./igh_ethercat_motor_cst

wKgZPGly8LyAHbUFAABJLr81ys4985.png wKgZO2ly8LyAUUIEAADfx0JT8Jc467.png

上述测试消除了未及时恢复的数据帧的统计周期样本。当运行125s的周期时,未及时恢复的帧会变得更加频繁。

在两个演示的性能测试中,应用程序都采用了FIFO调度+内存锁定;采用隔离核心策略,可以降低系统的周期抖动。

周期同步速度模式,周期抖动由6.3080s降低为3.5790s。周期同步转矩模式,周期抖动由50.0470s降低为2.1130s。方案展示:wKgZPGly8L6Ac2orADkS1DfNXvI423.gif

标题:周期抖动2μs!RK3576的IgH EtherCAT工业级主站方案很厉害
链接:https://yqqlyw.com/news/sypc/72063.html
版权:文章转载自网络,如有侵权,请联系删除!
资讯推荐
更多
  • EtherCAT总线之IO模块读写
  • 绯红之境兑换码最新2021 礼包兑换码大全

    绯红之境兑换码最新2021 礼包兑换码大全[多图],绯红之境兑换码怎么领取?绯红之境兑换码有哪些?绯红之境在今日

    2026-01-26
    三国群英传7霸王再临攻略 霸王再临攻略技巧开启方法

    三国群英传7霸王再临攻略 霸王再临攻略技巧开启方法[多图],三国群英传7霸王再临怎么玩?三国群英传7霸王再临

    2026-01-26
    妄想山海怎么加好友 加好友方法大全

    妄想山海怎么加好友 加好友方法大全[多图],妄想山海添加好友功能在哪里?妄想山海添加好友的方法是什么?好友添

    2026-01-26
    江南百景图又见桃花村钓鱼位置在哪?又见桃花村钓鱼攻略

    江南百景图又见桃花村钓鱼位置在哪?又见桃花村钓鱼攻略[多图],江南百景图又见桃花村钓鱼怎么钓?又见桃花村钓

    2026-01-26