请问我要在s600上运行机械臂视觉伺服程序,需要运行ethercat来发送机械臂控制命令,同时也要运行视觉AI推理模型,请问AI推理会影响ethercat的实时性吗?或者需要做什么样的配置来保证ethercat的通信周期的稳定?
可以的,这两个任务硬件上就不冲突:AI 推理跑在 BPU(独立 NPU)上,CPU 只负责前后处理;EtherCAT 主站周期任务跑在 CPU 上。只要把实时配置做对,推理负载基本不会影响 EtherCAT 周期稳定性。
建议做这几件事:
- 确认实时内核已启用,这是周期稳定的前提:
uname -a # 输出里应有 PREEMPT_RT
S 系列官方支持实时内核(S100 默认启用),S600 上建议按文档确认或用 rt-tests 实测:
-
EtherCAT 主站周期线程用实时调度(SCHED_FIFO,优先级高于推理前后处理线程),推理相关线程保持普通优先级即可。S600 默认镜像预装 IgH 1.5.x + native 驱动(ec_hobot),配置见官方文档:
ethercat | RDK S100/S600 DOC -
别让 NetworkManager 管理 EtherCAT 网口(文档里的方案一),避免网络管理动作干扰周期通信。
-
带压实测:推理程序满负荷跑的同时用 cyclictest 验证最坏延迟是否满足你的周期要求:
sudo apt install rt-tests
sudo cyclictest -l50000000 -m -S -p90 -i200 -h400
如果实测发现偶发大延迟,可以把视觉推理和 EtherCAT 线程绑到不同 CPU 核上进一步隔离。