第二章 零位信号原理:增量式编码器的Z信号、绝对式编码器的零位编码、零位信号的电气特性

各位工程师朋友,咱们接着聊编码器。上一章我讲了编码器的基本分类,这一章咱们深入聊聊零位信号。说实话,零位信号这东西,看着简单,但坑特别多。我刚开始做运动控制那会儿,就被Z信号坑过一次,差点把一台价值几十万的机床搞废了。嗯,咱们慢慢说。

2.1 增量式编码器的Z信号

增量式编码器,说白了就是输出脉冲的。A相、B相告诉你位置变化了多少,但不知道具体在哪儿。那怎么知道绝对位置呢?靠的就是Z信号——零位信号。

Z信号是什么?

Z信号,也叫Index信号,是增量式编码器每转一圈输出一个脉冲的特殊信号。它的作用就是告诉控制系统:「嘿,我现在转到基准点了!」

我个人习惯把Z信号理解成「刻度尺上的零刻度线」。你想想看,一把尺子如果没有零刻度,你怎么量长度?只能量相对距离。有了零刻度,你才能知道绝对位置。

核心要点:

  • 每圈只输出一个脉冲
  • 脉冲宽度通常为1个A/B周期(也有1/2周期的)
  • 与A、B相有固定的相位关系
  • 用于建立绝对参考点

Z信号的时序关系

这里有个关键点:Z信号不是随便什么时候都能用的。它必须和A、B相配合,才能准确找到零位。我画个时序图你们就明白了。

增量式编码器Z信号时序图 A相 B相 Z相 Z脉冲宽度(通常1个A周期) A上升沿 B上升沿 Z信号通常在A、B均为高电平时出现(具体取决于编码器型号)

你看这个时序图,Z脉冲的位置是固定的。我一般会在A相和B相都是高电平的时候去捕获Z信号,这样最可靠。不过不同厂家的编码器,Z信号的相位关系可能不一样,一定要看数据手册。

实战小技巧:

我曾经在调试一台伺服系统时,发现Z信号总是捕获不到。查了半天,原来是编码器的Z信号宽度只有1/4个A周期,而我的捕获窗口设得太宽了。后来我把捕获窗口缩小到1/2个A周期,问题就解决了。所以啊,Z信号的宽度一定要搞清楚。

2.2 绝对式编码器的零位编码

绝对式编码器跟增量式不一样,它一上电就知道自己的位置。那它还需要零位吗?答案是:需要,但方式不同。

绝对式编码器的零位概念

绝对式编码器的零位,其实是一个「参考位置」。它不像增量式那样需要一个物理的Z脉冲,而是在编码器的码盘上,通过特定的编码组合来定义零位。

我打个比方:增量式编码器的零位就像你在一张白纸上画了个原点。绝对式编码器的零位呢?就像一张印满了坐标的纸,每个点都有自己的坐标值,但「原点」是预先定义好的那个。

常见的零位编码方式

编码方式 原理 特点 典型应用
单圈绝对式 每圈内位置唯一编码 断电后位置丢失(圈数丢失) 机器人关节、数控机床
多圈绝对式 圈数+圈内位置双重编码 断电后位置保持 风力发电、起重机
虚拟零位 通过软件设定零位 灵活,可随时更改 自动化产线、AGV

多圈绝对式编码器的零位保持

这里有个很有意思的技术点:多圈绝对式编码器是怎么在断电后记住圈数的?说白了,它内部有个小电池或者超级电容,给圈数计数器供电。断电后,编码器还在「偷偷」记录你转了多少圈。

我记得有一次,客户说他们的设备断电后再上电,位置就乱了。我过去一看,发现他们用的是单圈绝对式编码器,但以为能记住多圈位置。这就是典型的选型错误。你想想看,单圈编码器只能记住360度以内的位置,转多了肯定丢数据。

重要提醒:

绝对式编码器的零位编码,在出厂时通常已经设定好了。但有些场合需要重新校准零位,比如更换编码器或机械结构维修后。这时候一定要按照厂家的校准流程操作,千万别自己瞎搞。我曾经见过有人用磁铁去「复位」编码器,结果把码盘搞坏了,损失好几千块。

2.3 零位信号的电气特性

好了,咱们聊聊零位信号的电气特性。这部分看着枯燥,但实际调试中特别重要。我见过太多工程师因为电气特性没搞清楚,导致信号不稳定、误触发等问题。

输出类型

零位信号的输出类型,主要有这么几种:

  • NPN开路集电极输出:低电平有效,需要上拉电阻
  • PNP开路集电极输出:高电平有效,需要下拉电阻
  • 推挽输出:既能拉电流也能灌电流,驱动能力强
  • 差分输出(RS-422):抗干扰能力强,适合长距离传输
  • HTL/TTL输出:电平标准不同,HTL适合工业环境

电平标准

不同的编码器,零位信号的电平标准可能不一样。我整理了一个表格,方便大家对照:

标准 高电平(V) 低电平(V) 供电电压(V) 典型应用
TTL ≥2.4 ≤0.5 5 短距离、高速
HTL ≥10 ≤2 10-30 工业现场、长距离
RS-422 ≥2.0(差分) ≤0.8(差分) 5 高速、长距离、抗干扰
推挽 接近Vcc 接近GND 5-30 通用性强

抗干扰设计

零位信号最容易出问题的地方就是干扰。你想想看,一个脉冲信号,如果被干扰了,控制系统就会以为到了零位,然后执行回零操作——这后果可能很严重。

我给大家几个抗干扰的建议:

  1. 屏蔽线缆:零位信号线一定要用屏蔽双绞线,屏蔽层单端接地
  2. 上拉/下拉电阻:开路集电极输出必须加电阻,阻值一般选1kΩ-10kΩ
  3. RC滤波:在接收端加一个低通滤波器,时间常数选1-10μs
  4. 施密特触发器:用施密特触发器整形,消除信号抖动
  5. 光耦隔离:如果现场干扰特别大,建议用光耦隔离

避坑指南:

我曾经在一个项目中,零位信号总是误触发。用示波器一看,发现信号线上叠加了一个50Hz的工频干扰。查了半天,原来是信号线和动力线走在了同一个线槽里。后来我把信号线单独走管,干扰就消失了。所以啊,布线的时候一定要把强电和弱电分开,这是最基本的规矩。

零位信号的捕获策略

最后,我聊聊零位信号的捕获策略。不同的应用场景,捕获策略不一样:

  • 低速场景:直接捕获Z脉冲的上升沿或下降沿即可
  • 高速场景:建议用硬件捕获,比如FPGA或专用编码器接口芯片
  • 高精度场景:结合A/B相的四倍频技术,在Z脉冲附近做插值
  • 安全关键场景:采用冗余设计,比如两个Z信号或Z信号+限位开关

嗯,零位信号的原理就讲到这里。说白了,不管是增量式还是绝对式,零位信号的核心作用就是提供一个可靠的参考点。理解了这一点,后面的回零算法就好办了。


公众号:蓝海资料掘金营,微信deep3321