接手这个项目的时候,现场是一台史陶比尔 TX2-90 机器人,控制器是老款的 CS8,产线总控用的倍福 TwinCAT2,工控机还是 Windows XP 时代的老机器。需求很直接:把机器人作为 EtherCAT 从站挂到倍福主站下面,主站要能实时拿到机器人的关节实际位置和状态字,同时下发目标关节位置和运行指令,为后续视觉定位和工件抓取做准备。听起来挺常规,但真正做起来,从 ESI 文件到过程数据映射再到 DC 同步,每一步都有细节坑,而且网上中文资料大多停在"扫描一下就能用"的层面,真遇到问题基本得靠自己抓报文、翻手册。
这篇不打算写成"下一步下一步"的傻瓜式教程,而是把整条配置链路拆开讲清楚:先从方案选型说到硬件拓扑,再给 TwinCAT2 主站侧完整配置流程和机器人侧参数设置,最后把我实测遇到的排错链路和周期压缩经验一并放出来。适合刚开始接触 EtherCAT 集成的调试工程师,也适合准备把机器人从硬接线 I/O 方案切换到总线控制的项目人员参考。
1. 为什么走 EtherCAT:这台机器人接入总控的最优解
先说说方案选型。把一台六轴机器人接入 PLC 总控,传统做法是硬接线 I/O:机器人给 PLC 几个"在原点""运行中""报警"的干接点信号,PLC 给机器人"启动""暂停""复位"的指令。这套方案不是不能用,但问题很明显——数据量太少,关节角度、笛卡尔坐标、速度这些状态完全拿不到,更不用说总控侧做视觉纠偏或者轨迹补偿了。某些项目里为了多传几个字节,有人会走 Modbus TCP,但 Modbus TCP 的刷新周期和实时性都不够,做视觉伺服的场合基本直接出局。
EtherCAT 的优势在于它的数据帧是在从站间逐站流转的,主站发一个帧,经过所有从站后再收回来,从站个数对刷新周期影响非常小。实测下来,挂四五个伺服轴加一个机器人控制器,1ms 周期的 CPU 负载远低于预期。这个特性特别适合产线总控这种"一台 PLC 带一堆分布式设备"的架构。而且 EtherCAT 的同步精度靠分布式时钟(DC)保证,配合倍福的实时网卡驱动,可以把整个网络设备的动作节拍对齐到微秒级,这是普通 Modbus 网络完全做不到的。
至于为什么用 TwinCAT2 而不是 TwinCAT3 或者其他品牌 PLC,一是现场已有的产线软件全是 TC2 平台,改造代价最小;二是 TC2 的 EtherCAT 主站功能非常成熟,稳定性和实时性经过了大量现场验证。唯一要注意的是 TC2 对硬件支持比较挑剔,尤其是网卡,这一点放到后面硬件准备部分细说。
选型还有个容易忽略的点:史陶比尔控制柜的 EtherCAT 从站功能是需要软件选件支持的,不是买回来就默认开通。项目前期就要跟机器人供应商确认控制柜版本和功能包,把从站描述文件(ESI 文件)拿到手。我们项目里光盘附带了一个 XML 文件,但版本和现场机器人系统软件对不上,后来专门找供应商重新要了一版匹配的。所以这里先提醒一句:EI 文件版本必须和机器人本体软件版本一致,否则后面 PDO 映射容易出各种奇怪问题。
2. 硬件与网络拓扑:配置前最容易被忽视的几件事
EtherCAT 配置出问题,很大比例是硬件和拓扑层面的,软件操作反而占了小头。这一节把动手前必须确认的硬件清单和网络结构讲清楚。
2.1 主站工控机网卡:别让 Realtek 拖垮整个网络
TwinCAT2 的 EtherCAT 主站对网卡要求比很多人想象的高。普通千兆网卡虽然物理上能通,甚至 ping 从站能通,但实时数据就是不稳定,因为 EtherCAT 主站的周期节拍依赖网卡的硬件中断和 DMA 行为,实时驱动需要网卡提供稳定的抓包和中断处理能力。项目里用的是 Intel 82574L 网卡,在倍福官方兼容列表里,实测周期抖动明显比板载 Realtek 好。Realtek 网卡在 TC2 下经常出现丢帧、同步抖动飙升的问题,做 EtherCAT 还是建议直接放弃。
动手配置前,先打开设备管理器看网卡型号。能装 TwinCAT2 的工控机大多是半老不新的型号,里面最常见的兼容网卡就是 Intel 82574L、82571、82580 系列。如果机器上只有 Realtek 网卡,别折腾了,加一块 Intel 千兆网卡是成本最低的稳妥方案。
2.2 从站接口确认:CS8 控制柜的 EtherCAT 端子
史陶比尔 CS8 控制柜上,EtherCAT 从站功能一般通过控制柜内可选通讯卡或自带网口引出,具体接口位置不同批次会有差异。说明书里通常会标出"EtherCAT Slave"或"External Sercos/EtherCAT"字样。我们项目里是从控制柜背部下方的一个 RJ45 口引出,旁边还带一个调试网口,两者千万别搞混——调试网口是给 VAL3 编程器用的普通以太网口,跟 EtherCAT 链路没有关系。
从站的供电也得注意。EtherCAT 网络里的从站供电一般有两种方式:一种是每个从站独立供电,另一种是网线中走 E-Bus 供电。机器人控制柜的从站模块通常是独立供电的,所以不需要担心 E-Bus 电流问题。但接线时还是要确认控制柜内部这个接口模块的电源开关状态,有些控制柜把通讯模块电源和主电源分开控制,模块不上电时从站自然扫不到。
2.3 网络拓扑与线缆:尽量简短、不要菊花链太长
EtherCAT 网络拓扑是典型的线型(Daisy Chain)结构,主站网线进从站 IN 口,再从 OUT 口接到下一个设备。机器人从站在整条链路里的位置没有强制要求,可以在中间,也可以放最后。但从可靠性和排查方便的角度,我一般建议放在链路末端或者靠近主站的位置,避免后面再挂过多设备导致故障面扩大。
线缆方面别心疼钱,EtherCAT 对线缆要求不低,现场常规的成品网线长度超过 10 米后抗干扰能力会明显下降。我们现场用的是倍福配套的 ZB90xx 系列预装网线,跟普通超五类网线比起来屏蔽层和端头做工差异很大。接头接触不良是 EtherCAT 掉站的致命原因,尤其在机器人本体旁边,机械振动会慢慢让 RJ45 卡扣松动,曾经就遇到过一个小时掉两三次站的现场,最后排查下来是机器人底座附近一根网线被防护盖挤压导致簧片变形。
2.4 ESI 文件准备:版本一致性决定配置成败
ESI 文件(EtherCat Slave Information)是从站的"身份证",包含了设备 ID、对象字典、PDO 映射定义、周期参数等关键信息。TwinCAT2 主站加载从站描述文件后,才知道怎么跟这台从站交换数据。史陶比尔控制柜随附的 XML 文件通常在安装光盘的通讯文件夹里,文件名类似Staubli_CS8_EtherCAT_xxx.xml。
这里特别强调版本一致问题:机器人控制器软件升级后,对象字典的索引和数据类型可能变化,旧版 ESI 文件匹配不上,轻则 PDO 映射数据错位,重则直接识别不了从站。排查这类问题非常恶心,因为报错信息往往只有"Device not responding"或者"PDO mismatch"。拿到新版 ESI 文件后,最好和供应商确认一下对应的机器人系统软件版本号,并把文件统一归档到项目文件夹里。
3. TwinCAT2 主站侧配置流程:从驱动绑定到激活
这一节是所有操作的基座,按顺序做完,主站侧就算通了。假设 TwinCAT2 已经装在工控机上,版本 2.11 以上。
3.1 网卡实时驱动安装与绑定
打开 TwinCAT System Manager,左侧树顶层有 "Real-Time Ethernet Adapters" 节点,点进去能看到所有网卡。选中接 EtherCAT 从站的那张 Intel 网卡,点击 Install,TwinCAT 会把该网卡的 Windows 驱动替换成自己的实时驱动。安装成功后网卡会显示为带 TwinCAT 标识的虚拟设备,原来的 IP 协议栈被实时驱动接管,此时这张网卡不能再用来做普通 TCP/IP 通信。
这个环节有个经典坑:工控机上如果有多张网卡,一定要把接 EtherCAT 的那张认准确。装错网卡后 TwinCAT 主站设备是起来了,但链路永远建立不了,而且因为其他网卡还能联网和 ADS 通信,很容易让人误以为配置没问题。我的习惯是安装前在网卡属性里看 MAC 地址,用ipconfig /all和网卡物理位置双重确认,安装完实时驱动后再 ping 不通该网卡的 IP(因为协议栈被接管了),反而是正常现象。
3.2 创建 EtherCAT 主站设备并加载 ESI 文件
在 System Manager 左侧树中右键 "I/O Devices",选择 "Insert New Device",在弹出的设备列表里选 "EtherCAT Master",确认后生成一个新的设备节点。默认配置就能满足大多数需求,主站周期和从站特性先保持默认,后面再统一调。
接下来把史陶比尔的 ESI 文件放进去。TwinCAT2 安装目录下有一个IO\EtherCAT\ESI文件夹(常见路径是C:\TwinCAT\IO\EtherCAT\ESI),把 XML 文件复制进去,重启 System Manager 让它重新加载。然后右键刚才创建的主站设备,选择 "Append Box"(挂接从站),弹出列表里应该能看到史陶比尔的型号。如果列表里没有,先确认 XML 文件放置路径是否正确,再检查 TwinCAT 版本是否太老导致读不了新格式的 XML。
从站注册还有两种补充方式:一是用扫描功能,右键主站设备选择 "Scan Boxes",TwinCAT 会轮询 EtherCAT 总线上的从站 EEPROM 信息并自动匹配 ESI。扫描前务必确认从站使能是断开状态,机器人要打到 T1 手动模式,防止扫描过程误触发设备动作。二是在 Append Box 列表里手动指定,手动方式适合 ESI 文件匹配但扫描失败的情况,后面会细说排查思路。
3.3 过程数据 PDO 映射:把机器人状态摆到 PLC 地址上
这一步是配置的核心。选中挂接好的史陶比尔从站节点,右下角有多个标签页,关键的是 "Process Data" 页。页面上会出现 TxPDO(从站发送给主站的数据,对应 PLC 输入区)和 RxPDO(主站发送给从站的数据,对应 PLC 输出区)两个列表。勾选需要的 PDO 条目,TwinCAT 会自动生成映射到主站过程映像的地址:TxPDO 生成%I*地址,RxPDO 生成%Q*地址。
以我们项目为例,配置的数据块大致如下:
| 方向 | 数据内容 | 建议数据类型 | 说明 |
|---|---|---|---|
| TxPDO(输入) | 状态字 | UINT16 | 机器人当前运行状态、准备好、报警等标志位 |
| TxPDO(输入) | 关节实际位置 | 6 × REAL | 六个关节当前角度,单位与机器人配置相关 |
| TxPDO(输入) | 关节实际速度 | 6 × REAL | 用于监控和轨迹预判 |
| TxPDO(输入) | 笛卡尔实际坐标 | 6 × REAL | X/Y/Z 及姿态角,是否启用看机器人送的数据块 |
| RxPDO(输出) | 控制字 | UINT16 | 使能、复位、启动、停止控制位 |
| RxPDO(输出) | 关节目标位置 | 6 × REAL | 主站给机器人下发的关节角度目标值 |
| RxPDO(输出) | 模式选择 | UINT16 | 切换机器人运行模式(外部位移/关节模式) |
注意这些条目具体索引号一定要依据 ESI 文件里的对象字典,不同版本可能略有差异。哪怕差一个字节,机器人侧收到的都是乱码数据。
PDO 映射勾选完成后,下方 "Process Image" 区域会显示自动生成的地址表。PLC 编程时可以直接在 TwinCAT PLC 中声明一个结构体变量,然后绑定到这些%I*/%Q*地址。建议在 PLC 侧定义一个和设备映射严格对应的结构体,不要散着写变量,后续维护会省很多事。
3.4 周期设置与激活配置
周期时间在主站设备的 "Cycle Time" 属性里设置。默认值一般是 1ms(1000 µs),对于机器人通信来说 1ms 是起步要求,后面做视觉伺服时我会压到 500µs。设置完成后,在 System Manager 工具栏点击 "Activate Configuration"(激活配置)。激活瞬间,主站会向所有从站发送运行帧,观察从站状态是否为 OP(Operational)。只要不再是 "INIT" 或者 "PREOP",说明主从通信建立了。
激活后建议第一时间在 System Manager 里打开 TwinCAT 的实时诊断窗口,看实际周期最大值(Task Cycle Time max)和抖动(Jitter)。这里记录下基线数据,后面调 DC 同步和网卡参数时才有对比。
4. 机器人侧参数设置:光配主站是不够的
主站侧配置完成后,如果机器人控制器没有使能从站功能,通信状态永远停在 PREOP 或 SAFEOP,进不了 OP。机器人侧这套参数往往最容易被人忽略,而且不同控制柜版本的菜单路径不太一样,我只能把通用逻辑讲透,具体以史陶比尔调试手册为准。
4.1 使能 EtherCAT Slave 功能块
CS8 控制柜的机器人系统软件里,默认情况下 EtherCAT 从站功能是不激活的。需要在机器人示教器或者电脑端 VAL3 配置界面里找到通讯设置,启用 EtherCAT Slave 选项。启用后控制柜会重启通讯模块,此时机器人的网口才真正进入从站模式,等待外部主站连接。
这里有个重要变化要提前告诉产线操作人员:启用从站模式后,机器人本体的示教器程序启动逻辑可能会受主站控制字影响,也就是说机器人不再"自己说了算",而是等 PLC 那边发出使能和运行指令。如果没有把这个联锁关系跟操作工讲清楚,现场很容易投诉"机器人不动了"。
4.2 映射数据块对齐
机器人侧也要定义发送给主站的数据内容和接收主站的数据内容,两者必须和主站侧的 PDO 配置一一对应。这个对应关系一般通过机器人控制柜内的一个通讯数据表设定,把机器人实际关节位置变量、笛卡尔坐标变量、状态字变量填充到发送区,把主站下发的目标位置和控制字读取到机器人程序变量里。数据顺序、数据类型、字节序一个都不能错。
为了验证映射正确性,第一次联调时可以先不看运动,把主站输入的关节实际位置和机器人示教器显示的当前角度做对比。如果数值对得上,说明 TxPDO 方向正确;再用主站给控制字发一个简单的复位指令,看机器人侧是否收到标志位变化,确认 RxPDO 方向正确。
4.3 机器人程序侧的心跳与模式切换
史陶比尔机器人的 VAL3 程序里,需要有一小段逻辑专门处理 EtherCAT 通信状态。简单说就是判断从站通信是否健康(可以通过状态字的通信心跳位判断),通信异常时机器人要停下来并报警,不要带病运行。这个逻辑虽然简单,但非常重要,特别是后面挂视觉、自动上下料这些需要外部总控配合的场景,PLC 断线瞬间机器人如果还在动,就容易出事故。
另外,机器人一般有"手动/自动"安全模式切换。EtherCAT 外部控制要正常运行,机器人必须处在自动运行模式。我们项目里最开始忘了这一点,PLC 使能信号发过去,机器人状态字总是报"Not ready",排查了半天才注意到机器人示教器上还在 T1 手动模式。这个点写进现场 SOP,能让后面调试少走很多弯路。
4.4 控制字/状态字位定义:一个可参考的约定
具体的控制字位定义需以史陶比尔官方手册为准,每个位含义与控制柜系统版本相关。这里分享一个我习惯的约定写法,不是标准答案,但逻辑上可以借鉴:
| 控制字位 | 含义 | 说明 |
|---|---|---|
| Bit0 | 使能 | 1=允许机器人伺服使能 |
| Bit1 | 复位 | 1=复位机器人报警,复位后需回 0 |
| Bit2 | 启动循环 | 1=机器人开始执行目标位置 |
| Bit3 | 急停反馈确认 | 与安全回路联动的确认位 |
| Bit4 | 模式切换 | 0=关节模式,1=笛卡尔模式(视项目定义) |
状态字类似的位定义中,最重要的两个标志是"机器人准备好"和"运动到位"。PLC 程序里所有联锁都应当基于"准备好"位,而不是简单地延时等待,这样后续通信抖动时才不会出现逻辑误判。
5. 实测排错链路:使能失败、瞬断丢站和同步抖动
配置完成后真正头疼的是各种问题。这一节把我实际遇到过的四类典型故障按完整排查链路写出来,供你复现排查思路。
5.1 从站扫不出来:先从物理层和 ESI 匹配查起
现象:执行 Scan Boxes 后,主站设备下一直不出现任何从站,或者出现一个"Unknown Device"。
我的排查顺序:
- 先用万用表量从站模块电源是否正常,看控制柜通讯模块指示灯状态。CS8 控制柜的通讯模块一般有 LINK/ACT 指示灯,网线插上后灯不亮,基本就是物理链路问题。
- 换一根确认良好的网线直接连主站和从站(跳过中间其他设备),排除线缆和中间设备故障。
- 检查网卡实时驱动是否还在。Windows 更新偶尔会把实时驱动顶掉,导致网卡回退到普通驱动。如果状态异常,重新点击 Install 实时驱动,再激活配置。
- 检查 ESI 文件是否被正确识别。从站显示 Unknown Device 时,多半是 EEPROM 里的厂商 ID 和产品 ID 与 XML 文件不匹配。用 TwinCAT 的 ESI 管理器看看当前加载的史陶比尔描述文件,必要时手动 Append Box 强制指定从站类型。
如果扫描不出来但又能看到 Unknown Device,可以分别查看未知设备的 EEPROM 数据和 ESI 文件的厂商 ID/产品 ID,把两个数一对比就知道问题在哪里。
5.2 使能立即报 Fault:机器人侧模式和数据格式的坑
现象:PLC 给控制字下了使能位,机器人状态字瞬间进入 Fault,主站周期还在跑,但机器人根本没反应。
排查链路:
- 先看机器人示教器报警详情,EtherCAT 通信异常类报警一般会直接显示"External control data error"或类似描述。
- 确认机器人是否已经切到自动模式。手动模式下收到外部使能信号会被安全逻辑拒绝。
- 检查 PDO 数据格式。这个坑我踩过:主站侧把关节目标位置当成了 4 字节整数,机器人侧按 REAL(浮点)解析,数值直接变成天文数字,机器人安全逻辑立刻报错。核对主站映射数据类型和机器人侧通信数据表定义,确保 UINT16、REAL、INT32 完全一致。
- 检查控制字和状态字的初始时刻。机器人从站通常要求在进入 OP 前控制字为 0,进入 OP 后再切换到操作位。如果 PLC 程序里使能位置 1 的过程和主站启动时序冲突,也可能引起 Fault。
这类问题的排查核心思路是:不要盯着一端看,两端报错信息对照起来分析。机器人的报警日志里有非常具体的错误码,PLC 端则只有状态字的变化,两者时间戳对上,基本能锁定方向。
5.3 瞬时掉站:重点关注网线、屏蔽和终端电阻
现象:系统运行一两个小时后偶发从站进入 Lost,重新激活又能恢复,一天掉一两次,特别难复现。
这种偶发掉站是最磨人的。排查链路:
- 在 System Manager 的诊断页里查看掉站发生的链路位置。如果从站是最后一个设备,掉站一般表现为整个链路不通;如果中间某个从站掉,后续设备全部失联。
- 确认整条链路是否有终端电阻问题。EtherCAT 和 CAN 类似,需要在物理链路末端处理信号反射,虽然多数从站模块内置了自动终端,但混用不同品牌从站设备时,还是要在末端设备的 OUT 口接上倍福的终端电阻模块更保险。项目里曾因末端从站不支持自动终端,导致偶发误码掉站。
- 检查网线屏蔽层是否有效接地。靠近机器人本体的网线会受到伺服电机动力线的强烈干扰,尤其当屏蔽层没接地时,干扰直接耦合到信号线上,表现为偶发 CRC 错误。现场把网线屏蔽层可靠接入控制柜接地排后,掉站问题明显缓解。
- 如果掉站永远指向同一从站,优先考虑该从站的供电稳定性。控制柜内部通讯模块和伺服驱动器共用电源时,伺服启动瞬间电压跌落会导致从站异常重启。
最后建议在 PLC 程序里针对 EtherCAT 从站状态字加一个"通信断开次数"监控变量,掉站问题偶尔发生且主站侧没报错时,这个累计值能帮你判断问题是否真的消失。
5.4 同步抖动大:BIOS 设置和 CPU 实时性能
现象:周期时间设置 1ms,但诊断窗口里实际周期最大值经常跳到 2ms、3ms 甚至更高,视觉同步图像偶尔卡顿。
EtherCAT 主站的实时性不只是网卡决定的,CPU 的实时调度和节流策略起了很大作用。老工控机拿到手,先做这几件事:
- BIOS 里关闭 CPU 节能相关项:C1E、C-States、SpeedStep(EIST)、CPU Power Management,这类功能会让 CPU 降频或休眠,直接导致主站定时器中断不均匀。
- 关闭 PCI Express ASPM(Active State Power Management)和网卡的节能模式,特别是网卡驱动的"Green Ethernet"选项要关掉。
- 关闭 Windows 系统不必要的后台服务,尤其是自动更新和索引服务。TwinCAT2 在系统时钟节拍上依赖 Windows 的内核定时器,后台干扰会导致周期性延迟。
- 确认工控机 BIOS 里的 HPET(高精度事件定时器)处于开启状态。
改完 BIOS 后重新启动工控机,再回诊断窗口看抖动值,通常会改善一个数量级。我们现场把一台老工控机的 C-State 全部关闭后,抖动从 ±30µs 降到了 ±5µs 左右,效果立竿见影。
6. 从 2ms 压到 500µs:DC 分布式时钟与周期优化配置
基础通信稳定后,下一步就是压周期、提同步精度。这一步不是所有项目都需要,但如果后面要做视觉引导、实时轨迹插补,就必须用 DC 分布式时钟把从站时钟对齐到主站时钟上。
6.1 为什么普通模式满足不了高精度同步
不带 DC 的 EtherCAT 网络里,各从站的数据采样时刻由各自本地的晶振决定,晶振之间会有几十微秒到几百微秒的偏差,而且这个偏差会累计。做视觉抓取时,相机采集瞬间和机器人实际位置时刻不一致,哪怕差一两毫秒,在高速运动下也会导致抓取精度跑偏。
DC 的机制是主站周期性地向所有从站发送同步信号(SYNC0/SYNC1),每个从站把自己的时钟与主站时钟对齐,然后所有从站在同一个系统时间点同时采样和输出。这样整条链路的设备动作节拍就同步了。
6.2 TwinCAT2 中使能 DC 的步骤
选择从站节点,在属性页找到 "DC" 标签页,勾选 "Enable Distributed Clocks"。然后选择从站所支持的同步单元类型,一般选 SYNC0,即固定周期同步。使能后,TwinCAT 会自动测量从站与主站之间的时间偏移(Shift Time),并写入从站的时钟寄存器里。
如果出现 DC 使能后报错,最常见的原因是从站未正确支持 DC,或者主站网卡的实时驱动不支持硬件时间戳。可以先关掉 DC 跑普通模式,确认通信正常,再单独调试 DC。
6.3 实测效果:周期和抖动数据参考
以我们的项目为例,下面是一组没做什么额外优化的实测数据对比:
| 配置状态 | 周期设置 | 实际最大抖动 | 视觉同步表现 |
|---|---|---|---|
| 普通模式,未关闭节能 | 2ms | ±40µs | 偶发卡顿 |
| 普通模式,BIOS 优化 | 1ms | ±15µs | 基本可用 |
| DC 使能,BIOS 优化 | 500µs | ±5µs | 流畅,精度达标 |
注意把周期从 2ms 压到 1ms 再压到 500µs 时,主站 CPU 负载会上升。可以在 System Manager 实时诊断里观察任务超时计数(Task Timeout Count),如果持续增长,说明周期压得太狠,要么优化 PLC 程序扫描周期,要么换更强的主站硬件。
6.4 周期优化过程的其他细节
有一个容易忽略的细节是主站设备的 "Sync Unit Cycle Time" 和从站实际期望的周期必须一致。有些从站(包括部分机器人控制器)在 ESI 文件里固定了最小周期要求,比如不支持低于 1ms。如果主站强行设 500µs,从站会拒绝进入 OP 或者看门狗频繁超时。遇到这种情况,到从站的 Process Data 页面里看看周期相关参数,必要时按从站能力调整。
另外,DC 使能后从站的 SYNC 事件可以配置为每 N 个周期触发一次(比如每 2 个周期采样一次)。这对某些只要求数据刷新 1ms、但运动周期 500µs 的场景很有用,可以降低从站中断频率,减少发热和延迟。具体参数在 DC 配置页里有选项,按项目实际需要调整。
按照这个思路调完整套系统后,我们项目的通信周期稳定跑在 1ms,DC 同步打开后视觉系统直接复用 PLC 的 500µs 控制周期,整个产线的节拍和精度都上了一个台阶。
7. 最后几句实在话
折腾完这个项目,几点感触最深的话放在最后。
第一,EtherCAT 配置出问题,八成不在软件操作,而在物理链路的可靠性和 ESI 文件的版本匹配。调试的时候不要一上来就怀疑 PDO 映射,先花十分钟把网线、终端电阻、从站电源、网卡驱动和 ESI 版本核对一遍,很多玄学故障的根源就是这些基础项。
第二,机器人侧和 PLC 侧的数据约定一定要留文档。控制字每个位的含义、状态字每个位的含义、数据类型、字节序,都要写清楚放在项目文件夹里。不要依赖"我记得",过三个月再来维护这个产线的人是大概率没参与过调试的。
第三,联调时别急着做运动。先把状态字对上了、使能位逻辑理清了,再让机器人动。很多新手一上来就让机器人跑一段轨迹,结果映射错位导致机器人乱冲,险些酿成安全事故。通信配置这种事,慢就是快,安全永远第一位。