汇川H5U与步科EtherCAT伺服配置全攻略:从接线到多轴同步
1. 为什么这套组合值得单独写一篇配置实录汇川H5U这台PLC在小型运动控制圈子里热度一直不低原因很直接本体自带EtherCAT主站口不用额外加通讯模块就能挂总线伺服性价比摆在那里。步科伺服在国产低压伺服里出货量大、资料相对全、价格友好很多做包装机、贴标机、小型桁架机械手的朋友第一套运动控制方案就是H5U 步科EtherCAT伺服。但真正上手你会发现网上能搜到的资料要么是汇川自家IS620的配置要么是步科配别的PLC两边拼起来总差那么一口气。EtherCAT这东西又不像Modbus那样接上线、对个地址就能跑它涉及ESI文件导入、PDO映射、DC同步模式、单位换算这一整套东西任何一环没对上伺服就是不动或者一动就飞车。这篇内容就是把我自己从零搭这套系统、以及后来帮别人远程排障攒下来的经验完整梳理一遍。从硬件接线、软件版本选择到AutoShop里的EtherCAT组态、步科伺服的站号与PDO设置、再到回零和点动测试每一步都给出可复现的操作和背后的原因。适合刚接触EtherCAT总线伺服的新手也适合从脉冲控制转总线控制、被PDO和DC搞晕的老工程师。看完你应该能独立把一套H5U带步科伺服跑起来并且知道出问题时该往哪个方向查。2. 动手前的整体思路与方案选型2.1 为什么选EtherCAT而不是脉冲或Modbus先说清楚这个方案的本质。PLC控制伺服常见三条路脉冲方向、Modbus RTU、EtherCAT总线。脉冲方式最传统接线简单但一根轴就要占用高速输出点H5U本体高速输出有限做三四轴就捉襟见肘而且脉冲线长了容易丢步、受干扰。Modbus方式能省线但实时性差做位置控制基本只能发个速度或简单定位多轴同步想都别想。EtherCAT是实时工业以太网主站一个网口串下去理论上可以挂几十个从站刷新周期能做到1ms甚至更低多轴之间的同步精度是微秒级。对于要做插补、电子凸轮、多轴联动的场合这是唯一现实的选择。H5U本体就带EtherCAT主站等于省了一笔通讯模块的钱这也是它在这类小设备上受欢迎的核心原因。提示EtherCAT是主站发、从站转发的菊花链结构物理上是一进一出。接线时一定要认清IN和OUT口接反了整条链都不通这是新手最常见的翻车点。2.2 硬件清单与版本匹配的坑这套系统需要的硬件不多但版本匹配是重灾区我先把清单列出来部件型号示例关键说明PLC汇川H5U-1614MTD带EtherCAT主站口注意后缀伺服驱动器步科FD1X4系列EtherCAT型必须是EtherCAT总线款不是脉冲款伺服电机步科配套低压伺服编码器线、动力线原厂配网线工业级屏蔽网线用普通网线也能通但抗干扰差电源24V/48V按电机规格驱动器供电电压要对这里最大的坑是伺服型号。步科同一个系列往往有脉冲型、模拟量型、EtherCAT型外观长得几乎一样型号后缀差一两个字母。买错成脉冲款你怎么配EtherCAT都挂不上。下单前一定对着步科选型手册确认是EtherCAT总线版本。第二个坑是软件版本。汇川AutoShop版本太老可能不带某些EtherCAT从站的ESI解析能力步科的ESI文件XML格式的设备描述文件版本也要和固件匹配。我的建议是AutoShop用官网当前稳定版步科ESI文件从官方渠道下载对应固件版本的那一份不要随便拿一个旧文件凑合。2.3 整体配置流程鸟瞰在动手之前脑子里要有一张流程图知道每一步在干什么硬件接线24V供电、EtherCAT网线菊花链、电机动力线和编码器线安装步科ESI文件到AutoShop的从站库AutoShop里新建工程扫描或手动添加EtherCAT从站配置从站PDO映射决定PLC能读写伺服哪些对象设置DC分布式时钟同步模式编写PLC程序使能、回零、点动、定位在线下载用示波器或状态字监控调试每一步我都会在下面展开。你会发现真正花时间的不是写程序而是前面这几步组态配置配置对了程序其实很简单。3. 核心细节解析与实操要点3.1 ESI文件EtherCAT的身份证EtherCAT主站怎么知道挂上来的是什么设备、有哪些对象字典、支持哪些PDO靠的就是ESI文件全称EtherCAT Slave Information是一个XML格式的描述文件。你可以把它理解成从站的身份证说明书主站读了这个文件才知道该怎么和这个从站对话。步科的ESI文件一般在官网的下载中心或者随驱动器附带的资料光盘里。拿到之后在AutoShop的EtherCAT配置界面里有个导入ESI或设备库管理的入口把XML导进去从站列表里就会出现步科对应的设备型号。注意ESI文件版本和驱动器固件版本不匹配时可能出现能扫描到但从站报错或者PDO选项对不上的情况。如果遇到诡异问题第一件事就是核对这两个版本。导入之后从站会出现在设备树里你可以拖拽或双击添加到网络拓扑中。H5U作为主站步科伺服作为第一个从站站号Node Address一般默认按物理顺序自动分配也可以手动设。物理顺序就是网线从PLC出来先接哪台哪台就是第一个。3.2 PDO映射决定你能控制什么PDO是Process Data Object过程数据对象是EtherCAT周期性通讯时实际传输的数据。它分两种TxPDO是从站发给主站的数据比如当前位置、状态字RxPDO是主站发给从站的数据比如目标位置、控制字。这一步是整套配置的灵魂。默认的PDO映射往往只包含最基本的状态字和控制字你想读当前位置、设目标速度就得自己往映射里加对象。步科伺服常用的对象字典基于CiA402协议大致是这些对象索引名称方向用途0x6040ControlwordRx控制字使能/启动0x6041StatuswordTx状态字读伺服状态0x6060Modes of operationRx运行模式选择0x6061Modes of operation displayTx当前模式回读0x607ATarget positionRx目标位置0x6064Position actual valueTx实际位置0x60FFTarget velocityRx目标速度0x606CVelocity actual valueTx实际速度配置PDO时把需要的对象从可用列表移到映射列表里。这里有个经验不要贪多。PDO映射越长每个通讯周期传输的数据越多对刷新周期有影响。做定位控制控制字、状态字、模式、目标位置、实际位置这五个基本够用要做速度模式再加目标速度和实际速度。提示PDO映射改完之后一定要确认从站侧和主站侧的映射一致。有些驱动器需要在驱动器参数里也确认PDO配置两边对不上会直接通讯报错。3.3 DC同步模式多轴同步的关键DC是Distributed Clocks分布式时钟。EtherCAT的从站各自有时钟DC机制让所有从站的时钟同步到主站参考时钟同步精度可以到纳秒级。做单轴定位DC开不开可能感觉不出差别但做多轴联动DC不开轴与轴之间就会有随机的时间偏差插补出来的轨迹就是歪的。在AutoShop的从站配置里DC模式一般有几个选项不启用、启用从站作为参考时钟、启用主站作为参考时钟。常规做法是让第一个从站或主站作为参考时钟其余从站同步过来。步科伺服一般支持DC配置时勾选启用即可。这里有个容易忽略的点DC启用后通讯周期和同步周期要匹配。如果PLC的EtherCAT任务周期设成2ms而DC同步周期设成1ms可能出问题。一般让它们保持一致或者同步周期是任务周期的整数倍。3.4 单位换算别让转和脉冲打架这是从脉冲控制转过来的工程师最容易栽的地方。脉冲控制时你脑子里想的是发多少脉冲走多少距离有电子齿轮比这个概念。到了EtherCAT总线控制位置单位变成了用户单位需要设置一个换算关系。步科伺服里通常有个位置单位或电子齿轮参数定义一个用户单位对应编码器多少个脉冲。比如编码器是17位131072脉冲/转你想让一个用户单位等于1/10000转那就设齿轮比让10000个用户单位对应一转。这个换算必须和机械结构对上。假设丝杆导程10mm你想让位置单位是0.001mm那么一转10mm对应10000个用户单位编码器一转131072脉冲齿轮比就是131072/10000。算清楚这个后面写程序时目标位置直接填毫米数×1000就行非常直观。注意单位换算错了轻则走不到位重则飞车撞机。第一次调试一定把电机脱开负载空转验证换算关系确认发10000个单位正好转一圈再带负载。4. 完整实操流程与关键环节实现4.1 硬件接线与上电检查先接线。24V或48V看电机规格电源接驱动器主电源注意正负。EtherCAT网线从H5U的主站口出来接到第一台步科驱动器的EtherCAT IN口如果有多台从第一台的OUT口接到第二台的IN口依次串下去。电机动力线和编码器线按驱动器手册接编码器线是弱信号尽量远离动力线走线。上电前用万用表确认电源电压和极性这一步别省。上电后观察驱动器数码管或指示灯正常应该显示就绪状态没有报警。如果驱动器报编码器故障先查编码器线报通讯故障先查EtherCAT线序和IN/OUT。4.2 AutoShop工程建立与从站扫描打开AutoShop新建工程选择H5U对应型号。在工程树里找到EtherCAT配置或运动控制配置入口进入总线组态界面。先导入步科ESI文件前面3.1讲过。导入成功后点扫描设备或手动添加从站。扫描时PLC要在线且EtherCAT链路要通。扫描到从站后它会出现在拓扑里站号自动分配。如果扫描不到按这个顺序查网线是否插对IN口、PLC是否处于运行或可扫描状态、ESI文件是否导入、驱动器是否上电。这四步能解决90%的扫描失败。4.3 从站参数与PDO详细配置扫描到从站后双击从站进入配置界面。这里要设几样东西站号确认和物理顺序一致多轴时尤其重要站号错了程序里控制的就是另一台。PDO映射按3.2的表格把控制字、状态字、模式、目标位置、实际位置加进映射。加的时候注意顺序主站和从站要一致。DC模式勾选启用选参考时钟来源。通讯周期和PLC任务周期匹配一般1ms或2ms起步。配置完保存编译工程。编译不报错说明组态层面没问题。4.4 PLC程序使能、回零、点动、定位程序部分其实不复杂核心是状态机。CiA402协议下伺服使能有一套固定的控制字序列上电初始Controlword 0x0006 (Shutdown) 等待状态字 bit00, bit11, bit21, bit31 发使能Controlword 0x000F (Switch on Enable operation) 等待状态字 bit31 表示已使能用梯形图或ST语言实现这个状态机都行。H5U支持IEC61131-3ST写状态机更清晰。下面是一个简化的使能逻辑思路IF 使能请求 THEN CASE 状态 OF 0: 控制字 : 16#0006; // Shutdown IF (状态字 AND 16#006F) 16#0021 THEN 状态 : 1; 1: 控制字 : 16#0007; // Switch on IF (状态字 AND 16#006F) 16#0023 THEN 状态 : 2; 2: 控制字 : 16#000F; // Enable operation IF (状态字 AND 16#006F) 16#0027 THEN 状态 : 3; // 已使能 END_CASE; END_IF使能之后设模式0x6060为位置模式值1或8看驱动器定义然后往目标位置0x607A写值伺服就会运动。回零一般用驱动器内部回零功能通过控制字触发或者用PLC自己写回零逻辑。步科伺服支持多种回零方式找原点开关、找Z相信号等在驱动器参数里选好方式PLC发个触发位就行。点动测试时先给一个很小的目标位置增量观察电机是否按预期方向转、转多少。这一步验证单位换算和方向。4.5 在线调试与状态监控下载程序后用AutoShop的在线监控功能实时看控制字、状态字、实际位置这些变量。第一次使能时盯着状态字的变化确认它按0x0021→0x0023→0x0027的顺序跳变说明使能流程对了。如果状态字卡在某个值不动对照CiA402状态机查是哪一步没满足。比如卡在0x0021说明Shutdown没被接受可能是模式没设对或者驱动器有报警。位置控制时给目标位置后看实际位置是否跟随。如果实际位置不动查目标位置有没有写进去、模式对不对、伺服是否真的使能了。5. 常见问题与排查技巧实录5.1 通讯类问题速查现象可能原因排查方向扫描不到从站网线接反/ESI未导入/驱动器未上电查IN/OUT口、导入ESI、确认供电扫描到但报错ESI版本不匹配/PDO不一致核对ESI与固件版本、检查PDO映射通讯时断时续网线质量差/干扰/DC配置错换屏蔽网线、检查DC周期从站掉线供电不稳/网线松动查电源、紧固接头5.2 伺服不动或飞车的排查伺服不动先看状态字。状态字没到0x0027就是没使能回去查使能序列。状态字到了但不动查模式、目标位置、是否有使能以外的禁止位。飞车是最危险的通常是单位换算错、方向反了、或者目标位置给了一个极大值。第一次调试一定脱负载且程序里加软限位目标位置超出范围直接拒绝。我见过有人把目标位置单位当成脉冲填结果填了个几十万电机直接冲出去撞限位。5.3 多轴同步精度不够如果做多轴联动发现轨迹不对先确认DC是否启用、所有从站是否都同步到同一参考时钟。再确认PLC的EtherCAT任务周期是否稳定周期抖动大会直接影响同步精度。必要时降低刷新周期比如从2ms降到1ms但要注意CPU负载。5.4 独家避坑经验第一条先单轴跑通再上多轴。别一上来就挂四台轴一起调出问题你根本不知道是哪台。一台一台加每加一台验证一次。第二条ESI文件和固件版本记在本子上。这套系统调通后把用到的AutoShop版本、ESI版本、驱动器固件版本、伺服参数都记录下来。以后换电脑或重装直接照抄能省大量时间。第三条PDO映射改动后重新编译下载。有时候改了映射但没重新下载主站还用旧映射就会出现配置看着对但就是不通的诡异现象。第四条DC不开也能跑单轴但别养成习惯。单轴调试时为了省事关掉DC跑通了就忘了开等做多轴时才发现同步有问题回头再查很费劲。建议从一开始就按最终配置来。6. 从跑通到用好几个进阶方向单轴定位跑通只是起点。这套H5U加步科EtherCAT的组合往上还能做不少事。一是多轴插补。H5U支持基本的直线插补和圆弧插补把多台步科伺服挂上总线配置好DC就能做XY平台的轨迹运动。这时候前面强调的DC同步和单位换算就体现出价值了。二是电子齿轮和电子凸轮。包装、印刷类设备常用主从轴之间按一定比例或曲线联动。EtherCAT的实时性让这类应用成为可能配置上需要在从站里启用相应的同步模式。三是和上位机或触摸屏配合。H5U支持Modbus TCP或串口通讯可以把伺服状态、报警信息传给触摸屏显示操作工就能直观看到每台轴的状态。这部分和EtherCAT配置是独立的但实际项目里几乎都会用到。四是程序结构化。轴多了之后把每台轴的控制封装成功能块FB输入输出参数化主程序里调用就行。这样加轴、改轴都很方便也便于后期维护。我自己的习惯是每台轴一个FB实例包含使能、回零、定位、报警处理主程序只负责调度。这套配置流程我前后搭过不下十次每次都会遇到点新情况但核心逻辑始终是那几样ESI导入、PDO映射、DC同步、单位换算、状态机使能。把这五样吃透换任何品牌的EtherCAT伺服配置思路都是通的无非是对象字典的索引号和参数名不一样。真正值钱的不是记住步科某个参数在哪而是理解EtherCAT这套机制为什么这么设计。