ZeroOne AI
← 返回文章列表

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

👁 27
分类:机器人自动化

本文详细记录在 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、智能制造与技术实践文章

机器人自动化

手把手做ROS2机器人系统开发(四):C++实现发布者与订阅者

发布者(Publisher)与订阅者(Subscriber)是 ROS2 话题通信的核心模型,也是所有机器人应用(传感器数据分发、状态上报、控制指令下发等)的基础。本章节使用 C++ 编写一个最小可运行的发布者/订阅者示例,作为后续开发的标准模板,帮助大家清晰掌握节点程序的完整编写流程。

机器人自动化

TRIO-Basic 从入门到精通(三):轴参数的含义

本文系统讲解 TRIO 运动控制器伺服轴参数表中各参数的含义与用途,涵盖单位当量 UNITS/AXIS_UNITS、增益参数、速度加减速、软件/硬件限位、原点信号、位置偏差报警、点动与色标捕捉等,并说明 UNITS 在 FRAME 坐标系开启前后的区别,是配置伺服轴与调试运动表现的必备基础。

机器人自动化

TRIO-Basic 从入门到精通(二):MPV4 软件的使用

本文介绍 TRIO MPV4 编程软件的连接与基本操作:通过 Controller=>Connection 连接控制器或仿真器,掌握同步模式、工具模式、直连模式三种连接方式,熟悉新建、上传、下载程序等工程管理操作,并逐一讲解工具栏各功能按钮的用途,帮助初学者快速上手 TRIO 在线编程环境。

工业AI

小龙虾 Skill 技能编写入门:从 Markdown 到工业智能体工具调用

本文从最简单的 SKILL.md 讲起,系统介绍工业智能体“小龙虾”的 Skill 技能编写方法:功能说明、触发条件、执行流程、工具调用、权限分级,并结合 MES、MQTT、RAG、AGV 等工业场景,说明如何让 AI 从“聊天机器人”进化为能查询实时数据、执行任务的工业智能体。

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

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

数码印刷

RIP 颜色计算原理:RGB→CMYK 转换与陶瓷喷墨色彩管理

系统讲解喷码 RIP 软件中 RGB 到 CMYK 的颜色转换原理:从基础数学公式出发,说明为何工业级陶瓷喷墨必须采用 ICC 色彩管理,并给出墨量限制、GCR 黑版生成、喷头分色等关键计算模块与数据结构设计。

评论(0)