硬件基础(一):手轮编码器原理
各位同学,今天我们来聊聊手轮编码器。这东西在工业现场太常见了,数控机床、伺服系统、机器人示教器,到处都有它的身影。说白了,手轮就是一个人机交互的旋转输入设备,你转一下,机器就知道你要走多远、走多快。
我个人习惯把编码器分成两大类:增量式和绝对式。这两种在原理、用法、成本上差别很大。咱们一个一个说。
增量式编码器:简单、便宜、但会丢位置
增量式编码器,顾名思义,它只输出“变化量”。你转了多少角度,它就输出多少个脉冲。但它不告诉你“现在在哪个位置”。
它的内部结构其实不复杂。一个码盘,上面刻着均匀的透光和不透光条纹。发光二极管一照,光敏元件一收,转起来就产生脉冲信号。我最早接触这个是在大学实验室,用光栅尺做位置测量,当时觉得这东西真神奇。
增量式编码器输出的是ABZ三路信号。A和B是正交信号,相位差90度。通过判断A和B谁先跳变,就能知道旋转方向。Z信号是零位信号,每转一圈出一个脉冲,用来校准位置。
关键点:增量式编码器断电后位置信息会丢失。上电后必须执行回零操作,找到Z信号才能建立绝对位置。这是它的最大短板。
我在项目中遇到过一件事。一台老式数控铣床,手轮用的是增量式编码器。操作工换刀时不小心碰了一下手轮,结果机床以为位置变了,直接撞刀。嗯,从那以后,我对手轮的安全防护格外上心。
绝对式编码器:贵,但省心
绝对式编码器就不一样了。它每个位置都有唯一的编码值。你一转,它直接告诉你“我现在在角度1234”。断电再上电,位置还在,不用回零。
它的码盘是多圈刻度的,用格雷码或二进制码表示位置。格雷码的好处是相邻位置只变化一位,不会出现误读。我刚开始做设计时觉得格雷码多此一举,直到有一次在振动环境下看到二进制码跳变出错……嗯,从那以后我再也不敢小看格雷码了。
绝对式编码器有单圈和多圈之分。单圈的只能记录一圈内的位置,多圈的可以记录旋转了多少圈。多圈的一般用机械齿轮或电池备份来实现。我个人建议,如果成本允许,尽量选多圈绝对式,省心太多。
我的经验:在伺服驱动系统中,绝对式编码器配合电池备份,可以实现断电后位置保持。上电直接干活,不用回零。这在自动化产线上能省不少时间。
ABZ信号解析:你得看懂波形
不管是增量式还是绝对式,最终都要通过电气接口和控制器通信。增量式的ABZ信号是最基础的,咱们得把它吃透。
A和B是正交信号,频率相同,相位差90度。你想想看,如果A超前B,那就是正转;B超前A,那就是反转。通过检测A和B的边沿,可以实现4倍频细分,提高分辨率。
举个例子,一个编码器每圈1000个脉冲,4倍频后就是每圈4000个计数。分辨率从0.36度提升到0.09度。这在低速精密定位时特别有用。
// 简单的ABZ信号解码伪代码
if (A上升沿) {
if (B == 0) 位置++;
else 位置--;
}
if (B上升沿) {
if (A == 1) 位置++;
else 位置--;
}
if (Z上升沿) {
位置 = 0; // 零位校准
}
Z信号每圈一个脉冲,宽度通常为1/4个A周期。它用来建立绝对参考点。我建议在系统初始化时,先让手轮转一圈找到Z信号,再开始正常工作。这样可以避免累积误差。
注意:ABZ信号的电气特性很重要。输出类型有NPN开路集电极、PNP开路集电极、推挽输出、差分输出(RS-422)等。选型时一定要和控制器输入匹配。我曾经因为NPN和PNP不匹配,烧了一块接口板……教训深刻。
电气特性与接口标准
编码器的电气接口,说白了就是怎么把信号可靠地传出去。常见的接口标准有这些:
| 接口类型 | 输出方式 | 电压范围 | 传输距离 | 抗干扰能力 |
|---|---|---|---|---|
| NPN开路集电极 | 低电平有效 | 5-24V | 短(<10m) | 一般 |
| PNP开路集电极 | 高电平有效 | 5-24V | 短(<10m) | 一般 |
| 推挽输出 | 高低电平 | 5-24V | 中(<50m) | 较好 |
| 差分输出(RS-422) | 差分信号 | 5V | 长(<500m) | 优秀 |
我个人习惯在工业现场优先选差分输出。为什么?抗干扰能力强。工厂里电机、变频器、焊机到处都是,电磁环境很恶劣。差分信号用两根线传一对互补信号,共模噪声一抵消,信号就干净了。
另外,编码器的供电电压也要注意。常见的有5V和24V两种。5V的功耗低,但传输距离受限。24V的压降容忍度大,适合长距离。我建议在控制柜内用5V,在机台上用24V。
还有一个细节:编码器的输出频率。这决定了你能转多快。输出频率 = 每圈脉冲数 × 转速。如果转速是3000rpm,每圈1000个脉冲,那输出频率就是50kHz。控制器的输入接口必须能处理这个频率。我见过有人用普通IO口读编码器,结果转速一高就丢脉冲,这就是频率不匹配。
避坑指南:我曾经在调试一台贴片机时,手轮编码器信号总是偶尔跳变。查了半天,发现是屏蔽层接地没处理好。记住:屏蔽层要单端接地,不要两端都接,否则会形成地环路,引入更大的噪声。
总结一下
手轮编码器这块,增量式适合成本敏感、允许回零的场合;绝对式适合要求高可靠性、不能断电丢失位置的场合。ABZ信号解析是基本功,波形要会看,时序要会算。电气接口选型要匹配,抗干扰要重视。
下一节我们会讲手轮的机械设计和手感调校,那又是另一门学问了。咱们到时候再聊。