做设备调试这些年,电子凸轮这个词听得越来越多,但真正能把凸轮曲线、相位同步、主轴跟随这些东西讲明白的人并不多。我手头恰好有一套三菱Q系列的老系统,Q173运动控制模块带四台伺服,跑的是典型的电子凸轮应用。借着这个项目,我想把电子凸轮从原理到实现、从参数设计到现场调试的完整链路拆开讲一遍。这套东西虽然算工业自动化里的老面孔,但里面的坑和技巧一直有参考价值,尤其适合刚接触运动控制的设备工程师、调试人员和维护人员。
1. 电子凸轮到底在解决什么问题
1.1 机械凸轮的天生局限
先说说机械凸轮的处境。传统设备里,凸轮机构就是一个异形轮廓的轮子,从动件压着轮廓运动,轮子转一圈,从动件就按轮廓形状走出一个固定的升降规律。这个规律完全由轮廓决定,所以机械凸轮有个很大的优点:刚性极好,动作可靠,不受外部干扰影响,这在几十年前是绝对的统治方案。
但用到生产线上,机械凸轮的麻烦也很明显。现场如果要换个产品规格,比如切长从200毫米改成250毫米,就得卸掉原来的凸轮换一个新轮廓的上去,齿轮比也要重新调。一套凸轮的加工周期加上停机损失,有时候三天都搞不定。更不用说凸轮轮廓接触面持续磨损,高速运转时滚子跳动、噪音、润滑问题,维护成本一点都不低。
这还只是痛点的一部分。真正让工程师头疼的是,机械凸轮一旦订货交付,轮廓就被物理固化,后面想优化一段加速曲线、想微调相位来补偿来料误差,都无从下手。设备稍微复杂一点,凸轮、连杆、齿轮、差速器全堆在一起,装配和调试难度直线上升。
1.2 电子凸轮的核心替代逻辑
电子凸轮解决的就是刚性和柔性这对矛盾。它的思路很直接:把凸轮轮廓变成一张数字表格,主轴转角作为输入,查表算出从动轴的目标位置,再由伺服电机驱动从动轴按这个位置去走。所谓“凸轮轮廓”,在软件里就是一组输入-输出数据点,用主轴位置索引,用插值算出输出位置。
这样一来,几件事同时变了。第一,没有物理磨损,你不再需要润滑和更换凸轮;第二,改规格变成改参数,只需要把凸轮表切换成另一组数据,几秒钟就能完成;第三,相位可以实时修正,因为相位本质上是主轴位置的一个偏移量,运行途中加一个偏移值就能补偿来料长短误差;第四,凸轮曲线可以做到数学上更平滑,比如摆线、修正梯形,这些曲线能显著降低冲击和振动。
电子凸轮不是要把机械凸轮全部消灭,它更适合需要频繁换产、需要在线调整、需要超长行程或者多轴同步的场合。在实际项目里,我看到最多的应用集中在横切、纵切、飞剪、冲压送料、印刷套准、玻璃切割、电池卷绕这一类设备上。
1.3 一个典型的现场应用画像
用我这次接触的项目来讲,这台设备是一台包装行业的定长裁切机。主传送辊带着材料往前走,切刀装在伺服轴上,要求在材料不停的情况下,切刀转一周的某个区间里和材料速度完全同步,把材料切断,其余角度快速回退,准备下一次切割。材料速度变化时,切刀也必须跟着变,否则切断的尺寸就会跑偏。
这种应用如果做纯定位控制,你会发现逻辑非常别扭:你要不断计算材料走了多少,然后命令伺服猛追一个位置,追到了再切,切完再停下来等。材料速度一波动,切出来的长度精度就看运气了。而用电子凸轮,材料的位置作为主轴,刀轴作为从轴,材料每走一个定长,凸轮表就走完一个周期,刀自然转到切割角度。主轴在哪,刀就在哪,完全是一个跟随关系,精度和响应都上了一个台阶。这正是电子凸轮最擅长的事情。
在我这系统里,控制平台就是三菱Q系列,运动控制部分由Q173模块承担。选择这个组合没有特别复杂的原因:一是甲方设备里已有几台三菱伺服,备件和技术积累都在;二是Q173作为独立运动CPU,凸轮算法的实时性有保障,不像通用PLC软运动那样容易被扫描周期拖累;第三点就是Q173的电子凸轮功能是整个三菱运动控制体系里比较成熟的一脉,资料也相对齐全。
2. Q173系列运动控制单元的架构要点
2.1 Q173在控制系统中的位置
很多初学者第一次看到三菱运动控制系统的硬件架构时会有点懵:明明有一个主PLC了,为什么又插了一个CPU模块?这个问题的答案,在于实时性分工。
Q系列系统里,QCPU负责常规逻辑控制,比如传感器输入、继电器输出、接到触摸屏的通信、生产流程的调度。Q173运动控制模块虽然也是一个CPU,但它的任务边界很清晰:处理伺服轴的运动轨迹、插补、电子凸轮、位置同步这些高实时任务。两个CPU之间通过基础模块的自动刷新和缓冲存储器交换数据,你把我需要的数据给我,我把运行状态反馈给你。
把运动算力从PLC扫描循环里拆出去,是这套架构最聪明的地方。普通PLC一个扫描周期可能1毫秒甚至更长,但中间还要执行很多非运动逻辑,运动任务很难保证稳定的小周期。Q173内部是按自带的运动控制周期运行的,电子凸轮查表、输出指令值这些动作都是在这个周期里完成,和主PLC的负载、扫描波动彻底分离。
2.2 Q173型号选型和轴规模的判断标准
Q173并不只有一个型号,同系列有不同等级的CPU,轴数和支持的特性有差异。选型时首先看轴数。我的经验是,如果你需要8轴以上的伺服控制,或者多轴之间要频繁做插补、凸轮、电子齿轮,Q173是合理的选择;如果只有4轴以下的小系统,另一个更小的运动模块也够用,成本更低,柜内空间也更节约。
选型还要注意一个点:Q173的运动控制周期直接决定凸轮的精度上限。运动控制周期越短,查表和计算输出的频率越高,从轴跟随误差越小。高速应用里,主轴的转速和凸轮曲线本身的斜率,都会放大跟随误差,所以选型时要预留足够的余量。我见过有人轴数不多,但转速特别高、凸轮推程特别陡,结果勉强选的周期档位跟不上,调试时怎么调伺服增益都没用,最后只能换更快周期的模块才解决。
2.3 主轴与从动轴的角色划分
要理解Q173的电子凸轮,必须先把主轴和从轴这两个角色分清楚。
主轴是凸轮的输入,它是位置的来源,相当于机械凸轮上那个不断旋转的凸轮。主轴可以是真实存在的物理轴,也可以是一个软件里生成的虚拟主轴。真实主轴的情况下,最常见的方式是把一根轴的编码器反馈接到系统里,由Q173周期读取,作为位置基准;材料测长辊、主传送辊、印刷版辊都可以担任这个角色。虚拟主轴则不需要电机,直接在运动模块内部生成一条位置曲线,从轴按它的节奏运转,适合一些没有物理同步源、纯粹按逻辑速度跑的场景。
从轴就是执行凸轮输出的伺服轴。凸轮表会根据当前主轴位置,输出一个对应的从轴目标位置。从轴的位置回路、速度回路在伺服放大器里闭环,Q173只负责下发位置指令值。
有一个细节值得注意:如果你的主轴本身就是一台伺服电机,也一样可以作为主轴。Q173通过网络总线读取它的编码器位置值,无需额外接脉冲线,位置同步的精度因此更高,也不会有脉冲丢失的问题。很多项目里,主轴轴和从轴轴都在同一个运动控制周期里刷新,同步的实时性是外接脉冲方案很难比的。
3. 凸轮表设计与曲线生成的实操思路
3.1 凸轮表的数据结构
凸轮表的本质,是一张记录了主轴位置和从轴位置的对应关系的数据表。主轴从0走到某个终点位置,表里每一行就是一对坐标点,Q173在每个运动控制周期里根据当前主轴位置查表,再通过插值算出从轴位置。
这张表的点数就是分辨率。点数越多,曲线越细腻,对运动模块的存储和计算开销也越大。实际项目里不是点数越大越好,而是要和主轴分辨率、需要的精度匹配。举个例子,如果主轴每转有1万脉冲,你在一个周期里用1000个点来做凸轮,看起来够用,但如果曲线在某一段特别陡,1000个点在这一段可能不够,插值出来的轨迹会有台阶感。反过来,点数设到1万以上,曲线数据量很大,但实际精度的提升可能非常有限,因为伺服和机械本身的响应能力才决定最终效果。
凸轮表的终点也不一定是机械上的一整转,它可以对应一段主轴距离。比如测长辊每转一圈对应材料前进628毫米,你希望每隔314毫米切一刀,那凸轮周期对应主轴位置就是半圈。机械上不用刻意做成一转一切,电子凸轮表里的“周期长度”完全由工艺决定。
3.2 用软件生成曲线的基本流程
在三菱这套系统里,凸轮表不是手工一个点一个点敲的,而是在运动控制软件里的凸轮编辑器界面做的。流程大致分几步:先设定凸轮表的总点数、周期长度、从轴行程;然后定义若干关键区间,比如推程区、同步区、回程区;每个区段可以选择运动规律,比如修正梯形、摆线、修正正弦,软件自动填充中间数据点;最后把数据下载到Q173。
列一个我在项目里常用的参数规划过程,你就明白这个流程里哪些数据是必须提前定的:
- 主轴分辨率:比如每毫米材料对应多少脉冲。现场是测长辊直接带编码器,测得辊径周长628毫米、编码器4096线四倍频后每转16384脉冲,折算下来每毫米26.1脉冲。
- 切割周期:要求切长500毫米,那一个凸轮周期对应的主轴位置就是500乘26.1,约13050脉冲。
- 同步区间:切刀从接触材料到完全切离,刀刃要通过一个弧长。刀辊直径200毫米,切刀刃区占30度,对应的弧长约为52.4毫米。材料每走52.4毫米,刀辊也必须走相同刃区,这部分就是同步区。
- 其余区间:剩下的角度用来完成切入、等待、快速回退,这部分要保证刀辊不会碰到材料。
这些参数定完后,在凸轮编辑器里,同步区从轴位置和主轴位置按直线比例关系设置,其他区段选择合理的运动规律,软件一算,完整的凸轮表就出来了。
3.3 曲线类型选择要看加速度而不是好不好看
很多搞电气的朋友第一次做凸轮曲线,喜欢把速度曲线做得“看起来很顺滑”,觉得正弦曲线肯定没问题。实际上凸轮设计的核心指标是加速度曲线,而且比速度更重要。加速度直接决定了对机械的冲击力,也决定了对伺服扭矩的要求。
常用的几种运动规律里,摆线曲线在运动学上非常平滑,始末点速度加速度都为零,冲击小,但在同等的行程和周期下,它的最大加速度值不算最低。修正梯形曲线的最大加速度通常会比摆线低,适合速度需求高、行程长的应用。修正正弦曲线在某些工况下均衡性好。如果没有特殊要求,我一般首选修正梯形,因为它能把最大加速度压得比较低,对伺服的扭矩要求更友好。
我在项目里还有一个原则:同步区间之外,尽量让加速度曲线连续,不要出现突变。因为加速度突变等于力突变,哪怕数学上只差一点,现场的机械振动都会很明显。生成完曲线后,我都会把加速度曲线拉出来看一眼,确认没有刺眼的尖峰,再下载到模块里。
3.4 不要忽略主轴反向和停顿场景
凸轮表设定的是主轴正向运动时的关系,但现场情况不会永远那么理想。比如设备在调试时手动点动,主轴可能会反转一点再往前;或者材料堵料的时候,主轴短暂停止。如果你的凸轮表只支持主轴单向运行,反转或者停顿的瞬间,从轴位置就会乱跳。
所以设计凸轮表时,一定要考虑主轴反向时的处理策略。Q173这类系统通常允许设定凸轮运行方向,或者要求项目里额外做逻辑保护:当主轴反向或速度过低时,切换成安全模式,等主轴重新进入有效区间后再恢复凸轮跟随。这个细节在调试前不留意,现场多半要吃亏。
4. 在Q173上把电子凸轮跑起来的关键环节
4.1 软元件分配和缓冲区规划
Q173的凸轮功能是通过缓冲存储器和PLC程序交互的。运行前,你需要把凸轮数据下载到模块里,然后在程序里分配凸轮表编号、指定运行轴、设置启动条件。
我的习惯是先把整个凸轮相关的软元件地址表列出来:凸轮表号从哪一个开始、每个表对应哪个从站轴、主轴源选择哪个轴、相位偏移地址放在哪里、凸轮启动和停止的指令位有哪些。这样列完再写程序,思路很清楚,后期查问题也方便。具体地址每个架构版本可能不一样,别背别人的地址表,以你现在安装版本的缓冲存储器清单为准。
有一点要特别提醒:凸轮表下载完成后,并不会马上生效到控制轴上去,要把它和实际的从轴建立关联,有时候还需要刷新或者使能。很多第一次做的人程序写完了,轴不走,或者走的还是上一个凸轮表,就是因为漏掉了这个关联动作。
4.2 凸轮启动的时序要求
凸轮启动不是随便给一个位信号就可以的,它有一个从动轴同步切入的过程。你可以把它理解成开车变道:不能瞬间横向一挪,要找一个安全的间隙斜切进去。
程序里启动凸轮之前,要满足几个条件:主轴位置已经进入预定的切入区间;从轴已经在定位模式下停在一个与凸轮表起点匹配的位置;启动指令发出后,从轴位置会从这个点开始按凸轮曲线运行。如果你在主从相位完全错开时直接启动,从轴就会瞬间收到一个巨大的位置阶跃,要么报警过载,要么机械被猛拽一下。
我在这个项目里的做法是,设备上电时先把从轴回一次原点,然后把从轴定位到一个计算好的初始位置,再开放凸轮启动条件。启动后,Q173会在运动周期里把主轴位置和凸轮表当前位置对齐,平滑进入同步状态。这个“对齐”逻辑如果是你自己搭的系统,一定要确认模块是否支持平滑切入,或者干脆自己多做一个斜坡过渡。
4.3 相位偏置就是现场微调的命根子
电子凸轮一个非常实用的功能就是相位偏置,也就是在运行中给凸轮增加一个相位上的偏移。包装线上最容易体现它的价值:假如切出来的产品长度总是偏长2毫米,不需要停下来改机构,只需要根据切长和圆周长计算出相位偏移量,在线写入偏移值,切割点就会整体前移或后移,尺寸立刻回到公差里。
相位偏移的计算要分清是主轴还是从轴侧。如果是按切刀转角来补偿,就更关注刀辊角度和材料的对应关系。比如你算出来需要在凸轮周期上提前1.5度切入,那就把相位偏移设定为对应的主轴位置增量。这里还要注意偏移有正负方向,现场试一次就知道方向,但我会在程序里把方向说明写清楚,避免一年后别人来改完全不知道这个寄存器是干嘛用的。
4.4 凸轮表的在线切换要留后手
换产品规格时,最理想的方式是在设备运行中直接切换另一张凸轮表,实现不停机换产。但这个功能有前提:旧凸轮表和新凸轮表的周期长度如果不同,就得保证切换瞬间从轴位置连续,否则轴会跳。
我一般采取两种做法之一。第一种,在同步区间与回程区交界处切换,因为那里从轴位置和速度相对一致;第二种,如果两张表差异太大,就让设备先切出凸轮模式,用定位方式把轴移到新表的切入位置,再启动新表。不要为了省一秒钟的停机时间,拿设备的安全去赌。
4.5 伺服参数要和凸轮曲线配合调
电子凸轮能不能跑得稳,不只是运动CPU的事,伺服放大器的参数同样关键。凸轮的输出是一条连续的位置指令,伺服回路必须跟上,尤其推程段加速度大的时候,位置环和速度环响应不足,从轴实际位置就会滞后。
我把Q173和伺服参数的配合当成一个整体来做。先把速度环增益和积分时间设定到机械不共振的上限,再开启合适的前馈功能。三菱伺服里有速度前馈和扭矩前馈的选项,适当提高速度前馈能明显减小凸轮同步段的跟随误差。注意前馈不能给到100%,否则一旦机械产生瞬时阻力,冲击会很大,一般从60%到80%开始调。调完位置环,再去看跟随误差曲线,逐步逼近理想状态。
5. 现场高频故障排查与调试实录
5.1 凸轮跟随抖动和切断长度不稳
这类故障最典型的外在表现是:空转看起来正常,一带着材料切割,长度忽长忽短,刀口偶尔有毛边。排查顺序要从机械到电气一层层剥。
先排除机械间隙,看联轴器、减速机有没有空行程。排完机械,再看凸轮表本身。如果曲线在切入切出段有加速度突变,伺服就一直在追,表现出来就是不断微抖。然后看伺服增益是否偏低,用监视功能记录指令位置和实际位置的差,如果差值随时间波动幅度大,优先加大速度环增益、开前馈。最后也别忘了看主轴编码器信号质量,现场变频器干扰严重时,主轴的读数偶尔会跳变,凸轮表跟着就错位,这种问题靠程序很难根治,要处理屏蔽和接地。
5.2 启动瞬间从轴冲一下
这个现象看起来吓人,其实原因一般比较集中。一个原因是凸轮启动时从轴位置和凸轮表曲线起点匹配不上;另一个原因是主轴位置恰好落在曲线的非零速度区,从轴直接以高速切入;还有可能是凸轮表第一段不是从零速度开始的。
我的排查动作是:先看凸轮表的第一个数据点,确认0位置的速度和加速度都为0;再看启动时序,确保从轴已定位到预设的等待位置后再发启动信号;最后在程序里加一个“允许切入窗口”,只有当主轴位置落在预定的起始区间时才允许凸轮启动。这三步做完,冲轴问题基本能消除。
5.3 换完后凸轮表却不生效
比轴乱动更让人头疼的,是改了凸轮表后轴根本没变化。这种事经常发生在离线编辑凸轮表、在线下载的时候。有两种情况:一是下载了但没刷新,模块内存里运行的还是旧表;二是新表下载成功,但关联的轴绑定的是旧表的缓存数据,没有重新映射。
我的建议是每次改完凸轮表,都走一遍完整的“下载—刷新—确认”流程,并且在程序里把当前激活的凸轮表编号通过触摸屏显示出来。调试的时候,只要屏幕上显示的编号不是你要的,那就说明没激活,别急着查轴。
5.4 常见故障速查表
| 故障现象 | 大概率原因 | 排查建议 |
|---|---|---|
| 从轴跟随抖动 | 凸轮曲线加速度有突变、伺服增益偏低、机械间隙 | 查看加速度曲线、调整伺服前馈和增益、紧固机械连接 |
| 启动瞬间冲轴 | 初始相位不匹配、曲线起点速度不为零、切入窗口未设置 | 确认从轴等待位置、检查凸轮表起点、增加启动窗口条件 |
| 切割长度周期性偏差 | 主轴测长编码器精度不足、同步区速度不一致 | 核对编码器分辨率、检查同步段凸轮输出斜率 |
| 凸轮表切换不生效 | 下载后未刷新、轴映射不对、表号关联错误 | 完整执行下载刷新流程、核对激活表编号 |
| 主轴反转时从轴乱跳 | 凸轮表未处理反向逻辑、缺少主轴方向保护 | 增加主轴方向判断、反向时退出凸轮模式 |
| 设备共振异响 | 加速度过大、机械固有频率被激发 | 更换缓动曲线、降低加速度段速度、增加制振参数 |
5.5 用速度和位置曲线来做最终验收
凸轮程序调完之后,别急着说大功告成。我会花一点时间,把主轴位置和从轴位置的同步曲线、从轴速度曲线、跟随误差曲线全部抓出来,跟理想曲线叠在一张图上看。你可别小看这一步,这种对比能直观暴露很多平时感受不到的问题,比如同步段速度偏差过大、回程段加速度峰值过高、跟随误差随主轴速度上升的趋势过快等。
等到曲线形状看起来平滑、跟随误差控制在一个目标值以内,这套凸轮才算是真正调完。我习惯把这几张曲线截图存档,等设备用了一两个月之后再抓一次对比,如果发现曲线形状明显变差,多半是机械出了问题,比如轴承磨损、联轴器松动。对维护人员来说,这其实是一个很好用的健康度判断手段。
做电子凸轮项目,我的体会是它并不神秘,说到底就是把机械轮廓搬进了数字世界,但搬进去之后,对工程师的要求反而更高了:你要懂机械工艺,知道同步区间在哪里、加速度限制是多少;你要懂伺服控制,知道跟随误差怎么调;你还要懂一点现场经验,知道哪些问题该改曲线而不是改增益,哪些该改程序而不是改硬件。Q173这套平台给我的感觉是稳定、保守、有足够的工具,但它不会替你思考,所有效果都来自于你对工艺的理解。如果你正准备做第一个电子凸轮项目,我建议你先把纸面上的工艺数据全部算清楚,再去碰软件和硬件,这样你的调试周期会短得多,踩坑的次数也会少很多。