一、核心原理
编码器测速 = 单位时间内读到的脉冲数 → 换算成转速 / 线速度。
常用两种方法:
M 法(定时测脉冲):固定时间 T,数脉冲数 N → 速度 = N / T
T 法(测脉冲周期):测单个脉冲时间 T → 速度 = 1 / T
M/T 法:两者结合,高低速都准(高端伺服 / PLC 专用)
二、最常用:M 法测速思路(工程首选)
步骤 1:确定硬件
高速计数器 HSC
编码器线数 P(1000、2500、10000 线)
减速比 i(电机→负载)
步骤 2:PLC 程序结构
启动高速计数器,连续累计脉冲
定时中断 / 定时器,每 10ms / 50ms / 100ms 执行一次
每次中断:
读取当前脉冲值
PV_now计算脉冲差
ΔPV = PV_now - PV_old保存
PV_old = PV_now用 ΔPV 计算转速
步骤 3:转速公式
转速 n (r/min) = (60 × ΔPV) ÷ (线数 P × 采样时间 T)
ΔPV:采样时间内的脉冲数
P:编码器一圈线数
T:采样时间(秒)
例:P=1000,T=0.1s,ΔPV=1000n = 60×1000 / (1000×0.1) = 600 rpm
三、T 法测速思路
适合低速、大惯性、低脉冲场景。
捕捉两个相邻脉冲的时间差 T
转速:n = 60 ÷ (P × T)
T 越小 → 速度越快
四、完整编程思路(通用模板)
1. 变量定义
HSC_PV:高速计数器当前值PV_Last:上一次采样值PV_Delta:脉冲差Sample_T:采样时间(如 100ms)Line_P:编码器线数Speed_rpm:转速结果
2. 程序流程
初始化 HSC,模式 0(连续计数)
定时中断 100ms 执行
中断内:
plaintext
PV_Delta = HSC_PV - PV_Last PV_Last = HSC_PV
计算转速:
plaintext
Speed_rpm = 60 * PV_Delta / (Line_P * Sample_T)
限幅、滤波、输出
3. 方向判断
PV_Delta 正 → 正转
PV_Delta 负 → 反转
取绝对值测速,符号表示方向
五、不同 PLC 对应实现思路
三菱 FX / Q / L
用 高速计数器 D81xx
定时中断 10ms/100ms
做差值 → 代入公式
西门子 S7-200/300/1200
S7-200:HSC0~HSC5
S7-1200:High_Speed_Counter 指令
循环中断 OB 采样 → 测速
AB ControlLogix / CompactLogix
用 MSS 模块 / 1756-HSC
周期性任务(10ms)
读脉冲 → 差值 → 转速计算
六、工程优化技巧
采样时间 50~100ms 最稳太短抖动大,太长反应慢
加一阶滤波Speed = 0.8×Speed_old + 0.2×Speed_new
超低速处理脉冲太少时自动切 T 法
防止溢出计数器满了要处理回绕(补 65535 或 232)。


