匿名  发表于 2026-9-4 10:18:26 | 阅读模式

『7x24小时有问必答』
在工业自动化领域,运动控制系统往往面临两大痛点:实时性要求极高,同时又需要直观的人机交互界面。传统方案要么牺牲实时性换取界面体验,要么用昂贵的专用 HMI 设备来弥补。
今天分享一个基于睿擎派 RC3506  的完整方案——用  LVGL 图形界面 + EtherCAT 总线,在一块开发板上同时搞定可视化操控和微秒级实时控制。(文末附完整工程源码及使用指南扫码领取)
  

效果先看

---

触摸屏上拖动滑块 → 伺服电机精准转到指定位置;点击 Run/Stop 按钮 → 电机启停;切换 Direct/Reverse → 方向立即响应。屏幕上的位置表盘实时显示期望位置和当前位置,一目了然。

7寸触控屏上的 LVGL 控制界面:位置表盘 + 滑块 + 运行控制按钮
与此同时,EtherCAT 总线上挂载的远程 IO 模块同步输出流水灯效果,展示多从站并行控制能力。

   <video width="640" height="360" controls="" data-v-01187d47="" poster="http://mmbiz.qpic.cn/sz_mmbiz_jpg/ZyMBgriawJhKj8A2JZefUyZkDibzWjQSAXNFXJE9Gb8UXdVWuWK2iboECapqDiaZ9YSF1RsLXrlcQReuRzWdN73KooR6EukBVpLicIy1Qwl8yKEU/0?wx_fmt=jpeg&wxfrom=16" webkit-playsinline="isiPhoneShowPlaysinline" playsinline="isiPhoneShowPlaysinline" preload="metadata" crossorigin="anonymous"> 您的浏览器不支持 video 标签 </video>   <!-- S 视频社交-->      
LVGL 界面动态演示

为什么选 EtherCAT?

EtherCAT(Ethernet for Control Automation Technology)是目前工业现场总线中实时性最强的协议之一:
●  通信周期最低 1ms,支持分布式时钟(DC)同步,精度达微秒级
●  "飞速处理"机制:数据帧在经过从站时直接被读写,无需等待,延迟极低
●  菊花链拓扑:一根网线串联多个从站,布线简单,最多支持 65535 个节点
●  使用标准以太网硬件,无需专用芯片,成本可控

睿擎派 RC3506 内置 EtherCAT 主站协议栈,配合 RT-Thread 实时操作系统,可以稳定跑出  1ms 控制周期。

硬件准备

连接方式:
睿擎派 ETH0 ──网线──> 伺服驱动器 IN 口

                                   伺服驱动器 OUT 口 ──网线──> 远程 IO IN 口

睿擎派 MIPI 接口 ──排线──> 7 寸触控屏

EtherCAT 主从站硬件连接示意:睿擎派 → 伺服驱动器 → 远程 IO

软件架构

整个示例的软件结构非常清晰,main 函数只做两件事:
intmain(void)

{

lvgl_thread_init();// 启动 LVGL 图形线程

ethercat_domain_init();// 启动 EtherCAT 控制线程

return0;

}

两个线程并行运行,互不干扰:
●  LVGL 线程:负责渲染界面、响应触摸事件,将用户操作写入共享变量
●  EtherCAT 线程:以 1ms 为周期读取共享变量,通过 PDO 下发目标位置给伺服驱动器

EtherCAT 主站初始化流程

EtherCAT 的状态机切换是标准流程,睿擎平台封装得很简洁:
// 1. 初始化主站服务

ecat_service_init();

// 2. 自动扫描总线拓扑,发现所有从站

ecat_master_init(&csp_master);

// 2. 自动扫描总线拓扑,发现所有从站

slave_counts  =ecat_slavecount(&csp_master);;

// 3. 配置分布式时钟(DC)同步

slave_cia402_config.dc_assign_activate  =0x300;

slave_cia402_config.dc_sync[0].cycle_time  =  csp_master.main_cycletime_us  *1000;

slave_cia402_config.dc_sync[0].shift_time  =500000;

slave_cia402_config.dc_sync[1].cycle_time  =0;

slave_cia402_config.dc_sync[1].shift_time  =0;

// 4. 配置 PDO 映射(目标位置、控制字、状态字等)

slave_cia402_config.sync  =  slave_syncs;

slave_cia402_config.sync_count  =sizeof(slave_syncs)/sizeof(ec_sync_info_t);

ecat_slave_config(&csp_master,0,&slave_cia402_config);

// 5. 启动主站自动完成状态机切换:INIT → PRE-OP → SAFE-OP → OPERATIONAL

ecat_master_start(&csp_master);

state  =  EC_STATE_OPERATIONAL;

ecat_check_state(&csp_master,0,&state,20000000*3);

进入 OPERATIONAL 状态后,主站开始周期性收发过程数据(PDO),电机控制正式开始。

CSP 模式:周期同步位置控制

本示例使用  CSP(Cyclic Synchronous Position)模式,这是伺服控制中最常用的模式之一:

主站每个控制周期向伺服驱动器发送目标位置,驱动器内部完成位置环、速度环、电流环的闭环控制。主站只需关心"去哪里",不需要关心"怎么去"。
核心控制循环如下:
while(1)

