多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

23轴伺服CCLink总线控制在锂电池焊接设备中的应用与调试

23轴伺服CCLink总线控制在锂电池焊接设备中的应用与调试 去年在一家锂电自动化设备厂调全自动焊接线甲方电气主管一上来就说23台MR-JE-C伺服全部走CCLinkCPU用三菱Q06UDV。这话出来现场几个技术员心里都打问号——伺服不都是脉冲或者SSCNET吗用CCLink拉23台能行吗最后设备量产跑了大半年反而让大家重新认识了这套方案成本比脉冲方案低抗干扰比脉冲强组网比专用运动系统简单关键是MR-JE-C本身自带CCLink口省掉一整套运动控制器。这篇文章把当时这套系统的设计思路、网络参数设置、定位程序写法以及调试中踩过的坑完整复盘一遍。设备放到今天看不算先进但23轴CCLink的规划方式、IO映射细节、排查套路对做多轴非标设备的同行应该还有参考价值我尽量写得能直接抄作业。1. 为什么一台焊接设备需要23轴伺服先把工艺需求盘清楚1.1 整机站位与轴数分配锂电池焊接线以方壳电芯pack焊接为例一般分为上料、电芯整形、极耳定位、焊接、焊后检测、下料几个工位。很多同行以为焊接机就是一个XY平台加一个转盘撑死十来个轴实际上全自动线除了焊接动作还挂着上料皮带、对位台、压爪、除尘嘴、CCD调节、下料分拣、不良品剔除等一堆动作。为了保证节拍和定位精度这些机构陆续都换成了伺服驱动。我当时给23台轴做了个分配表大家对照着看就明白数量不夸张工位伺服轴配置功能说明上料工位3轴皮带走带、极片拉齐、二次定位转盘工位4轴转盘分度、两道夹具压爪焊接工位3轴X轴、Y轴、Z轴激光头升降焊前整形2轴极耳压平、定位挡块焊中辅助3轴离焦量调整、同轴吹气位置、除尘嘴检测工位3轴探针找位、CCD移动、焊后整形下料工位3轴主输送、剔除、满料分拣预留扩展2轴换型机构、防尘门辅助这样加起来正好23轴。锂电池焊接设备追求的是多工位同时工作的复合节拍不可能让上料、焊接、检测来回串行等一个机构挪位置。所有工位并行动作伺服自然就多了。这台设备的工艺逻辑是上料工位在备料的同时转盘工位在转位焊接工位在出光检测工位在测量下料工位在收料四个工位的时间是叠在一起的。1.2 从节拍倒推控制需求设备节拍要求8秒完成一个电芯的完整焊接流程其中焊接工位纯焊接时间只有3.5秒。剩下的时间包括转盘转位、夹具夹紧、检测头定位等平均每个动作分配到的时间很短。转盘每次转90°要求0.8秒内完成焊接XY台要在2秒内从待机位走到焊接起点并稳定下来Z轴从20mm高度落下到压紧位置要求在0.5秒内完成且不能有冲击。这意味着各轴必须在几百毫秒内完成一次定位而且转盘转位和XY台焊接必须并行执行互不等待。如果用传统PLC脉冲输出方式23轴至少需要23路高速脉冲口Q06UDV本身给不了这么多得挂三到四块定位模块光接线和调试就能让人崩溃更别说脉冲长线传输在焊接电源干扰下的可靠性。所以在方案阶段我心里就把CCLink总线定成正选不是备选。1.3 点位轴、轨迹轴、同步轴分别怎么对待23个轴里真正需要连续轨迹的只有焊接工位的X/Y两轴Z轴是点位升降转盘轴是高速分度其他都是标准点位定位。这个分类直接决定了定位程序的复杂度点位轴按写入位置、触发启动、等待完成三步走轨迹轴则需要考虑连续定位数据表的预装载把折线轨迹拆成多段一段段连续执行同步轴如果后续有夹具跟随焊接的需求要做电子齿轮同步。我建议所有做多轴设备的人拿到轴数清单先做这个分类不然PLC程序的整体结构一定会乱。2. 硬件选型逻辑Q06UDV和MR-JE-C的CCLink组合为什么能成立2.1 对比脉冲控制和专用运动控制的成本账先说脉冲方案。23轴如果走脉冲Q06UDV一个CPU绝对不够要加定位模块三菱Q系列的定位模块一路输出算下来模块成本、线缆成本、端子排成本、安装工时加起来比CCLink方案高出不少。而且23组脉冲线在焊接设备里走线非常痛苦激光焊接机的变频器、焊接电源、伺服驱动器之间电磁干扰严重脉冲信号长距离传输一旦受干扰丢脉冲就是位置漂移排查起来非常费劲。再说专用运动控制方案。SSCNET或类似的光纤运动总线性能确实强支持真正的多轴插补但需要运动CPU或专用运动模块加上对应伺服驱动器的版本升级整套成本可能翻倍。对于这台设备来说真正的轨迹只有X/Y两轴的直线和折线焊缝用专用运动系统的插补能力属于大材小用。CCLink方案正好卡在中间Q06UDV加一块QJ61BT11N主站模块23台MR-JE-C直接挂在总线上一根屏蔽双绞线串完所有伺服省模块、省线缆、省安装工时。而且MR-JE-C这个型号本身就是带CCLink接口的伺服放大器不需要再买任何通讯扩展卡接线就是A/B两线加屏蔽层简洁得很。2.2 通讯周期能不能跟上焊接节拍这是甲方最开始质疑最多的一点也是很多同行对总线伺服的第一反应总线上有23个从站刷新周期会不会太长实际算下来CCLink在5Mbps速率下挂23个从站一个循环扫描周期大约2到4毫秒10Mbps可以进一步缩短到2毫秒以内。这个时间对定位控制意味着什么伺服的位置环和速度环是在驱动器内部完成的CCLink总线传输的是目标位置、目标速度这类指令值不是伺服周期级的实时位置偏差。焊接台要求在3.5秒内完成焊接段动作PLC在这段时间里刷新几百次位置指令对点位定位来说完全够用。而真正需要连续轨迹的XY焊接轴走的是伺服内部定位数据表数据预先通过CCLink写入执行时不需要总线逐周期参与更不受刷新周期限制。所以通讯周期这个担忧实际运行下来根本不存在。2.3 关键硬件清单与接线规范Q06UDV CPUQ系列主基板电源模块QJ61BT11N CC-Link主站模块MR-JE-C伺服放大器23台配套电机CCLink专用电缆带屏蔽双绞线总长控制在60米以内110欧姆终端电阻两个总线两端各一个接线上有几个细节必须注意。第一主站模块的DA、DB、DG端子要和第一台从站的DA、DB、DG一一对应不能交叉A/B反接是新人最容易犯的错。第二所有从站采用总线型串联不能拉成星型拓扑分支长度要尽量短。第三通讯电缆和动力电缆必须分开穿管间距保持200mm以上尤其要远离焊接电源和变频器的主回路。第四总线末端必须接终端电阻不接的话反射信号会让通讯时好时坏白天正常晚上抽风。这四条做到位网络物理层基本就稳了。3. CCLink IO设置和站号映射23个从站的具体配法3.1 站号规划给调试和扩展留余地CCLink网络最大支持64个从站但站号不是随手分配的。我当时的规划原则是按工位连续编站预留空站号给后期扩展并且一次定死尽量不改。比如1到4号给转盘工位的4台伺服5到7号给焊接工位8到10号给上料工位后面依次排。这样做的好处是看到故障站的站号马上能知道是哪个工位哪台轴不用对着图纸查。有个教训是站号一旦定了自动刷新表就跟着定了中途改站号意味着所有映射地址全部要重新规划程序里的软元件地址也要跟着改极易出低级错误。所以站号规划要放在项目最开始做完就当成技术协议的一部分冻结不要随意调。3.2 GX Works2里的主站参数设置CCLink IO设置是整个系统的核心我把操作步骤完整列出来在GX Works2工程中选择网络参数→CCLink设定QJ61BT11N的起始I/O号比如0000。运行类型选择主站。设定波特率。必须和所有MR-JE-C从站侧设定的波特率一致我选的是5Mbps。这个值在图纸阶段就要确定下来写进调试说明。在CCLink参数详细设置里登记从站信息每个站号选择对应的远程设备站类型并填写占用站数。MR-JE-C的占用站数以伺服手册为准常见是1到2站取决于使用的刷新点数这里不能拍脑袋填填错了网络中后面的站会整体错位。打开自动刷新设置把RX、RY、RWr、RWw映射到PLC软元件区。参数写完后必须执行参数写入然后给PLC和整个CCLink网络重新上电不是软复位是断电重启。网络参数不像梯形图程序那样改完立即生效这一点很多人不知道导致改完参数发现网络还是老状态以为设置没生效白白折腾半天。3.3 自动刷新表怎么设计一台伺服占多大内存以1号伺服为例我在自动刷新表里的分配如下刷新项方向软元件安排说明RWwPLC→伺服D100~D103定位数据写入位置、速度等RWr伺服→PLCD200~D203状态反馈当前位置、报警信息RYPLC→伺服M300~M30F控制信号伺服ON、定位启动等RX伺服→PLCM400~M40F反馈信号定位完成、报警输出等这里我特意把RX/RY映射到中间继电器M区而不是输入输出模块的X/Y硬地址。因为实际设备的I/O地址被按钮、传感器、气缸占掉大半再往X/Y里填从站信号非常容易冲突。映射到M区之后地址规划完全自己掌控。每台伺服按这个模板往后偏移比如2号站用D104~D107、D204~D207、M310~M31F、M410~M41F。这样写程序时看到站号就知道数据在哪排查故障速度快不少。有一个坑必须提醒自动刷新表里的D区和M区绝对不能和程序里其他用途的软元件重叠。我后面会专门讲一个案例就是因为程序里无意把一个映射D区当成普通数据寄存器用导致定位数据被反复覆盖轴死活不动。3.4 MR-JE-C伺服侧参数设置与确认项伺服驱动器不是插上通讯线就能用的必须在伺服面板或专用软件里按顺序设置CCLink的站号。MR-JE-C可以通过面板参数设定也可以通过驱动器上的站号旋转开关设定按机型不同操作方式有差异。关键点是站号参数修改后要断电重启才生效不是保存就完事。波特率。必须和主站QJ61BT11N的设置一致这是全网通讯的前提。通讯占用站数。由刷新点数决定必须和主站侧登记的信息一致。定位模式。把伺服设定为通过CCLink通讯指定定位数据的方式确保位置指令来源是总线而不是面板或外部端子。电子齿轮比。把PLC发给伺服的指令单位比如微米换算成伺服内部的位置脉冲单位这个数值和机械传动比、丝杠导程、电机编码器分辨率都有关系是位置精度的大前提。我建议每台伺服设置完用三菱的伺服设置软件把参数文件导出来备份贴好标签存档。23台伺服如果参数靠手动一个个抄写哪天换一台伺服重新输参数输错一个波特率整个网络就瘫了。有备份文件恢复五分钟搞定。4. 23轴定位控制程序的结构与写法4.1 运动控制的三段式套路23个轴如果每个轴写一套独立梯形图代码量爆炸而且容易出错。我拆成三段式统一模式下发给任何一台伺服都是同样的逻辑结构第一步指令区把目标位置、运行速度、加减速时间写入该站对应的RWw映射D区。 第二步启动区把该站的定位启动信号RY对应的M软元件置ON再复位产生一个上升沿脉冲。 第三步状态区等定位完成信号RX对应的M软元件变成ON再允许下一步动作。这三段逻辑不区分轴类型。点位轴直接执行轨迹轴在执行前先把多段位置表预写好同步轴则在启动区前加一条预同步指令。用统一的软元件地址模板做出来后新增任何轴就是复制一段改站号对应地址不用重新设计逻辑。4.2 用功能块封装公共动作三菱Q系列PLC支持结构化编程和功能块我强烈建议23轴规模的项目用功能块。我写了一个AXIS_MOVE功能块输入引脚是轴站号、目标位置、运行速度、加减速时间输出引脚是完成标志、报警标志。功能块内部根据站号自动计算映射地址主程序每次调用只需要填工艺参数。23个轴调用23次主程序代码量从上千步压缩到两百步左右而且逻辑一目了然。有人说三菱Q系列用功能块调试麻烦不如梯形图直观。我的经验是功能块只要封装一次、测试通过后面就是黑盒使用配合仿真功能完全可控。反倒是23套重复梯形图改一个共同逻辑要改23处漏改一处就是隐患。4.3 点位轴的动作示例以转盘工位的压爪轴为例定位程序的核心逻辑用结构化文本描述大致是这样// 指令区 D104 : 压爪目标位置; // 目标位置写入2号站 D105 : 压爪运行速度; // 速度写入 D106 : 加减速时间; // 加减速写入 // 启动区 M310 : TRUE; // 定位启动信号置位 M310 : FALSE; // 复位产生脉冲 // 状态区 IF M410 TRUE THEN // 定位完成 下一步动作使能; END_IF;这里的目标位置是多少在参数里配好指令单位微米或0.01毫米PLC里直接按工艺给机械值不用每次乘电子齿轮比。我见过有些程序员在PLC里手动换算脉冲数位置值写起来又长又容易错换成指令单位后程序可读性好几个档次。4.4 焊接轨迹轴的处理方式X/Y轴如果只做单点点焊点位方式就够但极耳、防爆阀焊接一般是一小段焊缝轨迹是直线或折线。我当时的做法是把轨迹折线拆成4到6段在PLC启动焊接前预先写入MR-JE-C内部的定位数据表执行时一段段连续触发上一段定位完成的信号立刻触发下一段的定位启动段与段之间的间隔控制在几十毫秒以内配合激光出光信号延时实际焊缝效果和专用运动控制的差别很小。这种处理方式的优点是不占用总线刷新周期因为定位数据表已经下载到伺服内部了。缺点是折线段转接处速度会掉下来焊点痕迹在转折处稍微明显一点。如果产品对焊缝形状要求高或者出现圆弧轨迹CCLink点到点方案就会力不从心要上真正支持插补的专用运动网络。这是方案边界接项目时一定要提前问清楚工艺需求别等项目验收了才发现轨迹要求超出选型。4.5 急停和安全联锁23轴联动的急停处理绝对不是每个轴单独急停那么简单。我的做法是急停回路直接断开伺服主回路接触器同时PLC程序把所有站的伺服使能信号SON全部撤掉所有定位启动信号全部复位并记录当前各轴断点位置。急停触发后每个MR-JE-C在下一轮CCLink刷新周期内同时收到使能撤销指令各轴同时失去扭矩设备安全停下来。这里要注意一个顺序撤使能和断主回路之间要做好防冲击处理。如果扭矩撤得太急而机械系统又有重力轴比如Z轴可能会下坠砸工件。所以Z轴这类垂直负载必须带抱闸抱闸联动在撤使能之前先闭合制动。这个细节是设备安全验收必查项不能图省事省掉抱闸控制器。5. 锂电池焊接工艺对运动控制的特殊要求5.1 焊接速度的平稳性直接影响焊缝质量锂电池极耳是铜箔铝箔叠起来的焊接激光一开如果XY台速度波动明显起弧点和收弧点会偏移严重时直接焊穿极耳。CCLink总线刷新对点位定位没压力但焊接段的稳定要靠伺服本身的速度控制能力以及PLC里的工艺信号联锁。我把Z轴到位信号、转盘压爪夹紧完成信号、极耳视觉定位信号三者做了严格的与逻辑三个条件全部成立才允许激光出光任何一个信号抖动激光立即闭锁。这个联锁逻辑看着简单实际生产稳定性提升非常大。如果光靠工人眼睛看焊点质量不良率根本压不住。5.2 转盘分度、压爪和焊接的节拍配合四工位转盘每工位间隔90°转盘轴每次转90°大约需要0.8秒行程90°、速度720转每分钟、加减速0.3秒。转盘到位后马上要压爪夹紧同时焊接工位的XY台已经提前就位。程序上我做了转盘减速段预判转盘在减速段时就放开焊接台的移动许可而不是死等转盘完全停稳。这样单看每个轴都是标准动作统筹时序能省出0.5秒一个循环一天下来产能多不少。做节拍优化的时候要格外小心安全区域。转盘还在动的时候焊接台的移动范围如果会侵入转盘区域就必须严格互锁不能为了节拍牺牲安全。我当时是在转盘转到接近定位角度、速度明显降下来之后才允许焊接台进入运动范围这个逻辑要写到梯形图里并经过双方会审。5.3 换型参数组与数据预装载电池型号一变方壳、软包、圆柱尺寸不同23个轴的位置表、运行速度、焊接轨迹都要切换。我的做法是在PLC数据块里做三套参数组换型时只改当前配方编号所有轴的动作从对应的数据表取值。MR-JE-C的定位数据也可以按配方编号提前预写换型时间压缩到一次复位以内。这里有个经验配方数据表不能只在PLC里存一定要同步到HMI触摸屏上让车间工艺员能直接查看和微调当前配方。不然每次调整都得喊电气工程师到现场改程序项目交付后麻烦不断。我见过太多项目因为配方参数不透明甲方自己不敢动最后所有问题都归到电控那边。5.4 关键参数参考区间焊接台XY轴运行速度100到300毫米每秒加速度0.5到1.5G视负载惯量而定焊接台位置重复精度实测做到±0.03毫米转盘轴加减速0.3秒定位精度±0.01度Z轴压紧速度60到120毫米每秒到位不反弹这些参数不是照抄就能用的必须根据机械结构、负载惯量比实测调整。惯量比太大时伺服会抖惯量比太小又浪费加速能力。MR-JE-C支持自动增益和惯量估算我建议装机后先用自动增益模式让伺服自己跑一圈再根据实际轨迹微调。6. 现场调试踩坑记录与排查链路6.1 案例一网络起不来所有从站红灯闪现象是最典型的QJ61BT11N的L ERR灯闪烁所有MR-JE-C的通讯指示灯不是绿色而是红色。排查顺序要按层次走不能乱翻手册。第一步查波特率。主站设的是5Mbps现场23台伺服一查发现3台出厂时被调到了10Mbps其他20台是5Mbps。CCLink网络没有自动协商机制只要有一台不一致整个网络就起不来。把所有伺服统一成5Mbps网络立刻恢复。第二步是如果波特率一致还不行查站号重复。站号重复的系统表现很诡异时好时坏一会这个站掉线一会那个站掉线。用网络诊断功能逐站扫描能很快锁定重复的站。第三查终端电阻。总线两端没接终端电阻的话网络表现为距离主站近的从站正常远的从站时通时断。这类问题在车间现场很常见因为调试阶段机柜移动频繁终端电阻被拔了忘接。6.2 案例二轴动错方向一台伺服启动就往反方向猛冲转盘轴一上电定位就往反方向高速冲这个问题看着吓人其实原因很简单伺服参数里的方向极性设置和机械正向不一致。MR-JE-C的转动方向由参数里的极性位决定PLC写入的位置值是正方向但伺服参数设反了结果就是正指令变反动作。解决方法是把伺服参数里的方向极性位改成和机械正方向一致。这个坑常见于更换伺服或更换电机之后新电机没有沿用旧参数一启动就出幺蛾子。所以换备件时第一件事就是核对伺服参数尤其是方向极性、电子齿轮比、编码器分辨率这几个关键项。6.3 案例三定位指令下了轴一动不动当时有一台轴程序里位置写了、启动位也触发了伺服就是不动。排查链路是这样的先确认伺服是否处于使能状态SON信号是否有效再确认对应的RY软元件M地址确实映射到了正确的从站然后确认是否有急停信号或限位信号激活把轴锁住了最后才看定位数据本身有没有写入成功。结果问题出在软元件规划上程序其他地方把一个映射D区当成普通数据存储区使用了每个扫描周期都会把新数据覆盖到D区里定位数据刚写入就被冲掉伺服收到的始终是无效数据。从那以后我就规定所有自动刷新表的D区、M区必须在程序开头列一个软元件禁区清单任何其他功能不得占用这个清单贴在我们项目组的公共文档里每次评审先过一遍。6.4 案例四焊接速度一提高焊点位置就偏移速度从200毫米每秒提到300毫米每秒之后焊点位置出现了0.1毫米左右的前后偏移。一开始以为是总线刷新跟不上后来分析下来不是总线问题而是激光出光指令和伺服加速段的配合问题。原来的程序是定位启动后固定延时50毫秒给出光使能。速度一变轴实际到达指定位置的时间就变了固定延时不变出光点就漂了。解决办法不再用固定延时改成等伺服反馈的实际速度到达报文MR-JE-C的当前速度反馈信号达到设定速度阈值之后再给出光使能。这样速度怎么变出光点都在速度稳定的位置起弧焊点位置稳定了焊缝质量也提升了。这个案例给我的启发是运动控制里的很多毛病其实是工艺信号和运动信号的时序配合问题排查时不要一上来就怀疑通讯速度先看看工艺条件是不是在正确的时间点触发的。6.5 一套可以复用的故障排查检查表把这几次踩坑归纳成一张表按层级从低到高排查基本能覆盖八成问题层级检查项常见问题物理层波特率、站号、占用站数全网必须一致站号不能重复物理层终端电阻、A/B接线、屏蔽接地缺终端电阻导致远站时通时断映射层主站起始I/O号、自动刷新表映射地址重叠、D区被占用伺服层CCLink使能、定位模式、电子齿轮比参数改完没重启、方向极性反程序层使能位、启动信号、完成互锁急停未复位、配方编号错误每次调试网络类故障我都按这个顺序排查而不是一上来就翻手册重设参数。顺序对了解决问题就快了。调试完这套23轴CCLink网络我最深的体会是决定项目成败的往往不是高档硬件而是设计阶段把站号、映射地址、动作时序这些看不见的规划做扎实。CCLink方案在锂电池焊接这类以点位为主、轨迹为辅的场景里性价比确实高如果大家手上的设备轴数在30以下、轨迹不复杂这套思路可以直接参考。如果以后遇到大圆弧连续插补的需求再考虑专用运动总线也不迟。最后提醒一句MR-JE-C的通讯信号定义不同批次手册会有差异调试前把对应机型的CCLink通信映射表打印一份放在机柜里比任何经验都管用。
返回列表