返回主站|会员中心|保存桌面

希玛仪表综合服务商    

希玛红外测温仪,风速计,气体检测仪,兆欧表,测振仪,PH值检测仪,温湿度仪

联系方式
  • 联系人:方经理
  • 电话:13073017555
  • 邮件:gzws26@126.com
新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > 绝对值编码器过零检测!
新闻中心
绝对值编码器过零检测!
发布时间:2026-03-21        浏览次数:15        返回列表

一、先明确两个关键值

  1. 单圈分辨率(一圈多少个数)例:17 位单圈 = 131072

  2. 过零区间(靠近 0 的一小段)通常设:0 ± 5% 一圈


二、标准过零判断逻辑(最稳)

条件 1:当前位置在 接近 0 的区域

  • 0 ≤ 当前位置 ≤ 过零窗口值例:一圈 131072 → 窗口设 0~5000

条件 2:上一次扫描位置 在圈尾区域

  • 上一位置 ≥ 一圈最大值 - 过零窗口例:≥131072 - 5000 = 126072

最终过零触发:

上一位置在圈尾AND当前位置在圈头→ 输出 过零脉冲(OneShot)


三、PLC 通用程序逻辑(文字版)

plaintext

// 定义
SingleTurnMax   = 一圈最大值
ZeroWindow      = 5000   // 过零窗口,可调
NowPos          = 绝对值单圈值
LastPos         = 上周期位置

// 圈头区:接近0
Zone_Head := (NowPos >= 0) AND (NowPos <= ZeroWindow);

// 圈尾区:接近最大值
Zone_Tail := (LastPos >= SingleTurnMax - ZeroWindow) AND (LastPos <= SingleTurnMax);

// 过零检测(上升沿一次)
Cross_Zero := Zone_Tail AND Zone_Head;

只要 Cross_Zero = ON 一次,就是刚跨过零点


四、反向转动(倒转)过零也能检测

倒转过零:

  • 上一位置在圈头

  • 当前位置跳到圈尾

逻辑:

plaintext

Zone_Head_Last := (LastPos >=0) AND (LastPos <= ZeroWindow);
Zone_Tail_Now  := (NowPos >= SingleTurnMax - ZeroWindow);

Cross_Zero_Reverse := Zone_Head_Last AND Zone_Tail_Now;

五、为什么不能直接判断 ==0?

因为:

  • 编码器不一定正好经过 0

  • 高速转动会跳过 0

  • 干扰会导致抖动必须用区间判断,才可靠


六、实际应用场景

  1. 计圈数每过零一次,圈数 +1 /-1

  2. 找原点过零视为 Z 相信号使用

  3. 防止位置跳变避免从最大值突然变 0 导致计算错误

  4. 同步、飞剪、套色以过零作为相位基准


七、你告诉我两点,我直接给你写完整 PLC 程序

  1. 编码器单圈位数(13bit/16bit/17bit/20bit?)

  2. PLC 品牌:三菱 / 西门子 / 台达 / 欧姆龙。

收缩
  • QQ咨询

  • 电话咨询

  • 13073017555
  • 添加微信客服