一台定位轴在换过电机之后零点老是守不住,这种事在车间里太常见了。很多人第一反应是伺服没调好,参数重新整一遍、增益往上抬一档,结果第二天照旧。真正的原因往往在更早的地方——当初选电机的时候只想着转矩够不够、转速够不够,回零方式随手在驱动器里选了个默认值,两件事从来没有放在一起算过账。工业自动化里常见电机与回零方式的搭配,本质上是一道“精度、重复性、成本、维护”四者之间的取舍题:步进、伺服、直驱、异步电机的能力边界完全不同,它们能配的回零方式也完全不同。这篇文章面向刚上手做设备调试的工程师,也面向需要给产线做改造方案的人,把电机类型、回零方式、时序参数、现场踩坑这几块拆开讲清楚,尽量给出能直接照着算、照着调的东西。
1. 电机与回零本该一起定:两个被拆开讨论的问题
1.1 定位精度与零点重复性不是一回事
先把两个经常被混着说的概念分开。定位精度指的是轴从A点走到B点,实际落点和理论落点之间的偏差,它取决于编码器分辨率、丝杠导程、反向间隙、丝杠热伸长这些东西。零点重复性指的是同一台设备反复回零五十次,每次建立的原点位置之间的一致程度,它只取决于回零方式本身的物理机制,跟你的定位精度几乎无关。
这个区分为什么重要?因为现场大量“精度不够”的抱怨,其实投诉的是重复性。比如某台设备要求±0.02mm的加工精度,但每次开机回零之后的第一件工件总是差0.05mm,操作工手动补一刀就正常了,这就是典型的重复性问题而不是定位精度问题。反过来,如果重复性做到了±0.002mm,但整批工件系统性偏移0.03mm,那才需要去查丝杠导程补偿和机械装配。
我见过一种情况:设备用的是17位增量编码器的伺服,定位分辨率算下来每脉冲不到0.001mm,账面数据很漂亮,但回零方式选的是“只用限位开关”。机械式行程开关的重复精度大概在±0.05mm量级,光电开关好一些,±0.01mm到±0.02mm,接近开关受被测金属材质和温度影响更大。于是整台设备的零点重复性被那个开关锁死了,编码器再高的分辨率也用不上。回零方式的精度上限,就是你整轴零点重复性的天花板,这句话建议贴在调试台上。
1.2 三类零点基准:机械挡块、位置开关、编码器基准
把所有回零方式拆到最底层,其实只有三类物理基准,剩下的都是组合。
第一类是机械挡块。轴往一个方向走,撞到固定的死挡块,驱动器检测到转矩或者位置误差超过阈值,就认为“到位置了”,把这位置设成原点。它的基准是挡块本身的安装位置,重复性受挡块刚度、丝杠预紧、联轴器扭转刚度影响,通常只能做到±0.02mm到±0.1mm,撞多了挡块还会被打出凹坑,零点就慢慢漂。
第二类是位置开关。光电、接近、机械行程开关都属于这一类。开关的重复精度决定了基准精度,同时开关的动作点还跟接近速度、被测物材质、环境温度相关,所以必须做“两段速度”——快速接近,慢速二次找到,把速度因素压到最小。
第三类是编码器基准。增量编码器每转输出一个Z脉冲,绝对编码器上电就有唯一的绝对位置值,光栅尺有等间距的参考点标记。这一类才是真正能做到微米级甚至更高重复性的基准,因为它不依赖任何机械件的安装公差。
工程上的主流做法是把后两类串起来用:开关负责告诉你“大概到这一带了”,Z脉冲负责告诉你“精确到这里”。开关的重复性差没关系,因为它的作用只是一次粗筛,最终定位置的是Z脉冲。这就是为什么99%的高精度轴都用“开关+Z”这套组合。
1.3 后文讨论的边界与典型工况
为了让后面的对比有意义,先框定一下讨论范围:负载重量从几公斤到几百公斤,行程从50mm到3000mm,速度从10mm/s到1.5m/s,重复定位要求从±0.5mm(普通搬运)到±0.005mm(精定位装配)。超出这个范围的特殊设备,比如超高速贴装头、超重载锻造操作机,选型逻辑会更复杂,但那属于另一个话题。
另外说明一点:本文中的具体数值、参数都属于行业里常见的经验区间,不同厂家的驱动器、不同结构的机械,实际值会有出入,但数量级和判断方法是通用的。真正上手的时候,请以你手上的样本曲线和实测数据为准。
2. 四类常见电机的真实能力边界
2.1 步进电机:开环体系里最省钱的一档
步进电机的工作原理决定了它的性格:驱动器按脉冲数开环发相电流,转子跟着磁场一步一步转,转了多少步驱动器“以为”自己知道,但转子到底有没有跟上,它并不知道。常见两相混合式步进的步距角是1.8°,也就是整步200步一圈,配上细分之后每圈可以做到几千到几万微步。
这里有个新手最容易误解的点:细分提高的是运动平滑度,不是定位精度。你把细分从8提到64,脉冲当量从0.0125mm变成0.0016mm,但步进电机的实际定位精度取决于步距角精度(通常±5%)和负载,不是取决于你发了多少脉冲。细分真正的价值在于避开低速共振区、让低速运行更平顺。两相步进在100到300pps这个区间有个固有共振带,如果你恰好在这个速度区间做定位或者回零,会听到明显的咔咔声,甚至直接丢步。解决办法一是换细分、二是避开这个速度、三是加装惯量盘。
步进的转矩曲线是硬伤:保持转矩看起来不小,但转速一上去转矩掉得很快。以常见的1.8°、3N·m级步进为例,300rpm时可能只剩一半,600rpm以上掉到三分之一甚至更低。所以步进适合的场景很明确——轻载、中低速、没有过载冲击、不需要高速动态响应,比如点胶机的XY、小型传送带的定位、简易包装机的推料。这类设备用步进,成本可能只有伺服的几分之一。
步进在回零上的特殊限制在于:它没有Z脉冲(除非选带编码器的闭环步进),也没有转矩反馈,所以既做不了“编码器基准”的回零,也做不了堵转回零。步进轴基本只能靠“开关+固定偏移”这一条路,零点重复性被开关卡死。另外闭环步进虽然带了编码器,但它的闭环逻辑是“位置补偿”而不是真正的伺服控制,回零精度和动态性能仍然跟伺服差一截,别指望用它替代伺服做高精度轴。
2.2 交流伺服:过载能力和闭环带宽换来的余量
伺服的价值不只是“闭环”两个字。真正让它和步进拉开差距的是三件事:过载能力(常见2到3倍额定转矩,持续1到3秒)、速度环带宽(可以在几百赫兹量级做动态响应)、丰富的反馈信息(位置、速度、转矩、跟随误差全都拿得到)。
分辨率先看编码器。常见增量式伺服编码器每转几千到几万脉冲,绝对值编码器常见17位(每转131072)、20位(1048576)、23位(8388608)。假设丝杠导程10mm、直连、编码器每转10000脉冲,脉冲当量就是0.001mm;如果换成20位绝对值编码器,脉冲当量变成10/1048576≈0.0000095mm。当然这只是理论分辨率,实际定位精度还要被丝杠的导程误差和反向间隙吃掉大半,不要被这个数字冲昏头。
伺服真正需要你花时间的是惯量比和增益整定。惯量比是负载折算惯量除以电机转子惯量,一般建议控制在5倍以内,追求高动态响应的场合控制在3倍以内。惯量比太大,增益就上不去,上去就啸叫或者过冲。这时候可以考虑加减速机——减速比i能把负载折算惯量按i²的平方缩小,效果非常明显。
伺服的另一个好处是它能配合几乎所有回零方式:Z脉冲、绝对值、堵转、限位开关,全都能玩。这也是为什么中高端设备清一色伺服。代价是需要整定参数、需要处理使能时序、需要更仔细的布线和接地,调试工作量比步进大一个量级。
2.3 直驱与直线电机:拆掉传动链之后的账
直驱力矩电机(DDR)和直线电机的共同点是把丝杠、齿轮齿条、同步带这些中间环节全部删掉,电机转子(或动子)直接连着负载。好处很直接:没有反向间隙、没有传动件弹性变形、刚度高、加速度大,配合高分辨率编码器可以做到很高的重复定位精度。
代价也很直接。第一是发热,直驱电机的热量直接进到负载和机架上,容易引起热变形,所以很多场合要加水冷或者气冷。第二是对异物敏感,直线电机的磁钢会吸铁屑,开放式结构在机加环境下必须做防护。第三是垂直负载麻烦,直线电机不能自锁,垂直轴必须配平衡气缸或者重锤,否则一断电动子直接砸下来。第四是成本,同推力等级下,直线电机加光栅尺的价格往往是丝杠加伺服的数倍。
回零方面,直驱和直线电机通常配光栅尺或高精度圆编码器。增量式光栅尺有等间距的参考点标记(reference mark),配合限位开关可以快速找到最近的参考点;绝对式光栅尺上电即有位置,回零就退化成“设零”动作。这两种都算得上精度天花板级别的方案,但前提是你的机械安装面足够平整、尺子贴得足够好,光栅尺的安装公差往往比丝杠严格得多。
2.4 异步电机加变频器:多数时候只是在做调速
这类组合在工业现场数量最多,但绝大多数只做速度控制——风机、水泵、输送线、搅拌。它能做定位,配编码器做闭环矢量控制也能有不错的速度精度,但位置环的动态响应、低速转矩平稳性都比不上伺服,所以一般只在“定位要求不高、行程由机械挡块或限位开关决定”的场合出现,比如行车的大车行走、堆垛机的升降。
回零方式上,异步电机基本就是“开关”或“挡块”这两条路。如果变频器带编码器接口,理论上也能抓Z脉冲,但低速性能不稳定,实际用的人不多。选这类方案的时候,重点根本不在回零精度上,而在变频器的加减速时间、制动电阻配置、低速转矩提升这些地方。
2.5 从负载反推电机型号的两段小算例
选型不能拍脑袋。举一个水平丝杠轴的例子,走一遍计算。
已知:负载质量 50kg,丝杠导程 10mm,丝杠效率 0.9,摩擦系数 0.05,要求加速度 5m/s²,最高速度 0.5m/s。
第一步算推力:加速力 = 50 × 5 = 250N,摩擦力 = 0.05 × 50 × 9.8 = 24.5N,合计 274.5N。
第二步算电机转矩:T = F × Pb / (2π × η) = 274.5 × 0.01 / (6.283 × 0.9) ≈ 0.485 N·m。取2倍安全系数,需要约 1 N·m 的连续输出能力。
第三步算转速:n = v / Pb = 0.5 / 0.01 = 50 r/s = 3000 rpm。
第四步校验:到这个转速时,电机转矩曲线上的可用转矩必须还在1N·m以上,否则就得加减速比或者换大一号电机。
第五步算惯量比:丝杠自身惯量假设 0.0001 kg·m²,负载折算惯量 = m × (Pb/2π)² = 50 × (0.01/6.283)² ≈ 0.000127 kg·m²,合计约 0.000227 kg·m²。若电机转子惯量 0.00005 kg·m²,惯量比约 4.5 倍,偏高但可用;如果要求更高的动态响应,加减速比 i=3 的减速机,负载折算惯量变成 0.000227/9 ≈ 0.000025,惯量比直接降到 0.5 倍左右,响应能力大幅提升。
这套算法不复杂,但现场很多人跳过了第五步,结果机器装好之后一调增益就啸叫,只能把速度降下来用,白白浪费了电机的能力。
2.6 四类电机的横向对比
下表把前面几节的内容收拢一下,方便快速定位:
| 维度 | 步进电机 | 交流伺服 | 直驱/直线电机 | 异步电机+变频 |
|---|---|---|---|---|
| 反馈形式 | 开环(或闭环步进) | 增量/绝对值编码器 | 光栅尺/高精度编码器 | 编码器或无 |
| 典型重复定位 | ±0.02~0.05mm | ±0.005~0.01mm | ±0.001~0.005mm | 依赖挡块,±0.1mm以上 |
| 过载能力 | 无(过载即丢步) | 2~3倍短时过载 | 受热限制 | 有限 |
| 低速平稳性 | 有共振区 | 好 | 很好 | 一般 |
| 可配回零方式 | 开关+偏移为主 | 几乎全部 | 参考点/绝对值 | 开关/挡块 |
| 调试工作量 | 小 | 中到大 | 大 | 小 |
| 成本(同推力) | 低 | 中 | 高 | 低 |
看这张表的时候注意一点:重复定位那栏是“典型值”,不是“极限值”。同一类电机配上不同的回零方式,结果可能差一个数量级。这也是为什么下一节要单独讲回零。
3. 回零方式的六个大类及其适用边界
3.1 开关加Z脉冲:目前最主流的组合
这是工业现场出现频率最高的方案,动作逻辑分两段:轴以较快速度朝原点方向走,碰到原点开关后停止;反向退出一点距离确保开关释放;再以低速二次接近,开关再次动作后开始等编码器的Z脉冲;捕获到Z脉冲的瞬间把位置寄存器清零。整个过程中,开关只负责“进入这一转的范围”,最终定位靠Z脉冲。
为什么这套方案精度高?因为Z脉冲是编码器每转输出的一个物理标记,它与编码器码盘刻线严格对应,重复性只取决于编码器本身和轴的机械状态,不受开关安装公差、温度、接近速度的影响。只要轴每次都能停在“开关到Z脉冲”这段确定距离内,捕获到的Z就是同一个物理点位。
常见的伺服总线规范里,这类方法的编号大致分几族:1、2、17、18 一类是只用限位开关不带Z;3到5、19到30 是开关加Z的各种方向组合;33、34 是只找Z脉冲,用在已经有开关信号做粗定位或者行程很短不需要开关的场合;35、37 是直接把当前位置写成原点。具体编号的含义各家手册里都有一张图,第一次配的时候一定要对着图看,别凭印象填。
3.2 只用限位开关:成本压到极致的方案
省掉Z脉冲,只用开关做基准。好处是驱动器配置简单、对编码器类型没要求、增量式绝对式都能用。坏处前面已经说过——精度天花板被开关锁死。
这里补充一个容易被忽略的细节:开关的动作点跟你接近它的速度有关。同一个光电开关,以200mm/s接近和以20mm/s接近,动作位置可能差0.2mm甚至更多。原因在于传感器的响应时间加上输入滤波延迟。比如传感器响应1ms、输入滤波2ms、总滞后3ms,200mm/s时位置滞后0.6mm,20mm/s时只有0.06mm。所以即使用开关做基准,也一定要做两段速度:快速接近、反向退出、低速二次接近。这样至少把“速度不一致”这个变量给固定住了。
开关还有方向性问题。有些接近开关在正向接近和反向接近时的动作点不同,这叫回差。如果你的回零流程每次都从同一个方向接近开关,回差就不会体现出来;但如果因为某种异常导致轴从另一侧接近,零点就会突然跑掉。所以流程设计上必须保证永远从同一侧、同一方向接近原点开关。
3.3 挡块硬停止回零:省开关但吃掉机械寿命
轴直接撞到机械死挡块,驱动器检测转矩或者跟随误差超过阈值并持续一小段时间,判定到位,然后回退一个固定距离把这一点设为原点。这种方案在行程两端没有空间装开关的场合很有用,比如某些旋转轴、短行程的小型模组。
代价是实打实的:每次回零都是一次轻微撞击,丝杠、联轴器、挡块都在承受冲击载荷;重复性通常在±0.02mm到±0.1mm之间,因为挡块的变形量、联轴器的扭转角每次都不完全一样;撞的次数多了,挡块被打出凹坑或者丝杠预紧力下降,零点会慢慢漂。
如果非要用,几个原则:回零速度必须很低(1到5mm/s量级,别贪快);转矩限制设得刚好够用(能推动负载再留一点余量就行,不要设成满转矩);挡块做成可更换的耐磨件(比如加一块硬质垫片,磨损了换垫片而不是换整块结构);回退距离要大于挡块变形量和联轴器回弹量,通常取0.5到2mm。另外,同步带传动和齿轮齿条传动不要用堵转回零,皮带会跳齿、齿条会有间隙,撞完之后位置对不上。
3.4 绝对值编码器:上电即有位置的代价
绝对值编码器分单圈和多圈。单圈只能在一转范围内给出唯一值,超过一圈就重复了,所以单圈绝对值系统本质上还是需要回零,只是回零过程可以省掉Z脉冲那一步。多圈绝对值靠内部齿轮加电池(或者无需电池的物理原理)记录圈数,断电之后位置不丢,上电直接就知道自己在哪。
这套方案的最大价值不是精度,而是省掉开机回零动作。对于行程很长、回零一次要跑十几秒的设备,或者根本不允许动作的设备(比如垂直轴、机器人关节、停机时停在行程中间不能随便动的设备),绝对值几乎是唯一选择。
但“绝对值”不等于“绝对正确”,这里有三个坑。第一是电池。带电池的多圈编码器,电池电压低会报警,此时多圈值还勉强保得住,但一旦断电时间长了就丢。换电池必须在通电状态下进行,让编码器保持供电,否则多圈数据清零,位置彻底丢失。第二是机械打滑。编码器记得的是电机轴的角度,如果中间隔着减速机、同步带、联轴器,任何一处打滑或者松动,编码器的值和机械的实际位置就对不上了,而系统自己完全不知道。第三是安装零点。绝对值系统所谓的“回零”,其实是“把当前位置写成原点”,所以你必须先有办法把机械手动摇到一个已知的基准位置,再执行一次设零。这个基准位置怎么找?还是得靠挡块、销孔或者标记,绕了一圈又回来了。
3.5 光栅尺参考点:直线轴绕不开的路
直线电机、长行程直线轴基本都用光栅尺。增量式光栅尺每隔固定距离(常见20mm、50mm)有一个参考点标记,回零流程通常是:先按限位开关或者挡块找到大致位置,再低速去找最近的参考点,找到后把位置设成该参考点对应的机械坐标。
绝对式光栅尺上电就有位置,不需要找参考点,但安装和调试要求高得多。读数头的间隙、平行度、尺子与运动方向的平行度,任何一项超差都会导致信号不稳或者精度下降。现场见过为了省事把读数头间隙调到上限的,结果机器跑热了之后信号丢失,报警停机,查了半天才发现是热膨胀把间隙顶出去了。
3.6 几种方式的横向比较
| 回零方式 | 典型重复性 | 需要开关 | 上电是否要动作 | 常见搭配 |
|---|---|---|---|---|
| 开关+Z脉冲 | ±0.002~0.01mm | 需要 | 是 | 伺服+增量编码器 |
| 仅开关 | ±0.01~0.05mm | 需要 | 是 | 步进、伺服、变频 |
| 挡块硬停止 | ±0.02~0.1mm | 不需要 | 是 | 小行程模组、旋转轴 |
| 多圈绝对值设零 | 取决于机械 | 设零时需要 | 否 | 伺服+多圈编码器 |
| 光栅尺参考点 | ±0.001~0.005mm | 通常需要 | 是 | 直线电机、长行程轴 |
| 绝对光栅设零 | ±0.001mm级 | 设零时需要 | 否 | 高精度直线轴 |
看到这里应该能明白一个道理:回零方式的选择不是“哪个精度高选哪个”,而是“我的机械能做到什么程度、我的工艺需要什么程度、我能接受多少维护成本”。一台±0.1mm就够用的搬运设备,硬上绝对值编码器,多花的钱换不来任何收益,反而多了一个电池维护项。
4. 回零时序与参数:算清楚再动手
4.1 两段速度的分工与倍率设定
两段速度里,第一段负责“快”,第二段负责“准”。第一段的速度取多少?取决于行程长度和开机等待时间的容忍度。行程1米、第一段速度200mm/s,回零大概5秒;如果提到500mm/s,2秒搞定,但冲击大、开关滞后也大。经验上第一段速度取额定速度的30%到50%,既能保证效率又不至于让机械抖得厉害。
第二段速度是精度的关键。速度越低,开关动作点越稳定,Z脉冲也越容易稳定捕获。但太低会导致回零时间变长,而且伺服在极低速时可能出现爬行。常见取5到20mm/s。对于高精度轴,我一般会先用10mm/s试,测五十次重复性,如果离散度还在要求之上,再降到5mm/s对比,选一个性价比合适的点。
反向退出距离也要算。它的作用是确保开关完全释放,避免二次接近时开关还处于动作状态导致误判。退出距离要大于开关的释放行程加上机械回弹量,常见取0.5到2mm。行程短的小模组取0.5mm,大行程丝杠轴取1到2mm。
4.2 开关滞后距离与挡块宽度的计算
挡块(或者感应片)的宽度不是随便定的,算一下:滞后距离 = 接近速度 × 总响应时间。
总响应时间包括传感器自身响应时间、输入滤波时间、总线传输周期、驱动器扫描周期。假设传感器响应1ms、输入滤波2ms、总线周期1ms,合计4ms。第一段速度200mm/s时滞后0.8mm,第二段速度10mm/s时滞后0.04mm。
挡块宽度至少要满足两个条件:一是大于第一段速度下的滞后距离,否则轴会直接冲过去而开关还没反应过来;二是要留出二次接近的余量,让轴在低速下还能重新碰到它。所以宽度通常取“第一段滞后距离 × 2 + 2mm”以上,前面这个例子里就是3.6mm以上,实际做的时候取5到10mm比较稳妥。
还有一个必须校验的量:从原点开关动作到Z脉冲出现的最大距离不能超过一转的行程。因为Z脉冲每转才来一个,如果开关动作点恰好在两个Z之间,最坏情况要再走将近一整转才能碰到Z。一转的行程 = 丝杠导程 / 减速比。导程10mm、直连的话就是10mm。如果你的流程要求“开关动作后必须在2mm内找到Z”,那就有可能找不到。正确做法是允许轴继续走最多一整转的距离去找Z,同时把这段距离的超时时间设好。
4.3 Z脉冲捕获为什么不能靠上位机扫描
这是新手最容易犯的错误。有人想着“PLC循环周期1ms,我每个周期读一次Z信号不就行了”。算一下就知道不行:3000rpm相当于50转/秒,每转20ms,Z脉冲的宽度取决于编码器设计和转速,很多编码器的Z脉宽只有几十微秒甚至更窄。1ms的扫描周期根本抓不住,就算偶尔抓到,位置也已经过去了。
正确的做法是把捕获Z这件事交给驱动器内部完成。伺服驱动器有专门的硬件捕获电路,Z信号进来立刻锁存当前位置,然后通过状态位告诉上位机“原点已建立”。上位机要做的是发指令、等状态、读结果,而不是自己去扫信号。这也是为什么总线伺服的回零要配置方法编号而不是自己写时序——标准方法里已经把这套逻辑实现好了。
如果用的是脉冲控制的伺服或者步进,没有总线状态位怎么办?那就看驱动器有没有“原点回零完成”的输出信号,用它接到PLC的输入点,同样不要试图用软件去抓Z。
4.4 垂直轴回零的抱闸与重力处理
垂直轴(Z轴、升降轴)的回零比水平轴麻烦得多,核心问题是重力。
第一,上电时序。伺服上电使能之后要先建立保持转矩,再松抱闸,顺序反了轴会先掉一下再被拉住,长期下来联轴器和丝杠都受不了。松闸延时参数一般设100到300ms,具体看抱闸的机械释放时间。
第二,回零方向。垂直轴的原点开关通常装在行程上端,回零方向朝上。这样做的原因是:朝上运动时重力帮忙,负载始终压在丝杠的同一侧,Z脉冲捕获时的机械状态一致;如果朝下找原点,重力方向与运动方向相同,停车时会有下坠和回弹,重复性明显变差。
第三,抱闸释放与制动的配合。回零过程中如果中途急停,抱闸要能立刻抱住,同时驱动器保持转矩一段时间再撤,避免溜车。
第四,断电溜车。垂直轴断电后如果抱闸失效或者响应慢,轴会自由下落,这时候任何回零精度都没有意义了。所以垂直轴的抱闸必须做失效验证——断一次电,看轴下落多少,超过允许值就要换大一级的抱闸或者加配重。
4.5 一段可复用的回零时序伪代码
下面这段是结构化文本风格的伪代码,逻辑与具体品牌无关,可以照着翻译成你手上PLC的写法。核心是状态机加超时保护,不建议用顺控步号硬写。
// 两段式回零:快速找开关 -> 退出 -> 低速二次接近 -> 等Z锁存 CASE step OF 0: IF NOT 伺服就绪 THEN 退出; END_IF 设速度(FAST_V); 设方向(负向); 启动运动(); t0 := 现在(); step := 10; 10: IF 原点开关 THEN 停止运动(); step := 20; ELSIF 现在()-t0 > T_FAST THEN 报警(找开关超时); step := 900; END_IF 20: 设速度(RETREAT_V); 设方向(正向); 移动距离(RETREAT_LEN); step := 30; 30: IF 运动完成 AND NOT 原点开关 THEN 延时(20ms); step := 40; END_IF 40: 设速度(SLOW_V); 设方向(负向); 启动运动(); t1 := 现在(); step := 50; 50: IF 原点开关 THEN 触发Z捕获(); step := 60; ELSIF 现在()-t1 > T_SLOW THEN 报警(二次接近超时); step := 900; END_IF 60: IF Z已锁存 THEN 停止运动(); 位置清零(); 加偏移(HOME_OFFSET); step := 100; ELSIF 现在()-t1 > T_Z THEN 报警(未捕获Z); step := 900; END_IF 100: 回零完成 := TRUE; 重试计数 := 0; 900: 重试计数 := 重试计数 + 1; IF 重试计数 <= 3 THEN step := 0; ELSE 报警锁存(); END_IF END_CASE几个细节:第一,HOME_OFFSET这个偏移量一定要留出来,机械原点和程序零点很少重合,工艺上通常希望程序零点在工件边缘或者夹具中心。第二,超时时间要按最坏情况算,不要拍个5秒了事,行程3米的轴5秒根本跑不完。第三,重试逻辑必须有上限,否则传感器坏了轴会一直撞。
5. 现场踩坑:从误动作到丢零点
5.1 高速回零冲过挡块
某台设备改造之后,回零动作偶尔会冲过原点开关,一直撞到硬限位才停,报“找原点超时”。查下来的原因很朴素:改造时把伺服电机换成了转速更高的一档,回零速度参数沿用了旧的值,但旧值是按旧电机的额定转速百分比算的,新电机同样的百分比对应的实际速度高了一截,接近开关时的速度已经超出挡块的覆盖范围,开关动作滞后导致信号还没被采到,轴已经过去了。
排查链路是这样的:先在手动模式用很低的速度点动去找开关,能正常触发,说明开关和接线没问题;再把回零速度参数打印出来,发现是第一段速度的实际数值比设计值高了将近一倍;接着按“速度×总响应时间”重新算滞后距离,发现已经超过挡块宽度;最后把第一段速度降回去,并且把挡块加宽,问题消失。
这类问题的通用教训是:电机换了、减速比改了、丝杠导程换了,回零速度参数必须跟着重算,不能凭“原来这么设的”直接搬。
5.2 多圈电池报警后直接换电池
一台设备报编码器电池电压低,维护人员断电之后换电池,重新上电之后多圈位置清零,系统提示需要重新回零,但设备停在行程中间一个不方便手动移动的位置,折腾了半天。
这个坑的本质是:带电池的多圈编码器,电池的作用是在断电时维持圈数计数器。一旦断电,计数器就靠电池供电;如果你在断电状态下把电池拔了,计数器彻底没电,数据清零,编码器就变成了“不知道自己转过几圈”的状态。
正确做法是:在通电状态下换电池。驱动器保持供电,编码器正常工作,电池只是给它做后备,这时候拔掉旧电池、插上新电池,中间不能断电,圈数数据就保住了。有些厂家的驱动器有专门的换电池流程和提示,按流程走就行。另外报警之后不要拖,很多编码器在报警后还能撑一段时间(比如几周到几个月,取决于型号和电池容量),但一直拖到彻底没电就晚了。
5.3 撞块回零的零点年年在漂
一台旋转工作台用挡块硬停止回零,重复性一开始大概±0.03mm,用了两年之后变成±0.15mm,加工出来的工件位置明显偏。拆开检查,挡块的接触面被打出一个明显的凹坑,深度大约0.1mm,凹坑的边缘还有毛刺。
这类问题的解决思路不是简单换个挡块了事,而是从根上降低冲击:把回零速度从20mm/s降到3mm/s(回零时间从1秒变成6秒,但一天只回零一次,完全可以接受);把转矩限制从额定的80%降到30%(能推动负载就行);把挡块换成可更换的淬硬垫片,并且把接触方式从“面撞面”改成“平面撞球头”,让接触点稳定;最后把回零后的回退距离从0.5mm加到1.5mm,确保每次初始状态一致。
做完这些,重复性回到±0.04mm左右。注意这里说的是“回到”,因为撞块回零的上限本来就不高,指望它做到±0.005mm是不现实的。
5.4 步进丢步被当成回零失败
一台用步进电机的小型设备,偶尔报“回零超时”,重启之后又能正常回零,属于典型的偶发故障。查了半天,最后发现是机械卡滞导致步进丢步——电机在某个位置被卡了一下,丢了十几步,之后所有位置都对不上,回零时找不到开关。
这个案例的启示是:开环步进系统里,“位置对不上”和“回零失败”是两件需要分开排查的事。如果回零本身能跑完流程,但回零之后工件位置偏移,那是丢步;如果回零流程卡住报超时,那是真的没找到开关或者Z。分清楚这两件事,排查方向完全不同。
对于容易卡滞的机构,考虑换成闭环步进或者直接上伺服,虽然成本上去,但省下来的调试和售后时间往往更值钱。
5.5 联轴器打滑让绝对值也不绝对
这是一台用了多圈绝对值伺服的设备,理论上断电不丢位置,但客户反馈“关机一晚,第二天加工位置偏了”。绝对值编码器本身没问题,问题出在联轴器——抱箍式的联轴器锁紧螺钉松动,轴在冲击负载下发生了微小转动,编码器读到的是电机轴的角度,电机轴转了但丝杠没跟着转,系统自然不知道。
绝对值系统最大的风险就在这儿:它给了你“位置永远正确”的错觉,但编码器只能看住电机轴这一侧。中间任何机械环节松动、打滑,它都无从得知。所以绝对值系统的机械部分要做更严格的防松:联轴器用胀套式或者加防松胶,减速机定期检查背隙,同步带检查张力和齿面磨损。另外建议在程序里加一层“机械校验”,比如每次开机先走到一个固定的机械标记位置,用外部传感器比对一下位置值,偏差超过阈值就报警要求重新回零。
6. 调试清单与验收方法
6.1 上电到回零完成的检查项
把回零调试做成一张清单,每次换型号、换机械都过一遍,能省掉很多返工。下面这些顺序是按现场经验排的,建议按顺序走,别跳。
第一项,方向和限位。手动低速点动,确认正负方向和实际一致,确认硬限位和软件限位都能正常触发。这一步没做扎实,回零方向设反了会直接撞机。
第二项,开关信号稳定性。手动把轴停在开关动作点附近,反复点动几十次,看信号有没有抖动或者误触发。接近开关的检测距离要留余量,别装得刚好在临界点上。
第三项,开关到Z的距离。手动让轴慢慢接近开关,触发之后继续走,记录从开关动作到Z出现的距离,确认它在一转行程之内,并且多次测量的离散度不大。
第四项,两段速度与超时。按前面算出来的值设定,然后实测一次完整回零的时间,把超时时间设成实测值的1.5到2倍。
第五项,回零后的偏移量。把机械实际的原点标记(比如打表测的位置)和程序显示的位置对比,把这个差值填进原点偏移参数。
第六项,失电与重新上电。完整断电再上电,走一遍回零,确认流程能自动跑通,没有需要人工干预的地方。
6.2 重复性验收的实测方法
精度验收不要只回零一次看结果,那个数字没有意义。正确做法是连续回零50次,每次记录原点位置,算最大值减最小值(极差)和标准差。设备厂和客户之间扯皮,往往就是因为验收方法没提前约定。
具体做法:装一个千分表或者用激光位移传感器,对准轴上的一个固定基准面;每次回零完成后,用程序记录当前位置值,同时人工读一次表值;两个数据都记下来,最后统计。
判据建议用极差,因为它最直观:如果要求重复性±0.01mm,那么50次回零的位置读数极差应该不超过0.02mm。同时观察数据分布,如果发现呈明显的单向漂移(越回越偏),那说明有热变形或者机械松动;如果呈双峰分布,那可能是开关有回差或者回零流程存在两个不同的路径。
最后补一个容易被忽略的验收项:不同初始状态下的回零。比如从原点左侧2mm处开始回零、从右侧2mm处开始回零、从行程中间开始回零、从行程尽头开始回零,各测10次。有些设备的回零流程只在某个方向上正确,换个起点就出问题,这一项能提前把这类隐患挖出来。
我个人在调试现场的习惯是,回零参数改完之后先不急着跑自动,手动来回回零二十次,听声音、看电流曲线、看每次停下来的位置读数,等数据稳定了再去跑工艺程序。多花的这十几分钟,往往能避免后面几天的反复折腾。回零这件事看着简单,但它是一台设备所有位置逻辑的起点,起点不稳,后面所有精度的讨论都是空的。