ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

汇川Easy521与SV630N EtherCAT总线伺服控制全流程

汇川Easy521与SV630N EtherCAT总线伺服控制全流程 工业现场里总线伺服替代脉冲伺服已经是大势所趋尤其是做多轴、做高节拍设备的时候脉冲口数量不够、接线繁杂、抗干扰差这几个老毛病会被无限放大。这次要聊的就是一套非常典型的经济型组合汇川 Easy521 系列 PLC 作为 EtherCAT 主站带汇川 SV630N 总线型伺服完成从硬件接线、软件组态、伺服参数设置到运动控制指令编写的完整链路。整套方案的核心关键词就是 PLC、汇川、Easy521、SV630N、EtherCAT这几个词基本覆盖了中小型自动化设备在成本与性能之间找平衡的主流选择。我先把这套组合能干什么说清楚。Easy521 负责逻辑运算和运动控制指令的下发SV630N 负责把指令转换成电机的转矩、转速和位置输出中间靠 EtherCAT 这条实时工业以太网总线连接。它能解决的核心问题是让一台小型 PLC 在有限的成本下稳定地控制一台甚至多台伺服完成定位、点动、回零、多轴插补等动作。适合看的读者包括刚接触汇川平台的电气工程师、从脉冲伺服转型到总线伺服的调试人员以及需要给小型设备选控制方案的技术负责人。下面我按实际调试顺序把每个环节的关键点拆开讲。1. 方案选型为什么这套组合值得上手1.1 脉冲、Modbus、EtherCAT 三种控制方式的取舍做伺服控制绕不开控制方式的选择。早些年最普遍的是脉冲方向控制PLC 发脉冲、伺服收脉冲接线简单、原理直观但它有几个硬伤。第一是脉冲口数量有限一台小型 PLC 通常也就两三个高速输出点想上四轴、六轴就要加扩展模块成本直接上去。第二是脉冲频率受限于输出能力和线缆质量高频脉冲在长距离传输时容易丢步、受干扰尤其是变频器、大功率接触器密集的电柜里脉冲线没做好屏蔽就是灾难。第三是它只能开环下发PLC 不知道伺服实际到了哪里出了问题只能靠伺服自己的报警输出反馈。Modbus 这类串行总线能解决多站问题一台 PLC 理论上能挂几十个从站接线用两根线串起来就行。但 Modbus 的通讯速率和实时性摆在那波特率再高也是百毫秒级的响应做位置控制基本不可能通常只用于变频器的频率给定、启停命令这种对时序不敏感的场景。所以你会看到很多方案里PLC 用 Modbus 控制一串变频器做输送用脉冲或者总线单独控制伺服各司其职。EtherCAT 走的是完全不同的路子。它基于标准以太网物理层但抛弃了传统以太网那种逐站存储转发的机制改成主站发一个帧从站在帧经过自己时顺手把数据读写掉帧绕一圈回来主站就完成了所有从站的通讯。这个过程不需要软件协议栈参与用的是从站控制器硬件所以周期能做到微秒级。落到实际效果上就是 PLC 能在一个扫描周期里同时更新几十个伺服的目标位置和实际位置位置环和速度环都在伺服内部闭环PLC 只管发指令。这也是为什么这套组合能做多轴联动、电子凸轮这种对同步性要求高的动作。对小型设备来说Easy521 加 SV630N 的价值就在于用接近脉冲方案的成本拿到了总线方案的接线简洁度和多轴扩展能力。一根网线从 PLC 出去串完所有伺服再回来中间不需要额外的交换机接线量比脉冲方案少一大半。1.2 EtherCAT 的实时性到底从哪里来很多人用总线用得很顺但被问到为什么快就说不清楚我想在这儿把原理用大白话过一遍理解了原理后面调试遇到问题才好判断。普通以太网通讯一个数据包到达交换机交换机要先完整接收、缓存、查表、再转发节点越多延迟越大而且延迟是不确定的。EtherCAT 的从站芯片里有一个叫处理单元的东西数据帧在物理线路上流经它的时候它直接在帧的对应位置读出属于自己那几字节数据同时把自己的状态数据写进去然后帧继续往下一站走全程不停顿、不缓存。这就像一列火车开过站台乘客在火车不停车的情况下上下车。帧跑到最后一个从站再原路返回主站主站收到的就是一个已经填满所有从站信息的数据帧。这种做法带来两个直接好处。一是延迟可控帧的传输时间基本就是线缆上的物理传播时间加上每个从站的微小处理延迟可以精确测算。二是所有从站的时间基准能对齐也就是分布式时钟主站发一个参考时钟各从站通过测量帧的到达时刻来校准自己的本地时钟误差能压到几十纳秒级。有了统一时钟多个伺服才能在同一时刻采样、同一时刻更新输出多轴同步精度才有保障。理解了这一点你就能明白为什么 EtherCAT 的接线顺序、终端处理、走线方式会影响通讯质量也能理解为什么从站数增加时扫描周期要根据实际情况调整而不是一味追求最快。2. 硬件准备与接线前的关键确认2.1 型号确认与硬件清单动手之前第一件事是把型号确认清楚这一步偷懒后面全是坑。Easy521 系列里有带 EtherCAT 主站口的型号也有不带总线口、只有脉冲输出的型号采购时一定要核对完整订货号确认本体上确实有 EtherCAT 通讯口一般标着 ECAT 或者用标准 RJ45 口。如果拿到的版本没有总线口那整套方案就无从谈起只能退回到脉冲方案。SV630N 这边后缀 N 通常代表 EtherCAT 总线型还有脉冲型、CANopen 型等不同后缀别把脉冲型的伺服买回来当总线型用驱动器侧根本没有总线接口。同时要确认驱动器功率和电机配套SV630N 覆盖的功率范围比较广从几百瓦到几千瓦都有选型时按电机的额定电流和峰值电流去匹配驱动器规格。我按一台 PLC 带两台伺服、做一个两轴定位平台来举例需要准备的东西大致是这些类别物料说明主控汇川 Easy521带 ECAT 口本体自带 EtherCAT 主站驱动汇川 SV630N 配套伺服电机每轴一套功率按负载选电源DC 24V 开关电源给 PLC、伺服控制电、IO 供电动力伺服主电源单相或三相看型号给伺服动力回路供电通讯标准超五类及以上屏蔽网线建议用工业级带屏蔽层附件编码器线与动力线伺服原厂配套长度选合适附件接地线、端子、线槽别忽略接地和走线规范这里我要提醒一个容易被忽略的点伺服的动力线电机线和编码器线本身也需要接即使是总线型伺服编码器反馈线还是从电机拉到驱动器的只是编码器信号不进 PLC而是伺服内部完成位置闭环实际位置再通过总线送给 PLC。所以总线型省掉的是 PLC 到伺服的控制线不是电机到驱动器的反馈线。2.2 拓扑结构与接线要点EtherCAT 的物理拓扑很灵活支持线型、树型、环型。线型最常用也最省事PLC 的主站口出一根网线接到第一台伺服的输入口通常标 IN再从这台伺服的输出口标 OUT接到下一台伺服的输入口依次串下去最后一台的输出口空着或者接回主站做成环型冗余。注意每台驱动器上都有两个总线口一个进一个出别接反了接反了后面的从站直接不通讯。线型拓扑有个实打实的好处加轴的时候不用改前面任何接线在最后一台后面接一根线延长过去就行现场扩容非常方便。这也是它比星型需要交换机更受欢迎的原因。关于接线有几个必须守住的规矩。第一网线一定要用带屏蔽的工业网线屏蔽层要可靠接地且尽量两端都接屏蔽因为 EtherCAT 在强干扰环境下屏蔽能压住共模干扰减少通讯抖动。第二通讯线要和动力线分开走线槽实在避不开就垂直交叉坚决不要平行贴着走尤其是伺服动力线这种带高频 PWM 的线平行走线就是往通讯线上灌干扰。第三所有设备的接地要共地、单点接地避免地电位差在屏蔽层上形成环流。注意不要图省事用普通家用网线。普通网线没有屏蔽层在电柜里遇到变频器、伺服动力线通讯报错的概率会明显上升。工业现场因为一根网线折腾半天的例子太多了这一块钱真没必要省。还有一个细节线型拓扑里每个从站的进出顺序就是它的逻辑站号顺序主站扫描时会按物理连接顺序识别。所以规划接线时最好和程序的轴号规划对应上否则后期排查哪个是轴一、哪个是轴二会很痛苦。3. 软件环境与从站组态配置3.1 ESI 文件导入与从站扫描硬件接好之后进入软件配置。Easy521 用的是汇川自家的编程软件AutoShop 系列运动控制和总线组态都在里面完成。新建工程时选对 CPU 型号软件会自动带上 EtherCAT 主站配置的功能。组态的第一步是导入 ESI 文件。ESI 是 EtherCAT 从站设备描述文件全称 EtherCAT Slave Information本质上是一个 XML 文件里面描述了从站支持的通讯参数、对象字典、PDO 配置等信息。没有这个文件主站软件就不知道从站长什么样扫描也认不出来。SV630N 对应的 ESI 文件一般随驱动器资料提供或者从汇川官网的下载中心按型号下载。导入路径在软件的EtherCAT 设备库或者网络组态里选导入设备描述文件指向那个 XML 就行。导完之后就可以扫描从站了。扫描前确保 PLC 和伺服都已上电、总线接好。点击扫描正常情况下列表里会按顺序出现从站条目显示设备名称和站地址。这里有个常见现象要提前知道第一次扫描时从站可能显示成通用设备名或者问号那是因为驱动器还没配好等把 ESI 导进去再扫就正常了。另一种情况是扫描不到任何从站那基本是接线问题先检查网口指示灯亮不亮、进出顺序对不对。3.2 PDO 过程数据映射与刷新周期设置扫描到从站之后核心配置是 PDO 映射。PDO 是过程数据对象简单说就是主站和从站之间周期性交换的那批实时数据。EtherCAT 里和伺服打交道的 PDO 分两类主站发给从站的叫输出 PDORxPDO从站的接收方向从站发给主站的叫输入 PDOTxPDO从站的发送方向。对 SV630N 这种基于 CiA402 协议的伺服来说常用 PDO 内容大致是主站下发控制字、目标位置、目标速度、目标转矩、运行模式、若干数字量输出。从站上传状态字、实际位置、实际速度、实际转矩、错误码、若干数字量输入。控制字和状态字是 CiA402 状态机的核心后面使能流程全靠它们。目标位置和实际位置是定位控制的核心数据。做单轴定位最少要映射控制字、目标位置、运行模式加上状态字和实际位置这几项配齐就能跑起来。要做更精细的控制比如限转矩、读力矩再把对应对象加进去。PDO 映射有两种思路一种是用默认映射多数驱动器有预设的 PDO 组合改起来省事另一种是按需自定义映射把不需要的数据去掉减少每周期数据量能略微降低总线负载。中小设备、从站不多的情况下用默认映射基本够用不用过度优化。和 PDO 同等重要的是刷新周期和同步模式。总线周期一般设 1ms 或 2ms轴数多、对同步要求高就设 1ms普通定位设 2ms 也稳。同步模式建议选分布式时钟同步DC 模式这样多轴的采样时刻严格对齐。同步周期设短了如果从站处理不过来会报同步错误所以不是越短越好要结合从站数量和实际负载试出来。提示PDO 一旦改过映射伺服侧对应的通讯参数也要跟着确认两边映射必须一致否则会出现能通讯但数据错位这种隐蔽故障排查起来很费时间。4. SV630N 伺服侧关键参数设置4.1 站地址与通讯相关参数组态只是主站这头的事伺服驱动器本身也要配置才能和主站对上号。第一项是站地址。EtherCAT 从站地址有两种来源一种是主站扫描时按物理顺序自动分配另一种是通过驱动器参数或拨码手动设定固定站地址。如果现场有更换驱动器、调换接线的情况用固定站地址会更稳定换件时不用重新组态只要把新驱动器的站地址设成和原来一样就行。站地址参数一般在驱动器的通讯参数组里具体参数号按对应手册查。第二项是通讯相关参数包括同步模式选择、通讯看门狗时间等。同步模式要让驱动器工作在 DC 同步方式下和主站设置保持一致。看门狗时间是通讯中断的判定阈值如果超过这个时间没收到有效帧驱动器会报通讯故障并让电机安全停止这个值要设得合理太小会误报警太大则失去保护意义。第三项是控制模式。SV630N 支持多种运行模式通过 CiA402 的运行模式对象来切换常用的有周期同步位置模式CSP、周期同步速度模式CSV、周期同步转矩模式CST还有回零模式、插补模式等。做定位平台最常用的是周期同步位置模式主站每个周期下发目标位置伺服内部完成位置和速度闭环。回零阶段会切到回零模式回零完成后再切回定位模式。4.2 电子齿轮比与增益整定电子齿轮比是定位精度里绕不开的一环。它的作用是把主站下发的指令单位换算成电机实际转动的角度。公式思路是电子齿轮比 编码器分辨率 × 指令单位 / 电机转一圈对应的指令数举个例子SV630N 配的电机编码器常见是 23 位也就是每转 8388608 个反馈脉冲。如果你希望程序里一圈等于 10000 个指令单位方便计算1 单位对应 0.036 度那齿轮比就是 8388608 / 10000算出约 838.86。驱动器参数通常是分子分母形式比如 H05 组的电子齿轮比分子和分母把这个比值约简后填进去。这里有个必须知道的坑比值不可能完全整除取整后会带来极小的累积误差对于一圈内定位通常可以忽略但对于连续旋转、多圈累计的场合误差会慢慢显现。所以精确定位场合要尽量让指令单位和编码器分辨率成整数关系比如直接让一圈等于 8388608 个指令单位避开取整误差。增益整定是让电机跟得稳、不抖动的关键。伺服内部有位置环增益、速度环增益、积分时间等参数调不好就是两种极端增益太低电机软绵绵、到位慢、跟随误差大增益太高电机会啸叫、抖动甚至过冲振荡。我用下来比较稳的流程是先做自整定让驱动器自己测负载惯量、给一组初始增益然后在小幅往复动作里观察波形手动微调速度环增益提升刚性再调位置环增益改善到位速度。判断增益是否合适看总线里上传的实际位置和目标位置的差值也就是跟随误差。稳定运行时跟随误差应该基本恒定加速时增大、减速时减小整体平滑。如果跟随误差在稳态下还在来回跳说明增益偏高或者有机械共振如果跟随误差一直很大说明增益偏低或者加减速设置太激进。注意调增益前先把机械装好、联轴器锁紧。空载调出来的增益带上负载往往要重调因为负载惯量变了。很多人图快在空载平台上调好装到设备上直接啸叫白折腾一场。另外 SV630N 一般自带振动抑制功能遇到特定频率的机械共振可以开启自适应滤波器把它压掉比硬调增益更省事。这也算总线伺服相对脉冲伺服的一个便利因为波形数据能通过总线实时读到调试有依据不用靠耳朵听。5. 运动控制指令编写与程序结构5.1 轴使能与 CiA402 状态机程序这一块汇川小型 PLC 的运动控制基本遵循 PLCopen 规范指令名称和用法比较统一。开始写之前先理解伺服的上电使能流程也就是 CiA402 状态机这是所有运动指令能跑起来的前提。伺服上电后处于未使能状态不能输出转矩。要让它动起来需要按顺序完成复位故障、切换到就绪、使能输出、进入运行状态。这个过程主站通过写控制字、读状态字来驱动。好在实际编程时不用手写状态字直接用标准功能块就行。最常用的是轴使能指令逻辑上就是给轴通电。程序里一般这么组织先调用复位指令清除可能存在的故障再调用使能指令把轴激活。轴使能成功后轴的状态会变成可运行这时才能接受运动指令。如果使能不成功通常是驱动器有故障没清、主站没和从站建立通讯、或者状态机卡在某个中间状态可以读轴状态字来判断卡在哪一步。这里给一个使能部分的伪代码结构方便理解逻辑关系// 轴使能流程伪代码指令名以实际软件为准 MC_Reset(Axis : Axis_1, Execute : bReset); // 复位故障 MC_Power(Axis : Axis_1, Enable : bEnable, ...); // 使能轴 IF Axis_1.Status THEN bAxisReady : TRUE; // 轴已就绪可以发运动指令 END_IF轴使能指令有个 Enable 输入通常保持为 TRUE 一直使能除非需要急停或者安全断开才置 FALSE。要注意使能一旦断开正在执行的运动会被打断所以急停逻辑里使能断开和运动停止要配合好。5.2 定位、点动、回零指令实战轴就绪之后运动指令就能下了。常用的有这么几类我结合实际用法一个个说。回零是上电后几乎必做的动作因为伺服上电后不知道机械在哪需要找一个物理参考点建立坐标系。回零指令会按照设定的方向、速度、找原点方式找原点开关、找 Z 相信号、或者直接设当前位置为零点完成动作。做回零要注意两点一是回零速度别设太快撞到机械限位会报警二是回零方式要和实际硬件匹配如果设备上没有原点开关就用当前位置置零的方式但每次上电零点会漂适合对绝对位置要求不高的场合。点位定位是最常见的动作。绝对定位指令用于运动到坐标系里的某个确定位置比如从 0 走到 100mm相对定位指令用于在当前基础上移动一段距离比如每次走 10mm。两者的区别在连续动作里很重要做往复运动用相对定位更灵活做固定工位取放用绝对定位更可靠因为绝对定位不会因为某次丢步而累积偏差。这两种指令都需要设置目标位置、速度、加减速、运行模式等参数。参数里加减速时间要重点调。设得太短电机加速度大、冲击大、容易报警过载设得太长节拍上不去。常用做法是先设一个偏保守的值跑通后再逐步缩短观察电流和跟随误差找到又快又稳的点。速度单位要搞清楚是 mm/s、r/min 还是指令单位每秒单位搞错会导致速度离谱甚至飞车所以第一次调试务必用低速试。点动用于手动调机按住按钮电机就按设定速度走松开就停。调试机械、找位置的时候特别有用。点动速度一般设得低一些安全第一。还有一种增量点动每按一次走一个固定小距离适合手动微调。回零和定位的伪代码结构大致是这样// 回零 MC_Home(Axis : Axis_1, Execute : bHomeTrig, ...); // 绝对定位到 100.0 位置速度 50 MC_MoveAbsolute(Axis : Axis_1, Execute : bMoveTrig, Position : 100.0, Velocity : 50.0, ...); // 相对定位当前基础上走 -10.0 MC_MoveRelative(Axis : Axis_1, Execute : bMoveRelTrig, Distance : -10.0, Velocity : 30.0, ...);执行指令要注意 Execute 信号的处理。这类指令是上升沿触发Execute 从 FALSE 变 TRUE 时启动一次运动。如果要连续发多次定位必须先把 Execute 拉低再重新拉高不能一直保持 TRUE 就指望它连续走。同时要检测指令的 Done 位表示动作完成、Busy 位表示正在执行、Error 位表示出错用这些位来编排动作顺序别靠定时器盲等。5.3 多轴协同与程序框架建议如果设备上有多个轴程序框架要提前规划好不然后期加功能会乱。我的习惯是每个轴单独建一个轴变量然后做一个轴管理状态机把使能、回零、待机、定位、故障几个状态用状态机串起来主程序一个扫描周期跑一次根据当前状态和外部信号决定下一步动作。多轴联动常见的是两轴做直角坐标定位。简单的方式是把两个轴的目标位置算好后同时下发让它们并行运动速度和加减速配合好这样末端走的是一条合成轨迹。要求更高的场合就需要插补功能让两个轴严格按直线或圆弧轨迹同步走这依赖总线的同步精度。做插补之前确保同步周期设置合理、多轴都做了回零、坐标系统一。关于程序结构有几个实在的建议。第一把通讯状态监控放进去读主站和从站的通讯是否正常通讯异常时立刻停止所有运动避免失控。第二把每个轴的错误码读出来做报警伺服一报警能马上定位是哪台、什么原因不要只写一个笼统的伺服故障。第三重要的动作加超时保护比如回零超过一定时间没完成就报警别让程序一直傻等。6. 联调过程中的常见问题与排查实录6.1 通讯类故障排查联调阶段最容易出问题的就是通讯。我整理了一张速查表把碰到的典型现象和排查方向列出来现象可能原因排查方向扫描不到从站网线没接好、进出顺序反了看网口指示灯、核对 IN/OUT从站数目不对中间某台没上电或线松逐段检查看哪台掉线通讯时断时续干扰、屏蔽没接地、线缆太长换屏蔽线、分开走线、查接地能通讯但数据错位PDO 映射两边不一致核对主站与从站 PDO 配置报同步相关错误同步周期太短、从站过多放宽周期、减少从站或优化上电偶发报错上电时序、看门狗太严调整上电顺序、放宽看门狗通讯时断时续这种问题最磨人因为不是每次都出难复现。我的经验是先排除物理因素把通讯线换成质量好的工业屏蔽线、确保屏蔽层接地、把通讯线和伺服动力线彻底分开。物理干扰排掉一大半剩下的再看参数比如同步周期是不是设得太激进、看门狗是不是太紧。实在难判断的时候可以临时减少从站数量只留一台伺服测试如果单台稳定、多台不稳那就是负载或周期问题。还有一种情况要单独提就是上电顺序。有些现场会先给动力电再给控制电或者反过来不同时序下从站初始化状态不一样可能导致偶发扫描失败。稳妥的做法是控制电先上、主站软件跑起来识别从站再给动力电让初始化过程干净可控。6.2 定位精度与跟随误差问题定位不到位、有偏差也是高频问题。先分清两类原因一类是机械和参数问题一类是配置问题。机械和参数方面常见的是增益没调好导致到位慢或者过冲加减速太激进导致跟随误差大、定位时震荡。排查方法是看实际位置和目标位置的曲线跟随误差稳态下应该稳定。如果稳态误差大可以检查位置环增益、前馈设置如果到位后还在抖多半是增益过高或者有共振开振动抑制试试。配置方面最典型的是电子齿轮比设错导致实际走 100mm 结果走了 98mm 或者 102mm差一个固定比例。这种情况下不管怎么调增益都没用因为比例本身就是错的。排查方法很简单让轴走一个已知距离用卷尺或者百分表量实际距离算一下比例反推齿轮比哪里错了。另一个配置坑是软限位没设或者设反导致轴能走到超出机械行程的位置甚至撞限位。软限位要在程序里根据机械行程设好作为硬限位开关之外的第一道保护。还有一个容易忽略的点就是指令单位要统一。程序里算出来的位置是 mm、还是度、还是指令单位伺服那边期望的是什么单位必须从头到尾一致。我见过因为单位和齿轮比没配合好指令发100结果电机想转 100 圈的情况幸好低速测试没出大事。所以第一次上电永远用低速、小距离试探确认动作方向、距离都对再放大参数。7. 实操心得与长期维护建议整套方案跑通之后真正决定现场稳定性的往往是细节。分享几条我在实际项目里攒下来的经验。关于接地和供电我是吃过亏的。有一台设备在实验室一切正常搬到车间就频繁报通讯错误折腾半天发现是电柜里共地没做好伺服动力线的高频干扰通过地线串到了通讯回路。后来把接地重新规划、通讯线加屏蔽、动力线和通讯线彻底分开走线问题就没了。所以我一贯的建议是电柜布局阶段就把通讯线和动力线分开走线槽别等出问题了再改那个代价太大了。关于参数备份每次调好一套参数一定把 PLC 程序、主站组态、伺服参数都导出一份存档最好连 ESI 文件、软件版本号一起记下来。现场维护最怕的就是换件时版本不一致新驱动器固件版本和原版不同PDO 行为有细微差别直接套旧参数可能出问题。有条件的话每台设备留一份完整的配置包标注好日期和版本。关于扩展和选型如果设备未来可能加轴选 PLC 的时候就把从站数和总线负载留出余量Easy521 带的总站数量、每个周期的处理能力都有上限别贴着极限用。加轴的时候线型拓扑延长一根线就行但同步周期可能要相应放宽这个要在加轴之前评估。关于调试习惯我强烈建议上电前先做静态检查接线对不对、端子松不松、电机相序对不对、机械有没有卡死。伺服一旦使能电机是有力的机械没装好就动起来可能撞坏东西甚至伤人。让所有运动第一次都从低速、小行程开始确认无误再放开。这个习惯看起来慢其实是最快的因为每次撞机都要花几倍时间善后。最后说一句关于这套组合的整体感受。Easy521 加 SV630N 走 EtherCAT接线简洁、扩展方便、调试数据可视化对于中小型多轴设备是非常务实的选择。它的门槛主要在第一次配置时的从站组态和状态机理解一旦把使能、回零、定位这条链路跑通后面加轴、加动作都是复用同一套模式效率提升很明显。我在实际使用中发现把调试期的参数、波形、配置都留好记录是这套方案长期稳定运行最划算的投入比事后救火省心太多。
返回列表