文章目录

编码器脉冲的倍频与分频处理

发布于 2026-03-25 16:52:00 · 浏览 12 次 · 评论 0 条

编码器脉冲的倍频与分频处理

在电气自动化控制系统中,编码器作为核心的位置与速度传感器,其输出脉冲信号的处理方式直接决定了控制系统的精度与响应速度。为了匹配不同控制器的输入要求或提高测量分辨率,工程师通常需要对编码器脉冲进行倍频或分频处理。


一、 核心概念与处理逻辑

在动手操作之前,必须明确倍频与分频的适用场景。倍频主要用于提高位置精度,而分频主要用于降低频率以适应控制器接口或防止计数器溢出。

为了更直观地判断在何种情况下采取何种策略,请遵循以下逻辑流程:

graph TD A["开始: 接入编码器信号"] --> B{"判断控制需求"} B -- "提高位置精度" --> C["策略: 硬件/软件 4 倍频"] B -- "降低脉冲频率
或 防止计数溢出" --> D["策略: 硬件/软件 分频"] C --> E["执行: 读取 A/B 相相位差"] D --> F["执行: 设定分频系数 N"] E --> G["输出: 处理后的脉冲信号"] F --> G

二、 编码器脉冲的倍频处理

倍频技术最常用于增量式编码器。标准的增量式编码器输出 A 相和 B 相两路相位差为 90 度的方波信号。利用这两相信号的相位关系,可以在不改变机械结构的前提下,将物理分辨率成倍提高。

1. 理解 4 倍频原理

4 倍频是目前最主流的处理方式。其核心逻辑是检测 A 相和 B 相波形的所有“跳变沿”。

在一个物理脉冲周期内,会发生以下 4 个事件:

  1. A 相的上升沿
  2. B 相的上升沿
  3. A 相的下降沿
  4. B 相的下降沿

每捕捉到一次跳变,计数器就加 1。因此,编码器旋转一圈产生的脉冲数计算公式为:

$$ N_{actual} = PPR \times 4 $$

其中,$N_{actual}$ 为实际计数值,$PPR$ 为编码器每转线数。

2. 实施硬件倍频步骤

大多数现代 PLC 或 运动控制卡都内置了硬件倍频功能,这比软件处理更实时、更准确。

  1. 查阅 硬件手册,找到高速计数器(HSC)或轴配置界面。
  2. 进入 脉冲输入设置选项,将输入模式设置为 A/B 相位Quad 4x
  3. 连接 编码器的 A 相信号至控制器的 A+ 端口,B 相信号至 B+ 端口。
  4. 确保 信号电压电平(如 5V 或 24V)与控制器输入端口匹配,必要时接入限流电阻。

3. 实施软件倍频步骤(PLC 逻辑)

若控制器硬件不支持倍频,需通过程序逻辑实现。以下以梯形图逻辑思路为例进行描述:

  1. 创建 两个边沿检测指令,分别捕捉 A 相的上升沿和下降沿。
  2. 创建 两个边沿检测指令,分别捕捉 B 相的上升沿和下降沿。
  3. 并联 这四个检测触点至同一个加计数器(Counter)的输入端。
  4. 注意 软件倍频受 PLC 扫描周期限制,仅适用于低速场合。若编码器转速过快,请务必使用硬件倍频。

三、 编码器脉冲的分频处理

当编码器线数过高,或者电机转速极快时,脉冲频率可能会超过 PLC 高速计数器的最大允许值,或者导致上位机通讯数据量过大。此时需要进行分频处理。

1. 计算分频系数

首先,需要计算当前编码器输出的最高频率,公式如下:

$$ F = \frac{PPR \times n}{60} $$

其中,$F$ 为频率,$PPR$ 为线数(若已倍频需乘以倍频数),$n$ 为电机转速(RPM)。

判断 $F$ 是否超过控制器的最大输入频率 $F_{max}$。若 $F > F_{max}$,则必须分频。

分频系数 $K$ 的计算公式为:

$$ K = \lceil \frac{F}{F_{max}} \rceil $$

其中,$\lceil x \rceil$ 表示对 $x$ 向上取整。通常 $K$ 取 2、4、8、10 等整数。

2. 硬件分频实施步骤

外部硬件分频器不占用 CPU 资源,是高频信号处理的首选。

  1. 购买 或选用支持外部分频功能的光电隔离模块或专用分频电路。
  2. 设置 分频器上的 DIP 码开关或参数,设定分频系数为 K(例如 2 代表每 2 个脉冲输出 1 个脉冲)。
  3. 接入 编码器原始信号至分频器输入端。
  4. 连接 分频器输出端至 PLC 的高速计数输入口。

3. 软件分频实施步骤(PLC 逻辑)

利用 PLC 内部的计数器逻辑进行“逢 N 进 1”的操作。

  1. 建立 一个中间计数器 C_Temp,用于接收原始编码器脉冲。
  2. 建立 一个最终结果计数器 C_Final,用于记录分频后的有效脉冲。
  3. 编写 比较逻辑:当 C_Temp 的当前值等于分频系数 K 时。
  4. 执行 两个动作:
    • 复位 C_Temp 为 0(或使用计数器的自动复位功能)。
    • 递增 C_Final 计数器加 1。

以下是一个结构化文本(ST)风格的代码示例:

// 定义分频系数
K := 10;

// 当临时计数器达到 K 时
IF C_Temp >= K THEN
    // 处理有效脉冲
    C_Final := C_Final + 1;

    // 清零临时计数器
    C_Temp := 0;
ELSE
    // 原始脉冲输入(此处假设有触发条件驱动 C_Temp 增加)
    // C_Temp := C_Temp + 1; 
END_IF;

四、 倍频与分频的效果对比

为了方便在实际项目中选择方案,下表总结了两种处理方式的关键差异。

特性维度 倍频处理 分频处理
核心目的 提高测量分辨率和精度 降低频率,匹配硬件限制
脉冲数量变化 乘以倍频数(如 $\times 4$) 除以分频系数(如 $\div 10$)
对位置精度的影响 精度提高,最小位移变小 精度降低,最小位移变大
对速度测量的影响 数据更细腻,低速性能好 数据更稀疏,需注意低速量化误差
典型应用场景 数控机床定尺、精密位置控制 高速电机测速、长距离输送带

五、 常见故障排查

在完成倍频或分频配置后,如果发现读数不准或乱跳,请按以下顺序排查。

  1. 检查 信号线屏蔽层是否单端接地,排除电磁干扰。
  2. 确认 A 相和 B 相的接线是否接反。若接反,在倍频模式下计数会减少或在旋转方向改变时计数错误。
  3. 使用 示波器或万用表观察波形,确保上升沿和下降沿陡峭,无严重震荡。
  4. 核对 分频系数设置。若软件分频系数过大,会导致低速时完全没有脉冲输出(死区现象)。
  5. 验证 供电电压是否稳定。电压过低会导致编码器输出方波幅度不足,无法触发计数器。

在调整参数后,手动 盘动电机一圈,对比编码器发出的脉冲数与理论计算值($PPR \times \text{倍频数} \div \text{分频系数}$),确认无误后方可投入自动运行。

评论 (0)

暂无评论,快来抢沙发吧!

扫一扫,手机查看

扫描上方二维码,在手机上查看本文