文章目录

高速脉冲计数:编码器频率超过PLC扫描周期时如何使用高速计数器(HSC)

发布于 2026-03-20 21:41:46 · 浏览 3 次 · 评论 0 条

高速脉冲计数的核心矛盾,是编码器输出的高频脉冲与PLC常规扫描机制之间的速度 mismatch:当编码器每秒发出数万甚至数十万个脉冲,而PLC主程序扫描周期为10 ms(即每秒最多执行100次),若仍用普通输入点+定时器或上升沿指令统计,99%以上的脉冲将被漏掉——这不是精度问题,而是根本性丢失。

解决这一问题的唯一可靠路径,是绕过PLC扫描周期,启用硬件级响应单元:高速计数器(High-Speed Counter, HSC)。它不依赖扫描循环,而是由PLC内部专用计数电路直接捕获输入引脚电平变化,响应时间可达纳秒级。以下为完整实操指南,覆盖选型判断、接线规范、参数配置、编程验证四大阶段,所有步骤均基于主流国产及国际PLC通用逻辑(如汇川H3U、三菱FX5U、西门子S7-1200、欧姆龙CP2E),无需特定品牌手册即可执行。


一、确认是否真需HSC:三步自检法

在动手配置前,先用以下三个硬性条件交叉验证是否必须启用HSC:

  1. 计算编码器理论最高频率
    公式:$f_{\text{max}} = \frac{N \times n}{60}$
    其中:

    • N = 编码器每转脉冲数(如 2500 P/R
    • n = 电机最高转速(单位:rpm,如 3000 rpm
      代入示例:$f_{\text{max}} = \frac{2500 \times 3000}{60} = 125000\ \text{Hz}$(即125 kHz)
  2. 核查PLC输入点硬件限制
    查PLC技术手册中“高速计数器规格”章节,重点关注:

    • 单通道最高允许频率(如 FX5U200 kHzH3U200 kHzS7-1200 CPU 1214C DC/DC/DC100 kHz
    • 是否支持四倍频(X4模式)——若支持,实际可测转速上限提升4倍
  3. 排除软件替代方案
    若 $f_{\text{max}} < 1\ \text{kHz}$,且PLC支持中断输入(如 H3UINT 指令、S7-1200Hardware Interrupt OB),可尝试中断方式;但一旦超过 2 kHz,中断响应延迟(通常 >100 µs)将导致累积误差,必须启用HSC

满足以上全部三条,则进入下一步。


二、物理接线:差分信号与滤波的强制规范

编码器输出类型决定接线方式,错误接法则直接导致计数失灵:

编码器输出类型 PLC对应输入端口 关键操作
PNP集电极开路(漏型输入) 标有 I0.0, I0.1 等的 公共端接 0V 必须外接上拉电阻:在编码器 A+24V 间串接 4.7 kΩ 电阻,否则信号无效
NPN集电极开路(源型输入) 公共端接 24V 必须外接下拉电阻:在编码器 A-0V 间串接 4.7 kΩ 电阻
RS-422差分(推荐) 标有 A+, A-, B+, B- 的专用高速端口 禁止省略终端电阻:在PLC侧 A+A- 间并联 120 Ω 电阻,B+B- 同理;否则长线传输时波形振铃导致误计数

绝对禁止行为

  • 将编码器 A 相直接接入普通数字量输入点(如 X0)后调用 CNT 指令
  • 使用未屏蔽双绞线延长编码器线缆(>1 m 必须用带铝箔屏蔽层的编码器专用电缆)
  • 在同一根电缆中混走动力线与编码器线(最小间距 ≥20 cm,否则变频器干扰使计数跳变)

三、HSC参数配置:五项不可省略的设置

以四倍频正交计数为例(最常用,抗干扰强,方向识别准),所有品牌配置逻辑一致:

  1. 选择计数模式
    设置 计数模式 = 四倍频正交(X4)
    说明:编码器 AB 相相位差90°,HSC对每个相的上升沿和下降沿都计数,1个完整周期计4个脉冲,分辨率提升4倍,且自动识别正反转。

  2. 设定计数方向信号源
    指定 方向输入 = B相(或按手册定义,部分PLC固定为B相)
    验证方法:手动正向旋转编码器,观察HSC当前值是否递增;反向旋转则递减。若相反,交换 A+B+ 接线。

  3. 配置计数范围与复位逻辑

    • 预设值(PV):设为 65535(16位计数器上限)或 4294967295(32位)
    • 复位方式必须选择“外部复位端子”(如 I0.2),而非软件复位;因软件复位受扫描周期限制,无法实时清零高速累积值
    • 复位信号有效电平:查手册确认是 高电平复位 还是 低电平复位,接线时严格匹配
  4. 启用数字滤波
    设置 输入滤波时间 = 0.1 µs ~ 1 µs(非毫秒!)
    依据:若编码器最高频率为 100 kHz,周期为 10 µs,滤波时间必须 <25% 周期(即 <2.5 µs),否则会滤掉真实脉冲。典型值填 0.5 µs

  5. 分配HSC编号与映射地址

    • 例如在 H3U 中:HSC0 映射到 D1000(当前值),D1001(预设值)
    • S7-1200 中:DB1.DBW0 存储当前值,DB1.DBW2 存储预设值
      关键动作在PLC系统块中启用该HSC通道(如勾选 HSC0 Enable),否则配置不生效。

四、程序验证:三阶校准法确保零误差

配置完成后,必须通过以下三级验证,任何一级失败均需返工:

阶段1:静态信号注入测试(无机械运动)

  • 断开编码器,用信号发生器输出 1 kHz 方波(占空比50%)至HSC输入端
  • 运行程序10秒,读取HSC当前值 CV
  • 合格标准|CV - 10000| ≤ 1(允许±1脉冲硬件抖动)
  • 若超差:检查滤波时间是否过大,或接地不良导致信号畸变

阶段2:低速旋转比对测试(<10 rpm)

  • 用伺服电机驱动编码器,设定转速 5 rpm
  • 同时用万用表频率档测量 A+0V 电压频率(应为 N × 5 / 60 Hz)
  • 记录PLC中HSC值每秒变化量(取10秒平均)
  • 合格标准:HSC测得频率与万用表读数偏差 <0.5%

阶段3:全速动态精度测试(额定工况)

  • 运行至最高转速(如 3000 rpm)持续5分钟
  • 每30秒记录一次HSC值,计算相邻两次差值
  • 合格标准:所有差值的标准差 σ < 5(表明无丢脉冲或误触发)
  • σ > 20:立即停机,检查屏蔽层是否单端接地(编码器端接地,PLC端悬空)、电源纹波是否超标(用示波器测 24V 纹波应 <100 mV

五、常见故障速查表

当计数异常时,按此表逐项排查,90%问题可在5分钟内定位:

现象 最可能原因 立即验证动作
HSC值始终为0 HSC通道未在系统块中启用 检查PLC编程软件“系统块→高速计数器→启用”是否勾选
计数值随机跳变 编码器线缆屏蔽层两端接地 用万用表测屏蔽层与PLC外壳电阻,应仅一端为0 Ω
正转计数、反转不计数 方向信号接错或B相断线 用示波器看 A+B+ 是否均有稳定方波,相位是否90°差
高速时计数偏少 输入滤波时间设为 1 ms(错误单位) 查手册确认单位是 µs,重设为 0.5
复位后值不归零 复位端子接线电平与配置相反 用万用表测复位端子电压,对比手册要求的“有效电平”

六、进阶技巧:规避HSC资源瓶颈

当一台PLC需同时处理多路高速信号(如3轴伺服+1路流量计),HSC通道不足时:

  • 复用同一HSC通道:将多路编码器 A+ 并联接入同一HSC输入端(如 I0.0),但各路 B+ 分别接入不同普通输入点(如 I0.1, I0.2),通过软件判断当前哪路有效(利用 B+ 电平状态作为使能条件)
  • 降频采样:对非关键信号(如温度脉冲传感器),在编码器输出端加 74HC4040 分频芯片,将 100 kHz 降至 1 kHz 后接入普通输入点
  • 外置计数模块:选用 研华ADAM-4080 等独立计数模块,通过RS-485将累计值传给PLC,彻底释放HSC资源

HSC不是高级功能,而是高速运动控制的基础设施。其配置逻辑高度标准化:确认频率需求→严守接线规范→精确设置五项参数→执行三阶验证。只要严格遵循上述步骤,即使首次接触,也能在30分钟内完成从接线到稳定计数的全流程。

评论 (0)

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

扫一扫,手机查看

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