LinuxCNC 开发系列教程(一):Ubuntu 环境下安装 EtherCAT 主站
本文详细记录在 Ubuntu + RTAI 实时内核环境下,从源码编译安装 IGH EtherLab 开源 EtherCAT 主站的完整流程,涵盖依赖安装、源码获取、编译配置、内核模块安装与网卡配置,帮助工业自动化开发者快速搭建实时以太网运动控制平台。
项目背景
EtherCAT 是一种高性能实时工业以太网总线,凭借微秒级同步精度和灵活的拓扑结构,被广泛应用于 CNC 数控、机器人、运动控制等工业自动化场景。LinuxCNC 作为开源 CNC 控制系统,配合 RTAI 实时内核与 IGH EtherLab 开源 EtherCAT 主站,可以构建低成本、高实时性的开放式运动控制平台。
本文记录在 Ubuntu 环境下从源码编译安装 EtherCAT 主站的完整过程,并整理常见依赖问题,帮助开发者少走弯路。
技术方案
- 操作系统:Ubuntu 12 LTS
- 内核版本:3.4.9-rtai-686-pae(RTAI 实时内核)
- 主站软件:IGH EtherLab Master(etherlabmaster 开源代码)
- 安装方式:源码编译 + 内核模块安装
系统架构
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
应用价值
- 完全开源免费,控制成本低
- 配合 RTAI 实时内核,满足运动控制对同步与实时性的严苛要求
- 源码级部署,便于按 CNC、机器人、自动化产线等场景深度定制
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 程序预处理、编译、汇编、链接四步变身流程,讲透条件编译与静态、动态链接差异,附分步实操与报错排查。
