DI滤波学习


DI滤波


下面我把你截图中的功能 完整、专业、但容易理解地解释清楚


这是什么界面?

这是 Phoenix Contact 菲尼克斯 的 **Inline / Axioline 远程 IO 配置软件(例如 Startup+ 或 I/O Assistant)**里,对一个数字量输入模块 AXL DI 64/1-ME"滤波时间(Filter Time)" 参数进行配置。

你展开的是:

复制代码
参数 → 滤波 → 过滤时间

右侧下拉框显示可选的滤波时间:

  • 1 ms
  • 3 ms
  • 10 ms
  • < 100 μs

🎯 滤波时间(Filter Time)是什么?为什么要设置?

数字量输入模块 DI(Digital Input) 会读取现场信号,比如:

  • 按钮
  • 开关
  • 传感器输出
  • 接触器辅助触点
  • 继电器的干接点

这些信号在实际工业环境中非常容易出现:

  • 抖动(Bounce)
  • 电磁干扰(EMI)
  • 触点弹跳(CHF-bounce)
  • 干扰噪声尖峰

因此 DI 模块会自带一个"数字滤波器(Digital Input Filter)"

📌 目的:让信号更稳定,不要误判。


📌 各个选项什么意思?

说明 适用场景
< 100 μs 几乎不滤波,输入几乎实时变化 高速检测,例如编码器 Z 相、快速光电开关
1 ms 输入变化必须保持稳定超过 1ms 才认定 一般的工业按钮、光电开关
3 ms 更强抗干扰,延迟更高 电磁干扰较强、线缆较长
10 ms 非常强的抗干扰,延迟变大 动作慢的机械设备,如继电器触点、大型按键

🧠 举个工业现场真实例子

情况 1:按钮按下

按钮触点抖动:

0 → 1 → 0 → 1 → 0 → 1

如果没有滤波,会被当成 多次触发

设置 3ms 或 10ms 滤波后:

  • 必须连续 3ms 都是 "1"
  • 才会被认为是真正按下

避免误触发。


情况 2:高速传感器

高速传感器输出脉宽:200 μs

如果设置 1 ms 滤波 → 这脉冲会被完全过滤掉

必须设置:

  • <100 μs

才能正确识别。


🔧 这些参数会写到哪里?

在 Phoenix Contact 的 Inline / Axioline 系统中,滤波参数会写入:

  • 设备参数块
  • 最终存入 Startup+ 导出的 DTM / Device Parameter File
  • CoDeSys 或 PLC 会读取到这些参数,写入到设备

如果对应 EtherCAT,则最终可能写入:

  • ESI → CFG → ENI → Slave EEPROM(部分类型支持)

🔍 AXL DI 64/1-ME 的滤波时间属于什么标准?

这是 厂商(Phoenix Contact)定义的参数,不属于 EtherCAT 标准寄存器。

属于:

  • 菲尼克斯 Inline/Axioline 产品的模块特定参数
  • 不属于 PDO/SDO 标准对象

各家 DO/DI 模块滤波参数都不同,例如:

  • Beckhoff DI 模块通常用对象 0x8000/0x80n0(厂商扩展)
  • Phoenix Contact 也一样,使用厂商自定义参数

📌 总结一句话

你截图中的下拉框是:

设置数字量输入滤波时间,用于抗干扰/去抖,并根据不同场景选择不同延迟。


相关推荐
世人万千丶18 小时前
Flutter 框架跨平台鸿蒙开发 - 恐惧清单应用
学习·flutter·华为·开源·harmonyos·鸿蒙
yuzhuanhei18 小时前
Visual Studio 配置C++opencv
c++·学习·visual studio
此刻觐神19 小时前
IMX6ULL开发板学习-01(Linux文件目录和目录相关命令)
linux·服务器·学习
憧憬从前19 小时前
算法学习记录DAY2
学习
babe小鑫20 小时前
会计岗位学习数据分析的价值分析
学习·数据挖掘·数据分析
千枫s20 小时前
电脑vm虚拟机kali linux安装shannon
学习·网络安全
zjnlswd20 小时前
tkinter学习案例--笔记代码
笔记·学习
咬_咬20 小时前
go语言学习(基本数据类型)
开发语言·学习·golang·数据类型
山甫aa20 小时前
List 容器 -----C++的stl学习
开发语言·c++·学习
无聊大侠hello world20 小时前
Yu-AI-Agent 项目(AI 恋爱大师智能体) · 学习笔记
人工智能·笔记·学习