TwinCAT 3 EtherCAT主站网卡对表与从站扫描避坑指南 简介《TwinCAT 3 支持网卡》面向工业自动化控制工程师、EtherCAT 项目调试人员及 TwinCAT 3 初学者聚焦实时以太网搭建中的网卡选型与驱动兼容问题。文档汇总 Beckhoff Ethernet 驱动支持的 Intel Fast Ethernet 与 Gigabit Ethernet 控制器设备 ID并标注厂商 ID、型号说明及对应的 10/100Mbit/s、1Gbit/s 网络能力便于在装机、硬件替换或通信异常排查时快速核对兼容性。压缩包内含 1 个 doc 文件大小约 113KB内容集中可作为项目配置前的查询清单。已有 3328 人学习读者可据此缩小选型范围降低因网卡不兼容引发的 EtherCAT 通信故障并为 EtherCAT 主站配置、网络稳定性评估和故障定位提供参考。1. 装完 TwinCAT 3 扫不到从站多半是网卡没对表装过工控机的人大概都撞见过这样的十分钟TwinCAT 3 装完System Manager 里点了 Scan Devices进度条转一圈回来说一个从站都没找到扭头看柜子里从站板卡的 RUN 灯稳稳亮着网口 Link 灯也亮唯独软件里空白一片。多数时候软件没装坏是机器上那块网卡压根不在 TwinCAT 3 支持网卡清单里。这份清单不是「推荐名单」是硬门禁——EtherCAT 实时协议栈只挂在白名单内的以太网控制器上厂商 ID 和 Device ID 对不上后面所有从站配置、DC 同步、看门狗参数都是空谈。这篇写给手上有一台工控机、准备第一次把 EtherCAT 从站真正挂上去的人也写给那些换过机器之后环境就再也跑不起来的老手。2. 装前对表网卡 Vendor ID 与 Device ID 怎么和 TwinCAT 3 清单对上整个安装流程里最容易省、也最不能省的一步就是装系统之前先把网卡身份查清楚。TwinCAT 3 的实时以太网驱动是在原厂网卡驱动之上挂一层自己的协议栈它只认自家清单里出现过的控制器清单本身按厂商 ID 分段主段是0x8086那一族剩下的按百兆Fast Ethernet和千兆Gigabit Ethernet两块分列 Device ID。你机器上的网卡只要 Device ID 落在表里后面基本一路顺落在表外哪怕用兼容模式勉强跑起来抖动和丢帧也会在联调阶段报复你。所以顺序是先查 ID再决定这台机器能不能用、要不要加一块网卡最后才谈装软件。2.1 用设备管理器把网卡身份读出来不要靠「设备管理器里写着 Intel 千兆网卡」这种模糊描述判断同一颗芯片的不同封装、不同 OEM 定制Device ID 都可能不一样。最直接的办法是拿硬件 ID 里的VEN_和DEV_两段去和清单逐位比对。# 列出本机所有网络类设备InstanceId 里就含 VEN_/DEV_ 段 Get-PnpDevice -Class Net | Where-Object { $_.Status -eq OK } | Select-Object FriendlyName, InstanceId | Format-List # 只看当前启用的物理网卡确认哪一个是准备给 EtherCAT 用的 Get-NetAdapter -Physical | Select-Object Name, InterfaceDescription, LinkSpeed, MacAddress第一段命令输出形如PCI\VEN_8086DEV_10D3SUBSYS_...VEN_8086是厂商段DEV_10D3就是要去清单里找的 Device ID对照表里它对应82574L这颗千兆控制器。第二段命令是给自己确认物理口用的工控机常见双网口甚至四网口你总得先记住哪个口叫「以太网 2」别到 System Manager 里再猜。图形界面走法也一样设备管理器 → 网络适配器 → 右键属性 → 详细信息 → 属性下拉选「硬件 ID」第一行就是完整 ID。我一般会把这条 ID 直接抄在机器标签上重装系统时省得再翻。提示虚拟机里的网卡VMXNET、virtio一律不在清单内不要试图在虚拟机里做 EtherCAT 主站调试先拿真机对表。2.2 百兆段和千兆段该挑哪一类网卡清单把控制器分成两段百兆段集中在0x1029到0x1259之间典型是 82801 系列和 8255x 系列千兆段铺得很开从0x1000一直到0x10F5覆盖 82540、82546、82566、82567、82571、82574、82579 这些常见型号。EtherCAT 本身跑的是 100 Mbit 全双工理论上百兆网卡带宽够用但现实是百兆网卡大多出现在十年前的老机器上驱动在新版 Windows 上的适配越来越差中断处理也跟不上 1 ms 甚至 250 μs 的周期。我的取舍很直接能用千兆段就别碰百兆段。Device ID常见型号所属段常见出现位置0x100E82540EM千兆早期桌面级网卡、部分工控机板载0x105E82571EB千兆双口千兆网卡一口 EtherCAT 一口通信用0x10D382574L千兆工控机板载最常见的一颗兼容性最稳0x10F282579LM千兆笔记本平台、一体式工控机0x10CB82567VICH9千兆老平台板载注意与 82567LM 区分0x102982559百兆老式工控机仅作应急表里只挑了几颗常被问到的完整清单里还有 82573、82576、82577、82578、82579V 等一大串 Device ID。挑选原则一句话优先0x10D382574L这类在工控机上被用烂的型号驱动成熟、文档多、出问题搜得到0x104B、0x10C4这类偏消费级的型号虽然也在表内但省电特性和中断合并策略往往更激进后面还得手动关一堆高级属性。2.3 网卡不在清单里三条退路查到 ID 对不上先别急着怀疑软件。最常见的三种情况板载是 Realtek 8111/8168 这类消费网卡板载是较新的 Intel 网卡但 Device ID 超出了清单覆盖范围机器上只有一块 USB 网卡或无线网卡。对应的处理加一块 PCIe 独立网卡。这是最省事的做法挑表里千兆段的老型号插上、装原厂驱动、再查一次 Device ID 确认一步到位。工控机机箱里通常留了半高 PCIe 槽注意选半高挡板。板载网卡在 BIOS 里禁掉。有些主板板载网卡会和独立网卡抢同一个中断或同一个 PCIe 通道双网卡同时在系统里System Manager 的网卡下拉框会出现两个名字极其相似的条目选错的概率很高。禁掉最干净。USB 网卡、无线网卡直接排除。USB 网卡的轮询模型决定了它做不了确定性实时通信别在这上面浪费时间。还有一种隐形情况网卡在表里但机器是「双网口同一颗控制器」的设计两个口共用一颗芯片。这种时候只能有一个口给 EtherCAT另一个口要么走普通通信要么在系统里直接禁用否则实时驱动接管之后普通网络会一起断掉。3. 安装 TwinCAT 3 并绑定网卡从驱动顺序到主站挂载对完表确认网卡可用接下来才是装。安装顺序这件事被低估得厉害先装网卡原厂驱动、确认设备管理器里没有任何黄色感叹号再装 TwinCAT 3最后进 System Manager 挂主站。反过来先装 TwinCAT 再补网卡驱动实时驱动层引用的还是旧设备节点System Manager 里会出现网卡名字在、但状态一直是灰色不可选的诡异现象重启都不一定好。这个顺序我吃过一次亏之后就没再变过。3.1 安装前的三件小事第一用管理员账户装UAC 拉到最低再装安装程序中途要注册内核驱动和服务权限被拦一次就得重来。第二把杀毒软件的实时防护临时关掉实时驱动注册过程里会写系统目录和注册表被拦下来的表现是安装进度条卡在最后一格然后回滚报错信息毫无指向性。第三记下安装路径默认是C:\TwinCAT\3.1\后面放 ESI 文件、找日志全在这个目录下面。安装过程本身没什么花活一路下一步组件选择里注意两点一是 EtherCAT 相关的实时以太网组件必须勾上某些精简安装包会默认不选二是 .NET 运行库版本要跟目标系统对上工控机上常见的是系统自带的旧版本装完 TwinCAT 3 之后打开 System Manager 闪退八成是 .NET 版本不匹配重装一遍运行库即可。装完之后先别打开软件回到设备管理器确认网卡状态然后重启一次。这一步不能省实时驱动的内核组件要等重启之后才完成挂载。3.2 在 System Manager 里把网卡挂成 EtherCAT 主站打开 TwinCAT 3 的 System Manager在左侧树里展开I/O→Devices右键Devices选Add New Item在弹出的对话框里选EtherCAT Master然后关键的一步来了Adapter 那一栏的下拉框里会列出系统里所有可被实时驱动接管的网卡。名字通常长这样Realtek PCIe GBE Family Controller、Intel(R) 82574L Gigabit Network Connection后面跟一串 MAC 地址。选网卡的时候认 MAC不认名字。名字可以被驱动改、被 OEM 改MAC 是唯一的。选完点 OK网卡那一行前面会出现一个小的状态标记绿色表示实时驱动已经接管成功黄色感叹号表示接管失败多半是驱动没装好或者网卡不在白名单内。挂载完成之后双击这个 EtherCAT Master 节点切到Adapter标签页能看到几个参数Adapter Mode一般保持默认的实时以太网兼容模式除非你明确知道自己在做什么。Cycle Time主站周期新手先给 1 ms跑通之后再往下压到 500 μs 或 250 μs。Master Priority主站线程优先级默认值够用系统里同时跑 HMI 或视觉算法的时候可以往上调一档。Watchdog看门狗时间默认 100 ms调试阶段先别改小等通讯稳定了再收紧。注意一个 TwinCAT 3 项目里可以挂多个 EtherCAT 主站但一个物理网卡只能被一个主站接管。双网口的机器要挂两个主站必须确保两个口在硬件上是两颗独立控制器共用一颗芯片的双口网卡只能挂一个。3.3 高级属性怎么关把抖动压下去的几个开关网卡被实时驱动接管之后Windows 层的高级属性依然生效其中几个是实时通信的天敌中断节流Interrupt Moderation会把多个中断合并处理节能以太网EEE会在链路空闲时降功耗流控Flow Control会引入不确定的暂停帧。这三个不关轻则周期抖动翻倍重则偶发丢帧。# 先列出这块网卡支持的所有高级属性不同驱动 DisplayName 不一样 Get-NetAdapterAdvancedProperty -Name 以太网 2 | Select-Object DisplayName, DisplayValue | Format-Table -AutoSize # 关掉三个对实时性最不友好的特性Name 换成你机器上的实际网卡名 $nic 以太网 2 Set-NetAdapterAdvancedProperty -Name $nic -DisplayName Interrupt Moderation -DisplayValue Disabled Set-NetAdapterAdvancedProperty -Name $nic -DisplayName Energy Efficient Ethernet -DisplayValue Disabled Set-NetAdapterAdvancedProperty -Name $nic -DisplayName Flow Control -DisplayValue Disabled # 顺手把这块卡在系统里的电源管理关掉防止空闲时被挂起 Disable-NetAdapterPowerManagement -Name $nic -ErrorAction SilentlyContinue第一段命令是必须的因为不同版本的驱动把同一个特性叫成不同名字比如中断节流有的驱动写Interrupt Moderation、有的写Interrupt Moderation Rate直接照抄别人的命令会报「找不到该属性」。第二段是关特性顺序无所谓但要注意这些属性只有在网卡还没被实时驱动独占时才能改已经被接管的话先删掉主站节点、重启改完再重新挂。最后一段关电源管理Windows 默认允许系统为省电关闭网卡这个行为在 EtherCAT 上是致命的。改完这些重启一次再进 System Manager 重新挂主站确认状态灯是绿的才算把「装」这一步做完。4. 从站扫描与实时参数EtherCAT 主站配置落地主站挂上去只是把通道打通能不能扫到从站、扫到之后能不能稳定跑取决于 ESI 文件和几个同步参数。这一段是真正决定项目能不能交付的地方也是最容易在换机器、换项目时被忽略的部分。4.1 ESI 文件位置与扫描从站EtherCAT 从站设备靠 ESIEtherCAT Slave InformationXML 文件描述自己主站扫描时读的就是这些文件。文件放错位置的典型表现是扫描能扫到设备但设备图标是一个问号双击进去什么都没有也没法配置 PDO 映射。ESI 文件的放置路径是C:\TwinCAT\3.1\Config\Io\EtherCAT\直接把厂商给的 XML 拷进去就行不用建子目录建了也能读到但项目迁移时容易漏。拷完不需要重启软件重新扫描即可。# 检查 ESI 文件是否已正确落位顺便看版本号 Get-ChildItem C:\TwinCAT\3.1\Config\Io\EtherCAT\*.xml | Select-Object Name, Length, LastWriteTime | Sort-Object LastWriteTime -Descending | Select-Object -First 10扫描的操作用右键主站节点 →Scan Boxes。扫描之前确认三件事从站已经上电、网线已经插好且 Link 灯亮、主站配置里的网卡选对了。扫描结果如果只有主站自己没有从站先不要改软件去查第 5 章那几条。4.2 分布式时钟什么时候开什么时候先别开DCDistributed Clocks是 EtherCAT 里同步各从站时钟的机制多轴联动、需要严格同步采样的场合必须开。但 DC 也是新手翻车最多的地方开了 DC 之后从站报同步错误、主站报Sync Error、轴一动就飞车多半是参考时钟选错了或者从站本身不支持 DC。判断方法很朴素扫到从站之后双击从站节点看DC标签页里那几个模式选项是否可用。灰色不可选就是这个从站压根不支持 DC你只能跑自由运行模式同步精度靠主站周期保证。支持的从站参考时钟一般选第一个支持 DC 的从站通常是离主站最近的那个不要选主站自己。Sync Unit保持默认Shift先给 0跑起来看实际偏差再微调。调试阶段先关 DC把基本通讯跑通再回来开 DC一次只改一个变量出错的时候才知道是谁的问题。4.3 网线、拓扑和电磁兼容EtherCAT 用的物理层就是标准以太网但工业现场和办公室是两回事。网线用 Cat5e 起步屏蔽双绞线优先接头用带金属屏蔽壳的 RJ45屏蔽层要单端接地两端都接会形成地环路反而引入干扰。拓扑上EtherCAT 支持线型、环型和分支但分支要用专用的分支模块直接用普通交换机是不行的——普通交换机不理解 EtherCAT 帧转发会破坏时序。线型拓扑最省事从站顺序和物理顺序一致排查也方便环型拓扑多一层冗余但要在主站里显式开启冗余不开的话环网里的最后一根线等于没接。走线别和变频器输出线、伺服动力线捆在同一根线槽里平行走线的距离控制在 20 cm 以上交叉时走直角。这些是老生常谈但现场十个通讯不稳的案例里至少三个是线缆走位问题。5. 避坑记录网卡装完不识别、扫描为空、运行掉站的排查下面四条是从实际现场攒下来的每一条都按现象、原因、解决三段记遇到同类问题时可以直接对号。5.1 现象System Manager 的网卡下拉框里根本找不到那块网卡原因通常有三个层次。第一层是网卡不在白名单里Device ID 对不上实时驱动直接跳过它下拉框里自然不出现第二层是原厂驱动没装好设备管理器里网卡带着黄色感叹号或者显示为「以太网控制器」这种未识别名称第三层是网卡被系统里的其他虚拟化软件虚拟机桥接、某些网络加速工具占用了实时驱动拿不到独占权。解决顺序反过来查先看设备管理器有没有异常设备有就装原厂驱动再看 Device ID 是否在清单里不在就换网卡最后检查系统里有没有装过虚拟网卡组件有的话在「网络连接」里把对应虚拟适配器禁用重启再试。5.2 现象主站挂上去了Scan Boxes 扫出来只有主站自己这类是最常见的「装了但没通」。原因分两种一种是物理层网线没插好、用了交叉线序不对的线、从站供电没到、从站拨码地址重复另一种是主站绑定错了网卡比如机器上有两个口绑到了那个没接线的口上。解决办法是先用最笨的方式定位把从站直接和主站网口用一根成品线短接中间不要经过任何分支模块和转接再扫一次。扫得到说明是从站侧或线缆的问题逐个加回拓扑扫不到换一个网口再试。绑错网口这件事在现场发生频率很高因为双网口的机器上两个口长得一模一样设备管理器里的名字也一样只有 MAC 不同。5.3 现象编译下载都正常一运行就从站掉线报 Working Counter 错误Working Counter 是 EtherCAT 帧里的一个校验字段从站正确处理了报文计数器才会加一。报 WC 错误意味着某一帧在某个从站那里没被正确处理。原因一般不是网卡而是拓扑里有从站在运行中被复位、从站之间的网线接触不良、或者主站周期设得太小导致某些慢速从站来不及响应。排查办法是把主站周期从 1 ms 放宽到 2 ms 试一次如果错误消失说明是周期和从站处理能力不匹配如果错误依旧用逐个断开从站的方式二分定位找到那个一断开就正常的节点。还有一种隐蔽情况从站的 PDO 映射在项目里被改过和从站实际固件里的映射不一致运行起来就会持续报 WC 错误。这种要重新扫描设备、覆盖配置。5.4 现象网卡被接管之后机器的普通网络全断了原因很简单实时驱动接管网卡之后这块网卡就不再走 Windows 的 TCP/IP 协议栈了它只处理 EtherCAT 帧。如果这台机器只有一块网卡接管的又是唯一那块远程桌面、文件共享自然全挂。解决办法是物理隔离一块网卡给 EtherCAT另一块给普通通信两块不能是同一颗控制器的两个口。如果机器只有一个口且必须联网那就只能加一块网卡或者接受调试期间本地操作。我一般会在装机时就规划好工控机至少两块独立网卡一块留给现场总线一块留给上位机通信省得后期再拆机箱。6. 装完怎么验证三个动作确认这套环境真的跑通了配置改完、从站扫到很多人这时候就急着写程序了。我的习惯是先做一轮最小验证确认主站、网卡、从站三者之间的链路真的稳定再往上叠业务逻辑。验证分三层顺序不能乱。第一层看链路。打开 System Manager主站和从站节点都应该是绿色从站旁边的状态字显示OPOperational。如果停在PREOP或者SAFEOP说明配置还没真正下发点一次Activate Configuration重新下发然后确认从站指示灯从闪烁变为常亮。第二层看周期。在主站节点的Online标签页里看Cycle Time和Working Counter两个值跑十分钟Working Counter 的错误计数应该纹丝不动。这一层可以通过一段简单的脚本做长时观察# 长时间 ping 主站网段观察丢包和延迟抖动作为链路稳定性的旁证 # EtherCAT 不走 TCP/IP这里测的是同一块物理链路上的基础连通性 ping 192.168.1.10 -n 600 -l 64 | Select-String 时间|time这段命令不是用来测 EtherCAT 协议本身的EtherCAT 帧不进 TCP/IP 栈ping 不通是正常的。它测的是同一根线缆、同一个物理口在做普通通信时的丢包率如果这个都有丢包线缆和接头就该换了。跑十分钟丢包率必须是 0延迟抖动控制在 1 ms 以内。第三层看同步。开了 DC 的项目在从站节点的DC标签页里能看到实际偏差值稳定运行时应小于 1 μs 量级。检查项查看位置期望结果主站状态System Manager 左侧树绿色无感叹号从站状态从站节点 StatusOPWorking Counter主站 Online 页错误计数为 0DC 偏差从站 DC 标签页稳定无持续增长网卡接管主站 Adapter 页显示实际网卡型号与 MAC三个动作走完这套环境才算真的落地。从那以后我每次装完 TwinCAT 3都会强制走一遍「查 ID → 关高级属性 → 扫从站 → 跑十分钟」这条线不管机器是不是同一批采购的——同一批机器换过主板批次网卡型号就变了的坑我踩过一次就够了。开头提到的那份网卡支持清单建议装机前就存在本地对表的时候比翻网页快得多需要的话按项目里的资源路径取用。希望帮到你。本文还有配套的精品资源点击获取