ARTICLE DETAIL

资讯详情

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

ABB ACCSET与FANUC等效调整:解决机器人点位运动顿挫

ABB ACCSET与FANUC等效调整:解决机器人点位运动顿挫 上个月帮朋友调试一条汽车焊接线机器人每到第三个点位就“咯噔”一下末端像被人踹了一脚似的。排查伺服、检查减速机、紧固地脚都做过一遍最后才发现问题的根源藏在ABB程序里一句很少有人主动去写的指令——ACCSET。今天就把这类问题的排查思路和调整方法整理出来重点讲清楚ABB里的ACCSET与FANUC中对应的等效手段如何解决点位运动不流畅的问题顺便把我在现场踩过的坑一并交代清楚。点位运动不像连续轨迹那样“一路丝滑”它本质上是机器人不断在加速、减速、再加速的过程。很多工程师一遇到抖动就怀疑机械但十个里面有五个其实是速度规划出了问题。这篇文章适合正在处理机器人点位顿挫、末端晃动、节拍异常问题的调试工程师也适合刚入行、想搞懂“为什么机器人走不快”的初学者。我会按排查顺序讲而不是上来就让你改参数。1. 先弄明白“不流畅”到底卡在哪一环1.1 速度-距离-加速度的三角关系为什么会“一顿一顿”点位运动不流畅最常见的原因不是机器人本身而是运动学上的一个基本矛盾机器人还没加速到目标速度就已经到了下一点必须立刻减速。这时候速度曲线是一个尖尖的三角形加速度方向瞬间反向机械冲击自然就来了。判断方法很简单记住一个公式机器人从静止加速到速度 v 所需距离 s v² / (2a)反过来在距离 L 内能达到的最大速度是vmax sqrt(2 * a * L)举个例子。假设某个ABB机器人实测加速度约为 2000 mm/s²你程序里写了 v20002000 mm/s那么它跑到目标速度需要s 2000² / (2 * 2000) 1000 mm也就是说如果两个点位之间只有 200 mm它最多只能冲到vmax sqrt(2 * 2000 * 200) 894 mm/s你设 v2000它实际只能跑到 894然后立刻减速。整个运动就是“加速—急减速—再加速—再急减速”人眼看到的自然是一顿一顿的。这个现象在连续小段点位路径中极其常见尤其是焊接、点涂、搬运密集取放这类应用。1.2 程序层面的三个隐藏元凶点距过短、速度过快、Fine点过多除开距离和速度的匹配问题程序本身还有三个地方会加重顿挫感我按出现频率排序点距过短但速度设定过高最典型。很多工程师习惯所有运动指令统一用某个速度没有考虑小距离点位根本跑不到。前面算过点距越短能达到的实际速度越低顿挫越明显。连续使用 Fine 点ABB 的 Fine 和 FANUC 的 FINE 都要求机器人必须精确到达目标点不能提前过渡。每到一个 Fine 点机器人就要完全停下来再启动视觉上就是“咔、咔、咔”地走。程序里如果连续十几个 Fine 点流畅度肯定好不了。WAIT 与信号交互打断速度规划点位之间如果夹了 WAIT DI、WAIT TIME 这类指令机器人就必须停下来等待后续运动全部从头开始加速。这种停顿有时候看起来像“卡住”实际上是被逻辑等待打断的。1.3 现场怎么快速判断问题到底在哪不需要高级设备在示教器上就能判断。手动单步走两个相邻点位测一下实际移动时间再用距离除以时间算出平均速度如果平均速度远低于你设定的速度说明这段路径很可能处于“三角形速度曲线”区间。另一个更直观的方法是观察机器人在接近点位时是否有“点头”动作有的话基本可以确认是加速度方向突变造成的。记住一条排查铁律先算距离再看速度然后看 Fine/Zone 设置最后才动 ACCSET。跳过前面几个直接调加速度是把问题从“程序问题”变成“参数掩盖问题”后续换产品、改路径时还会再冒出来。2. ACCSET指令的作用范围与常见误解2.1 ABB的ACCSET语法两个参数分别控制什么ACCSET 是 ABB RAPID 语言中用于设置“附加加速度”的指令语法如下ACCSET Acc, Ramp;两个参数都是百分比范围一般是 -100 到 100默认 0。具体含义Acc加速度正数让机器人在系统计算的基础加速度之上再“加一脚”动起来更猛、更快到达目标速度负数则削弱加速度让运动更柔和。比如 ACCSET -20 表示附加加速度降低 20%名义加速度变为原来的 80%。Ramp加速度斜坡这个参数很多人忽略但它才是真正影响“冲击感”的东西。它调整的是加速度变化率也就是从当前加速度过渡到目标加速度的快慢。Ramp 为正数斜坡更陡加减速更干脆Ramp 为负数斜坡更缓加速度渐变过程更长机械冲击更小。实际应用时如果只是为了消除顿挫我一般建议先动 Ramp不要急着大幅减小 Acc。比如先试 ACCSET 0,-20让加减速过程被拉平一些很多情况下顿挫就消失了而且节拍损失很小。这里必须强调一个关键机制ACCSET 设置后是持久生效的会持续影响后续所有运动指令直到程序里再次调用 ACCSET 或程序结束/停止。它不是“只对下一条 Move 生效”的指令。曾经有位客户把 ACCSET -50,-50 写在主程序开头结果整个搬运节拍直接翻倍最后查了半天才发现是这句“好心”的指令拖慢了全程序。2.2 FANUC没有同名指令但有等效参数很多从 ABB 转到 FANUC 的工程师会习惯性找 ACCSET但 FANUC 的标准 TP 程序里没有同名指令。这不代表 FANUC 不能达到同样效果只是入口不同。FANUC 最常见的加速度调整途径是系统变量$ACCEL加速度倍率例如 100 表示 100%80 表示 80%$DECEL减速度倍率含义与上面类似在 R-30iB/R-30iC 系列控制器上可以在示教器的变量设定页面中找到这些变量也可以直接在程序里用后台逻辑修改。需要特别注意的是$ACCEL往往按运动组或按轴区分修改前要确认你改的是不是当前程序在用的那一组。ABBFANUC 双方的等效关系可以用下面这张表概括调整维度ABB ACCSETFANUC 等效手段加速度大小ACCSET 的第一个参数 Acc系统变量 $ACCEL加速度倍率减速度大小同样通过 Acc 整体影响系统变量 $DECEL斜坡整形ACCSET 的第二个参数 Ramp部分控制器版本提供斜坡相关可调参数否则靠降低速度倍率间接实现作用范围从指令调用位置起后续所有运动通常是全局或整个运动组调整粒度可以随时在程序中插入/恢复更偏向全局设定调整粒度较粗FANUC 没有完全一一对应的“斜坡时间”参数时我通常的做法是降低加速度倍率到 80% 左右同时把目标点附近的 FINE 改成 CNT 转角两者配合下来流畅度提升非常明显。具体的 FANUC 菜单位置和选项名会因为控制器版本、选装包不同而略有差异现场调试时建议直接在 VARIABLES 页面搜索$ACCEL比翻菜单快得多。3. 手把手调整完整实操流程与验证方法3.1 第一步记录基准并排除机械/负载因素拿到一台“运动不流畅”的机器人不要急着改任何参数。先做以下四件事备份当前程序与参数。ABB 可以用 RobotStudio 的备份功能FANUC 可以用 CF 卡/U 盘做 Image Backup。改了参数后悔药可不好找。手动 Jog 机器人跑几个关键点听减速机是否有异响摇一摇末端法兰看是否存在明显机械间隙。机器人每轴用手推能感觉到超过 1-2mm 的松动大概率是减速机或轴承问题此时调软件没有意义。核对负载参数。在 ABB 中是 TOOL 和 LOAD 数据在 FANUC 中是 TCP 和 Payload 设定。如果机器人实际带着 80kg 的夹具程序里却只写了 20kg动态模型计算出来的加减速全是错的调 ACCSET 等于在错误的地基上盖楼。检查零点校准数据。零点有偏差时机器人各轴的运动学逆解会出现微小误差具体表现就是“到点前晃一下”或“重复定位差”跟加速度无关。ABB 和 FANUC 均在服务菜单中有零点校准状态检查确认当前各轴零点未丢失。这一步听起来基础但我见过太多同行跳过之后把时间浪费在调 ACCSET 上最后发现是地脚螺栓松动。软件调参永远不能代替机械检查。3.2 第二步ABB环境下的ACCSET调试流程确认机械、负载、零点都没问题后开始软件层调整。以 ABB 为例我的标准流程是这样建立轨迹基线在 RobotStudio 中导入当前程序仿真运行一遍记录各段运动时间。如果没有仿真条件就在示教器上逐段运行并秒表计时。检查点位速度匹配用前面提到的vmax sqrt(2 * a * L)公式初步判断哪些段落在“三角形速度区”。优先缩短或降低这些段落的速度设定而不是马上调 ACCSET。程序里插入 ACCSET找到需要优化的起始运动指令在其前一行插入 ACCSET。第一次建议保守一点ACCSET 0,-20; MoveJ p10, v800, fine, tool0; MoveJ p11, v800, zone50, tool0; ACCSET 0,0;注意末尾那句ACCSET 0,0;——作用是恢复默认避免影响后面工位的运动。逐级调整并记录每次调整后跑完整程序同时盯着电机电流和末端状态。如果只是轻微顿挫ACCSET 0,-20往往就够了如果还抖再试ACCSET -10,-30如果出现“肉”的感觉、节拍明显变慢就往回收。全程序验证不要只验证调整的那一段。ACCSET 的持久生效特性意味着你插入的位置之后的所有运动都会被影响必须完整跑一遍整个程序并重点观察后续工位是否有异响、抖动、跟踪误差报警。3.3 第三步FANUC环境下的等效调整流程FANUC 的操作路径略有不同核心思路是“调倍率 调转角”组合备份系统变量记录当前$ACCEL、$DECEL的值防止调乱后无法还原。打开变量设定页面找到$ACCEL[1]之类的项编号对应运动组把 100 改为 80 试跑。运行后观察如果顿挫减轻但不彻底通常不是继续往下降加速度倍率而是调整点位过渡方式。把问题段的 FINE 改成 CNT 并给一个合适的转角值比如L P[5] 500mm/sec CNT50让机器人在接近目标点时就提前向下一段偏转运动连续性会明显改善。若仍然不佳再配合程序速度倍率整体下调。FANUC 的$ACCEL是全局调节直接把加速度干到 50% 往往会让所有工位都变慢性价比极低。更好的做法是只下调特定程序的运动速度倍率。FANUC 在实际应用中还有一个常见问题部分老版本控制器对$ACCEL的修改需要切换到 T1 模式并重新上电才完全生效。改完参数后如果发现没变化不要以为调错了先查一下控制器版本对应的生效条件。3.4 第四步怎么判断“调好了”而不是“凑合能跑”判断标准不能只看“眼睛看着顺了”建议按这个顺序验收无异响、无顿挫这是最基础的。手动低速和自动高速都要跑一遍。电机电流平滑有条件的话查看各轴电机电流曲线。加速段如果电流有尖峰或毛刺说明还存在机械冲击平滑的馒头形曲线才是健康的。节拍损失可控一般流畅度优化允许 5%-10% 的节拍牺牲。如果为了不抖把节拍拉长了 30%就得回头想想是不是机械或负载层面出了问题。连续跑 50 次以上无报警偶发的过流、跟踪误差报警最怕“时好时坏”一定要长时间连续运行验证。一次性调到位的可能性不大调试过程本质上是“速度、加速度、转角、负载”四个变量的平衡过程要有耐心。4. 实战案例某焊接工位的“三步一抖”排查4.1 现象与初步怀疑一个汽车零部件焊接工位机器人每次走到第三、第四个焊接点时末端明显顿挫肉眼可见“点头”偶尔还会触发过流报警。现场已经换过两个工程师一个调了伺服增益另一个换了减速机润滑油问题都没有解决。我过去以后先没碰程序蹲在旁边看了一整圈完整的焊接节拍。确认现象集中在固定的几个点位且点位之间距离都比较短。这时我心里大概有底了——连续小段点位、固定点位抖动、偶发过流三样凑齐十有八九是速度规划和加速度突变的问题。4.2 诊断过程从机械到程序的逐步排除检查顺序如下表怀疑方向检查方式结果地脚螺栓用扭力扳手复紧有两颗略松紧固后重新测试减速机间隙手动 Jog 手感检查无明显异常负载参数核对 TOOL/LOAD 数据参数与实物基本一致程序点位查看连续点位距离与速度设定发现一段 8 个 FINE 点点距 20-80mm速度 v2000零点校准服务菜单检查数据正常地脚螺栓紧固后顿挫有一点减轻但并没有消失说明机械只是次要因素。真正的问题在程序那段路径 8 个 FINE 点连续排列点距最大才 80mm速度却设了 v2000。用公式算一下假设加速度约 3000 mm/s²80mm 距离内最大能达到的速度是vmax sqrt(2 * 3000 * 80) 693 mm/s机器人实际根本跑不到 2000却在每个 FINE 点都强制减速到零然后再加速速度曲线全程是尖三角形。顿挫的根源就在这里。4.3 调整步骤与最终效果我没有直接上 ACCSET而是先做了两步结构性修改降速把该段速度从 v2000 降到 v800让机器人在 80mm 段内能真正“展开”速度曲线而不是永远在加速途中被掐断。改转角把 8 个 FINE 点中的中间过渡点改成 zone 值较小的 Zone 点只保留焊接起止点为 FINE保证精度不受影响。这两步之后顿挫已经消失了百分之八十。剩下的轻微冲击我用 ACCSET 做了最后一点修形ACCSET 0,-20; ...连续焊接路径... ACCSET 0,0;调整前后的对比数据项目调整前调整后焊段节拍6.3 s6.1 s末端顿挫明显“点头”基本无感过流报警偶发未再出现焊接起止点精度偶尔偏移 0.2mm稳定在 0.1mm 以内这里有个经验值得说节拍不降反升。原因很简单原来的三角形速度曲线看起来很“猛”实际上频繁加减速浪费了大量时间改成梯形速度曲线后匀速段更长整体运动时间反而更短。很多人担心降低速度会拖节拍这个案例可以打消这个顾虑。5. 比ACCSET更重要的几件事避免瞎调5.1 负载参数不准ACCSET就是瞎调机器人运动控制系统里有一个完整的动力学模型负载参数质量、重心、惯量直接参与加速度和力矩的计算。ABB 和 FANUC 都有负载辨识功能ABB 在 RobotStudio 里有 LoadIdentify 向导FANUC 也有 Load ID 功能。负载参数不准时机器人会用一个错误的模型去规划加减速表现出来就是“该快的时候不敢快该停的时候停不住”末端晃动、轨迹偏差全来了。这时候你反复调 ACCSET等于在一个错误的基准上打补丁。先做负载辨识再做运动优化顺序千万别反。我见过一个典型案例某个打磨工位机器人总是末端抖动工程师把 ACCSET 从 0 一路调到 -60依然没有解决。最后重新做负载辨识发现实际负载比设定值大了 40%修正后直接恢复默认 ACCSET机器人立马就不抖了。5.2 零点校准与机械本体别让软件背锅点位运动不流畅还有一种特殊表现机器人在目标点附近“来回找位置”看起来像犹豫不决。这种情况多半不是加速度问题而是零点偏差或机械间隙导致重复定位不稳定。ABB 零点校准的标准做法是使用校准棒校准针将各轴转到机械零点位置然后在示教器中更新零点数据。FANUC 的零点校准在服务菜单中完成操作前必须确认各轴处于标记位置。零点校准完成后重新测试点位运动你会发现很多“软故障”消失了。这也是为什么我在整个排查流程的第一步就要检查零点——不是走形式而是为了不把宝贵的时间浪费在错误的参数上。5.3 连续路径的转角设计Zone/CNT的正确用法真正的高手调点位流畅度靠的不是猛压加速度而是合理设计转角区域ABB 的 ZoneMoveJ pHome, v800, zone50, tool0;中 zone50 表示机器人提前 50mm 开始向下一段过渡。焊接起止点、抓放料点用fine其余过渡点大胆给zone20到zone100。FANUC 的 CNTL P[3] 500mm/sec CNT50;中 CNT 值越大机器人越早开始转向运动越平滑。关键定位点用 FINE过渡路径用 CNT50-CNT100。转角区域设置得当机器人根本不需要在每个点都刹停点位运动看起来就会像连续轨迹一样顺畅。这个时候再配合少量 ACCSET 负值做冲击吸收效果远好于单靠 ACCSET 硬扛。5.4 安全红线与工程管理加速度调整会直接改变机器人的动态行为必须严守红线调整后不可以在单段路径上验证完就交付。要用最重的工况、最满的速度跑完整程序、完整节拍确认所有路径都安全最好连续运行 1-2 小时无异常。程序里插入 ACCSET 后要在注释中写清楚。至少登记为什么加、加了多大、验证日期、验证人。否则三个月后换个人来维护看到一句 ACCSET -20,-20不知道来龙去脉很容易直接删掉又导致问题复发。不要跨程序遗留 ACCSET 设置。一个程序里加了 ACCSET另一个程序如果调用相同模块务必检查是否需要恢复默认值。我习惯在程序调用结束时显式写ACCSET 0,0;避免“参数串程序”。最后再多说一句ACCSET 这个指令本身并不神秘但它不是“直接让机器人变顺”的开关而是对整个加减速曲线做整形的一个工具。我见过最多的翻车现场都是工程师一上来就ACCSET -50,-50结果机器人是柔了但节拍慢了一半还引发过流报警。真正高效的调法是先解决点距、速度、转角、负载这些“基本面”再谈用 ACCSET 锦上添花。你在现场调试时如果也遇到运动不流畅的情况建议按这个顺序走一遍大概率能少走不少弯路。
返回列表