ZeroOne AI
← 返回文章列表

LinuxCNC 开发系列教程(一):Ubuntu 环境下安装 EtherCAT 主站

👁 19
分类:机器人自动化

本文详细记录在 Ubuntu + RTAI 实时内核环境下,从源码编译安装 IGH EtherLab 开源 EtherCAT 主站的完整流程,涵盖依赖安装、源码获取、编译配置、内核模块安装与网卡配置,帮助工业自动化开发者快速搭建实时以太网运动控制平台。

项目背景

EtherCAT 是一种高性能实时工业以太网总线,凭借微秒级同步精度和灵活的拓扑结构,被广泛应用于 CNC 数控、机器人、运动控制等工业自动化场景。LinuxCNC 作为开源 CNC 控制系统,配合 RTAI 实时内核与 IGH EtherLab 开源 EtherCAT 主站,可以构建低成本、高实时性的开放式运动控制平台。

本文记录在 Ubuntu 环境下从源码编译安装 EtherCAT 主站的完整过程,并整理常见依赖问题,帮助开发者少走弯路。

技术方案

系统架构

EtherCAT 主站以 Linux 内核模块(ec_master.ko)形式运行,通过以太网控制器(8139too / generic 驱动)与总线上的从站通信。用户空间提供 ethercat 命令行工具与 libethercat 库,供 LinuxCNC 等应用层软件调用,实现对从站 IO、伺服驱动等设备的实时控制。

实施过程

1. 安装依赖工具

需要 mercurial(hg)拉取源码,以及完整的编译工具链:

sudo apt-get install mercurial
sudo apt-get install build-essential libtool autoconf automake

2. 获取主站源码

hg clone http://hg.code.sf.net/p/etherlabmaster/code etherlabmaster-code
cd etherlabmaster-code

3. 生成配置脚本

./bootstrap

bootstrap 会调用 autoreconf 生成 configure 脚本。若提示缺少 autoreconf 或 libtoolize,说明 autoconf、automake、libtool 未安装完整,补齐后重新执行。

4. 配置编译参数

./configure

configure 会自动检测内核源码路径(如 /usr/src/linux-headers-3.4-9-rtai-686-pae)与编译环境,生成 Makefile 及内核模块构建规则。

5. 编译所有模块

make all modules

6. 安装模块与工具

make modules_install install

该命令将内核模块(ec_master.ko、ec_generic.ko、ec_8139too.ko 等)安装到内核模块目录,并将 ethercat 工具、库文件与启动脚本安装到 /opt/etherlab/。

7. 刷新模块依赖

depmod

8. 配置网卡与启动脚本

# 建立启动脚本软链接
ln -s /opt/etherlab/etc/init.d/ethercat /etc/init.d/ethercat
# 拷贝网卡配置文件
mkdir -p /etc/sysconfig
cp /opt/etherlab/etc/sysconfig/ethercat /etc/sysconfig/ethercat
# 编辑配置文件
sudo gedit /etc/sysconfig/ethercat

配置要点:

配置项说明
MASTER0_DEVICE填写实际网卡 MAC 地址(通过 ifconfig 获取)
DEVICE_MODULES设置为 generic

保存后建立命令软链接,并添加 udev 规则创建设备节点:

ln -s /opt/etherlab/bin/ethercat /usr/local/bin/ethercat
echo 'KERNEL=="EtherCAT[0-9]*", MODE="0664"' > /etc/udev/rules.d/99-EtherCAT.rules

应用价值

SEO关键词

EtherCAT主站, LinuxCNC, EtherCAT安装, 实时以太网, RTAI内核, 运动控制, Ubuntu

推荐阅读

更多工业 AI、智能制造与技术实践文章

机器人自动化

TRIO-Basic 从入门到精通(五):直线与圆弧插补指令的使用

本文讲解 TRIO-Basic 三大运动指令:MOVE 相对移动、MOVEABS 绝对移动与 MOVECIRC 平面圆弧插补,给出各自的语法格式、完整可运行的代码示例(含轴参数段与矩形圆角轮廓插补示例),并说明增益参数的使用前提,帮助开发者快速上手多轴轨迹编程。

机器人自动化

TRIO-Basic 从入门到精通(二十):Trio通过空间圆弧三点计算圆弧中心和半径

本文用TRIO-Basic手写实现空间圆弧三点求圆心与半径算法:由三点确定圆弧平面法向量,求两条中垂线交点得到圆心并输出半径,与Trio原装SPHERE_CENTRE指令计算结果对比一致,适用于空间圆弧插补与轨迹规划。

C#调用Intel NPU实现YOLOv26极速推理:OpenVINO工业视觉加速实践

通过C# + OpenVINO Runtime调用Intel Core Ultra NPU运行YOLOv26模型,实现低功耗、毫秒级的工业边缘AI视觉推理,涵盖模型导出、环境配置、推理代码与FP16/INT8/异步推理等性能优化实践。

C#工业视觉平台结合YOLOv26与OpenVINO

从数据标注、自动训练到Intel NPU边缘推理的完整工业AI方案:C#工业软件平台 + YOLOv26训练框架 + OpenVINO模型转换 + Intel NPU边缘推理,实现图像采集、自动标注、模型训练到现场推理的完整AI视觉闭环。

工业互联网

MY-BASIC 应用(一):轻量级嵌入式 BASIC 解析器介绍

MY-BASIC 是一个用标准 C 语言编写的轻量级 BASIC 解释器:不足 128KB 内存占用、可嵌入可扩展、支持原型编程与 Lambda 函数式编程、Unicode、列表/字典集合,适合嵌入式设备脚本化控制。

工业互联网

Linux系统篇(七)——工具篇(二):一篇搞懂 C 语言程序从代码到可执行文件的完整旅程

拆解 C 程序预处理、编译、汇编、链接四步变身流程,讲透条件编译与静态、动态链接差异,附分步实操与报错排查。

评论(0)