ZeroOne AI
← 返回文章列表

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

👁 3
分类:机器人自动化

本文详细记录在 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

评论(0