{

servo_switch_op(rmap,  tmap);// 进行伺服状态机切换

if(rmap->control_word  ==7)

{

            rmap->mode_byte  =0x8;

            rmap->dest_pos  =  tmap->cur_pos;// 同步当前位置

}

if(rmap->control_word  ==0xf)

{

if(motor_target_pos_last  !=  motor_target_pos)

{

/* 获取当前位置 */

                  motor_current_pos  =PULSE_TO_ANGLE(tmap->cur_pos);

if(abs(motor_current_pos  -  motor_target_pos)<=0)

{

                        rmap->dest_pos  =  tmap->cur_pos;

if(abs(tmap->cur_pos  -  rmap->dest_pos)<=10)

{

/* 微调目标位置 */

                              motor_target_pos_last  =  motor_target_pos;

}

goto  stop;

}

if(servo_dir)

{

                        rmap->dest_pos  -=  motor_step;// 根据方向步进目标位置

}

else

{

                        rmap->dest_pos  +=  motor_step;// 根据方向步进目标位

}

}

}

stop:

rt_thread_delay(5);

}

servo_run、motor_target_pos、servo_dir 这些变量由 LVGL 界面线程写入,EtherCAT 线程读取,实现了界面与控制的解耦。

PDO 映射:主站与从站的数据约定

PDO(Process Data Object)定义了每个控制周期主站和从站交换哪些数据:
主站 → 从站(RPDO,输出):
对象字典
含义
0x6060
工作模式(设为 0x08 = CSP 模式)
0x6040
控制字(使能/停止/故障复位)
0x607A
目标位置
0x60FF
目标速度
0x6071
目标转矩
从站 → 主站(TPDO,输入):
对象字典
含义
0x603F
错误码
0x6041
状态字(当前状态)
0x6064
实际位置(反馈给 LVGL 显示)
0x606C
实际速度
0x6077
实际转矩
实际位置 0x6064 会实时回传给 LVGL 界面,驱动表盘指针更新,让操作者直观看到电机当前位置。

多从站扩展:双电机 + IO 并行控制

睿擎平台同样支持一拖多的 EtherCAT 拓扑,只需在初始化时扫描从站数量,循环处理每个从站的 PDO 即可:

双电机 + 远程 IO 模块菊花链连接拓扑
slave_counts  =ecat_slavecount(&csp_master);

while(1){

for(size_t  slave  =0;  slave  <  slave_counts;  slave++)

{

      rmap  =(structrpdo_csp*)(info[slave].outputs);

      tmap  =(structtpdo_csp*)(info[slave].inputs);

if(info[slave].vendor_id  !=0xee000002)

{// 伺服电机控制

servo_switch_op(rmap,  tmap);

if(rmap->control_word  ==7)

{

                  rmap->dest_pos  =  tmap->cur_pos;

                  rmap->mode_byte  =0x8;

}

elseif(rmap->control_word  ==0xf)

{

                  rmap->dest_pos  =  tmap->cur_pos;

if(servo_dir  ==0)

{

                        rmap->dest_pos  -=10000;

}

else

{

                        rmap->dest_pos  +=10000;

}

}

}

else

{// 流水灯控制

if(rt_tick_get()-  last_ms  >  RT_TICK_PER_SECOND  /4)

{

staticuint8_t  index  =0;

uint16_t*out  =(uint16_t*)rmap;

                  last_ms  =rt_tick_get();

*out  =(0x01<<  index);

                  index++;

if(index  >=16)

                        index  =0;

}

}

}

stop:

rt_thread_mdelay(5);

}

电机控制和 IO 控制在同一个 1ms 周期内完成,完全同步。

快速上手

第一步:
在RuiChing Studio中选择 05_gui_lvgl_ethercat_motor_control_7in_1024_600 示例工程
睿擎派 RC3506 开发板 + EtherCAT 伺服驱动器实物连接
第二步:  按硬件连接图接好网线和显示屏,上电
第三步:  编译下载,启动调试,显示屏自动亮起控制界面
第四步:  拖动滑块设置目标位置,点击  Run/Stop  启动电机

整个过程无需手写一行 EtherCAT 协议代码,睿擎平台已封装好所有底层细节。

适用场景

●  多轴运动控制:CNC 机床、机械臂、自动化产线
●  工业 HMI:替代传统触摸屏 PLC,降低系统成本
●  教学与原型验证:快速验证 EtherCAT 控制方案可行性
●  设备状态可视化:实时显示电机位置、速度、转矩等运行参数

总结

这个示例展示了睿擎派 RC3506 在工业控制场景的完整能力:
  RT-Thread 实时内核保障 1ms EtherCAT 控制周期
  LVGL 图形框架提供流畅的触控操作界面
  EtherCAT 主站协议栈支持 CSP/CSV/CST 多种控制模式
  多从站并行控制,电机 + IO 同步运行
  RuiChing Studio 一键创建工程,开箱即用
如果你正在寻找一个既能跑实时控制、又能做可视化界面的嵌入式平台,睿擎派值得一试。
示例工程:
通过 RuiChing Studio 搜索 05_gui_lvgl_ethercat_motor_control_7in_1024_600 即可获取
开发文档:https://www.rt-thread.com/ruiching/document/site/
技术交流:欢迎在评论区留言,或加入睿擎开发者社区

完整资料包领取

想亲手跑通这个 LVGL + EtherCAT 电机控制示例?我们整理了完整资料包,助你快速复现:
示例完整工程源码(RuiChing Studio 可直接导入)
LVGL 界面源码 + 触控驱动配置说明
EtherCAT 主站使用指南
伺服驱动器 ESI 文件及配置指南
扫码下方二维码,填写简单表单(仅需1分钟),资料包将发送至您的邮箱。

——————End——————

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码